@heroku/skynet 1.13.0 → 2.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.
Files changed (62) hide show
  1. package/dist/commands/allowlist/add.d.ts +11 -0
  2. package/dist/commands/allowlist/add.js +34 -0
  3. package/dist/commands/allowlist/remove.d.ts +10 -0
  4. package/dist/commands/allowlist/remove.js +27 -0
  5. package/dist/commands/allowlists.d.ts +7 -0
  6. package/dist/commands/allowlists.js +24 -0
  7. package/dist/commands/categories/add.d.ts +10 -0
  8. package/dist/commands/categories/add.js +33 -0
  9. package/dist/commands/categories/get.d.ts +7 -0
  10. package/dist/commands/categories/get.js +19 -0
  11. package/dist/commands/categories/remove.d.ts +9 -0
  12. package/dist/commands/categories/remove.js +26 -0
  13. package/dist/commands/deprovision.d.ts +14 -0
  14. package/dist/commands/deprovision.js +80 -0
  15. package/dist/commands/suspend/app-owner.d.ts +15 -0
  16. package/dist/commands/suspend/app-owner.js +87 -0
  17. package/dist/commands/suspend/apps.d.ts +13 -0
  18. package/dist/commands/suspend/apps.js +54 -0
  19. package/dist/commands/suspend/user.d.ts +17 -0
  20. package/dist/commands/suspend/user.js +110 -0
  21. package/dist/commands/suspensions.d.ts +9 -0
  22. package/dist/commands/suspensions.js +25 -0
  23. package/dist/commands/unsuspend/apps.d.ts +11 -0
  24. package/dist/commands/unsuspend/apps.js +48 -0
  25. package/dist/commands/unsuspend/user.d.ts +11 -0
  26. package/dist/commands/unsuspend/user.js +49 -0
  27. package/dist/commands/userpass/add.d.ts +10 -0
  28. package/dist/commands/userpass/add.js +33 -0
  29. package/dist/commands/userpass/remove.d.ts +10 -0
  30. package/dist/commands/userpass/remove.js +33 -0
  31. package/dist/lib/heroku.d.ts +13 -0
  32. package/dist/lib/heroku.js +32 -0
  33. package/dist/lib/skynet.d.ts +32 -0
  34. package/dist/lib/skynet.js +215 -0
  35. package/dist/lib/sudo.d.ts +1 -0
  36. package/dist/lib/sudo.js +7 -0
  37. package/dist/lib/utils.d.ts +5 -0
  38. package/dist/lib/utils.js +57 -0
  39. package/oclif.manifest.json +730 -0
  40. package/package.json +61 -23
  41. package/commands/allowlist/add.js +0 -38
  42. package/commands/allowlist/remove.js +0 -29
  43. package/commands/allowlists.js +0 -30
  44. package/commands/categories/add.js +0 -40
  45. package/commands/categories/get.js +0 -27
  46. package/commands/categories/remove.js +0 -33
  47. package/commands/deprovision.js +0 -42
  48. package/commands/suspend/app-owner.js +0 -58
  49. package/commands/suspend/apps.js +0 -34
  50. package/commands/suspend/user.js +0 -80
  51. package/commands/suspensions.js +0 -24
  52. package/commands/unsuspend/apps.js +0 -33
  53. package/commands/unsuspend/user.js +0 -33
  54. package/commands/userpass/add.js +0 -21
  55. package/commands/userpass/remove.js +0 -21
  56. package/index.js +0 -23
  57. package/lib/command.js +0 -12
  58. package/lib/heroku.js +0 -30
  59. package/lib/notifyOption.js +0 -24
  60. package/lib/skynet.js +0 -218
  61. package/lib/sudo.js +0 -5
  62. package/lib/utils.js +0 -35
@@ -0,0 +1,730 @@
1
+ {
2
+ "commands": {
3
+ "allowlists": {
4
+ "aliases": [],
5
+ "args": {},
6
+ "description": "allowlists used by skynet",
7
+ "examples": [
8
+ "$ heroku skynet:allowlists"
9
+ ],
10
+ "flags": {},
11
+ "hasDynamicHelp": false,
12
+ "hiddenAliases": [],
13
+ "id": "allowlists",
14
+ "pluginAlias": "@heroku/skynet",
15
+ "pluginName": "@heroku/skynet",
16
+ "pluginType": "core",
17
+ "strict": true,
18
+ "isESM": true,
19
+ "relativePath": [
20
+ "dist",
21
+ "commands",
22
+ "allowlists.js"
23
+ ]
24
+ },
25
+ "deprovision": {
26
+ "aliases": [],
27
+ "args": {},
28
+ "description": "(requires sudo) suspends a user and deprovisions all addons",
29
+ "examples": [
30
+ "$ heroku skynet:deprovision -u foo@bar.com -n \"helpful suspend message\" -c \"spam\""
31
+ ],
32
+ "flags": {
33
+ "user": {
34
+ "char": "u",
35
+ "description": "user to deprovision",
36
+ "name": "user",
37
+ "hasDynamicHelp": false,
38
+ "multiple": false,
39
+ "type": "option"
40
+ },
41
+ "category": {
42
+ "char": "c",
43
+ "description": "suspension category",
44
+ "name": "category",
45
+ "required": true,
46
+ "hasDynamicHelp": false,
47
+ "multiple": false,
48
+ "type": "option"
49
+ },
50
+ "notes": {
51
+ "char": "n",
52
+ "description": "suspend notes",
53
+ "name": "notes",
54
+ "required": true,
55
+ "hasDynamicHelp": false,
56
+ "multiple": false,
57
+ "type": "option"
58
+ },
59
+ "bypass": {
60
+ "description": "force suspension, bypassing skynet safety checks",
61
+ "name": "bypass",
62
+ "required": false,
63
+ "allowNo": false,
64
+ "type": "boolean"
65
+ },
66
+ "notify": {
67
+ "description": "send user suspension email notification",
68
+ "name": "notify",
69
+ "required": false,
70
+ "allowNo": false,
71
+ "type": "boolean"
72
+ },
73
+ "no-notify": {
74
+ "description": "skip user suspension email notification",
75
+ "name": "no-notify",
76
+ "required": false,
77
+ "allowNo": false,
78
+ "type": "boolean"
79
+ }
80
+ },
81
+ "hasDynamicHelp": false,
82
+ "hiddenAliases": [],
83
+ "id": "deprovision",
84
+ "pluginAlias": "@heroku/skynet",
85
+ "pluginName": "@heroku/skynet",
86
+ "pluginType": "core",
87
+ "strict": true,
88
+ "isESM": true,
89
+ "relativePath": [
90
+ "dist",
91
+ "commands",
92
+ "deprovision.js"
93
+ ]
94
+ },
95
+ "suspensions": {
96
+ "aliases": [],
97
+ "args": {},
98
+ "description": "(requires sudo) suspension history of the given user account",
99
+ "examples": [
100
+ "$ heroku skynet:suspensions -a [user account]"
101
+ ],
102
+ "flags": {
103
+ "account": {
104
+ "char": "a",
105
+ "description": "user account email",
106
+ "name": "account",
107
+ "required": true,
108
+ "hasDynamicHelp": false,
109
+ "multiple": false,
110
+ "type": "option"
111
+ }
112
+ },
113
+ "hasDynamicHelp": false,
114
+ "hiddenAliases": [],
115
+ "id": "suspensions",
116
+ "pluginAlias": "@heroku/skynet",
117
+ "pluginName": "@heroku/skynet",
118
+ "pluginType": "core",
119
+ "strict": true,
120
+ "isESM": true,
121
+ "relativePath": [
122
+ "dist",
123
+ "commands",
124
+ "suspensions.js"
125
+ ]
126
+ },
127
+ "allowlist:add": {
128
+ "aliases": [],
129
+ "args": {},
130
+ "description": "adds an app or user to the allowlist",
131
+ "examples": [
132
+ "$ heroku skynet:allowlist:add -v foo@bar.com -n Additional info"
133
+ ],
134
+ "flags": {
135
+ "value": {
136
+ "char": "v",
137
+ "description": "app name or user email to allowlist",
138
+ "name": "value",
139
+ "required": true,
140
+ "hasDynamicHelp": false,
141
+ "multiple": false,
142
+ "type": "option"
143
+ },
144
+ "notes": {
145
+ "char": "n",
146
+ "description": "additional information for the allowlist entry",
147
+ "name": "notes",
148
+ "required": true,
149
+ "hasDynamicHelp": false,
150
+ "multiple": false,
151
+ "type": "option"
152
+ }
153
+ },
154
+ "hasDynamicHelp": false,
155
+ "hiddenAliases": [
156
+ "allowlist:append"
157
+ ],
158
+ "id": "allowlist:add",
159
+ "pluginAlias": "@heroku/skynet",
160
+ "pluginName": "@heroku/skynet",
161
+ "pluginType": "core",
162
+ "strict": true,
163
+ "isESM": true,
164
+ "relativePath": [
165
+ "dist",
166
+ "commands",
167
+ "allowlist",
168
+ "add.js"
169
+ ]
170
+ },
171
+ "allowlist:remove": {
172
+ "aliases": [],
173
+ "args": {},
174
+ "description": "Remove user or app from the allowlist",
175
+ "examples": [
176
+ "$ heroku skynet:allowlist:remove -v foo@bar.com"
177
+ ],
178
+ "flags": {
179
+ "value": {
180
+ "char": "v",
181
+ "description": "app name or user email to remove from allowlist",
182
+ "name": "value",
183
+ "required": true,
184
+ "hasDynamicHelp": false,
185
+ "multiple": false,
186
+ "type": "option"
187
+ }
188
+ },
189
+ "hasDynamicHelp": false,
190
+ "hiddenAliases": [
191
+ "allowlist:remove"
192
+ ],
193
+ "id": "allowlist:remove",
194
+ "pluginAlias": "@heroku/skynet",
195
+ "pluginName": "@heroku/skynet",
196
+ "pluginType": "core",
197
+ "strict": true,
198
+ "isESM": true,
199
+ "relativePath": [
200
+ "dist",
201
+ "commands",
202
+ "allowlist",
203
+ "remove.js"
204
+ ]
205
+ },
206
+ "categories:add": {
207
+ "aliases": [],
208
+ "args": {},
209
+ "description": "(requires sudo) Adds a category for use when suspending or deprovisioning",
210
+ "examples": [
211
+ "$ heroku skynet:categories:add -n Cryptominer -d \"Abusers running cryptomining on the platform\""
212
+ ],
213
+ "flags": {
214
+ "name": {
215
+ "char": "n",
216
+ "description": "The name of the category",
217
+ "name": "name",
218
+ "required": true,
219
+ "hasDynamicHelp": false,
220
+ "multiple": false,
221
+ "type": "option"
222
+ },
223
+ "description": {
224
+ "char": "d",
225
+ "description": "The description of the category",
226
+ "name": "description",
227
+ "required": true,
228
+ "hasDynamicHelp": false,
229
+ "multiple": false,
230
+ "type": "option"
231
+ }
232
+ },
233
+ "hasDynamicHelp": false,
234
+ "hiddenAliases": [],
235
+ "id": "categories:add",
236
+ "pluginAlias": "@heroku/skynet",
237
+ "pluginName": "@heroku/skynet",
238
+ "pluginType": "core",
239
+ "strict": true,
240
+ "isESM": true,
241
+ "relativePath": [
242
+ "dist",
243
+ "commands",
244
+ "categories",
245
+ "add.js"
246
+ ]
247
+ },
248
+ "categories:get": {
249
+ "aliases": [],
250
+ "args": {},
251
+ "description": "(requires sudo) categories to use for suspension and deprovisions",
252
+ "examples": [
253
+ "$ heroku skynet:categories"
254
+ ],
255
+ "flags": {},
256
+ "hasDynamicHelp": false,
257
+ "hiddenAliases": [],
258
+ "id": "categories:get",
259
+ "pluginAlias": "@heroku/skynet",
260
+ "pluginName": "@heroku/skynet",
261
+ "pluginType": "core",
262
+ "strict": true,
263
+ "isESM": true,
264
+ "relativePath": [
265
+ "dist",
266
+ "commands",
267
+ "categories",
268
+ "get.js"
269
+ ]
270
+ },
271
+ "categories:remove": {
272
+ "aliases": [],
273
+ "args": {},
274
+ "description": "(requires sudo) Removes a category from Skynet",
275
+ "examples": [
276
+ "$ heroku skynet:categories:remove -n Cryptominer"
277
+ ],
278
+ "flags": {
279
+ "name": {
280
+ "char": "n",
281
+ "description": "The name of the category",
282
+ "name": "name",
283
+ "required": true,
284
+ "hasDynamicHelp": false,
285
+ "multiple": false,
286
+ "type": "option"
287
+ }
288
+ },
289
+ "hasDynamicHelp": false,
290
+ "hiddenAliases": [],
291
+ "id": "categories:remove",
292
+ "pluginAlias": "@heroku/skynet",
293
+ "pluginName": "@heroku/skynet",
294
+ "pluginType": "core",
295
+ "strict": true,
296
+ "isESM": true,
297
+ "relativePath": [
298
+ "dist",
299
+ "commands",
300
+ "categories",
301
+ "remove.js"
302
+ ]
303
+ },
304
+ "suspend:app-owner": {
305
+ "aliases": [],
306
+ "args": {},
307
+ "description": "(requires sudo) suspends the owner of a given app",
308
+ "examples": [
309
+ "$ heroku skynet:suspend:app-owner -a foobar -n \"helpful suspend message\" -c \"ddos\""
310
+ ],
311
+ "flags": {
312
+ "app": {
313
+ "char": "a",
314
+ "description": "app that requires owner suspension",
315
+ "name": "app",
316
+ "hasDynamicHelp": false,
317
+ "multiple": false,
318
+ "type": "option"
319
+ },
320
+ "infile": {
321
+ "char": "i",
322
+ "description": "file of apps that require owner suspension",
323
+ "name": "infile",
324
+ "hasDynamicHelp": false,
325
+ "multiple": false,
326
+ "type": "option"
327
+ },
328
+ "category": {
329
+ "char": "c",
330
+ "description": "suspension category",
331
+ "name": "category",
332
+ "required": true,
333
+ "hasDynamicHelp": false,
334
+ "multiple": false,
335
+ "type": "option"
336
+ },
337
+ "notes": {
338
+ "char": "n",
339
+ "description": "suspend notes",
340
+ "name": "notes",
341
+ "required": true,
342
+ "hasDynamicHelp": false,
343
+ "multiple": false,
344
+ "type": "option"
345
+ },
346
+ "bypass": {
347
+ "description": "force suspension, bypassing skynet safety checks",
348
+ "name": "bypass",
349
+ "required": false,
350
+ "allowNo": false,
351
+ "type": "boolean"
352
+ },
353
+ "deprovision": {
354
+ "char": "d",
355
+ "description": "put user into the fast resource deletion flow",
356
+ "name": "deprovision",
357
+ "required": false,
358
+ "allowNo": false,
359
+ "type": "boolean"
360
+ },
361
+ "async": {
362
+ "description": "do not wait for suspension to complete",
363
+ "name": "async",
364
+ "required": false,
365
+ "allowNo": false,
366
+ "type": "boolean"
367
+ }
368
+ },
369
+ "hasDynamicHelp": false,
370
+ "hiddenAliases": [],
371
+ "id": "suspend:app-owner",
372
+ "pluginAlias": "@heroku/skynet",
373
+ "pluginName": "@heroku/skynet",
374
+ "pluginType": "core",
375
+ "strict": true,
376
+ "isESM": true,
377
+ "relativePath": [
378
+ "dist",
379
+ "commands",
380
+ "suspend",
381
+ "app-owner.js"
382
+ ]
383
+ },
384
+ "suspend:apps": {
385
+ "aliases": [],
386
+ "args": {},
387
+ "description": "(requires sudo) suspends an app",
388
+ "examples": [
389
+ "$ heroku skynet:suspend:app -a test-app -c \"category\" -n \"helpful suspend message\""
390
+ ],
391
+ "flags": {
392
+ "app": {
393
+ "char": "a",
394
+ "description": "app to suspend",
395
+ "name": "app",
396
+ "required": true,
397
+ "hasDynamicHelp": false,
398
+ "multiple": false,
399
+ "type": "option"
400
+ },
401
+ "notes": {
402
+ "char": "n",
403
+ "description": "suspend notes",
404
+ "name": "notes",
405
+ "required": true,
406
+ "hasDynamicHelp": false,
407
+ "multiple": false,
408
+ "type": "option"
409
+ },
410
+ "category": {
411
+ "char": "c",
412
+ "description": "suspension category",
413
+ "name": "category",
414
+ "required": true,
415
+ "hasDynamicHelp": false,
416
+ "multiple": false,
417
+ "type": "option"
418
+ },
419
+ "bypass": {
420
+ "description": "force suspension, bypassing skynet safety checks",
421
+ "name": "bypass",
422
+ "required": false,
423
+ "allowNo": false,
424
+ "type": "boolean"
425
+ },
426
+ "async": {
427
+ "description": "do not wait for suspension to complete",
428
+ "name": "async",
429
+ "required": false,
430
+ "allowNo": false,
431
+ "type": "boolean"
432
+ }
433
+ },
434
+ "hasDynamicHelp": false,
435
+ "hiddenAliases": [],
436
+ "id": "suspend:apps",
437
+ "pluginAlias": "@heroku/skynet",
438
+ "pluginName": "@heroku/skynet",
439
+ "pluginType": "core",
440
+ "strict": true,
441
+ "isESM": true,
442
+ "relativePath": [
443
+ "dist",
444
+ "commands",
445
+ "suspend",
446
+ "apps.js"
447
+ ]
448
+ },
449
+ "suspend:user": {
450
+ "aliases": [],
451
+ "args": {},
452
+ "description": "(requires sudo) suspends a user",
453
+ "examples": [
454
+ "$ heroku sudo skynet:suspend:user -u foo@bar.com -n \"helpful suspend message\" -c \"ddos\""
455
+ ],
456
+ "flags": {
457
+ "user": {
458
+ "char": "u",
459
+ "description": "user to suspend",
460
+ "name": "user",
461
+ "hasDynamicHelp": false,
462
+ "multiple": false,
463
+ "type": "option"
464
+ },
465
+ "infile": {
466
+ "char": "i",
467
+ "description": "file of users to suspend",
468
+ "name": "infile",
469
+ "hasDynamicHelp": false,
470
+ "multiple": false,
471
+ "type": "option"
472
+ },
473
+ "category": {
474
+ "char": "c",
475
+ "description": "suspension category",
476
+ "name": "category",
477
+ "required": true,
478
+ "hasDynamicHelp": false,
479
+ "multiple": false,
480
+ "type": "option"
481
+ },
482
+ "notes": {
483
+ "char": "n",
484
+ "description": "suspend notes",
485
+ "name": "notes",
486
+ "required": true,
487
+ "hasDynamicHelp": false,
488
+ "multiple": false,
489
+ "type": "option"
490
+ },
491
+ "bypass": {
492
+ "description": "force suspension, bypassing skynet safety checks",
493
+ "name": "bypass",
494
+ "required": false,
495
+ "allowNo": false,
496
+ "type": "boolean"
497
+ },
498
+ "no-notify": {
499
+ "description": "skip user suspension email notification",
500
+ "name": "no-notify",
501
+ "required": false,
502
+ "allowNo": false,
503
+ "type": "boolean"
504
+ },
505
+ "notify": {
506
+ "description": "send user suspension email notification",
507
+ "name": "notify",
508
+ "required": false,
509
+ "allowNo": false,
510
+ "type": "boolean"
511
+ },
512
+ "deprovision": {
513
+ "char": "d",
514
+ "description": "put user into the fast resource deletion flow",
515
+ "name": "deprovision",
516
+ "required": false,
517
+ "allowNo": false,
518
+ "type": "boolean"
519
+ },
520
+ "async": {
521
+ "description": "do not wait for suspension to complete",
522
+ "name": "async",
523
+ "required": false,
524
+ "allowNo": false,
525
+ "type": "boolean"
526
+ }
527
+ },
528
+ "hasDynamicHelp": false,
529
+ "hiddenAliases": [],
530
+ "id": "suspend:user",
531
+ "pluginAlias": "@heroku/skynet",
532
+ "pluginName": "@heroku/skynet",
533
+ "pluginType": "core",
534
+ "strict": true,
535
+ "isESM": true,
536
+ "relativePath": [
537
+ "dist",
538
+ "commands",
539
+ "suspend",
540
+ "user.js"
541
+ ]
542
+ },
543
+ "unsuspend:apps": {
544
+ "aliases": [],
545
+ "args": {},
546
+ "description": "(requires sudo) unsuspends an app",
547
+ "examples": [
548
+ "$ heroku skynet:unsuspend:app -a test-app -n \"helpful unsuspend message\" -c \"unsuspend-apology\""
549
+ ],
550
+ "flags": {
551
+ "app": {
552
+ "char": "a",
553
+ "description": "app to unsuspend",
554
+ "name": "app",
555
+ "required": true,
556
+ "hasDynamicHelp": false,
557
+ "multiple": false,
558
+ "type": "option"
559
+ },
560
+ "category": {
561
+ "char": "c",
562
+ "description": "unsuspension category",
563
+ "name": "category",
564
+ "required": true,
565
+ "hasDynamicHelp": false,
566
+ "multiple": false,
567
+ "type": "option"
568
+ },
569
+ "notes": {
570
+ "char": "n",
571
+ "description": "unsuspend notes",
572
+ "name": "notes",
573
+ "required": true,
574
+ "hasDynamicHelp": false,
575
+ "multiple": false,
576
+ "type": "option"
577
+ }
578
+ },
579
+ "hasDynamicHelp": false,
580
+ "hiddenAliases": [],
581
+ "id": "unsuspend:apps",
582
+ "pluginAlias": "@heroku/skynet",
583
+ "pluginName": "@heroku/skynet",
584
+ "pluginType": "core",
585
+ "strict": true,
586
+ "isESM": true,
587
+ "relativePath": [
588
+ "dist",
589
+ "commands",
590
+ "unsuspend",
591
+ "apps.js"
592
+ ]
593
+ },
594
+ "unsuspend:user": {
595
+ "aliases": [],
596
+ "args": {},
597
+ "description": "(requires sudo) unsuspends a user",
598
+ "examples": [
599
+ "$ heroku skynet:unsuspend:user -u foo@bar.com -n \"helpful unsuspend message\" -c \"unsuspend-account-recovery\""
600
+ ],
601
+ "flags": {
602
+ "user": {
603
+ "char": "u",
604
+ "description": "user to unsuspend",
605
+ "name": "user",
606
+ "hasDynamicHelp": false,
607
+ "multiple": false,
608
+ "type": "option"
609
+ },
610
+ "category": {
611
+ "char": "c",
612
+ "description": "unsuspension category",
613
+ "name": "category",
614
+ "required": true,
615
+ "hasDynamicHelp": false,
616
+ "multiple": false,
617
+ "type": "option"
618
+ },
619
+ "notes": {
620
+ "char": "n",
621
+ "description": "unsuspend notes",
622
+ "name": "notes",
623
+ "required": true,
624
+ "hasDynamicHelp": false,
625
+ "multiple": false,
626
+ "type": "option"
627
+ }
628
+ },
629
+ "hasDynamicHelp": false,
630
+ "hiddenAliases": [],
631
+ "id": "unsuspend:user",
632
+ "pluginAlias": "@heroku/skynet",
633
+ "pluginName": "@heroku/skynet",
634
+ "pluginType": "core",
635
+ "strict": true,
636
+ "isESM": true,
637
+ "relativePath": [
638
+ "dist",
639
+ "commands",
640
+ "unsuspend",
641
+ "user.js"
642
+ ]
643
+ },
644
+ "userpass:add": {
645
+ "aliases": [],
646
+ "args": {},
647
+ "description": "adds a userpass flag to a given user",
648
+ "examples": [
649
+ "$ heroku skynet:userpass:add -u foo@bar.com -f cant-install-abused-addons"
650
+ ],
651
+ "flags": {
652
+ "user": {
653
+ "char": "u",
654
+ "description": "user to apply userpass flag to",
655
+ "name": "user",
656
+ "required": true,
657
+ "hasDynamicHelp": false,
658
+ "multiple": false,
659
+ "type": "option"
660
+ },
661
+ "flag": {
662
+ "char": "f",
663
+ "description": "flag to add to the given user",
664
+ "name": "flag",
665
+ "required": true,
666
+ "hasDynamicHelp": false,
667
+ "multiple": false,
668
+ "type": "option"
669
+ }
670
+ },
671
+ "hasDynamicHelp": false,
672
+ "hiddenAliases": [],
673
+ "id": "userpass:add",
674
+ "pluginAlias": "@heroku/skynet",
675
+ "pluginName": "@heroku/skynet",
676
+ "pluginType": "core",
677
+ "strict": true,
678
+ "isESM": true,
679
+ "relativePath": [
680
+ "dist",
681
+ "commands",
682
+ "userpass",
683
+ "add.js"
684
+ ]
685
+ },
686
+ "userpass:remove": {
687
+ "aliases": [],
688
+ "args": {},
689
+ "description": "removes given flag from a given user",
690
+ "examples": [
691
+ "$ heroku skynet:userpass:remove -u foo@bar.com -f cant-install-abused-addons"
692
+ ],
693
+ "flags": {
694
+ "user": {
695
+ "char": "u",
696
+ "description": "user to remove user_pass from",
697
+ "name": "user",
698
+ "required": true,
699
+ "hasDynamicHelp": false,
700
+ "multiple": false,
701
+ "type": "option"
702
+ },
703
+ "flag": {
704
+ "char": "f",
705
+ "description": "flag to remove from given user",
706
+ "name": "flag",
707
+ "required": true,
708
+ "hasDynamicHelp": false,
709
+ "multiple": false,
710
+ "type": "option"
711
+ }
712
+ },
713
+ "hasDynamicHelp": false,
714
+ "hiddenAliases": [],
715
+ "id": "userpass:remove",
716
+ "pluginAlias": "@heroku/skynet",
717
+ "pluginName": "@heroku/skynet",
718
+ "pluginType": "core",
719
+ "strict": true,
720
+ "isESM": true,
721
+ "relativePath": [
722
+ "dist",
723
+ "commands",
724
+ "userpass",
725
+ "remove.js"
726
+ ]
727
+ }
728
+ },
729
+ "version": "2.0.0"
730
+ }