@devicecloud.dev/dcd 4.1.2-beta.1 → 4.1.3
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/commands/cloud.d.ts +26 -34
- package/dist/commands/cloud.js +117 -465
- package/dist/commands/status.d.ts +6 -0
- package/dist/commands/status.js +19 -1
- package/dist/config/flags/api.flags.d.ts +7 -0
- package/dist/config/flags/api.flags.js +19 -0
- package/dist/config/flags/binary.flags.d.ts +8 -0
- package/dist/config/flags/binary.flags.js +20 -0
- package/dist/config/flags/device.flags.d.ts +14 -0
- package/dist/config/flags/device.flags.js +46 -0
- package/dist/config/flags/environment.flags.d.ts +11 -0
- package/dist/config/flags/environment.flags.js +37 -0
- package/dist/config/flags/execution.flags.d.ts +13 -0
- package/dist/config/flags/execution.flags.js +50 -0
- package/dist/config/flags/output.flags.d.ts +18 -0
- package/dist/config/flags/output.flags.js +61 -0
- package/dist/constants.d.ts +28 -24
- package/dist/constants.js +21 -206
- package/dist/gateways/api-gateway.d.ts +3 -3
- package/dist/methods.d.ts +0 -4
- package/dist/methods.js +15 -80
- package/dist/services/device-validation.service.d.ts +29 -0
- package/dist/services/device-validation.service.js +72 -0
- package/dist/{plan.d.ts → services/execution-plan.service.d.ts} +1 -1
- package/dist/{plan.js → services/execution-plan.service.js} +10 -10
- package/dist/{planMethods.js → services/execution-plan.utils.js} +0 -1
- package/dist/services/metadata-extractor.service.d.ts +46 -0
- package/dist/services/metadata-extractor.service.js +138 -0
- package/dist/services/moropo.service.d.ts +20 -0
- package/dist/services/moropo.service.js +113 -0
- package/dist/services/report-download.service.d.ts +40 -0
- package/dist/services/report-download.service.js +110 -0
- package/dist/services/results-polling.service.d.ts +45 -0
- package/dist/services/results-polling.service.js +210 -0
- package/dist/services/test-submission.service.d.ts +41 -0
- package/dist/services/test-submission.service.js +116 -0
- package/dist/services/version.service.d.ts +31 -0
- package/dist/services/version.service.js +81 -0
- package/dist/types/{schema.types.d.ts → generated/schema.types.d.ts} +349 -349
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.js +24 -0
- package/dist/utils/compatibility.d.ts +5 -0
- package/dist/utils/connectivity.d.ts +29 -0
- package/dist/utils/connectivity.js +100 -0
- package/oclif.manifest.json +195 -209
- package/package.json +2 -9
- /package/dist/{planMethods.d.ts → services/execution-plan.utils.d.ts} +0 -0
- /package/dist/types/{device.types.d.ts → domain/device.types.d.ts} +0 -0
- /package/dist/types/{device.types.js → domain/device.types.js} +0 -0
- /package/dist/types/{schema.types.js → generated/schema.types.js} +0 -0
|
@@ -3,32 +3,30 @@
|
|
|
3
3
|
* Do not make direct changes to the file.
|
|
4
4
|
*/
|
|
5
5
|
export interface paths {
|
|
6
|
-
"/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"/uploads/checkForExistingUpload": {
|
|
13
|
-
post: operations["UploadsController_checkForExistingUpload"];
|
|
6
|
+
"/allure/{uploadId}/download": {
|
|
7
|
+
/**
|
|
8
|
+
* Download Allure report as HTML
|
|
9
|
+
* @description Downloads a single-file Allure report as HTML containing all test results. Report is generated once and stored in Supabase Storage for subsequent downloads.
|
|
10
|
+
*/
|
|
11
|
+
get: operations["AllureController_downloadAllureReport"];
|
|
14
12
|
};
|
|
15
|
-
"/
|
|
16
|
-
post: operations["
|
|
13
|
+
"/frontend/check-domain-saml": {
|
|
14
|
+
post: operations["FrontendController_checkDomainSaml"];
|
|
17
15
|
};
|
|
18
|
-
"/
|
|
19
|
-
|
|
16
|
+
"/health": {
|
|
17
|
+
get: operations["HealthController_health"];
|
|
20
18
|
};
|
|
21
|
-
"/
|
|
22
|
-
post: operations["
|
|
19
|
+
"/org/accept-invite": {
|
|
20
|
+
post: operations["OrgController_acceptInvite"];
|
|
23
21
|
};
|
|
24
|
-
"/
|
|
25
|
-
post: operations["
|
|
22
|
+
"/org/increase_credits": {
|
|
23
|
+
post: operations["OrgController_paddleTransactionCompleted"];
|
|
26
24
|
};
|
|
27
|
-
"/
|
|
28
|
-
|
|
25
|
+
"/org/invite-team-member": {
|
|
26
|
+
post: operations["OrgController_inviteTeamMember"];
|
|
29
27
|
};
|
|
30
|
-
"/
|
|
31
|
-
|
|
28
|
+
"/org/update-name": {
|
|
29
|
+
post: operations["OrgController_updateOrgName"];
|
|
32
30
|
};
|
|
33
31
|
"/results/{uploadId}": {
|
|
34
32
|
get: operations["ResultsController_getResults"];
|
|
@@ -36,29 +34,49 @@ export interface paths {
|
|
|
36
34
|
"/results/{uploadId}/download": {
|
|
37
35
|
post: operations["ResultsController_getTestRunArtifacts"];
|
|
38
36
|
};
|
|
39
|
-
"/results/
|
|
40
|
-
|
|
37
|
+
"/results/{uploadId}/html-report": {
|
|
38
|
+
get: operations["ResultsController_downloadHtmlReport"];
|
|
41
39
|
};
|
|
42
40
|
"/results/{uploadId}/report": {
|
|
43
41
|
get: operations["ResultsController_downloadReport"];
|
|
44
42
|
};
|
|
45
|
-
"/results/{uploadId}/html-report": {
|
|
46
|
-
get: operations["ResultsController_downloadHtmlReport"];
|
|
47
|
-
};
|
|
48
43
|
"/results/compatibility/data": {
|
|
49
44
|
get: operations["ResultsController_getCompatibilityData"];
|
|
50
45
|
};
|
|
51
|
-
"/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
46
|
+
"/results/notify/{uploadId}": {
|
|
47
|
+
post: operations["ResultsController_notifyTestRunComplete"];
|
|
48
|
+
};
|
|
49
|
+
"/uploads/{uploadId}": {
|
|
50
|
+
delete: operations["UploadsController_deleteUpload"];
|
|
51
|
+
};
|
|
52
|
+
"/uploads/binary": {
|
|
53
|
+
post: operations["UploadsController_createBinary"];
|
|
54
|
+
};
|
|
55
|
+
"/uploads/cancelTest": {
|
|
56
|
+
post: operations["UploadsController_cancelTest"];
|
|
57
|
+
};
|
|
58
|
+
"/uploads/checkForExistingUpload": {
|
|
59
|
+
post: operations["UploadsController_checkForExistingUpload"];
|
|
60
|
+
};
|
|
61
|
+
"/uploads/finaliseUpload": {
|
|
62
|
+
post: operations["UploadsController_finaliseUpload"];
|
|
63
|
+
};
|
|
64
|
+
"/uploads/flow": {
|
|
65
|
+
post: operations["UploadsController_createTest"];
|
|
66
|
+
};
|
|
67
|
+
"/uploads/getBinaryUploadUrl": {
|
|
68
|
+
post: operations["UploadsController_getBinaryUploadUrl"];
|
|
69
|
+
};
|
|
70
|
+
"/uploads/retryTest": {
|
|
71
|
+
post: operations["UploadsController_retryTest"];
|
|
72
|
+
};
|
|
73
|
+
"/uploads/status": {
|
|
74
|
+
get: operations["UploadsController_getUploadStatus"];
|
|
57
75
|
};
|
|
58
76
|
"/webhooks": {
|
|
77
|
+
delete: operations["WebhooksController_deleteWebhook"];
|
|
59
78
|
get: operations["WebhooksController_getWebhook"];
|
|
60
79
|
post: operations["WebhooksController_setWebhook"];
|
|
61
|
-
delete: operations["WebhooksController_deleteWebhook"];
|
|
62
80
|
};
|
|
63
81
|
"/webhooks/regenerate-secret": {
|
|
64
82
|
post: operations["WebhooksController_regenerateWebhookSecret"];
|
|
@@ -66,60 +84,20 @@ export interface paths {
|
|
|
66
84
|
"/webhooks/test": {
|
|
67
85
|
post: operations["WebhooksController_testWebhook"];
|
|
68
86
|
};
|
|
69
|
-
"/org/increase_credits": {
|
|
70
|
-
post: operations["OrgController_paddleTransactionCompleted"];
|
|
71
|
-
};
|
|
72
|
-
"/org/update-name": {
|
|
73
|
-
post: operations["OrgController_updateOrgName"];
|
|
74
|
-
};
|
|
75
|
-
"/org/invite-team-member": {
|
|
76
|
-
post: operations["OrgController_inviteTeamMember"];
|
|
77
|
-
};
|
|
78
|
-
"/org/accept-invite": {
|
|
79
|
-
post: operations["OrgController_acceptInvite"];
|
|
80
|
-
};
|
|
81
|
-
"/frontend/check-domain-saml": {
|
|
82
|
-
post: operations["FrontendController_checkDomainSaml"];
|
|
83
|
-
};
|
|
84
|
-
"/health": {
|
|
85
|
-
get: operations["HealthController_health"];
|
|
86
|
-
};
|
|
87
87
|
}
|
|
88
88
|
export type webhooks = Record<string, never>;
|
|
89
89
|
export interface components {
|
|
90
|
+
headers: never;
|
|
91
|
+
parameters: never;
|
|
92
|
+
pathItems: never;
|
|
93
|
+
requestBodies: never;
|
|
94
|
+
responses: never;
|
|
90
95
|
schemas: {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
id: number;
|
|
97
|
-
org_id: number;
|
|
98
|
-
platform: string;
|
|
99
|
-
simulator_name: string;
|
|
100
|
-
status: string;
|
|
101
|
-
test_file_name: string;
|
|
102
|
-
test_upload_id: string;
|
|
103
|
-
};
|
|
104
|
-
ICreateBinaryUploadArgs: {
|
|
105
|
-
/**
|
|
106
|
-
* Format: binary
|
|
107
|
-
* @description This file must either be an apk or a zip file
|
|
108
|
-
*/
|
|
109
|
-
file: string;
|
|
110
|
-
};
|
|
111
|
-
ICreateBinaryResponse: {
|
|
112
|
-
message: string;
|
|
113
|
-
binaryId: string;
|
|
114
|
-
};
|
|
115
|
-
IGetBinaryUploadUrlArgs: {
|
|
116
|
-
platform: Record<string, never>;
|
|
117
|
-
};
|
|
118
|
-
IGetBinaryUploadUrlResponse: {
|
|
119
|
-
message: string;
|
|
120
|
-
path: string;
|
|
121
|
-
token: string;
|
|
122
|
-
id: string;
|
|
96
|
+
ICancelTestArgs: {
|
|
97
|
+
/** @description ID of a specific result to cancel. Either resultId or uploadId must be provided, but not both. */
|
|
98
|
+
resultId?: number;
|
|
99
|
+
/** @description ID of an upload to cancel all pending results for. Either resultId or uploadId must be provided, but not both. */
|
|
100
|
+
uploadId?: string;
|
|
123
101
|
};
|
|
124
102
|
ICheckForExistingUploadArgs: {
|
|
125
103
|
sha: string;
|
|
@@ -128,119 +106,167 @@ export interface components {
|
|
|
128
106
|
appBinaryId: string;
|
|
129
107
|
exists: boolean;
|
|
130
108
|
};
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
metadata: Record<string, never>;
|
|
135
|
-
sha: string;
|
|
109
|
+
ICreateBinaryResponse: {
|
|
110
|
+
binaryId: string;
|
|
111
|
+
message: string;
|
|
136
112
|
};
|
|
137
|
-
|
|
138
|
-
ICreateTestUploadArgs: {
|
|
113
|
+
ICreateBinaryUploadArgs: {
|
|
139
114
|
/**
|
|
140
115
|
* Format: binary
|
|
141
|
-
* @description This file must be a zip file
|
|
116
|
+
* @description This file must either be an apk or a zip file
|
|
142
117
|
*/
|
|
143
118
|
file: string;
|
|
119
|
+
};
|
|
120
|
+
ICreateTestUploadArgs: {
|
|
144
121
|
/** @enum {string} */
|
|
145
122
|
androidApiLevel?: "29" | "30" | "31" | "32" | "33" | "34" | "35";
|
|
146
123
|
/** @enum {string} */
|
|
147
|
-
androidDevice?: "pixel-6" | "pixel-6-pro" | "pixel-7" | "pixel-7-pro"
|
|
124
|
+
androidDevice?: "generic-tablet" | "pixel-6" | "pixel-6-pro" | "pixel-7" | "pixel-7-pro";
|
|
148
125
|
apiKey?: string;
|
|
149
126
|
apiUrl?: string;
|
|
127
|
+
appBinaryId: string;
|
|
150
128
|
appFile?: string;
|
|
129
|
+
config: string;
|
|
130
|
+
env: string;
|
|
131
|
+
/**
|
|
132
|
+
* Format: binary
|
|
133
|
+
* @description This file must be a zip file
|
|
134
|
+
*/
|
|
135
|
+
file: string;
|
|
136
|
+
flowMetadata?: string;
|
|
137
|
+
googlePlay: boolean;
|
|
151
138
|
/** @enum {string} */
|
|
152
|
-
|
|
139
|
+
iOSDevice?: "ipad-pro-6th-gen" | "iphone-14" | "iphone-14-pro" | "iphone-15" | "iphone-15-pro" | "iphone-16" | "iphone-16-plus" | "iphone-16-pro" | "iphone-16-pro-max";
|
|
153
140
|
/** @enum {string} */
|
|
154
|
-
|
|
141
|
+
iOSVersion?: "16" | "17" | "18" | "26";
|
|
142
|
+
metadata?: string;
|
|
143
|
+
name: string;
|
|
155
144
|
platform?: string;
|
|
156
145
|
/** @enum {string} */
|
|
157
|
-
runnerType?: "
|
|
158
|
-
metadata?: string;
|
|
159
|
-
workspaceConfig?: string;
|
|
160
|
-
flowMetadata?: string;
|
|
161
|
-
testFileOverrides?: string;
|
|
162
|
-
testFileNames?: string;
|
|
146
|
+
runnerType?: "default" | "gpu1" | "m1" | "m4";
|
|
163
147
|
sequentialFlows?: string;
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
148
|
+
testFileNames?: string;
|
|
149
|
+
testFileOverrides?: string;
|
|
150
|
+
workspaceConfig?: string;
|
|
151
|
+
};
|
|
152
|
+
IDBResult: {
|
|
153
|
+
binary_upload_id: string;
|
|
154
|
+
cost: null | number;
|
|
155
|
+
created_at: string;
|
|
156
|
+
env: Record<string, never>;
|
|
157
|
+
id: number;
|
|
158
|
+
org_id: number;
|
|
159
|
+
platform: string;
|
|
160
|
+
simulator_name: string;
|
|
161
|
+
status: string;
|
|
162
|
+
test_file_name: string;
|
|
163
|
+
test_upload_id: string;
|
|
164
|
+
};
|
|
165
|
+
IFinaliseUploadArgs: {
|
|
166
|
+
id: string;
|
|
167
|
+
metadata: Record<string, never>;
|
|
168
|
+
path: string;
|
|
169
|
+
sha: string;
|
|
170
|
+
};
|
|
171
|
+
IFinaliseUploadResponse: Record<string, never>;
|
|
172
|
+
IGetBinaryUploadUrlArgs: {
|
|
173
|
+
platform: Record<string, never>;
|
|
174
|
+
};
|
|
175
|
+
IGetBinaryUploadUrlResponse: {
|
|
176
|
+
id: string;
|
|
177
|
+
message: string;
|
|
178
|
+
path: string;
|
|
179
|
+
token: string;
|
|
169
180
|
};
|
|
170
181
|
IRetryTestArgs: {
|
|
171
182
|
resultId: number;
|
|
172
183
|
};
|
|
173
|
-
ICancelTestArgs: {
|
|
174
|
-
/** @description ID of a specific result to cancel. Either resultId or uploadId must be provided, but not both. */
|
|
175
|
-
resultId?: number;
|
|
176
|
-
/** @description ID of an upload to cancel all pending results for. Either resultId or uploadId must be provided, but not both. */
|
|
177
|
-
uploadId?: string;
|
|
178
|
-
};
|
|
179
184
|
TResultResponse: {
|
|
185
|
+
duration_seconds?: number;
|
|
186
|
+
fail_reason?: string;
|
|
180
187
|
id: number;
|
|
181
|
-
test_file_name: string;
|
|
182
|
-
status: string;
|
|
183
188
|
retry_of?: number;
|
|
184
|
-
|
|
185
|
-
|
|
189
|
+
status: string;
|
|
190
|
+
test_file_name: string;
|
|
186
191
|
};
|
|
187
192
|
};
|
|
188
|
-
responses: never;
|
|
189
|
-
parameters: never;
|
|
190
|
-
requestBodies: never;
|
|
191
|
-
headers: never;
|
|
192
|
-
pathItems: never;
|
|
193
193
|
}
|
|
194
194
|
export type $defs = Record<string, never>;
|
|
195
195
|
export type external = Record<string, never>;
|
|
196
196
|
export interface operations {
|
|
197
|
-
|
|
197
|
+
/**
|
|
198
|
+
* Download Allure report as HTML
|
|
199
|
+
* @description Downloads a single-file Allure report as HTML containing all test results. Report is generated once and stored in Supabase Storage for subsequent downloads.
|
|
200
|
+
*/
|
|
201
|
+
AllureController_downloadAllureReport: {
|
|
198
202
|
parameters: {
|
|
199
203
|
header: {
|
|
200
204
|
"x-app-api-key": string;
|
|
201
205
|
};
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
"multipart/form-data": components["schemas"]["ICreateBinaryUploadArgs"];
|
|
206
|
+
path: {
|
|
207
|
+
/** @description The upload ID to generate Allure report for */
|
|
208
|
+
uploadId: string;
|
|
206
209
|
};
|
|
207
210
|
};
|
|
208
211
|
responses: {
|
|
209
|
-
/**
|
|
210
|
-
|
|
211
|
-
* @example {
|
|
212
|
-
* "message": "Binary uploaded successfully",
|
|
213
|
-
* "binaryId": "binary-123-abc-def"
|
|
214
|
-
* }
|
|
215
|
-
*/
|
|
216
|
-
201: {
|
|
212
|
+
/** @description Allure report HTML file download */
|
|
213
|
+
200: {
|
|
217
214
|
content: {
|
|
218
|
-
"
|
|
215
|
+
"text/html": string;
|
|
219
216
|
};
|
|
220
217
|
};
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
parameters: {
|
|
225
|
-
header: {
|
|
226
|
-
"x-app-api-key": string;
|
|
218
|
+
/** @description Upload not found or no results available */
|
|
219
|
+
404: {
|
|
220
|
+
content: never;
|
|
227
221
|
};
|
|
228
222
|
};
|
|
223
|
+
};
|
|
224
|
+
FrontendController_checkDomainSaml: {
|
|
225
|
+
/** @description Domain to check for SAML configuration */
|
|
229
226
|
requestBody: {
|
|
230
227
|
content: {
|
|
231
|
-
"application/json":
|
|
228
|
+
"application/json": {
|
|
229
|
+
/** @example example.com */
|
|
230
|
+
domain: string;
|
|
231
|
+
};
|
|
232
232
|
};
|
|
233
233
|
};
|
|
234
234
|
responses: {
|
|
235
|
-
/** @description
|
|
235
|
+
/** @description SAML status for the domain */
|
|
236
|
+
200: {
|
|
237
|
+
content: {
|
|
238
|
+
"application/json": {
|
|
239
|
+
forceSaml?: boolean;
|
|
240
|
+
};
|
|
241
|
+
};
|
|
242
|
+
};
|
|
236
243
|
201: {
|
|
244
|
+
content: never;
|
|
245
|
+
};
|
|
246
|
+
/** @description Bad request - invalid domain or API error */
|
|
247
|
+
400: {
|
|
237
248
|
content: {
|
|
238
|
-
"application/json":
|
|
249
|
+
"application/json": {
|
|
250
|
+
error?: string;
|
|
251
|
+
};
|
|
239
252
|
};
|
|
240
253
|
};
|
|
241
254
|
};
|
|
242
255
|
};
|
|
243
|
-
|
|
256
|
+
HealthController_health: {
|
|
257
|
+
responses: {
|
|
258
|
+
/** @description Health check endpoint */
|
|
259
|
+
200: {
|
|
260
|
+
content: {
|
|
261
|
+
"application/json": {
|
|
262
|
+
/** @example ok */
|
|
263
|
+
status?: string;
|
|
264
|
+
};
|
|
265
|
+
};
|
|
266
|
+
};
|
|
267
|
+
};
|
|
268
|
+
};
|
|
269
|
+
OrgController_acceptInvite: {
|
|
244
270
|
parameters: {
|
|
245
271
|
header: {
|
|
246
272
|
"x-app-api-key": string;
|
|
@@ -248,19 +274,21 @@ export interface operations {
|
|
|
248
274
|
};
|
|
249
275
|
requestBody: {
|
|
250
276
|
content: {
|
|
251
|
-
"application/json":
|
|
277
|
+
"application/json": {
|
|
278
|
+
orgId: string;
|
|
279
|
+
};
|
|
252
280
|
};
|
|
253
281
|
};
|
|
254
282
|
responses: {
|
|
255
|
-
/** @description
|
|
283
|
+
/** @description Team invite accepted successfully. */
|
|
256
284
|
201: {
|
|
257
285
|
content: {
|
|
258
|
-
"application/json":
|
|
286
|
+
"application/json": boolean;
|
|
259
287
|
};
|
|
260
288
|
};
|
|
261
289
|
};
|
|
262
290
|
};
|
|
263
|
-
|
|
291
|
+
OrgController_inviteTeamMember: {
|
|
264
292
|
parameters: {
|
|
265
293
|
header: {
|
|
266
294
|
"x-app-api-key": string;
|
|
@@ -268,42 +296,40 @@ export interface operations {
|
|
|
268
296
|
};
|
|
269
297
|
requestBody: {
|
|
270
298
|
content: {
|
|
271
|
-
"application/json":
|
|
299
|
+
"application/json": {
|
|
300
|
+
inviteEmail: string;
|
|
301
|
+
link: string;
|
|
302
|
+
orgId: string;
|
|
303
|
+
orgName: string;
|
|
304
|
+
requesterEmail: string;
|
|
305
|
+
};
|
|
272
306
|
};
|
|
273
307
|
};
|
|
274
308
|
responses: {
|
|
275
|
-
/** @description
|
|
309
|
+
/** @description Team member invited successfully. */
|
|
276
310
|
201: {
|
|
277
311
|
content: {
|
|
278
|
-
"application/json":
|
|
312
|
+
"application/json": boolean;
|
|
279
313
|
};
|
|
280
314
|
};
|
|
281
315
|
};
|
|
282
316
|
};
|
|
283
|
-
|
|
317
|
+
OrgController_paddleTransactionCompleted: {
|
|
284
318
|
parameters: {
|
|
285
319
|
header: {
|
|
286
|
-
"
|
|
287
|
-
};
|
|
288
|
-
};
|
|
289
|
-
requestBody: {
|
|
290
|
-
content: {
|
|
291
|
-
"multipart/form-data": components["schemas"]["ICreateTestUploadArgs"];
|
|
320
|
+
"paddle-signature": string;
|
|
292
321
|
};
|
|
293
322
|
};
|
|
294
323
|
responses: {
|
|
295
|
-
/** @description
|
|
324
|
+
/** @description Success. */
|
|
296
325
|
201: {
|
|
297
326
|
content: {
|
|
298
|
-
"application/json":
|
|
299
|
-
message?: string;
|
|
300
|
-
results?: components["schemas"]["IDBResult"][];
|
|
301
|
-
};
|
|
327
|
+
"application/json": string;
|
|
302
328
|
};
|
|
303
329
|
};
|
|
304
330
|
};
|
|
305
331
|
};
|
|
306
|
-
|
|
332
|
+
OrgController_updateOrgName: {
|
|
307
333
|
parameters: {
|
|
308
334
|
header: {
|
|
309
335
|
"x-app-api-key": string;
|
|
@@ -311,85 +337,74 @@ export interface operations {
|
|
|
311
337
|
};
|
|
312
338
|
requestBody: {
|
|
313
339
|
content: {
|
|
314
|
-
"application/json":
|
|
340
|
+
"application/json": {
|
|
341
|
+
name: string;
|
|
342
|
+
orgId: string;
|
|
343
|
+
};
|
|
315
344
|
};
|
|
316
345
|
};
|
|
317
346
|
responses: {
|
|
318
|
-
/** @description
|
|
347
|
+
/** @description Organization name updated successfully. */
|
|
319
348
|
201: {
|
|
320
349
|
content: {
|
|
321
|
-
"application/json":
|
|
322
|
-
message?: string;
|
|
323
|
-
results?: components["schemas"]["IDBResult"][];
|
|
324
|
-
};
|
|
350
|
+
"application/json": boolean;
|
|
325
351
|
};
|
|
326
352
|
};
|
|
327
353
|
};
|
|
328
354
|
};
|
|
329
|
-
|
|
355
|
+
ResultsController_downloadHtmlReport: {
|
|
330
356
|
parameters: {
|
|
331
357
|
header: {
|
|
332
358
|
"x-app-api-key": string;
|
|
333
359
|
};
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
content: {
|
|
337
|
-
"application/json": components["schemas"]["ICancelTestArgs"];
|
|
360
|
+
path: {
|
|
361
|
+
uploadId: string;
|
|
338
362
|
};
|
|
339
363
|
};
|
|
340
364
|
responses: {
|
|
341
|
-
/** @description
|
|
342
|
-
|
|
365
|
+
/** @description Download combined HTML test report (report.html) for the upload */
|
|
366
|
+
200: {
|
|
343
367
|
content: {
|
|
344
|
-
"application/json":
|
|
345
|
-
message?: string;
|
|
346
|
-
success?: boolean;
|
|
347
|
-
cancelledCount?: number;
|
|
348
|
-
};
|
|
368
|
+
"application/json": string;
|
|
349
369
|
};
|
|
350
370
|
};
|
|
351
371
|
};
|
|
352
372
|
};
|
|
353
|
-
|
|
373
|
+
ResultsController_downloadReport: {
|
|
354
374
|
parameters: {
|
|
355
|
-
query?: {
|
|
356
|
-
/** @description Upload ID to get status for */
|
|
357
|
-
uploadId?: string;
|
|
358
|
-
/** @description Upload name to get status for */
|
|
359
|
-
name?: string;
|
|
360
|
-
};
|
|
361
375
|
header: {
|
|
362
376
|
"x-app-api-key": string;
|
|
363
377
|
};
|
|
378
|
+
path: {
|
|
379
|
+
uploadId: string;
|
|
380
|
+
};
|
|
364
381
|
};
|
|
365
382
|
responses: {
|
|
366
|
-
/** @description
|
|
383
|
+
/** @description Download combined JUNIT test report (report.xml) for the upload */
|
|
367
384
|
200: {
|
|
368
385
|
content: {
|
|
369
|
-
"application/json":
|
|
386
|
+
"application/json": string;
|
|
370
387
|
};
|
|
371
388
|
};
|
|
372
389
|
};
|
|
373
390
|
};
|
|
374
|
-
|
|
391
|
+
ResultsController_getCompatibilityData: {
|
|
375
392
|
parameters: {
|
|
376
393
|
header: {
|
|
377
394
|
"x-app-api-key": string;
|
|
378
395
|
};
|
|
379
|
-
path: {
|
|
380
|
-
uploadId: string;
|
|
381
|
-
};
|
|
382
396
|
};
|
|
383
397
|
responses: {
|
|
398
|
+
/** @description Device compatibility lookup data */
|
|
384
399
|
200: {
|
|
385
|
-
content: never;
|
|
386
|
-
};
|
|
387
|
-
/** @description The upload has been successfully deleted. */
|
|
388
|
-
201: {
|
|
389
400
|
content: {
|
|
390
401
|
"application/json": {
|
|
391
|
-
|
|
392
|
-
|
|
402
|
+
data?: {
|
|
403
|
+
android?: Record<string, never>;
|
|
404
|
+
androidPlay?: Record<string, never>;
|
|
405
|
+
ios?: Record<string, never>;
|
|
406
|
+
};
|
|
407
|
+
statusCode?: number;
|
|
393
408
|
};
|
|
394
409
|
};
|
|
395
410
|
};
|
|
@@ -409,8 +424,8 @@ export interface operations {
|
|
|
409
424
|
200: {
|
|
410
425
|
content: {
|
|
411
426
|
"application/json": {
|
|
412
|
-
statusCode?: number;
|
|
413
427
|
results?: components["schemas"]["TResultResponse"][];
|
|
428
|
+
statusCode?: number;
|
|
414
429
|
};
|
|
415
430
|
};
|
|
416
431
|
};
|
|
@@ -449,121 +464,124 @@ export interface operations {
|
|
|
449
464
|
};
|
|
450
465
|
};
|
|
451
466
|
};
|
|
452
|
-
|
|
467
|
+
UploadsController_cancelTest: {
|
|
468
|
+
parameters: {
|
|
469
|
+
header: {
|
|
470
|
+
"x-app-api-key": string;
|
|
471
|
+
};
|
|
472
|
+
};
|
|
473
|
+
requestBody: {
|
|
474
|
+
content: {
|
|
475
|
+
"application/json": components["schemas"]["ICancelTestArgs"];
|
|
476
|
+
};
|
|
477
|
+
};
|
|
478
|
+
responses: {
|
|
479
|
+
/** @description The record has been successfully cancelled. */
|
|
480
|
+
201: {
|
|
481
|
+
content: {
|
|
482
|
+
"application/json": {
|
|
483
|
+
cancelledCount?: number;
|
|
484
|
+
message?: string;
|
|
485
|
+
success?: boolean;
|
|
486
|
+
};
|
|
487
|
+
};
|
|
488
|
+
};
|
|
489
|
+
};
|
|
490
|
+
};
|
|
491
|
+
UploadsController_checkForExistingUpload: {
|
|
453
492
|
parameters: {
|
|
454
493
|
header: {
|
|
455
494
|
"x-app-api-key": string;
|
|
456
495
|
};
|
|
457
|
-
|
|
458
|
-
|
|
496
|
+
};
|
|
497
|
+
requestBody: {
|
|
498
|
+
content: {
|
|
499
|
+
"application/json": components["schemas"]["ICheckForExistingUploadArgs"];
|
|
459
500
|
};
|
|
460
501
|
};
|
|
461
502
|
responses: {
|
|
462
|
-
/** @description
|
|
463
|
-
|
|
503
|
+
/** @description The url has been successfully created. */
|
|
504
|
+
201: {
|
|
464
505
|
content: {
|
|
465
|
-
"application/json":
|
|
506
|
+
"application/json": components["schemas"]["ICheckForExistingUploadResponse"];
|
|
466
507
|
};
|
|
467
508
|
};
|
|
468
509
|
};
|
|
469
510
|
};
|
|
470
|
-
|
|
511
|
+
UploadsController_createBinary: {
|
|
471
512
|
parameters: {
|
|
472
513
|
header: {
|
|
473
514
|
"x-app-api-key": string;
|
|
474
515
|
};
|
|
475
|
-
|
|
476
|
-
|
|
516
|
+
};
|
|
517
|
+
requestBody: {
|
|
518
|
+
content: {
|
|
519
|
+
"multipart/form-data": components["schemas"]["ICreateBinaryUploadArgs"];
|
|
477
520
|
};
|
|
478
521
|
};
|
|
479
522
|
responses: {
|
|
480
|
-
/**
|
|
481
|
-
|
|
523
|
+
/**
|
|
524
|
+
* @description The record has been successfully created.
|
|
525
|
+
* @example {
|
|
526
|
+
* "message": "Binary uploaded successfully",
|
|
527
|
+
* "binaryId": "binary-123-abc-def"
|
|
528
|
+
* }
|
|
529
|
+
*/
|
|
530
|
+
201: {
|
|
482
531
|
content: {
|
|
483
|
-
"application/json":
|
|
532
|
+
"application/json": components["schemas"]["ICreateBinaryResponse"];
|
|
484
533
|
};
|
|
485
534
|
};
|
|
486
535
|
};
|
|
487
536
|
};
|
|
488
|
-
|
|
537
|
+
UploadsController_createTest: {
|
|
489
538
|
parameters: {
|
|
490
539
|
header: {
|
|
491
540
|
"x-app-api-key": string;
|
|
492
541
|
};
|
|
493
542
|
};
|
|
543
|
+
requestBody: {
|
|
544
|
+
content: {
|
|
545
|
+
"multipart/form-data": components["schemas"]["ICreateTestUploadArgs"];
|
|
546
|
+
};
|
|
547
|
+
};
|
|
494
548
|
responses: {
|
|
495
|
-
/** @description
|
|
496
|
-
|
|
549
|
+
/** @description The record has been successfully created. */
|
|
550
|
+
201: {
|
|
497
551
|
content: {
|
|
498
552
|
"application/json": {
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
ios?: Record<string, never>;
|
|
502
|
-
android?: Record<string, never>;
|
|
503
|
-
androidPlay?: Record<string, never>;
|
|
504
|
-
};
|
|
553
|
+
message?: string;
|
|
554
|
+
results?: components["schemas"]["IDBResult"][];
|
|
505
555
|
};
|
|
506
556
|
};
|
|
507
557
|
};
|
|
508
558
|
};
|
|
509
559
|
};
|
|
510
|
-
|
|
511
|
-
* Download Allure report as HTML
|
|
512
|
-
* @description Downloads a single-file Allure report as HTML containing all test results. Report is generated once and stored in Supabase Storage for subsequent downloads.
|
|
513
|
-
*/
|
|
514
|
-
AllureController_downloadAllureReport: {
|
|
560
|
+
UploadsController_deleteUpload: {
|
|
515
561
|
parameters: {
|
|
516
562
|
header: {
|
|
517
563
|
"x-app-api-key": string;
|
|
518
564
|
};
|
|
519
565
|
path: {
|
|
520
|
-
/** @description The upload ID to generate Allure report for */
|
|
521
566
|
uploadId: string;
|
|
522
567
|
};
|
|
523
568
|
};
|
|
524
569
|
responses: {
|
|
525
|
-
/** @description Allure report HTML file download */
|
|
526
570
|
200: {
|
|
527
|
-
content: {
|
|
528
|
-
"text/html": string;
|
|
529
|
-
};
|
|
530
|
-
};
|
|
531
|
-
/** @description Upload not found or no results available */
|
|
532
|
-
404: {
|
|
533
571
|
content: never;
|
|
534
572
|
};
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
WebhooksController_getWebhook: {
|
|
538
|
-
parameters: {
|
|
539
|
-
query?: {
|
|
540
|
-
/** @description Set to true to return full secret instead of masked version */
|
|
541
|
-
show_secret?: boolean;
|
|
542
|
-
};
|
|
543
|
-
header: {
|
|
544
|
-
"x-app-api-key": string;
|
|
545
|
-
};
|
|
546
|
-
};
|
|
547
|
-
responses: {
|
|
548
|
-
/** @description Current webhook configuration */
|
|
549
|
-
200: {
|
|
573
|
+
/** @description The upload has been successfully deleted. */
|
|
574
|
+
201: {
|
|
550
575
|
content: {
|
|
551
576
|
"application/json": {
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
secret_key?: string;
|
|
555
|
-
/** @description Masked secret (default) */
|
|
556
|
-
secret_key_masked?: string;
|
|
557
|
-
/** Format: date-time */
|
|
558
|
-
created_at?: string;
|
|
559
|
-
/** Format: date-time */
|
|
560
|
-
updated_at?: string;
|
|
577
|
+
message?: string;
|
|
578
|
+
success?: boolean;
|
|
561
579
|
};
|
|
562
580
|
};
|
|
563
581
|
};
|
|
564
582
|
};
|
|
565
583
|
};
|
|
566
|
-
|
|
584
|
+
UploadsController_finaliseUpload: {
|
|
567
585
|
parameters: {
|
|
568
586
|
header: {
|
|
569
587
|
"x-app-api-key": string;
|
|
@@ -571,55 +589,60 @@ export interface operations {
|
|
|
571
589
|
};
|
|
572
590
|
requestBody: {
|
|
573
591
|
content: {
|
|
574
|
-
"application/json":
|
|
575
|
-
/**
|
|
576
|
-
* Format: uri
|
|
577
|
-
* @example https://api.example.com/webhook
|
|
578
|
-
*/
|
|
579
|
-
url: string;
|
|
580
|
-
};
|
|
592
|
+
"application/json": components["schemas"]["IFinaliseUploadArgs"];
|
|
581
593
|
};
|
|
582
594
|
};
|
|
583
595
|
responses: {
|
|
584
|
-
/** @description
|
|
596
|
+
/** @description The upload has been completed. */
|
|
585
597
|
201: {
|
|
586
598
|
content: {
|
|
587
|
-
"application/json":
|
|
599
|
+
"application/json": components["schemas"]["IFinaliseUploadResponse"];
|
|
588
600
|
};
|
|
589
601
|
};
|
|
590
602
|
};
|
|
591
603
|
};
|
|
592
|
-
|
|
604
|
+
UploadsController_getBinaryUploadUrl: {
|
|
593
605
|
parameters: {
|
|
594
606
|
header: {
|
|
595
607
|
"x-app-api-key": string;
|
|
596
608
|
};
|
|
597
609
|
};
|
|
610
|
+
requestBody: {
|
|
611
|
+
content: {
|
|
612
|
+
"application/json": components["schemas"]["IGetBinaryUploadUrlArgs"];
|
|
613
|
+
};
|
|
614
|
+
};
|
|
598
615
|
responses: {
|
|
599
|
-
/** @description
|
|
600
|
-
|
|
616
|
+
/** @description The url has been successfully created. */
|
|
617
|
+
201: {
|
|
601
618
|
content: {
|
|
602
|
-
"application/json":
|
|
619
|
+
"application/json": components["schemas"]["IGetBinaryUploadUrlResponse"];
|
|
603
620
|
};
|
|
604
621
|
};
|
|
605
622
|
};
|
|
606
623
|
};
|
|
607
|
-
|
|
624
|
+
UploadsController_getUploadStatus: {
|
|
608
625
|
parameters: {
|
|
609
626
|
header: {
|
|
610
627
|
"x-app-api-key": string;
|
|
611
628
|
};
|
|
629
|
+
query?: {
|
|
630
|
+
/** @description Upload name to get status for */
|
|
631
|
+
name?: string;
|
|
632
|
+
/** @description Upload ID to get status for */
|
|
633
|
+
uploadId?: string;
|
|
634
|
+
};
|
|
612
635
|
};
|
|
613
636
|
responses: {
|
|
614
|
-
/** @description
|
|
615
|
-
|
|
637
|
+
/** @description Upload status */
|
|
638
|
+
200: {
|
|
616
639
|
content: {
|
|
617
640
|
"application/json": Record<string, never>;
|
|
618
641
|
};
|
|
619
642
|
};
|
|
620
643
|
};
|
|
621
644
|
};
|
|
622
|
-
|
|
645
|
+
UploadsController_retryTest: {
|
|
623
646
|
parameters: {
|
|
624
647
|
header: {
|
|
625
648
|
"x-app-api-key": string;
|
|
@@ -627,86 +650,81 @@ export interface operations {
|
|
|
627
650
|
};
|
|
628
651
|
requestBody: {
|
|
629
652
|
content: {
|
|
630
|
-
"application/json":
|
|
631
|
-
/** Format: uri */
|
|
632
|
-
url?: string;
|
|
633
|
-
};
|
|
653
|
+
"application/json": components["schemas"]["IRetryTestArgs"];
|
|
634
654
|
};
|
|
635
655
|
};
|
|
636
656
|
responses: {
|
|
637
|
-
/** @description
|
|
657
|
+
/** @description The record has been successfully created. */
|
|
638
658
|
201: {
|
|
639
659
|
content: {
|
|
640
|
-
"application/json":
|
|
660
|
+
"application/json": {
|
|
661
|
+
message?: string;
|
|
662
|
+
results?: components["schemas"]["IDBResult"][];
|
|
663
|
+
};
|
|
641
664
|
};
|
|
642
665
|
};
|
|
643
666
|
};
|
|
644
667
|
};
|
|
645
|
-
|
|
668
|
+
WebhooksController_deleteWebhook: {
|
|
646
669
|
parameters: {
|
|
647
670
|
header: {
|
|
648
|
-
"
|
|
671
|
+
"x-app-api-key": string;
|
|
649
672
|
};
|
|
650
673
|
};
|
|
651
674
|
responses: {
|
|
652
|
-
/** @description
|
|
653
|
-
|
|
675
|
+
/** @description Webhook configuration deleted successfully */
|
|
676
|
+
200: {
|
|
654
677
|
content: {
|
|
655
|
-
"application/json": string
|
|
678
|
+
"application/json": Record<string, never>;
|
|
656
679
|
};
|
|
657
680
|
};
|
|
658
681
|
};
|
|
659
682
|
};
|
|
660
|
-
|
|
683
|
+
WebhooksController_getWebhook: {
|
|
661
684
|
parameters: {
|
|
662
685
|
header: {
|
|
663
686
|
"x-app-api-key": string;
|
|
664
687
|
};
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
"application/json": {
|
|
669
|
-
orgId: string;
|
|
670
|
-
name: string;
|
|
671
|
-
};
|
|
688
|
+
query?: {
|
|
689
|
+
/** @description Set to true to return full secret instead of masked version */
|
|
690
|
+
show_secret?: boolean;
|
|
672
691
|
};
|
|
673
692
|
};
|
|
674
693
|
responses: {
|
|
675
|
-
/** @description
|
|
676
|
-
|
|
694
|
+
/** @description Current webhook configuration */
|
|
695
|
+
200: {
|
|
677
696
|
content: {
|
|
678
|
-
"application/json":
|
|
697
|
+
"application/json": {
|
|
698
|
+
/** Format: date-time */
|
|
699
|
+
created_at?: string;
|
|
700
|
+
/** @description Full secret (only when show_secret=true) */
|
|
701
|
+
secret_key?: string;
|
|
702
|
+
/** @description Masked secret (default) */
|
|
703
|
+
secret_key_masked?: string;
|
|
704
|
+
/** Format: date-time */
|
|
705
|
+
updated_at?: string;
|
|
706
|
+
webhook_url?: string;
|
|
707
|
+
};
|
|
679
708
|
};
|
|
680
709
|
};
|
|
681
710
|
};
|
|
682
711
|
};
|
|
683
|
-
|
|
712
|
+
WebhooksController_regenerateWebhookSecret: {
|
|
684
713
|
parameters: {
|
|
685
714
|
header: {
|
|
686
715
|
"x-app-api-key": string;
|
|
687
716
|
};
|
|
688
717
|
};
|
|
689
|
-
requestBody: {
|
|
690
|
-
content: {
|
|
691
|
-
"application/json": {
|
|
692
|
-
inviteEmail: string;
|
|
693
|
-
requesterEmail: string;
|
|
694
|
-
link: string;
|
|
695
|
-
orgId: string;
|
|
696
|
-
orgName: string;
|
|
697
|
-
};
|
|
698
|
-
};
|
|
699
|
-
};
|
|
700
718
|
responses: {
|
|
701
|
-
/** @description
|
|
719
|
+
/** @description Webhook secret regenerated successfully */
|
|
702
720
|
201: {
|
|
703
721
|
content: {
|
|
704
|
-
"application/json":
|
|
722
|
+
"application/json": Record<string, never>;
|
|
705
723
|
};
|
|
706
724
|
};
|
|
707
725
|
};
|
|
708
726
|
};
|
|
709
|
-
|
|
727
|
+
WebhooksController_setWebhook: {
|
|
710
728
|
parameters: {
|
|
711
729
|
header: {
|
|
712
730
|
"x-app-api-key": string;
|
|
@@ -715,60 +733,42 @@ export interface operations {
|
|
|
715
733
|
requestBody: {
|
|
716
734
|
content: {
|
|
717
735
|
"application/json": {
|
|
718
|
-
|
|
736
|
+
/**
|
|
737
|
+
* Format: uri
|
|
738
|
+
* @example https://api.example.com/webhook
|
|
739
|
+
*/
|
|
740
|
+
url: string;
|
|
719
741
|
};
|
|
720
742
|
};
|
|
721
743
|
};
|
|
722
744
|
responses: {
|
|
723
|
-
/** @description
|
|
745
|
+
/** @description Webhook URL set successfully */
|
|
724
746
|
201: {
|
|
725
747
|
content: {
|
|
726
|
-
"application/json":
|
|
748
|
+
"application/json": Record<string, never>;
|
|
727
749
|
};
|
|
728
750
|
};
|
|
729
751
|
};
|
|
730
752
|
};
|
|
731
|
-
|
|
732
|
-
|
|
753
|
+
WebhooksController_testWebhook: {
|
|
754
|
+
parameters: {
|
|
755
|
+
header: {
|
|
756
|
+
"x-app-api-key": string;
|
|
757
|
+
};
|
|
758
|
+
};
|
|
733
759
|
requestBody: {
|
|
734
760
|
content: {
|
|
735
761
|
"application/json": {
|
|
736
|
-
/**
|
|
737
|
-
|
|
762
|
+
/** Format: uri */
|
|
763
|
+
url?: string;
|
|
738
764
|
};
|
|
739
765
|
};
|
|
740
766
|
};
|
|
741
767
|
responses: {
|
|
742
|
-
/** @description
|
|
743
|
-
200: {
|
|
744
|
-
content: {
|
|
745
|
-
"application/json": {
|
|
746
|
-
forceSaml?: boolean;
|
|
747
|
-
};
|
|
748
|
-
};
|
|
749
|
-
};
|
|
768
|
+
/** @description Test webhook sent successfully */
|
|
750
769
|
201: {
|
|
751
|
-
content: never;
|
|
752
|
-
};
|
|
753
|
-
/** @description Bad request - invalid domain or API error */
|
|
754
|
-
400: {
|
|
755
|
-
content: {
|
|
756
|
-
"application/json": {
|
|
757
|
-
error?: string;
|
|
758
|
-
};
|
|
759
|
-
};
|
|
760
|
-
};
|
|
761
|
-
};
|
|
762
|
-
};
|
|
763
|
-
HealthController_health: {
|
|
764
|
-
responses: {
|
|
765
|
-
/** @description Health check endpoint */
|
|
766
|
-
200: {
|
|
767
770
|
content: {
|
|
768
|
-
"application/json":
|
|
769
|
-
/** @example ok */
|
|
770
|
-
status?: string;
|
|
771
|
-
};
|
|
771
|
+
"application/json": Record<string, never>;
|
|
772
772
|
};
|
|
773
773
|
};
|
|
774
774
|
};
|