@devicecloud.dev/dcd 3.7.11 → 4.0.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.
@@ -0,0 +1,669 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export interface paths {
6
+ "/admin/cleanupOldUploads": {
7
+ post: operations["AdminController_cleanupOldUploads"];
8
+ };
9
+ "/frontend/check-domain-saml": {
10
+ post: operations["FrontendController_checkDomainSaml"];
11
+ };
12
+ "/health": {
13
+ get: operations["HealthController_health"];
14
+ };
15
+ "/moropo/run-scheduled-jobs": {
16
+ get: operations["MoropoController_runScheduledJobs"];
17
+ };
18
+ "/org/accept-invite": {
19
+ post: operations["OrgController_acceptInvite"];
20
+ };
21
+ "/org/increase_credits": {
22
+ post: operations["OrgController_paddleTransactionCompleted"];
23
+ };
24
+ "/org/invite-team-member": {
25
+ post: operations["OrgController_inviteTeamMember"];
26
+ };
27
+ "/org/update-name": {
28
+ post: operations["OrgController_updateOrgName"];
29
+ };
30
+ "/public/stats": {
31
+ get: operations["StatsController_getPublicStats"];
32
+ };
33
+ "/public/stats/report-slow-tests-dev": {
34
+ post: operations["StatsController_reportSlowTestsDev"];
35
+ };
36
+ "/public/stats/report-slow-tests-prod": {
37
+ post: operations["StatsController_reportSlowTestsProd"];
38
+ };
39
+ "/public/stats/send-daily-report": {
40
+ post: operations["StatsController_sendDailyReport"];
41
+ };
42
+ "/results": {
43
+ post: operations["ResultsController_createResult"];
44
+ };
45
+ "/results/{uploadId}": {
46
+ get: operations["ResultsController_getResults"];
47
+ };
48
+ "/results/{uploadId}/download": {
49
+ post: operations["ResultsController_getTestRunArtifacts"];
50
+ };
51
+ "/results/compatibility/data": {
52
+ get: operations["ResultsController_getCompatibilityData"];
53
+ };
54
+ "/results/notify/{uploadId}": {
55
+ post: operations["ResultsController_notifyTestRunComplete"];
56
+ };
57
+ "/uploads/{uploadId}": {
58
+ delete: operations["UploadsController_deleteUpload"];
59
+ };
60
+ "/uploads/binary": {
61
+ post: operations["UploadsController_createBinary"];
62
+ };
63
+ "/uploads/cancelTest": {
64
+ post: operations["UploadsController_cancelTest"];
65
+ };
66
+ "/uploads/checkForExistingUpload": {
67
+ post: operations["UploadsController_checkForExistingUpload"];
68
+ };
69
+ "/uploads/finaliseUpload": {
70
+ post: operations["UploadsController_finaliseUpload"];
71
+ };
72
+ "/uploads/flow": {
73
+ post: operations["UploadsController_createTest"];
74
+ };
75
+ "/uploads/getBinaryUploadUrl": {
76
+ post: operations["UploadsController_getBinaryUploadUrl"];
77
+ };
78
+ "/uploads/retryTest": {
79
+ post: operations["UploadsController_retryTest"];
80
+ };
81
+ "/uploads/status": {
82
+ get: operations["UploadsController_getUploadStatus"];
83
+ };
84
+ }
85
+ export type webhooks = Record<string, never>;
86
+ export interface components {
87
+ headers: never;
88
+ parameters: never;
89
+ pathItems: never;
90
+ requestBodies: never;
91
+ responses: never;
92
+ schemas: {
93
+ ICancelTestArgs: {
94
+ resultId: number;
95
+ };
96
+ ICheckForExistingUploadArgs: {
97
+ sha: string;
98
+ };
99
+ ICheckForExistingUploadResponse: {
100
+ appBinaryId: string;
101
+ exists: boolean;
102
+ };
103
+ ICreateBinaryResponse: {
104
+ binaryId: string;
105
+ message: string;
106
+ };
107
+ ICreateBinaryUploadArgs: {
108
+ /**
109
+ * Format: binary
110
+ * @description This file must either be an apk or a zip file
111
+ */
112
+ file: string;
113
+ };
114
+ ICreateTestUploadArgs: {
115
+ /** @enum {string} */
116
+ androidApiLevel?: "29" | "30" | "31" | "32" | "33" | "34" | "35";
117
+ /** @enum {string} */
118
+ androidDevice?: "generic-tablet" | "pixel-6" | "pixel-6-pro" | "pixel-7" | "pixel-7-pro";
119
+ apiKey: string;
120
+ apiUrl: string;
121
+ appBinaryId: string;
122
+ appFile: string;
123
+ config: string;
124
+ env: string;
125
+ /**
126
+ * Format: binary
127
+ * @description This file must be a zip file
128
+ */
129
+ file: string;
130
+ flowMetadata?: string;
131
+ googlePlay: boolean;
132
+ /** @enum {string} */
133
+ 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";
134
+ /** @enum {string} */
135
+ iOSVersion?: "16" | "17" | "18";
136
+ metadata?: string;
137
+ name: string;
138
+ platform?: string;
139
+ runnerType?: Record<string, never>;
140
+ sequentialFlows?: string;
141
+ testFileNames?: string;
142
+ workspaceConfig?: string;
143
+ };
144
+ IDBResult: {
145
+ binary_upload_id: string;
146
+ cost: null | number;
147
+ created_at: string;
148
+ env: Record<string, never>;
149
+ id: number;
150
+ org_id: number;
151
+ platform: string;
152
+ simulator_name: string;
153
+ status: string;
154
+ test_file_name: string;
155
+ test_upload_id: string;
156
+ };
157
+ IFinaliseUploadArgs: {
158
+ id: string;
159
+ metadata: Record<string, never>;
160
+ path: string;
161
+ sha: string;
162
+ };
163
+ IFinaliseUploadResponse: Record<string, never>;
164
+ IGetBinaryUploadUrlArgs: {
165
+ platform: Record<string, never>;
166
+ };
167
+ IGetBinaryUploadUrlResponse: {
168
+ id: string;
169
+ message: string;
170
+ path: string;
171
+ token: string;
172
+ };
173
+ IRetryTestArgs: {
174
+ resultId: number;
175
+ };
176
+ TResultResponse: {
177
+ duration_seconds?: number;
178
+ fail_reason?: string;
179
+ id: number;
180
+ retry_of?: number;
181
+ status: string;
182
+ test_file_name: string;
183
+ };
184
+ };
185
+ }
186
+ export type $defs = Record<string, never>;
187
+ export type external = Record<string, never>;
188
+ export interface operations {
189
+ AdminController_cleanupOldUploads: {
190
+ parameters: {
191
+ query?: {
192
+ /** @description If true, shows what would be deleted without actually deleting */
193
+ dryRun?: boolean;
194
+ };
195
+ };
196
+ responses: {
197
+ /** @description Cleanup of old uploads has been triggered. */
198
+ 201: {
199
+ content: {
200
+ "application/json": {
201
+ deletedCount?: number;
202
+ dryRun?: boolean;
203
+ message?: string;
204
+ uploads?: ({
205
+ createdAt?: string;
206
+ id?: string;
207
+ lastUsedDate?: null | string;
208
+ uploadType?: string;
209
+ })[];
210
+ };
211
+ };
212
+ };
213
+ };
214
+ };
215
+ FrontendController_checkDomainSaml: {
216
+ /** @description Domain to check for SAML configuration */
217
+ requestBody: {
218
+ content: {
219
+ "application/json": {
220
+ /** @example example.com */
221
+ domain: string;
222
+ };
223
+ };
224
+ };
225
+ responses: {
226
+ /** @description SAML status for the domain */
227
+ 200: {
228
+ content: {
229
+ "application/json": {
230
+ forceSaml?: boolean;
231
+ };
232
+ };
233
+ };
234
+ 201: {
235
+ content: never;
236
+ };
237
+ /** @description Bad request - invalid domain or API error */
238
+ 400: {
239
+ content: {
240
+ "application/json": {
241
+ error?: string;
242
+ };
243
+ };
244
+ };
245
+ };
246
+ };
247
+ HealthController_health: {
248
+ responses: {
249
+ /** @description Health check endpoint */
250
+ 200: {
251
+ content: {
252
+ "application/json": {
253
+ /** @example ok */
254
+ status?: string;
255
+ };
256
+ };
257
+ };
258
+ };
259
+ };
260
+ MoropoController_runScheduledJobs: {
261
+ responses: {
262
+ 200: {
263
+ content: never;
264
+ };
265
+ };
266
+ };
267
+ OrgController_acceptInvite: {
268
+ parameters: {
269
+ header: {
270
+ "x-app-api-key": string;
271
+ };
272
+ };
273
+ requestBody: {
274
+ content: {
275
+ "application/json": {
276
+ orgId: string;
277
+ };
278
+ };
279
+ };
280
+ responses: {
281
+ /** @description Team invite accepted successfully. */
282
+ 201: {
283
+ content: {
284
+ "application/json": boolean;
285
+ };
286
+ };
287
+ };
288
+ };
289
+ OrgController_inviteTeamMember: {
290
+ parameters: {
291
+ header: {
292
+ "x-app-api-key": string;
293
+ };
294
+ };
295
+ requestBody: {
296
+ content: {
297
+ "application/json": {
298
+ inviteEmail: string;
299
+ link: string;
300
+ orgId: string;
301
+ orgName: string;
302
+ requesterEmail: string;
303
+ };
304
+ };
305
+ };
306
+ responses: {
307
+ /** @description Team member invited successfully. */
308
+ 201: {
309
+ content: {
310
+ "application/json": boolean;
311
+ };
312
+ };
313
+ };
314
+ };
315
+ OrgController_paddleTransactionCompleted: {
316
+ parameters: {
317
+ header: {
318
+ "paddle-signature": string;
319
+ };
320
+ };
321
+ responses: {
322
+ /** @description Success. */
323
+ 201: {
324
+ content: {
325
+ "application/json": string;
326
+ };
327
+ };
328
+ };
329
+ };
330
+ OrgController_updateOrgName: {
331
+ parameters: {
332
+ header: {
333
+ "x-app-api-key": string;
334
+ };
335
+ };
336
+ requestBody: {
337
+ content: {
338
+ "application/json": {
339
+ name: string;
340
+ orgId: string;
341
+ };
342
+ };
343
+ };
344
+ responses: {
345
+ /** @description Organization name updated successfully. */
346
+ 201: {
347
+ content: {
348
+ "application/json": boolean;
349
+ };
350
+ };
351
+ };
352
+ };
353
+ ResultsController_createResult: {
354
+ parameters: {
355
+ header: {
356
+ "x-app-api-key": string;
357
+ };
358
+ };
359
+ responses: {
360
+ 201: {
361
+ content: never;
362
+ };
363
+ };
364
+ };
365
+ ResultsController_getCompatibilityData: {
366
+ parameters: {
367
+ header: {
368
+ "x-app-api-key": string;
369
+ };
370
+ };
371
+ responses: {
372
+ /** @description Device compatibility lookup data */
373
+ 200: {
374
+ content: {
375
+ "application/json": {
376
+ data?: {
377
+ android?: Record<string, never>;
378
+ androidPlay?: Record<string, never>;
379
+ ios?: Record<string, never>;
380
+ };
381
+ statusCode?: number;
382
+ };
383
+ };
384
+ };
385
+ };
386
+ };
387
+ ResultsController_getResults: {
388
+ parameters: {
389
+ header: {
390
+ "x-app-api-key": string;
391
+ };
392
+ path: {
393
+ uploadId: string;
394
+ };
395
+ };
396
+ responses: {
397
+ /** @description The record has been successfully created. */
398
+ 200: {
399
+ content: {
400
+ "application/json": {
401
+ results?: components["schemas"]["TResultResponse"][];
402
+ statusCode?: number;
403
+ };
404
+ };
405
+ };
406
+ };
407
+ };
408
+ ResultsController_getTestRunArtifacts: {
409
+ parameters: {
410
+ header: {
411
+ "x-app-api-key": string;
412
+ };
413
+ path: {
414
+ uploadId: string;
415
+ };
416
+ };
417
+ responses: {
418
+ 201: {
419
+ content: never;
420
+ };
421
+ };
422
+ };
423
+ ResultsController_notifyTestRunComplete: {
424
+ parameters: {
425
+ header: {
426
+ "x-app-api-key": string;
427
+ };
428
+ path: {
429
+ uploadId: string;
430
+ };
431
+ };
432
+ responses: {
433
+ /** @description Send results summary email. */
434
+ 201: {
435
+ content: {
436
+ "application/json": string;
437
+ };
438
+ };
439
+ };
440
+ };
441
+ StatsController_getPublicStats: {
442
+ responses: {
443
+ 200: {
444
+ content: never;
445
+ };
446
+ };
447
+ };
448
+ StatsController_reportSlowTestsDev: {
449
+ responses: {
450
+ 201: {
451
+ content: never;
452
+ };
453
+ };
454
+ };
455
+ StatsController_reportSlowTestsProd: {
456
+ responses: {
457
+ 201: {
458
+ content: never;
459
+ };
460
+ };
461
+ };
462
+ StatsController_sendDailyReport: {
463
+ responses: {
464
+ 201: {
465
+ content: never;
466
+ };
467
+ };
468
+ };
469
+ UploadsController_cancelTest: {
470
+ parameters: {
471
+ header: {
472
+ "x-app-api-key": string;
473
+ };
474
+ };
475
+ requestBody: {
476
+ content: {
477
+ "application/json": components["schemas"]["ICancelTestArgs"];
478
+ };
479
+ };
480
+ responses: {
481
+ /** @description The record has been successfully cancelled. */
482
+ 201: {
483
+ content: {
484
+ "application/json": {
485
+ message?: string;
486
+ results?: components["schemas"]["IDBResult"][];
487
+ };
488
+ };
489
+ };
490
+ };
491
+ };
492
+ UploadsController_checkForExistingUpload: {
493
+ parameters: {
494
+ header: {
495
+ "x-app-api-key": string;
496
+ };
497
+ };
498
+ requestBody: {
499
+ content: {
500
+ "application/json": components["schemas"]["ICheckForExistingUploadArgs"];
501
+ };
502
+ };
503
+ responses: {
504
+ /** @description The url has been successfully created. */
505
+ 201: {
506
+ content: {
507
+ "application/json": components["schemas"]["ICheckForExistingUploadResponse"];
508
+ };
509
+ };
510
+ };
511
+ };
512
+ UploadsController_createBinary: {
513
+ parameters: {
514
+ header: {
515
+ "x-app-api-key": string;
516
+ };
517
+ };
518
+ requestBody: {
519
+ content: {
520
+ "multipart/form-data": components["schemas"]["ICreateBinaryUploadArgs"];
521
+ };
522
+ };
523
+ responses: {
524
+ /**
525
+ * @description The record has been successfully created.
526
+ * @example {
527
+ * "message": "Binary uploaded successfully",
528
+ * "binaryId": "binary-123-abc-def"
529
+ * }
530
+ */
531
+ 201: {
532
+ content: {
533
+ "application/json": components["schemas"]["ICreateBinaryResponse"];
534
+ };
535
+ };
536
+ };
537
+ };
538
+ UploadsController_createTest: {
539
+ parameters: {
540
+ header: {
541
+ "x-app-api-key": string;
542
+ };
543
+ };
544
+ requestBody: {
545
+ content: {
546
+ "multipart/form-data": components["schemas"]["ICreateTestUploadArgs"];
547
+ };
548
+ };
549
+ responses: {
550
+ /** @description The record has been successfully created. */
551
+ 201: {
552
+ content: {
553
+ "application/json": {
554
+ message?: string;
555
+ results?: components["schemas"]["IDBResult"][];
556
+ };
557
+ };
558
+ };
559
+ };
560
+ };
561
+ UploadsController_deleteUpload: {
562
+ parameters: {
563
+ header: {
564
+ "x-app-api-key": string;
565
+ };
566
+ path: {
567
+ uploadId: string;
568
+ };
569
+ };
570
+ responses: {
571
+ 200: {
572
+ content: never;
573
+ };
574
+ /** @description The upload has been successfully deleted. */
575
+ 201: {
576
+ content: {
577
+ "application/json": {
578
+ message?: string;
579
+ success?: boolean;
580
+ };
581
+ };
582
+ };
583
+ };
584
+ };
585
+ UploadsController_finaliseUpload: {
586
+ parameters: {
587
+ header: {
588
+ "x-app-api-key": string;
589
+ };
590
+ };
591
+ requestBody: {
592
+ content: {
593
+ "application/json": components["schemas"]["IFinaliseUploadArgs"];
594
+ };
595
+ };
596
+ responses: {
597
+ /** @description The upload has been completed. */
598
+ 201: {
599
+ content: {
600
+ "application/json": components["schemas"]["IFinaliseUploadResponse"];
601
+ };
602
+ };
603
+ };
604
+ };
605
+ UploadsController_getBinaryUploadUrl: {
606
+ parameters: {
607
+ header: {
608
+ "x-app-api-key": string;
609
+ };
610
+ };
611
+ requestBody: {
612
+ content: {
613
+ "application/json": components["schemas"]["IGetBinaryUploadUrlArgs"];
614
+ };
615
+ };
616
+ responses: {
617
+ /** @description The url has been successfully created. */
618
+ 201: {
619
+ content: {
620
+ "application/json": components["schemas"]["IGetBinaryUploadUrlResponse"];
621
+ };
622
+ };
623
+ };
624
+ };
625
+ UploadsController_getUploadStatus: {
626
+ parameters: {
627
+ header: {
628
+ "x-app-api-key": string;
629
+ };
630
+ query?: {
631
+ /** @description Upload name to get status for */
632
+ name?: string;
633
+ /** @description Upload ID to get status for */
634
+ uploadId?: string;
635
+ };
636
+ };
637
+ responses: {
638
+ /** @description Upload status */
639
+ 200: {
640
+ content: {
641
+ "application/json": Record<string, never>;
642
+ };
643
+ };
644
+ };
645
+ };
646
+ UploadsController_retryTest: {
647
+ parameters: {
648
+ header: {
649
+ "x-app-api-key": string;
650
+ };
651
+ };
652
+ requestBody: {
653
+ content: {
654
+ "application/json": components["schemas"]["IRetryTestArgs"];
655
+ };
656
+ };
657
+ responses: {
658
+ /** @description The record has been successfully created. */
659
+ 201: {
660
+ content: {
661
+ "application/json": {
662
+ message?: string;
663
+ results?: components["schemas"]["IDBResult"][];
664
+ };
665
+ };
666
+ };
667
+ };
668
+ };
669
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * This file was auto-generated by openapi-typescript.
4
+ * Do not make direct changes to the file.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,7 +1,7 @@
1
1
  export interface CompatibilityData {
2
- ios: Record<string, string[]>;
3
2
  android: Record<string, string[]>;
4
3
  androidPlay: Record<string, string[]>;
4
+ ios: Record<string, string[]>;
5
5
  }
6
6
  export declare function fetchCompatibilityData(apiUrl: string, apiKey: string): Promise<CompatibilityData>;
7
7
  export declare function clearCompatibilityCache(): void;
@@ -9,11 +9,11 @@ async function fetchCompatibilityData(apiUrl, apiKey) {
9
9
  }
10
10
  try {
11
11
  const response = await fetch(`${apiUrl}/results/compatibility/data`, {
12
- method: 'GET',
13
12
  headers: {
14
- 'x-app-api-key': apiKey,
15
13
  'Content-Type': 'application/json',
14
+ 'x-app-api-key': apiKey,
16
15
  },
16
+ method: 'GET',
17
17
  });
18
18
  if (!response.ok) {
19
19
  throw new Error(`HTTP error! status: ${response.status}`);