@capuchoo/cli 0.8.0 → 0.9.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 (74) hide show
  1. package/README.md +211 -23
  2. package/dist/cli/members.d.ts +23 -0
  3. package/dist/cli/members.d.ts.map +1 -0
  4. package/dist/cli/members.js +38 -0
  5. package/dist/cli/members.js.map +1 -0
  6. package/dist/cli/onboarding.d.ts +41 -0
  7. package/dist/cli/onboarding.d.ts.map +1 -0
  8. package/dist/cli/onboarding.js +94 -0
  9. package/dist/cli/onboarding.js.map +1 -0
  10. package/dist/cli/team.d.ts +16 -0
  11. package/dist/cli/team.d.ts.map +1 -0
  12. package/dist/cli/team.js +32 -0
  13. package/dist/cli/team.js.map +1 -0
  14. package/dist/commands/app/grant.d.ts +11 -0
  15. package/dist/commands/app/grant.d.ts.map +1 -0
  16. package/dist/commands/app/grant.js +31 -0
  17. package/dist/commands/app/grant.js.map +1 -0
  18. package/dist/commands/app/revoke.d.ts +13 -0
  19. package/dist/commands/app/revoke.d.ts.map +1 -0
  20. package/dist/commands/app/revoke.js +40 -0
  21. package/dist/commands/app/revoke.js.map +1 -0
  22. package/dist/commands/app/roles.d.ts +7 -0
  23. package/dist/commands/app/roles.d.ts.map +1 -0
  24. package/dist/commands/app/roles.js +30 -0
  25. package/dist/commands/app/roles.js.map +1 -0
  26. package/dist/commands/auth/issue.d.ts +12 -0
  27. package/dist/commands/auth/issue.d.ts.map +1 -0
  28. package/dist/commands/auth/issue.js +52 -0
  29. package/dist/commands/auth/issue.js.map +1 -0
  30. package/dist/commands/auth/keys.d.ts +7 -0
  31. package/dist/commands/auth/keys.d.ts.map +1 -0
  32. package/dist/commands/auth/keys.js +39 -0
  33. package/dist/commands/auth/keys.js.map +1 -0
  34. package/dist/commands/auth/login.d.ts +20 -0
  35. package/dist/commands/auth/login.d.ts.map +1 -1
  36. package/dist/commands/auth/login.js +90 -11
  37. package/dist/commands/auth/login.js.map +1 -1
  38. package/dist/commands/auth/revoke.d.ts +13 -0
  39. package/dist/commands/auth/revoke.d.ts.map +1 -0
  40. package/dist/commands/auth/revoke.js +48 -0
  41. package/dist/commands/auth/revoke.js.map +1 -0
  42. package/dist/commands/doctor.d.ts.map +1 -1
  43. package/dist/commands/doctor.js +1 -1
  44. package/dist/commands/doctor.js.map +1 -1
  45. package/dist/commands/init.d.ts +13 -0
  46. package/dist/commands/init.d.ts.map +1 -1
  47. package/dist/commands/init.js +69 -11
  48. package/dist/commands/init.js.map +1 -1
  49. package/dist/commands/menu.d.ts +3 -0
  50. package/dist/commands/menu.d.ts.map +1 -1
  51. package/dist/commands/menu.js +70 -15
  52. package/dist/commands/menu.js.map +1 -1
  53. package/dist/commands/org/invite.d.ts +14 -0
  54. package/dist/commands/org/invite.d.ts.map +1 -0
  55. package/dist/commands/org/invite.js +52 -0
  56. package/dist/commands/org/invite.js.map +1 -0
  57. package/dist/commands/org/members.d.ts +10 -0
  58. package/dist/commands/org/members.d.ts.map +1 -0
  59. package/dist/commands/org/members.js +49 -0
  60. package/dist/commands/org/members.js.map +1 -0
  61. package/dist/pipeline/app-identity.d.ts +35 -0
  62. package/dist/pipeline/app-identity.d.ts.map +1 -0
  63. package/dist/pipeline/app-identity.js +109 -0
  64. package/dist/pipeline/app-identity.js.map +1 -0
  65. package/dist/services/cloud.d.ts +69 -1
  66. package/dist/services/cloud.d.ts.map +1 -1
  67. package/dist/services/cloud.js +67 -1
  68. package/dist/services/cloud.js.map +1 -1
  69. package/dist/utils/http.d.ts +5 -0
  70. package/dist/utils/http.d.ts.map +1 -1
  71. package/dist/utils/http.js +13 -2
  72. package/dist/utils/http.js.map +1 -1
  73. package/oclif.manifest.json +374 -84
  74. package/package.json +5 -5
@@ -224,21 +224,35 @@
224
224
  "delete.js"
225
225
  ]
226
226
  },
227
- "app:list": {
227
+ "app:grant": {
228
228
  "aliases": [],
229
- "args": {},
230
- "description": "List the apps this account can reach",
231
- "flags": {
232
- "json": {
233
- "description": "Machine-readable output",
234
- "name": "json",
235
- "allowNo": false,
236
- "type": "boolean"
229
+ "args": {
230
+ "email": {
231
+ "description": "Account to grant",
232
+ "name": "email",
233
+ "required": true
234
+ },
235
+ "role": {
236
+ "description": "One of admin, developer, tester, viewer",
237
+ "name": "role",
238
+ "options": [
239
+ "admin",
240
+ "developer",
241
+ "tester",
242
+ "viewer"
243
+ ],
244
+ "required": true
237
245
  }
238
246
  },
247
+ "description": "Give someone a role on this app",
248
+ "examples": [
249
+ "<%= config.bin %> app grant dev@company.com developer",
250
+ "<%= config.bin %> app grant qa@company.com tester"
251
+ ],
252
+ "flags": {},
239
253
  "hasDynamicHelp": false,
240
254
  "hiddenAliases": [],
241
- "id": "app:list",
255
+ "id": "app:grant",
242
256
  "pluginAlias": "@capuchoo/cli",
243
257
  "pluginName": "@capuchoo/cli",
244
258
  "pluginType": "core",
@@ -248,38 +262,24 @@
248
262
  "dist",
249
263
  "commands",
250
264
  "app",
251
- "list.js"
265
+ "grant.js"
252
266
  ]
253
267
  },
254
- "auth:login": {
268
+ "app:list": {
255
269
  "aliases": [],
256
270
  "args": {},
257
- "description": "Store an API key for the Capuchoo backend",
258
- "examples": [
259
- "<%= config.bin %> auth login",
260
- "<%= config.bin %> auth login --endpoint https://capucho.internal --api-key cap_..."
261
- ],
271
+ "description": "List the apps this account can reach",
262
272
  "flags": {
263
- "api-key": {
264
- "char": "k",
265
- "description": "API key from Settings > API Keys in the dashboard",
266
- "name": "api-key",
267
- "hasDynamicHelp": false,
268
- "multiple": false,
269
- "type": "option"
270
- },
271
- "endpoint": {
272
- "char": "e",
273
- "description": "Backend base URL",
274
- "name": "endpoint",
275
- "hasDynamicHelp": false,
276
- "multiple": false,
277
- "type": "option"
273
+ "json": {
274
+ "description": "Machine-readable output",
275
+ "name": "json",
276
+ "allowNo": false,
277
+ "type": "boolean"
278
278
  }
279
279
  },
280
280
  "hasDynamicHelp": false,
281
281
  "hiddenAliases": [],
282
- "id": "auth:login",
282
+ "id": "app:list",
283
283
  "pluginAlias": "@capuchoo/cli",
284
284
  "pluginName": "@capuchoo/cli",
285
285
  "pluginType": "core",
@@ -288,18 +288,35 @@
288
288
  "relativePath": [
289
289
  "dist",
290
290
  "commands",
291
- "auth",
292
- "login.js"
291
+ "app",
292
+ "list.js"
293
293
  ]
294
294
  },
295
- "auth:logout": {
295
+ "app:revoke": {
296
296
  "aliases": [],
297
- "args": {},
298
- "description": "Remove the stored API key",
299
- "flags": {},
297
+ "args": {
298
+ "email": {
299
+ "description": "Account to revoke",
300
+ "name": "email",
301
+ "required": true
302
+ }
303
+ },
304
+ "description": "Remove someone's role on this app",
305
+ "examples": [
306
+ "<%= config.bin %> app revoke dev@company.com"
307
+ ],
308
+ "flags": {
309
+ "yes": {
310
+ "char": "y",
311
+ "description": "Skip the confirmation",
312
+ "name": "yes",
313
+ "allowNo": false,
314
+ "type": "boolean"
315
+ }
316
+ },
300
317
  "hasDynamicHelp": false,
301
318
  "hiddenAliases": [],
302
- "id": "auth:logout",
319
+ "id": "app:revoke",
303
320
  "pluginAlias": "@capuchoo/cli",
304
321
  "pluginName": "@capuchoo/cli",
305
322
  "pluginType": "core",
@@ -308,25 +325,21 @@
308
325
  "relativePath": [
309
326
  "dist",
310
327
  "commands",
311
- "auth",
312
- "logout.js"
328
+ "app",
329
+ "revoke.js"
313
330
  ]
314
331
  },
315
- "auth:whoami": {
332
+ "app:roles": {
316
333
  "aliases": [],
317
334
  "args": {},
318
- "description": "Show the signed-in account, and the organizations and apps it can reach",
319
- "flags": {
320
- "json": {
321
- "description": "Machine-readable output",
322
- "name": "json",
323
- "allowNo": false,
324
- "type": "boolean"
325
- }
326
- },
335
+ "description": "Show who can do what on this app",
336
+ "examples": [
337
+ "<%= config.bin %> app roles"
338
+ ],
339
+ "flags": {},
327
340
  "hasDynamicHelp": false,
328
341
  "hiddenAliases": [],
329
- "id": "auth:whoami",
342
+ "id": "app:roles",
330
343
  "pluginAlias": "@capuchoo/cli",
331
344
  "pluginName": "@capuchoo/cli",
332
345
  "pluginType": "core",
@@ -335,8 +348,8 @@
335
348
  "relativePath": [
336
349
  "dist",
337
350
  "commands",
338
- "auth",
339
- "whoami.js"
351
+ "app",
352
+ "roles.js"
340
353
  ]
341
354
  },
342
355
  "channel:create": {
@@ -460,21 +473,45 @@
460
473
  "list.js"
461
474
  ]
462
475
  },
463
- "config:list": {
476
+ "auth:issue": {
464
477
  "aliases": [],
465
478
  "args": {},
466
- "description": "Show the resolved configuration, and which build tools were found",
479
+ "description": "Create an API key, optionally limited to one app and one role",
480
+ "examples": [
481
+ "<%= config.bin %> auth issue --name ci --role developer --this-app",
482
+ "<%= config.bin %> auth issue --name readonly --role viewer"
483
+ ],
467
484
  "flags": {
468
- "json": {
469
- "description": "Machine-readable output",
470
- "name": "json",
485
+ "name": {
486
+ "description": "Label shown in capuchoo auth keys",
487
+ "name": "name",
488
+ "hasDynamicHelp": false,
489
+ "multiple": false,
490
+ "type": "option"
491
+ },
492
+ "role": {
493
+ "description": "Ceiling on what the key may do: viewer, tester, developer, admin",
494
+ "name": "role",
495
+ "hasDynamicHelp": false,
496
+ "multiple": false,
497
+ "options": [
498
+ "viewer",
499
+ "tester",
500
+ "developer",
501
+ "admin"
502
+ ],
503
+ "type": "option"
504
+ },
505
+ "this-app": {
506
+ "description": "Restrict the key to the app this directory is linked to",
507
+ "name": "this-app",
471
508
  "allowNo": false,
472
509
  "type": "boolean"
473
510
  }
474
511
  },
475
512
  "hasDynamicHelp": false,
476
513
  "hiddenAliases": [],
477
- "id": "config:list",
514
+ "id": "auth:issue",
478
515
  "pluginAlias": "@capuchoo/cli",
479
516
  "pluginName": "@capuchoo/cli",
480
517
  "pluginType": "core",
@@ -483,37 +520,119 @@
483
520
  "relativePath": [
484
521
  "dist",
485
522
  "commands",
486
- "config",
487
- "list.js"
523
+ "auth",
524
+ "issue.js"
488
525
  ]
489
526
  },
490
- "config:set": {
527
+ "auth:keys": {
491
528
  "aliases": [],
492
- "args": {
493
- "key": {
494
- "description": "Preference to set",
495
- "name": "key",
496
- "options": [
497
- "endpoint",
498
- "defaultChannel"
499
- ],
500
- "required": true
529
+ "args": {},
530
+ "description": "List the API keys on this account",
531
+ "examples": [
532
+ "<%= config.bin %> auth keys"
533
+ ],
534
+ "flags": {},
535
+ "hasDynamicHelp": false,
536
+ "hiddenAliases": [],
537
+ "id": "auth:keys",
538
+ "pluginAlias": "@capuchoo/cli",
539
+ "pluginName": "@capuchoo/cli",
540
+ "pluginType": "core",
541
+ "strict": true,
542
+ "isESM": true,
543
+ "relativePath": [
544
+ "dist",
545
+ "commands",
546
+ "auth",
547
+ "keys.js"
548
+ ]
549
+ },
550
+ "auth:login": {
551
+ "aliases": [],
552
+ "args": {},
553
+ "description": "Sign in to a Capuchoo backend",
554
+ "examples": [
555
+ "<%= config.bin %> auth login",
556
+ "<%= config.bin %> auth login --endpoint https://capucho.internal --api-key cap_..."
557
+ ],
558
+ "flags": {
559
+ "api-key": {
560
+ "char": "k",
561
+ "description": "API key from Settings > API Keys in the dashboard",
562
+ "name": "api-key",
563
+ "hasDynamicHelp": false,
564
+ "multiple": false,
565
+ "type": "option"
501
566
  },
502
- "value": {
503
- "description": "New value",
504
- "name": "value",
567
+ "endpoint": {
568
+ "char": "e",
569
+ "description": "Backend base URL",
570
+ "name": "endpoint",
571
+ "hasDynamicHelp": false,
572
+ "multiple": false,
573
+ "type": "option"
574
+ }
575
+ },
576
+ "hasDynamicHelp": false,
577
+ "hiddenAliases": [],
578
+ "id": "auth:login",
579
+ "pluginAlias": "@capuchoo/cli",
580
+ "pluginName": "@capuchoo/cli",
581
+ "pluginType": "core",
582
+ "strict": true,
583
+ "isESM": true,
584
+ "relativePath": [
585
+ "dist",
586
+ "commands",
587
+ "auth",
588
+ "login.js"
589
+ ]
590
+ },
591
+ "auth:logout": {
592
+ "aliases": [],
593
+ "args": {},
594
+ "description": "Remove the stored API key",
595
+ "flags": {},
596
+ "hasDynamicHelp": false,
597
+ "hiddenAliases": [],
598
+ "id": "auth:logout",
599
+ "pluginAlias": "@capuchoo/cli",
600
+ "pluginName": "@capuchoo/cli",
601
+ "pluginType": "core",
602
+ "strict": true,
603
+ "isESM": true,
604
+ "relativePath": [
605
+ "dist",
606
+ "commands",
607
+ "auth",
608
+ "logout.js"
609
+ ]
610
+ },
611
+ "auth:revoke": {
612
+ "aliases": [],
613
+ "args": {
614
+ "id": {
615
+ "description": "Key id, from capuchoo auth keys",
616
+ "name": "id",
505
617
  "required": true
506
618
  }
507
619
  },
508
- "description": "Set a user preference in ~/.capuchoo/config.json",
620
+ "description": "Revoke an API key",
509
621
  "examples": [
510
- "<%= config.bin %> config set endpoint https://capucho.internal",
511
- "<%= config.bin %> config set defaultChannel staging"
622
+ "<%= config.bin %> auth revoke <id>"
512
623
  ],
513
- "flags": {},
624
+ "flags": {
625
+ "yes": {
626
+ "char": "y",
627
+ "description": "Skip the confirmation",
628
+ "name": "yes",
629
+ "allowNo": false,
630
+ "type": "boolean"
631
+ }
632
+ },
514
633
  "hasDynamicHelp": false,
515
634
  "hiddenAliases": [],
516
- "id": "config:set",
635
+ "id": "auth:revoke",
517
636
  "pluginAlias": "@capuchoo/cli",
518
637
  "pluginName": "@capuchoo/cli",
519
638
  "pluginType": "core",
@@ -522,8 +641,35 @@
522
641
  "relativePath": [
523
642
  "dist",
524
643
  "commands",
525
- "config",
526
- "set.js"
644
+ "auth",
645
+ "revoke.js"
646
+ ]
647
+ },
648
+ "auth:whoami": {
649
+ "aliases": [],
650
+ "args": {},
651
+ "description": "Show the signed-in account, and the organizations and apps it can reach",
652
+ "flags": {
653
+ "json": {
654
+ "description": "Machine-readable output",
655
+ "name": "json",
656
+ "allowNo": false,
657
+ "type": "boolean"
658
+ }
659
+ },
660
+ "hasDynamicHelp": false,
661
+ "hiddenAliases": [],
662
+ "id": "auth:whoami",
663
+ "pluginAlias": "@capuchoo/cli",
664
+ "pluginName": "@capuchoo/cli",
665
+ "pluginType": "core",
666
+ "strict": true,
667
+ "isESM": true,
668
+ "relativePath": [
669
+ "dist",
670
+ "commands",
671
+ "auth",
672
+ "whoami.js"
527
673
  ]
528
674
  },
529
675
  "deploy:native": {
@@ -777,6 +923,72 @@
777
923
  "ota.js"
778
924
  ]
779
925
  },
926
+ "config:list": {
927
+ "aliases": [],
928
+ "args": {},
929
+ "description": "Show the resolved configuration, and which build tools were found",
930
+ "flags": {
931
+ "json": {
932
+ "description": "Machine-readable output",
933
+ "name": "json",
934
+ "allowNo": false,
935
+ "type": "boolean"
936
+ }
937
+ },
938
+ "hasDynamicHelp": false,
939
+ "hiddenAliases": [],
940
+ "id": "config:list",
941
+ "pluginAlias": "@capuchoo/cli",
942
+ "pluginName": "@capuchoo/cli",
943
+ "pluginType": "core",
944
+ "strict": true,
945
+ "isESM": true,
946
+ "relativePath": [
947
+ "dist",
948
+ "commands",
949
+ "config",
950
+ "list.js"
951
+ ]
952
+ },
953
+ "config:set": {
954
+ "aliases": [],
955
+ "args": {
956
+ "key": {
957
+ "description": "Preference to set",
958
+ "name": "key",
959
+ "options": [
960
+ "endpoint",
961
+ "defaultChannel"
962
+ ],
963
+ "required": true
964
+ },
965
+ "value": {
966
+ "description": "New value",
967
+ "name": "value",
968
+ "required": true
969
+ }
970
+ },
971
+ "description": "Set a user preference in ~/.capuchoo/config.json",
972
+ "examples": [
973
+ "<%= config.bin %> config set endpoint https://capucho.internal",
974
+ "<%= config.bin %> config set defaultChannel staging"
975
+ ],
976
+ "flags": {},
977
+ "hasDynamicHelp": false,
978
+ "hiddenAliases": [],
979
+ "id": "config:set",
980
+ "pluginAlias": "@capuchoo/cli",
981
+ "pluginName": "@capuchoo/cli",
982
+ "pluginType": "core",
983
+ "strict": true,
984
+ "isESM": true,
985
+ "relativePath": [
986
+ "dist",
987
+ "commands",
988
+ "config",
989
+ "set.js"
990
+ ]
991
+ },
780
992
  "org:create": {
781
993
  "aliases": [],
782
994
  "args": {
@@ -813,6 +1025,53 @@
813
1025
  "create.js"
814
1026
  ]
815
1027
  },
1028
+ "org:invite": {
1029
+ "aliases": [],
1030
+ "args": {
1031
+ "email": {
1032
+ "description": "Account to add",
1033
+ "name": "email",
1034
+ "required": true
1035
+ },
1036
+ "role": {
1037
+ "description": "One of owner, admin, member",
1038
+ "name": "role",
1039
+ "options": [
1040
+ "owner",
1041
+ "admin",
1042
+ "member"
1043
+ ],
1044
+ "required": true
1045
+ }
1046
+ },
1047
+ "description": "Add an existing account to an organization",
1048
+ "examples": [
1049
+ "<%= config.bin %> org invite dev@company.com member"
1050
+ ],
1051
+ "flags": {
1052
+ "org": {
1053
+ "description": "Organization by name or id",
1054
+ "name": "org",
1055
+ "hasDynamicHelp": false,
1056
+ "multiple": false,
1057
+ "type": "option"
1058
+ }
1059
+ },
1060
+ "hasDynamicHelp": false,
1061
+ "hiddenAliases": [],
1062
+ "id": "org:invite",
1063
+ "pluginAlias": "@capuchoo/cli",
1064
+ "pluginName": "@capuchoo/cli",
1065
+ "pluginType": "core",
1066
+ "strict": true,
1067
+ "isESM": true,
1068
+ "relativePath": [
1069
+ "dist",
1070
+ "commands",
1071
+ "org",
1072
+ "invite.js"
1073
+ ]
1074
+ },
816
1075
  "org:list": {
817
1076
  "aliases": [],
818
1077
  "args": {},
@@ -840,6 +1099,37 @@
840
1099
  "list.js"
841
1100
  ]
842
1101
  },
1102
+ "org:members": {
1103
+ "aliases": [],
1104
+ "args": {},
1105
+ "description": "List the people in an organization",
1106
+ "examples": [
1107
+ "<%= config.bin %> org members"
1108
+ ],
1109
+ "flags": {
1110
+ "org": {
1111
+ "description": "Organization by name or id",
1112
+ "name": "org",
1113
+ "hasDynamicHelp": false,
1114
+ "multiple": false,
1115
+ "type": "option"
1116
+ }
1117
+ },
1118
+ "hasDynamicHelp": false,
1119
+ "hiddenAliases": [],
1120
+ "id": "org:members",
1121
+ "pluginAlias": "@capuchoo/cli",
1122
+ "pluginName": "@capuchoo/cli",
1123
+ "pluginType": "core",
1124
+ "strict": true,
1125
+ "isESM": true,
1126
+ "relativePath": [
1127
+ "dist",
1128
+ "commands",
1129
+ "org",
1130
+ "members.js"
1131
+ ]
1132
+ },
843
1133
  "version:bump": {
844
1134
  "aliases": [],
845
1135
  "args": {
@@ -941,5 +1231,5 @@
941
1231
  ]
942
1232
  }
943
1233
  },
944
- "version": "0.8.0"
1234
+ "version": "0.9.0"
945
1235
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capuchoo/cli",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Builds and publishes OTA and native releases for Capacitor applications through Capucho.",
5
5
  "keywords": [
6
6
  "capacitor",
@@ -37,7 +37,7 @@
37
37
  "@oclif/plugin-help": "^6",
38
38
  "chalk": "^5.6.2",
39
39
  "ora": "^9.0.0",
40
- "@capuchoo/core": "^0.4.0"
40
+ "@capuchoo/core": "^0.5.0"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^24.10.4",
@@ -55,10 +55,10 @@
55
55
  "topicSeparator": " ",
56
56
  "topics": {
57
57
  "app": {
58
- "description": "List and delete apps"
58
+ "description": "List and delete apps, and manage who can publish"
59
59
  },
60
60
  "auth": {
61
- "description": "Sign in to a Capuchoo backend"
61
+ "description": "Sign in, and manage this account's API keys"
62
62
  },
63
63
  "channel": {
64
64
  "description": "Create and inspect an app's channels"
@@ -70,7 +70,7 @@
70
70
  "description": "Build and publish a release"
71
71
  },
72
72
  "org": {
73
- "description": "Create and list organizations"
73
+ "description": "Create organizations and manage who is in them"
74
74
  },
75
75
  "version": {
76
76
  "description": "Manage the app version and native build numbers"