@devicecloud.dev/dcd 4.4.8 → 5.0.0-beta.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.
Files changed (97) hide show
  1. package/README.md +40 -2
  2. package/dist/commands/artifacts.d.ts +47 -18
  3. package/dist/commands/artifacts.js +68 -60
  4. package/dist/commands/cloud.d.ts +228 -88
  5. package/dist/commands/cloud.js +389 -282
  6. package/dist/commands/list.d.ts +39 -38
  7. package/dist/commands/list.js +122 -127
  8. package/dist/commands/live.d.ts +2 -0
  9. package/dist/commands/live.js +513 -0
  10. package/dist/commands/login.d.ts +17 -0
  11. package/dist/commands/login.js +250 -0
  12. package/dist/commands/logout.d.ts +2 -0
  13. package/dist/commands/logout.js +32 -0
  14. package/dist/commands/status.d.ts +23 -42
  15. package/dist/commands/status.js +162 -173
  16. package/dist/commands/switch-org.d.ts +12 -0
  17. package/dist/commands/switch-org.js +78 -0
  18. package/dist/commands/upgrade.d.ts +2 -0
  19. package/dist/commands/upgrade.js +122 -0
  20. package/dist/commands/upload.d.ts +33 -18
  21. package/dist/commands/upload.js +62 -67
  22. package/dist/commands/whoami.d.ts +2 -0
  23. package/dist/commands/whoami.js +34 -0
  24. package/dist/config/environments.d.ts +31 -0
  25. package/dist/config/environments.js +58 -0
  26. package/dist/config/flags/api.flags.d.ts +10 -2
  27. package/dist/config/flags/api.flags.js +12 -10
  28. package/dist/config/flags/binary.flags.d.ts +17 -4
  29. package/dist/config/flags/binary.flags.js +13 -14
  30. package/dist/config/flags/device.flags.d.ts +49 -11
  31. package/dist/config/flags/device.flags.js +41 -33
  32. package/dist/config/flags/environment.flags.d.ts +27 -6
  33. package/dist/config/flags/environment.flags.js +23 -25
  34. package/dist/config/flags/execution.flags.d.ts +35 -8
  35. package/dist/config/flags/execution.flags.js +30 -37
  36. package/dist/config/flags/github.flags.d.ts +23 -5
  37. package/dist/config/flags/github.flags.js +18 -11
  38. package/dist/config/flags/output.flags.d.ts +57 -13
  39. package/dist/config/flags/output.flags.js +47 -43
  40. package/dist/constants.d.ts +218 -51
  41. package/dist/constants.js +2 -2
  42. package/dist/gateways/api-gateway.d.ts +43 -12
  43. package/dist/gateways/api-gateway.js +240 -100
  44. package/dist/gateways/cli-auth-gateway.d.ts +13 -0
  45. package/dist/gateways/cli-auth-gateway.js +57 -0
  46. package/dist/gateways/supabase-gateway.d.ts +11 -11
  47. package/dist/gateways/supabase-gateway.js +15 -39
  48. package/dist/index.d.ts +2 -1
  49. package/dist/index.js +93 -2
  50. package/dist/methods.d.ts +3 -5
  51. package/dist/methods.js +170 -178
  52. package/dist/services/device-validation.service.d.ts +8 -0
  53. package/dist/services/device-validation.service.js +55 -35
  54. package/dist/services/execution-plan.service.js +27 -15
  55. package/dist/services/execution-plan.utils.d.ts +3 -0
  56. package/dist/services/execution-plan.utils.js +10 -32
  57. package/dist/services/metadata-extractor.service.d.ts +0 -2
  58. package/dist/services/metadata-extractor.service.js +57 -57
  59. package/dist/services/moropo.service.js +25 -24
  60. package/dist/services/report-download.service.d.ts +12 -1
  61. package/dist/services/report-download.service.js +31 -20
  62. package/dist/services/results-polling.service.d.ts +6 -7
  63. package/dist/services/results-polling.service.js +80 -33
  64. package/dist/services/telemetry.service.d.ts +40 -0
  65. package/dist/services/telemetry.service.js +230 -0
  66. package/dist/services/test-submission.service.js +2 -1
  67. package/dist/services/version.service.d.ts +3 -2
  68. package/dist/services/version.service.js +27 -11
  69. package/dist/types/domain/auth.types.d.ts +12 -0
  70. package/dist/types/{schema.types.js → domain/auth.types.js} +0 -1
  71. package/dist/types/domain/live.types.d.ts +76 -0
  72. package/dist/types/domain/live.types.js +4 -0
  73. package/dist/utils/auth.d.ts +13 -0
  74. package/dist/utils/auth.js +142 -0
  75. package/dist/utils/cli.d.ts +35 -0
  76. package/dist/utils/cli.js +127 -0
  77. package/dist/utils/compatibility.d.ts +2 -1
  78. package/dist/utils/compatibility.js +2 -2
  79. package/dist/utils/config-store.d.ts +35 -0
  80. package/dist/utils/config-store.js +125 -0
  81. package/dist/utils/connectivity.js +7 -3
  82. package/dist/utils/expo.js +14 -3
  83. package/dist/utils/orgs.d.ts +11 -0
  84. package/dist/utils/orgs.js +40 -0
  85. package/dist/utils/paths.d.ts +11 -0
  86. package/dist/utils/paths.js +24 -0
  87. package/dist/utils/progress.d.ts +13 -0
  88. package/dist/utils/progress.js +50 -0
  89. package/dist/utils/styling.d.ts +13 -5
  90. package/dist/utils/styling.js +37 -7
  91. package/package.json +26 -38
  92. package/bin/dev.cmd +0 -3
  93. package/bin/dev.js +0 -6
  94. package/bin/run.cmd +0 -3
  95. package/bin/run.js +0 -7
  96. package/dist/types/schema.types.d.ts +0 -2702
  97. package/oclif.manifest.json +0 -884
@@ -1,884 +0,0 @@
1
- {
2
- "commands": {
3
- "artifacts": {
4
- "aliases": [],
5
- "args": {},
6
- "description": "Download artifacts or reports for a completed test run",
7
- "examples": [
8
- "<%= config.bin %> <%= command.id %> --upload-id 123e4567-e89b-12d3-a456-426614174000 --download-artifacts FAILED",
9
- "<%= config.bin %> <%= command.id %> --upload-id 123e4567-e89b-12d3-a456-426614174000 --download-artifacts ALL --artifacts-path ./my-artifacts.zip",
10
- "<%= config.bin %> <%= command.id %> --upload-id 123e4567-e89b-12d3-a456-426614174000 --report junit",
11
- "<%= config.bin %> <%= command.id %> --upload-id 123e4567-e89b-12d3-a456-426614174000 --report allure --allure-path ./report.html"
12
- ],
13
- "flags": {
14
- "apiKey": {
15
- "aliases": [
16
- "api-key"
17
- ],
18
- "description": "API key for devicecloud.dev (find this in the console UI). You can also set the DEVICE_CLOUD_API_KEY environment variable.",
19
- "name": "apiKey",
20
- "hasDynamicHelp": false,
21
- "multiple": false,
22
- "type": "option"
23
- },
24
- "apiUrl": {
25
- "aliases": [
26
- "api-url",
27
- "apiURL"
28
- ],
29
- "description": "API base URL",
30
- "hidden": true,
31
- "name": "apiUrl",
32
- "default": "https://api.devicecloud.dev",
33
- "hasDynamicHelp": false,
34
- "multiple": false,
35
- "type": "option"
36
- },
37
- "debug": {
38
- "description": "Enable detailed debug logging for troubleshooting issues",
39
- "name": "debug",
40
- "allowNo": false,
41
- "type": "boolean"
42
- },
43
- "upload-id": {
44
- "description": "UUID of the completed upload to download artifacts for",
45
- "name": "upload-id",
46
- "required": true,
47
- "hasDynamicHelp": false,
48
- "multiple": false,
49
- "type": "option"
50
- },
51
- "download-artifacts": {
52
- "description": "Download a zip containing the logs, screenshots and videos for this run. Options: ALL (everything), FAILED (failures only).",
53
- "exclusive": [
54
- "report"
55
- ],
56
- "name": "download-artifacts",
57
- "hasDynamicHelp": false,
58
- "multiple": false,
59
- "options": [
60
- "ALL",
61
- "FAILED"
62
- ],
63
- "type": "option"
64
- },
65
- "artifacts-path": {
66
- "dependsOn": [
67
- "download-artifacts"
68
- ],
69
- "description": "Custom file path for downloaded artifacts (default: ./artifacts.zip)",
70
- "name": "artifacts-path",
71
- "hasDynamicHelp": false,
72
- "multiple": false,
73
- "type": "option"
74
- },
75
- "report": {
76
- "description": "Download a test report in the specified format.",
77
- "exclusive": [
78
- "download-artifacts"
79
- ],
80
- "name": "report",
81
- "hasDynamicHelp": false,
82
- "multiple": false,
83
- "options": [
84
- "allure",
85
- "html",
86
- "html-detailed",
87
- "junit"
88
- ],
89
- "type": "option"
90
- },
91
- "allure-path": {
92
- "dependsOn": [
93
- "report"
94
- ],
95
- "description": "Custom file path for downloaded Allure report (default: ./report.html)",
96
- "name": "allure-path",
97
- "hasDynamicHelp": false,
98
- "multiple": false,
99
- "type": "option"
100
- },
101
- "html-path": {
102
- "dependsOn": [
103
- "report"
104
- ],
105
- "description": "Custom file path for downloaded HTML report (default: ./report.html)",
106
- "name": "html-path",
107
- "hasDynamicHelp": false,
108
- "multiple": false,
109
- "type": "option"
110
- },
111
- "junit-path": {
112
- "dependsOn": [
113
- "report"
114
- ],
115
- "description": "Custom file path for downloaded JUnit report (default: ./report.xml)",
116
- "name": "junit-path",
117
- "hasDynamicHelp": false,
118
- "multiple": false,
119
- "type": "option"
120
- }
121
- },
122
- "hasDynamicHelp": false,
123
- "hiddenAliases": [],
124
- "id": "artifacts",
125
- "pluginAlias": "@devicecloud.dev/dcd",
126
- "pluginName": "@devicecloud.dev/dcd",
127
- "pluginType": "core",
128
- "strict": true,
129
- "enableJsonFlag": false,
130
- "isESM": false,
131
- "relativePath": [
132
- "dist",
133
- "commands",
134
- "artifacts.js"
135
- ]
136
- },
137
- "cloud": {
138
- "aliases": [],
139
- "args": {
140
- "firstFile": {
141
- "description": "The binary file of the app to run your flow against, e.g. test.apk for android or test.app/.zip for ios",
142
- "hidden": true,
143
- "name": "firstFile"
144
- },
145
- "secondFile": {
146
- "description": "The flow file to run against the app, e.g. test.yaml",
147
- "hidden": true,
148
- "name": "secondFile"
149
- }
150
- },
151
- "description": "Test a Flow or set of Flows on devicecloud.dev (https://devicecloud.dev)\nProvide your application file and a folder with Maestro flows to run them in parallel on multiple devices in devicecloud.dev\nThe command will block until all analyses have completed",
152
- "examples": [
153
- "<%= config.bin %> <%= command.id %>"
154
- ],
155
- "flags": {
156
- "json": {
157
- "description": "Output results in JSON format - note: will always provide exit code 0",
158
- "name": "json",
159
- "allowNo": false,
160
- "type": "boolean"
161
- },
162
- "apiKey": {
163
- "aliases": [
164
- "api-key"
165
- ],
166
- "description": "API key for devicecloud.dev (find this in the console UI). You can also set the DEVICE_CLOUD_API_KEY environment variable.",
167
- "name": "apiKey",
168
- "hasDynamicHelp": false,
169
- "multiple": false,
170
- "type": "option"
171
- },
172
- "apiUrl": {
173
- "aliases": [
174
- "api-url",
175
- "apiURL"
176
- ],
177
- "description": "API base URL",
178
- "hidden": true,
179
- "name": "apiUrl",
180
- "default": "https://api.devicecloud.dev",
181
- "hasDynamicHelp": false,
182
- "multiple": false,
183
- "type": "option"
184
- },
185
- "app-binary-id": {
186
- "aliases": [
187
- "app-binary-id"
188
- ],
189
- "description": "The ID of the app binary previously uploaded to devicecloud.dev",
190
- "name": "app-binary-id",
191
- "hasDynamicHelp": false,
192
- "multiple": false,
193
- "type": "option"
194
- },
195
- "app-file": {
196
- "aliases": [
197
- "app-file"
198
- ],
199
- "description": "App binary to run your flows against",
200
- "exclusive": [
201
- "app-url"
202
- ],
203
- "name": "app-file",
204
- "hasDynamicHelp": false,
205
- "multiple": false,
206
- "type": "option"
207
- },
208
- "app-url": {
209
- "aliases": [
210
- "app-url"
211
- ],
212
- "description": "Signed URL to an Expo iOS build (.tar.gz). The archive is downloaded and extracted automatically. Expo signed URLs expire after ~1 hour.",
213
- "exclusive": [
214
- "app-file"
215
- ],
216
- "name": "app-url",
217
- "hasDynamicHelp": false,
218
- "multiple": false,
219
- "type": "option"
220
- },
221
- "ignore-sha-check": {
222
- "description": "Ignore the sha hash check and upload the binary regardless of whether it already exists (not recommended)",
223
- "name": "ignore-sha-check",
224
- "allowNo": false,
225
- "type": "boolean"
226
- },
227
- "android-api-level": {
228
- "description": "[Android only] Android API level to run your flow against",
229
- "name": "android-api-level",
230
- "hasDynamicHelp": false,
231
- "multiple": false,
232
- "options": [
233
- "30",
234
- "35",
235
- "34",
236
- "31",
237
- "36",
238
- "33",
239
- "32",
240
- "29"
241
- ],
242
- "type": "option"
243
- },
244
- "android-device": {
245
- "description": "[Android only] Android device to run your flow against",
246
- "name": "android-device",
247
- "hasDynamicHelp": false,
248
- "multiple": false,
249
- "options": [
250
- "generic-tablet",
251
- "pixel-6",
252
- "pixel-6-pro",
253
- "pixel-7",
254
- "pixel-7-pro"
255
- ],
256
- "type": "option"
257
- },
258
- "device-locale": {
259
- "description": "Locale that will be set to a device, ISO-639-1 code and uppercase ISO-3166-1 code e.g. \"de_DE\" for Germany",
260
- "name": "device-locale",
261
- "hasDynamicHelp": false,
262
- "multiple": false,
263
- "type": "option"
264
- },
265
- "google-play": {
266
- "aliases": [
267
- "google-play"
268
- ],
269
- "description": "[Android only] Run your flow against Google Play devices",
270
- "name": "google-play",
271
- "allowNo": false,
272
- "type": "boolean"
273
- },
274
- "ios-device": {
275
- "description": "[iOS only] iOS device to run your flow against",
276
- "name": "ios-device",
277
- "hasDynamicHelp": false,
278
- "multiple": false,
279
- "options": [
280
- "ipad-pro-6th-gen",
281
- "iphone-14",
282
- "iphone-14-pro",
283
- "iphone-15",
284
- "iphone-15-pro",
285
- "iphone-16",
286
- "iphone-16-plus",
287
- "iphone-16-pro",
288
- "iphone-16-pro-max"
289
- ],
290
- "type": "option"
291
- },
292
- "ios-version": {
293
- "description": "[iOS only] iOS version to run your flow against",
294
- "name": "ios-version",
295
- "hasDynamicHelp": false,
296
- "multiple": false,
297
- "options": [
298
- "18",
299
- "17",
300
- "16",
301
- "26"
302
- ],
303
- "type": "option"
304
- },
305
- "orientation": {
306
- "description": "[Android only] The orientation of the device to run your flow against (0 = portrait, 90 = landscape)",
307
- "name": "orientation",
308
- "hasDynamicHelp": false,
309
- "multiple": false,
310
- "options": [
311
- "0",
312
- "90"
313
- ],
314
- "type": "option"
315
- },
316
- "show-crosshairs": {
317
- "description": "[Android only] Display crosshairs for screen interactions during test execution",
318
- "name": "show-crosshairs",
319
- "allowNo": false,
320
- "type": "boolean"
321
- },
322
- "maestro-chrome-onboarding": {
323
- "description": "[Android only] Force Maestro-based Chrome onboarding - note: this will slow your tests but can fix browser related crashes. See https://docs.devicecloud.dev/advanced/chrome-onboarding for more information.",
324
- "name": "maestro-chrome-onboarding",
325
- "allowNo": false,
326
- "type": "boolean"
327
- },
328
- "android-no-snapshot": {
329
- "description": "[Android only] Force cold boot instead of using snapshot boot. This is automatically enabled for API 35+ but can be used to force cold boot on older API levels.",
330
- "name": "android-no-snapshot",
331
- "allowNo": false,
332
- "type": "boolean"
333
- },
334
- "disable-animations": {
335
- "description": "Disable device animations during test execution. On Android, disables system animation scales. On iOS, enables Reduce Motion. Reduces CPU load and may improve test reliability.",
336
- "name": "disable-animations",
337
- "allowNo": false,
338
- "type": "boolean"
339
- },
340
- "env": {
341
- "char": "e",
342
- "description": "One or more environment variables to inject into your flows",
343
- "name": "env",
344
- "hasDynamicHelp": false,
345
- "multiple": true,
346
- "type": "option"
347
- },
348
- "metadata": {
349
- "char": "m",
350
- "description": "Arbitrary key-value metadata to include with your test run (format: key=value)",
351
- "name": "metadata",
352
- "hasDynamicHelp": false,
353
- "multiple": true,
354
- "type": "option"
355
- },
356
- "mitmHost": {
357
- "description": "used for mitmproxy support, enterprise only, contact support if interested",
358
- "hidden": true,
359
- "name": "mitmHost",
360
- "hasDynamicHelp": false,
361
- "multiple": false,
362
- "type": "option"
363
- },
364
- "mitmPath": {
365
- "dependsOn": [
366
- "mitmHost"
367
- ],
368
- "description": "used for mitmproxy support, enterprise only, contact support if interested",
369
- "hidden": true,
370
- "name": "mitmPath",
371
- "hasDynamicHelp": false,
372
- "multiple": false,
373
- "type": "option"
374
- },
375
- "moropo-v1-api-key": {
376
- "description": "API key for Moropo v1 integration",
377
- "name": "moropo-v1-api-key",
378
- "required": false,
379
- "hasDynamicHelp": false,
380
- "multiple": false,
381
- "type": "option"
382
- },
383
- "name": {
384
- "description": "A custom name for your upload (useful for tagging commits etc)",
385
- "name": "name",
386
- "hasDynamicHelp": false,
387
- "multiple": false,
388
- "type": "option"
389
- },
390
- "config": {
391
- "description": "Path to custom config.yaml file. If not provided, defaults to config.yaml in root flows folders.",
392
- "name": "config",
393
- "hasDynamicHelp": false,
394
- "multiple": false,
395
- "type": "option"
396
- },
397
- "exclude-flows": {
398
- "description": "Sub directories to ignore when building the flow file list",
399
- "name": "exclude-flows",
400
- "default": [],
401
- "hasDynamicHelp": false,
402
- "multiple": true,
403
- "type": "option"
404
- },
405
- "exclude-tags": {
406
- "aliases": [
407
- "exclude-tags"
408
- ],
409
- "description": "Flows which have these tags will be excluded from the run",
410
- "name": "exclude-tags",
411
- "default": [],
412
- "hasDynamicHelp": false,
413
- "multiple": true,
414
- "type": "option"
415
- },
416
- "flows": {
417
- "description": "The path to the flow file or folder containing your flows",
418
- "name": "flows",
419
- "hasDynamicHelp": false,
420
- "multiple": false,
421
- "type": "option"
422
- },
423
- "include-tags": {
424
- "aliases": [
425
- "include-tags"
426
- ],
427
- "description": "Only flows which have these tags will be included in the run",
428
- "name": "include-tags",
429
- "default": [],
430
- "hasDynamicHelp": false,
431
- "multiple": true,
432
- "type": "option"
433
- },
434
- "maestro-version": {
435
- "aliases": [
436
- "maestroVersion"
437
- ],
438
- "description": "Maestro version to run your flow against. Use \"latest\" for the most recent version. See https://docs.devicecloud.dev/configuration/maestro-versions for supported versions.",
439
- "name": "maestro-version",
440
- "hasDynamicHelp": false,
441
- "multiple": false,
442
- "type": "option"
443
- },
444
- "retry": {
445
- "description": "Automatically retry the run up to the number of times specified (same as pressing retry in the UI) - this is free of charge",
446
- "name": "retry",
447
- "hasDynamicHelp": false,
448
- "multiple": false,
449
- "type": "option"
450
- },
451
- "runner-type": {
452
- "description": "[experimental] The type of runner to use - note: anything other than default or cpu1 will incur premium pricing tiers, see https://docs.devicecloud.dev/configuration/runner-type for more information.",
453
- "name": "runner-type",
454
- "default": "default",
455
- "hasDynamicHelp": false,
456
- "multiple": false,
457
- "options": [
458
- "default",
459
- "m4",
460
- "m1",
461
- "gpu1",
462
- "cpu1"
463
- ],
464
- "type": "option"
465
- },
466
- "branch": {
467
- "description": "Git branch name for this run (stored as gh_branch metadata)",
468
- "name": "branch",
469
- "hasDynamicHelp": false,
470
- "multiple": false,
471
- "type": "option"
472
- },
473
- "commit-sha": {
474
- "description": "Git commit SHA for this run (stored as gh_sha metadata)",
475
- "name": "commit-sha",
476
- "hasDynamicHelp": false,
477
- "multiple": false,
478
- "type": "option"
479
- },
480
- "repo-name": {
481
- "description": "Repository in owner/repo format (stored as gh_repo metadata, e.g. \"acme/my-app\")",
482
- "name": "repo-name",
483
- "hasDynamicHelp": false,
484
- "multiple": false,
485
- "type": "option"
486
- },
487
- "pr-number": {
488
- "description": "Pull request number for this run (stored as gh_pr_number metadata)",
489
- "name": "pr-number",
490
- "hasDynamicHelp": false,
491
- "multiple": false,
492
- "type": "option"
493
- },
494
- "pr-url": {
495
- "description": "Pull request URL for this run (stored as gh_pr_url metadata)",
496
- "name": "pr-url",
497
- "hasDynamicHelp": false,
498
- "multiple": false,
499
- "type": "option"
500
- },
501
- "artifacts-path": {
502
- "dependsOn": [
503
- "download-artifacts"
504
- ],
505
- "description": "Custom file path for downloaded artifacts (default: ./artifacts.zip)",
506
- "name": "artifacts-path",
507
- "hasDynamicHelp": false,
508
- "multiple": false,
509
- "type": "option"
510
- },
511
- "junit-path": {
512
- "dependsOn": [
513
- "report"
514
- ],
515
- "description": "Custom file path for downloaded JUnit report (requires --report junit, default: ./report.xml)",
516
- "name": "junit-path",
517
- "hasDynamicHelp": false,
518
- "multiple": false,
519
- "type": "option"
520
- },
521
- "allure-path": {
522
- "dependsOn": [
523
- "report"
524
- ],
525
- "description": "Custom file path for downloaded Allure report (requires --report allure, default: ./report.html)",
526
- "name": "allure-path",
527
- "hasDynamicHelp": false,
528
- "multiple": false,
529
- "type": "option"
530
- },
531
- "html-path": {
532
- "dependsOn": [
533
- "report"
534
- ],
535
- "description": "Custom file path for downloaded HTML report (requires --report html, default: ./report.html)",
536
- "name": "html-path",
537
- "hasDynamicHelp": false,
538
- "multiple": false,
539
- "type": "option"
540
- },
541
- "async": {
542
- "description": "Immediately return (exit code 0) from the command without waiting for the results of the run (useful for saving CI minutes)",
543
- "name": "async",
544
- "allowNo": false,
545
- "type": "boolean"
546
- },
547
- "debug": {
548
- "description": "Enable detailed debug logging for troubleshooting issues",
549
- "name": "debug",
550
- "allowNo": false,
551
- "type": "boolean"
552
- },
553
- "download-artifacts": {
554
- "description": "Download a zip containing the logs, screenshots and videos for each result in this run. Options: ALL (everything), FAILED (failures only).",
555
- "name": "download-artifacts",
556
- "hasDynamicHelp": false,
557
- "multiple": false,
558
- "options": [
559
- "ALL",
560
- "FAILED"
561
- ],
562
- "type": "option"
563
- },
564
- "dry-run": {
565
- "description": "Simulate the run without actually triggering the upload/test, useful for debugging workflow issues.",
566
- "name": "dry-run",
567
- "allowNo": false,
568
- "type": "boolean"
569
- },
570
- "json-file": {
571
- "description": "Write JSON output to a file. File will be called <upload_id>_dcd.json unless you supply the --json-file-name flag - note: will always exit with code 0",
572
- "name": "json-file",
573
- "required": false,
574
- "allowNo": false,
575
- "type": "boolean"
576
- },
577
- "json-file-name": {
578
- "dependsOn": [
579
- "json-file"
580
- ],
581
- "description": "A custom name for the JSON file (can also include relative path)",
582
- "name": "json-file-name",
583
- "hasDynamicHelp": false,
584
- "multiple": false,
585
- "type": "option"
586
- },
587
- "quiet": {
588
- "char": "q",
589
- "description": "Quieter console output that won't provide progress updates",
590
- "name": "quiet",
591
- "allowNo": false,
592
- "type": "boolean"
593
- },
594
- "report": {
595
- "aliases": [
596
- "format"
597
- ],
598
- "description": "Generate and download test reports in the specified format. Use \"allure\" for a complete HTML report.",
599
- "name": "report",
600
- "hasDynamicHelp": false,
601
- "multiple": false,
602
- "options": [
603
- "allure",
604
- "junit",
605
- "html",
606
- "html-detailed"
607
- ],
608
- "type": "option"
609
- }
610
- },
611
- "hasDynamicHelp": false,
612
- "hiddenAliases": [],
613
- "id": "cloud",
614
- "pluginAlias": "@devicecloud.dev/dcd",
615
- "pluginName": "@devicecloud.dev/dcd",
616
- "pluginType": "core",
617
- "strict": true,
618
- "enableJsonFlag": true,
619
- "isESM": false,
620
- "relativePath": [
621
- "dist",
622
- "commands",
623
- "cloud.js"
624
- ]
625
- },
626
- "list": {
627
- "aliases": [],
628
- "args": {},
629
- "description": "List recent flow uploads for your organization",
630
- "examples": [
631
- "<%= config.bin %> <%= command.id %>",
632
- "<%= config.bin %> <%= command.id %> --limit 10",
633
- "<%= config.bin %> <%= command.id %> --name \"nightly-*\" # Quote wildcards to prevent shell expansion!",
634
- "<%= config.bin %> <%= command.id %> --from 2024-01-01 --to 2024-01-31",
635
- "<%= config.bin %> <%= command.id %> --json"
636
- ],
637
- "flags": {
638
- "json": {
639
- "description": "Output in JSON format",
640
- "name": "json",
641
- "allowNo": false,
642
- "type": "boolean"
643
- },
644
- "apiKey": {
645
- "aliases": [
646
- "api-key"
647
- ],
648
- "description": "API key for devicecloud.dev (find this in the console UI). You can also set the DEVICE_CLOUD_API_KEY environment variable.",
649
- "name": "apiKey",
650
- "hasDynamicHelp": false,
651
- "multiple": false,
652
- "type": "option"
653
- },
654
- "apiUrl": {
655
- "aliases": [
656
- "api-url",
657
- "apiURL"
658
- ],
659
- "description": "API base URL",
660
- "hidden": true,
661
- "name": "apiUrl",
662
- "default": "https://api.devicecloud.dev",
663
- "hasDynamicHelp": false,
664
- "multiple": false,
665
- "type": "option"
666
- },
667
- "from": {
668
- "description": "Filter uploads created on or after this date (ISO 8601 format, e.g., 2024-01-01)",
669
- "name": "from",
670
- "hasDynamicHelp": false,
671
- "multiple": false,
672
- "type": "option"
673
- },
674
- "limit": {
675
- "description": "Maximum number of uploads to return",
676
- "name": "limit",
677
- "default": 20,
678
- "hasDynamicHelp": false,
679
- "multiple": false,
680
- "type": "option"
681
- },
682
- "name": {
683
- "description": "Filter by upload name (supports * wildcard, e.g., \"nightly-*\"). IMPORTANT: Always quote wildcards to prevent shell expansion!",
684
- "name": "name",
685
- "hasDynamicHelp": false,
686
- "multiple": false,
687
- "type": "option"
688
- },
689
- "offset": {
690
- "description": "Number of uploads to skip (for pagination)",
691
- "name": "offset",
692
- "default": 0,
693
- "hasDynamicHelp": false,
694
- "multiple": false,
695
- "type": "option"
696
- },
697
- "to": {
698
- "description": "Filter uploads created on or before this date (ISO 8601 format, e.g., 2024-01-31)",
699
- "name": "to",
700
- "hasDynamicHelp": false,
701
- "multiple": false,
702
- "type": "option"
703
- }
704
- },
705
- "hasDynamicHelp": false,
706
- "hiddenAliases": [],
707
- "id": "list",
708
- "pluginAlias": "@devicecloud.dev/dcd",
709
- "pluginName": "@devicecloud.dev/dcd",
710
- "pluginType": "core",
711
- "strict": true,
712
- "enableJsonFlag": true,
713
- "isESM": false,
714
- "relativePath": [
715
- "dist",
716
- "commands",
717
- "list.js"
718
- ]
719
- },
720
- "status": {
721
- "aliases": [],
722
- "args": {},
723
- "description": "Get the status of an upload by name or upload ID",
724
- "examples": [
725
- "<%= config.bin %> <%= command.id %> --name my-upload-name",
726
- "<%= config.bin %> <%= command.id %> --upload-id 123e4567-e89b-12d3-a456-426614174000 --json"
727
- ],
728
- "flags": {
729
- "json": {
730
- "description": "output in json format",
731
- "name": "json",
732
- "allowNo": false,
733
- "type": "boolean"
734
- },
735
- "apiKey": {
736
- "aliases": [
737
- "api-key"
738
- ],
739
- "description": "API key for devicecloud.dev (find this in the console UI). You can also set the DEVICE_CLOUD_API_KEY environment variable.",
740
- "name": "apiKey",
741
- "hasDynamicHelp": false,
742
- "multiple": false,
743
- "type": "option"
744
- },
745
- "apiUrl": {
746
- "aliases": [
747
- "api-url",
748
- "apiURL"
749
- ],
750
- "description": "API base URL",
751
- "hidden": true,
752
- "name": "apiUrl",
753
- "default": "https://api.devicecloud.dev",
754
- "hasDynamicHelp": false,
755
- "multiple": false,
756
- "type": "option"
757
- },
758
- "name": {
759
- "description": "Name of the upload to check status for",
760
- "exclusive": [
761
- "upload-id"
762
- ],
763
- "name": "name",
764
- "hasDynamicHelp": false,
765
- "multiple": false,
766
- "type": "option"
767
- },
768
- "upload-id": {
769
- "description": "UUID of the upload to check status for",
770
- "exclusive": [
771
- "name"
772
- ],
773
- "name": "upload-id",
774
- "hasDynamicHelp": false,
775
- "multiple": false,
776
- "type": "option"
777
- }
778
- },
779
- "hasDynamicHelp": false,
780
- "hiddenAliases": [],
781
- "id": "status",
782
- "pluginAlias": "@devicecloud.dev/dcd",
783
- "pluginName": "@devicecloud.dev/dcd",
784
- "pluginType": "core",
785
- "strict": true,
786
- "enableJsonFlag": true,
787
- "isESM": false,
788
- "relativePath": [
789
- "dist",
790
- "commands",
791
- "status.js"
792
- ]
793
- },
794
- "upload": {
795
- "aliases": [],
796
- "args": {
797
- "appFile": {
798
- "description": "The binary file or Expo signed URL to upload (e.g. test.apk, test.app, test.zip, build.tar.gz, or https://expo.dev/...)",
799
- "name": "appFile",
800
- "required": false
801
- }
802
- },
803
- "description": "Upload an app binary to devicecloud.dev",
804
- "examples": [
805
- "<%= config.bin %> <%= command.id %> path/to/app.apk",
806
- "<%= config.bin %> <%= command.id %> path/to/app.zip --api-key YOUR_API_KEY",
807
- "<%= config.bin %> <%= command.id %> path/to/build.tar.gz",
808
- "<%= config.bin %> <%= command.id %> --app-url https://expo.dev/artifacts/..."
809
- ],
810
- "flags": {
811
- "json": {
812
- "description": "Format output as json.",
813
- "helpGroup": "GLOBAL",
814
- "name": "json",
815
- "allowNo": false,
816
- "type": "boolean"
817
- },
818
- "apiKey": {
819
- "aliases": [
820
- "api-key"
821
- ],
822
- "description": "API key for devicecloud.dev (find this in the console UI). You can also set the DEVICE_CLOUD_API_KEY environment variable.",
823
- "name": "apiKey",
824
- "hasDynamicHelp": false,
825
- "multiple": false,
826
- "type": "option"
827
- },
828
- "apiUrl": {
829
- "aliases": [
830
- "api-url",
831
- "apiURL"
832
- ],
833
- "description": "API base URL",
834
- "hidden": true,
835
- "name": "apiUrl",
836
- "default": "https://api.devicecloud.dev",
837
- "hasDynamicHelp": false,
838
- "multiple": false,
839
- "type": "option"
840
- },
841
- "app-url": {
842
- "aliases": [
843
- "app-url"
844
- ],
845
- "description": "Signed URL to an Expo iOS build (.tar.gz). The archive is downloaded and extracted automatically. Expo signed URLs expire after ~1 hour.",
846
- "exclusive": [
847
- "app-file"
848
- ],
849
- "name": "app-url",
850
- "hasDynamicHelp": false,
851
- "multiple": false,
852
- "type": "option"
853
- },
854
- "debug": {
855
- "description": "Enable detailed debug logging for troubleshooting issues",
856
- "name": "debug",
857
- "allowNo": false,
858
- "type": "boolean"
859
- },
860
- "ignore-sha-check": {
861
- "description": "Ignore the sha hash check and upload the binary regardless of whether it already exists (not recommended)",
862
- "name": "ignore-sha-check",
863
- "allowNo": false,
864
- "type": "boolean"
865
- }
866
- },
867
- "hasDynamicHelp": false,
868
- "hiddenAliases": [],
869
- "id": "upload",
870
- "pluginAlias": "@devicecloud.dev/dcd",
871
- "pluginName": "@devicecloud.dev/dcd",
872
- "pluginType": "core",
873
- "strict": true,
874
- "enableJsonFlag": true,
875
- "isESM": false,
876
- "relativePath": [
877
- "dist",
878
- "commands",
879
- "upload.js"
880
- ]
881
- }
882
- },
883
- "version": "4.4.8"
884
- }