@crombolo/cli 0.15.0 → 0.16.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.
- package/bin/crombolo.ts +1 -1
- package/oclif.manifest.json +1510 -143
- package/package.json +30 -10
- package/src/base.ts +9 -4
- package/src/commands/api-client/rotate.ts +57 -0
- package/src/commands/cache/rebuild.ts +56 -0
- package/src/commands/health.ts +90 -0
- package/src/commands/index/list.ts +45 -0
- package/src/commands/index/rebuild.ts +66 -0
- package/src/commands/media/export.ts +91 -0
- package/src/commands/media/import.ts +175 -0
- package/src/commands/recycle-bin/empty.ts +157 -0
- package/src/commands/users/disable.ts +54 -0
- package/src/commands/users/enable.ts +54 -0
- package/src/commands/users/invite.ts +82 -0
- package/src/commands/users/list.ts +62 -0
- package/src/commands/users/reset-2fa.ts +48 -0
- package/src/commands/users/reset-password.ts +58 -0
- package/src/commands/users/unlock.ts +54 -0
- package/src/load.ts +59 -0
- package/src/main.ts +22 -4
- package/src/manifest.ts +10 -0
- package/src/plugin.ts +38 -0
- package/src/remote/client.ts +6 -1
- package/src/remote/remotes-file.ts +1 -1
- package/src/support/media-tree.ts +72 -0
- package/src/support/people.ts +134 -0
- package/src/support/remote.ts +3 -4
- package/templates/basic/bundle/package.json +1 -1
- package/templates/demo/harbourstone/bundle/package.json +1 -1
- package/templates/starter/bundle/package.json +1 -1
package/oclif.manifest.json
CHANGED
|
@@ -82,6 +82,81 @@
|
|
|
82
82
|
"reset-password.ts"
|
|
83
83
|
]
|
|
84
84
|
},
|
|
85
|
+
"api-client:rotate": {
|
|
86
|
+
"aliases": [],
|
|
87
|
+
"args": {},
|
|
88
|
+
"description": "The old secret stops working at once. Put the new one in CROMBOLO_API_CLIENT_SECRET: a start keeps the client it finds, so it never sets the secret back.",
|
|
89
|
+
"flags": {
|
|
90
|
+
"output": {
|
|
91
|
+
"char": "o",
|
|
92
|
+
"helpGroup": "GLOBAL",
|
|
93
|
+
"name": "output",
|
|
94
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
95
|
+
"default": "text",
|
|
96
|
+
"hasDynamicHelp": false,
|
|
97
|
+
"multiple": false,
|
|
98
|
+
"options": [
|
|
99
|
+
"text",
|
|
100
|
+
"json"
|
|
101
|
+
],
|
|
102
|
+
"type": "option"
|
|
103
|
+
},
|
|
104
|
+
"json": {
|
|
105
|
+
"hidden": true,
|
|
106
|
+
"name": "json",
|
|
107
|
+
"summary": "the same as -o json",
|
|
108
|
+
"allowNo": false,
|
|
109
|
+
"type": "boolean"
|
|
110
|
+
},
|
|
111
|
+
"client": {
|
|
112
|
+
"name": "client",
|
|
113
|
+
"summary": "the client id; CROMBOLO_API_CLIENT_ID when not given",
|
|
114
|
+
"hasDynamicHelp": false,
|
|
115
|
+
"helpValue": "<id>",
|
|
116
|
+
"multiple": false,
|
|
117
|
+
"type": "option"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"hasDynamicHelp": false,
|
|
121
|
+
"hiddenAliases": [],
|
|
122
|
+
"id": "api-client:rotate",
|
|
123
|
+
"pluginAlias": "@crombolo/cli",
|
|
124
|
+
"pluginName": "@crombolo/cli",
|
|
125
|
+
"pluginType": "core",
|
|
126
|
+
"strict": true,
|
|
127
|
+
"summary": "issue a new secret for the API client, and print it once",
|
|
128
|
+
"enableJsonFlag": false,
|
|
129
|
+
"audit": {
|
|
130
|
+
"category": "user",
|
|
131
|
+
"action": "RotateClientSecret",
|
|
132
|
+
"entityType": "User"
|
|
133
|
+
},
|
|
134
|
+
"spec": {
|
|
135
|
+
"effects": "non_idempotent",
|
|
136
|
+
"cardinality": "single",
|
|
137
|
+
"outputFields": [
|
|
138
|
+
{
|
|
139
|
+
"name": "client",
|
|
140
|
+
"type": "string"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"name": "secret",
|
|
144
|
+
"type": "string"
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
"errors": [
|
|
148
|
+
"usage",
|
|
149
|
+
"not_found"
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
"isESM": true,
|
|
153
|
+
"relativePath": [
|
|
154
|
+
"src",
|
|
155
|
+
"commands",
|
|
156
|
+
"api-client",
|
|
157
|
+
"rotate.ts"
|
|
158
|
+
]
|
|
159
|
+
},
|
|
85
160
|
"assets": {
|
|
86
161
|
"aliases": [],
|
|
87
162
|
"args": {},
|
|
@@ -722,6 +797,73 @@
|
|
|
722
797
|
"purge.ts"
|
|
723
798
|
]
|
|
724
799
|
},
|
|
800
|
+
"cache:rebuild": {
|
|
801
|
+
"aliases": [],
|
|
802
|
+
"args": {},
|
|
803
|
+
"description": "Each node rebuilds at its next poll, within a few seconds. Nothing has to be reachable from here but the database.",
|
|
804
|
+
"flags": {
|
|
805
|
+
"output": {
|
|
806
|
+
"char": "o",
|
|
807
|
+
"helpGroup": "GLOBAL",
|
|
808
|
+
"name": "output",
|
|
809
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
810
|
+
"default": "text",
|
|
811
|
+
"hasDynamicHelp": false,
|
|
812
|
+
"multiple": false,
|
|
813
|
+
"options": [
|
|
814
|
+
"text",
|
|
815
|
+
"json"
|
|
816
|
+
],
|
|
817
|
+
"type": "option"
|
|
818
|
+
},
|
|
819
|
+
"json": {
|
|
820
|
+
"hidden": true,
|
|
821
|
+
"name": "json",
|
|
822
|
+
"summary": "the same as -o json",
|
|
823
|
+
"allowNo": false,
|
|
824
|
+
"type": "boolean"
|
|
825
|
+
}
|
|
826
|
+
},
|
|
827
|
+
"hasDynamicHelp": false,
|
|
828
|
+
"hiddenAliases": [],
|
|
829
|
+
"id": "cache:rebuild",
|
|
830
|
+
"pluginAlias": "@crombolo/cli",
|
|
831
|
+
"pluginName": "@crombolo/cli",
|
|
832
|
+
"pluginType": "core",
|
|
833
|
+
"strict": true,
|
|
834
|
+
"summary": "rebuild the published cache on every node of the site",
|
|
835
|
+
"enableJsonFlag": false,
|
|
836
|
+
"audit": {
|
|
837
|
+
"category": "system",
|
|
838
|
+
"action": "RebuildCache",
|
|
839
|
+
"entityType": "Cache"
|
|
840
|
+
},
|
|
841
|
+
"spec": {
|
|
842
|
+
"effects": "idempotent",
|
|
843
|
+
"cardinality": "single",
|
|
844
|
+
"outputFields": [
|
|
845
|
+
{
|
|
846
|
+
"name": "instruction",
|
|
847
|
+
"type": "integer"
|
|
848
|
+
},
|
|
849
|
+
{
|
|
850
|
+
"name": "nodes",
|
|
851
|
+
"type": "array",
|
|
852
|
+
"items": {
|
|
853
|
+
"type": "string"
|
|
854
|
+
},
|
|
855
|
+
"description": "the nodes seen in the last minute"
|
|
856
|
+
}
|
|
857
|
+
]
|
|
858
|
+
},
|
|
859
|
+
"isESM": true,
|
|
860
|
+
"relativePath": [
|
|
861
|
+
"src",
|
|
862
|
+
"commands",
|
|
863
|
+
"cache",
|
|
864
|
+
"rebuild.ts"
|
|
865
|
+
]
|
|
866
|
+
},
|
|
725
867
|
"components": {
|
|
726
868
|
"aliases": [],
|
|
727
869
|
"args": {},
|
|
@@ -2926,6 +3068,97 @@
|
|
|
2926
3068
|
"generate.ts"
|
|
2927
3069
|
]
|
|
2928
3070
|
},
|
|
3071
|
+
"health": {
|
|
3072
|
+
"aliases": [],
|
|
3073
|
+
"args": {},
|
|
3074
|
+
"description": "The same checks as Settings › Health Check. Exits 20 when a check fails; a warning is reported, not counted.",
|
|
3075
|
+
"flags": {
|
|
3076
|
+
"output": {
|
|
3077
|
+
"char": "o",
|
|
3078
|
+
"helpGroup": "GLOBAL",
|
|
3079
|
+
"name": "output",
|
|
3080
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
3081
|
+
"default": "text",
|
|
3082
|
+
"hasDynamicHelp": false,
|
|
3083
|
+
"multiple": false,
|
|
3084
|
+
"options": [
|
|
3085
|
+
"text",
|
|
3086
|
+
"json"
|
|
3087
|
+
],
|
|
3088
|
+
"type": "option"
|
|
3089
|
+
},
|
|
3090
|
+
"json": {
|
|
3091
|
+
"hidden": true,
|
|
3092
|
+
"name": "json",
|
|
3093
|
+
"summary": "the same as -o json",
|
|
3094
|
+
"allowNo": false,
|
|
3095
|
+
"type": "boolean"
|
|
3096
|
+
},
|
|
3097
|
+
"group": {
|
|
3098
|
+
"name": "group",
|
|
3099
|
+
"summary": "only this group of checks",
|
|
3100
|
+
"hasDynamicHelp": false,
|
|
3101
|
+
"helpValue": "<name>",
|
|
3102
|
+
"multiple": false,
|
|
3103
|
+
"type": "option"
|
|
3104
|
+
}
|
|
3105
|
+
},
|
|
3106
|
+
"hasDynamicHelp": false,
|
|
3107
|
+
"hiddenAliases": [],
|
|
3108
|
+
"id": "health",
|
|
3109
|
+
"pluginAlias": "@crombolo/cli",
|
|
3110
|
+
"pluginName": "@crombolo/cli",
|
|
3111
|
+
"pluginType": "core",
|
|
3112
|
+
"strict": true,
|
|
3113
|
+
"summary": "run the site's health checks",
|
|
3114
|
+
"enableJsonFlag": false,
|
|
3115
|
+
"spec": {
|
|
3116
|
+
"effects": "read_only",
|
|
3117
|
+
"cardinality": "bounded",
|
|
3118
|
+
"outputFields": [
|
|
3119
|
+
{
|
|
3120
|
+
"name": "groups",
|
|
3121
|
+
"type": "array",
|
|
3122
|
+
"items": {
|
|
3123
|
+
"type": "object",
|
|
3124
|
+
"fields": [
|
|
3125
|
+
{
|
|
3126
|
+
"name": "name",
|
|
3127
|
+
"type": "string"
|
|
3128
|
+
},
|
|
3129
|
+
{
|
|
3130
|
+
"name": "checks",
|
|
3131
|
+
"type": "array",
|
|
3132
|
+
"items": {
|
|
3133
|
+
"type": "object"
|
|
3134
|
+
}
|
|
3135
|
+
}
|
|
3136
|
+
]
|
|
3137
|
+
}
|
|
3138
|
+
},
|
|
3139
|
+
{
|
|
3140
|
+
"name": "failed",
|
|
3141
|
+
"type": "integer"
|
|
3142
|
+
},
|
|
3143
|
+
{
|
|
3144
|
+
"name": "warnings",
|
|
3145
|
+
"type": "integer"
|
|
3146
|
+
}
|
|
3147
|
+
],
|
|
3148
|
+
"errors": [
|
|
3149
|
+
"not_found"
|
|
3150
|
+
],
|
|
3151
|
+
"outcomes": [
|
|
3152
|
+
"problems_found"
|
|
3153
|
+
]
|
|
3154
|
+
},
|
|
3155
|
+
"isESM": true,
|
|
3156
|
+
"relativePath": [
|
|
3157
|
+
"src",
|
|
3158
|
+
"commands",
|
|
3159
|
+
"health.ts"
|
|
3160
|
+
]
|
|
3161
|
+
},
|
|
2929
3162
|
"import": {
|
|
2930
3163
|
"aliases": [],
|
|
2931
3164
|
"args": {
|
|
@@ -3358,14 +3591,9 @@
|
|
|
3358
3591
|
"report.ts"
|
|
3359
3592
|
]
|
|
3360
3593
|
},
|
|
3361
|
-
"
|
|
3594
|
+
"index:list": {
|
|
3362
3595
|
"aliases": [],
|
|
3363
3596
|
"args": {},
|
|
3364
|
-
"description": "A --template brings schema, views and content; `--template list` prints the templates.",
|
|
3365
|
-
"examples": [
|
|
3366
|
-
"<%= config.bin %> init",
|
|
3367
|
-
"<%= config.bin %> init --template list"
|
|
3368
|
-
],
|
|
3369
3597
|
"flags": {
|
|
3370
3598
|
"output": {
|
|
3371
3599
|
"char": "o",
|
|
@@ -3387,72 +3615,233 @@
|
|
|
3387
3615
|
"summary": "the same as -o json",
|
|
3388
3616
|
"allowNo": false,
|
|
3389
3617
|
"type": "boolean"
|
|
3390
|
-
},
|
|
3391
|
-
"force": {
|
|
3392
|
-
"name": "force",
|
|
3393
|
-
"summary": "overwrite files that are already here",
|
|
3394
|
-
"allowNo": false,
|
|
3395
|
-
"type": "boolean"
|
|
3396
|
-
},
|
|
3397
|
-
"name": {
|
|
3398
|
-
"name": "name",
|
|
3399
|
-
"summary": "the site's name",
|
|
3400
|
-
"hasDynamicHelp": false,
|
|
3401
|
-
"helpValue": "<site name>",
|
|
3402
|
-
"multiple": false,
|
|
3403
|
-
"type": "option"
|
|
3404
|
-
},
|
|
3405
|
-
"postgres": {
|
|
3406
|
-
"name": "postgres",
|
|
3407
|
-
"summary": "configure Postgres rather than SQLite",
|
|
3408
|
-
"allowNo": false,
|
|
3409
|
-
"type": "boolean"
|
|
3410
|
-
},
|
|
3411
|
-
"template": {
|
|
3412
|
-
"name": "template",
|
|
3413
|
-
"summary": "a starter template, or `list`",
|
|
3414
|
-
"hasDynamicHelp": false,
|
|
3415
|
-
"helpValue": "<id>",
|
|
3416
|
-
"multiple": false,
|
|
3417
|
-
"type": "option"
|
|
3418
3618
|
}
|
|
3419
3619
|
},
|
|
3420
3620
|
"hasDynamicHelp": false,
|
|
3421
3621
|
"hiddenAliases": [],
|
|
3422
|
-
"id": "
|
|
3622
|
+
"id": "index:list",
|
|
3423
3623
|
"pluginAlias": "@crombolo/cli",
|
|
3424
3624
|
"pluginName": "@crombolo/cli",
|
|
3425
3625
|
"pluginType": "core",
|
|
3426
3626
|
"strict": true,
|
|
3427
|
-
"summary": "
|
|
3627
|
+
"summary": "the search indexes: what each holds, and what is waiting to be indexed",
|
|
3428
3628
|
"enableJsonFlag": false,
|
|
3429
3629
|
"spec": {
|
|
3430
|
-
"effects": "
|
|
3630
|
+
"effects": "read_only",
|
|
3431
3631
|
"cardinality": "bounded",
|
|
3432
3632
|
"outputFields": [
|
|
3433
3633
|
{
|
|
3434
|
-
"name": "
|
|
3435
|
-
"type": "
|
|
3436
|
-
"items": {
|
|
3437
|
-
"type": "string"
|
|
3438
|
-
}
|
|
3634
|
+
"name": "name",
|
|
3635
|
+
"type": "string"
|
|
3439
3636
|
},
|
|
3440
3637
|
{
|
|
3441
|
-
"name": "
|
|
3442
|
-
"type": "
|
|
3443
|
-
"items": {
|
|
3444
|
-
"type": "string"
|
|
3445
|
-
}
|
|
3638
|
+
"name": "documents",
|
|
3639
|
+
"type": "integer"
|
|
3446
3640
|
},
|
|
3447
3641
|
{
|
|
3448
|
-
"name": "
|
|
3449
|
-
"type": "
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3642
|
+
"name": "fields",
|
|
3643
|
+
"type": "integer"
|
|
3644
|
+
},
|
|
3645
|
+
{
|
|
3646
|
+
"name": "pending",
|
|
3647
|
+
"type": "integer"
|
|
3648
|
+
},
|
|
3649
|
+
{
|
|
3650
|
+
"name": "healthy",
|
|
3651
|
+
"type": "boolean",
|
|
3652
|
+
"description": "nothing waiting to be indexed"
|
|
3653
|
+
}
|
|
3654
|
+
]
|
|
3655
|
+
},
|
|
3656
|
+
"isESM": true,
|
|
3657
|
+
"relativePath": [
|
|
3658
|
+
"src",
|
|
3659
|
+
"commands",
|
|
3660
|
+
"index",
|
|
3661
|
+
"list.ts"
|
|
3662
|
+
]
|
|
3663
|
+
},
|
|
3664
|
+
"index:rebuild": {
|
|
3665
|
+
"aliases": [],
|
|
3666
|
+
"args": {
|
|
3667
|
+
"index": {
|
|
3668
|
+
"description": "one index; both when not given",
|
|
3669
|
+
"name": "index",
|
|
3670
|
+
"options": [
|
|
3671
|
+
"InternalIndex",
|
|
3672
|
+
"MembersIndex"
|
|
3673
|
+
]
|
|
3674
|
+
}
|
|
3675
|
+
},
|
|
3676
|
+
"description": "Search keeps answering while it runs. --queue-only queues everything and leaves the indexing to the running site.",
|
|
3677
|
+
"flags": {
|
|
3678
|
+
"output": {
|
|
3679
|
+
"char": "o",
|
|
3680
|
+
"helpGroup": "GLOBAL",
|
|
3681
|
+
"name": "output",
|
|
3682
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
3683
|
+
"default": "text",
|
|
3684
|
+
"hasDynamicHelp": false,
|
|
3685
|
+
"multiple": false,
|
|
3686
|
+
"options": [
|
|
3687
|
+
"text",
|
|
3688
|
+
"json"
|
|
3689
|
+
],
|
|
3690
|
+
"type": "option"
|
|
3691
|
+
},
|
|
3692
|
+
"json": {
|
|
3693
|
+
"hidden": true,
|
|
3694
|
+
"name": "json",
|
|
3695
|
+
"summary": "the same as -o json",
|
|
3696
|
+
"allowNo": false,
|
|
3697
|
+
"type": "boolean"
|
|
3698
|
+
},
|
|
3699
|
+
"queue-only": {
|
|
3700
|
+
"name": "queue-only",
|
|
3701
|
+
"summary": "queue everything, and let the site index it",
|
|
3702
|
+
"allowNo": false,
|
|
3703
|
+
"type": "boolean"
|
|
3704
|
+
}
|
|
3705
|
+
},
|
|
3706
|
+
"hasDynamicHelp": false,
|
|
3707
|
+
"hiddenAliases": [],
|
|
3708
|
+
"id": "index:rebuild",
|
|
3709
|
+
"pluginAlias": "@crombolo/cli",
|
|
3710
|
+
"pluginName": "@crombolo/cli",
|
|
3711
|
+
"pluginType": "core",
|
|
3712
|
+
"strict": true,
|
|
3713
|
+
"summary": "index every item again, for every node: the index is in the database",
|
|
3714
|
+
"enableJsonFlag": false,
|
|
3715
|
+
"audit": {
|
|
3716
|
+
"category": "system",
|
|
3717
|
+
"action": "RebuildIndex",
|
|
3718
|
+
"entityType": "Index"
|
|
3719
|
+
},
|
|
3720
|
+
"spec": {
|
|
3721
|
+
"effects": "idempotent",
|
|
3722
|
+
"cardinality": "single",
|
|
3723
|
+
"outputFields": [
|
|
3724
|
+
{
|
|
3725
|
+
"name": "indexes",
|
|
3726
|
+
"type": "array",
|
|
3727
|
+
"items": {
|
|
3728
|
+
"type": "string"
|
|
3729
|
+
}
|
|
3730
|
+
},
|
|
3731
|
+
{
|
|
3732
|
+
"name": "indexed",
|
|
3733
|
+
"type": "integer",
|
|
3734
|
+
"description": "items indexed here; 0 with --queue-only"
|
|
3735
|
+
},
|
|
3736
|
+
{
|
|
3737
|
+
"name": "queued",
|
|
3738
|
+
"type": "boolean"
|
|
3739
|
+
}
|
|
3740
|
+
]
|
|
3741
|
+
},
|
|
3742
|
+
"isESM": true,
|
|
3743
|
+
"relativePath": [
|
|
3744
|
+
"src",
|
|
3745
|
+
"commands",
|
|
3746
|
+
"index",
|
|
3747
|
+
"rebuild.ts"
|
|
3748
|
+
]
|
|
3749
|
+
},
|
|
3750
|
+
"init": {
|
|
3751
|
+
"aliases": [],
|
|
3752
|
+
"args": {},
|
|
3753
|
+
"description": "A --template brings schema, views and content; `--template list` prints the templates.",
|
|
3754
|
+
"examples": [
|
|
3755
|
+
"<%= config.bin %> init",
|
|
3756
|
+
"<%= config.bin %> init --template list"
|
|
3757
|
+
],
|
|
3758
|
+
"flags": {
|
|
3759
|
+
"output": {
|
|
3760
|
+
"char": "o",
|
|
3761
|
+
"helpGroup": "GLOBAL",
|
|
3762
|
+
"name": "output",
|
|
3763
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
3764
|
+
"default": "text",
|
|
3765
|
+
"hasDynamicHelp": false,
|
|
3766
|
+
"multiple": false,
|
|
3767
|
+
"options": [
|
|
3768
|
+
"text",
|
|
3769
|
+
"json"
|
|
3770
|
+
],
|
|
3771
|
+
"type": "option"
|
|
3772
|
+
},
|
|
3773
|
+
"json": {
|
|
3774
|
+
"hidden": true,
|
|
3775
|
+
"name": "json",
|
|
3776
|
+
"summary": "the same as -o json",
|
|
3777
|
+
"allowNo": false,
|
|
3778
|
+
"type": "boolean"
|
|
3779
|
+
},
|
|
3780
|
+
"force": {
|
|
3781
|
+
"name": "force",
|
|
3782
|
+
"summary": "overwrite files that are already here",
|
|
3783
|
+
"allowNo": false,
|
|
3784
|
+
"type": "boolean"
|
|
3785
|
+
},
|
|
3786
|
+
"name": {
|
|
3787
|
+
"name": "name",
|
|
3788
|
+
"summary": "the site's name",
|
|
3789
|
+
"hasDynamicHelp": false,
|
|
3790
|
+
"helpValue": "<site name>",
|
|
3791
|
+
"multiple": false,
|
|
3792
|
+
"type": "option"
|
|
3793
|
+
},
|
|
3794
|
+
"postgres": {
|
|
3795
|
+
"name": "postgres",
|
|
3796
|
+
"summary": "configure Postgres rather than SQLite",
|
|
3797
|
+
"allowNo": false,
|
|
3798
|
+
"type": "boolean"
|
|
3799
|
+
},
|
|
3800
|
+
"template": {
|
|
3801
|
+
"name": "template",
|
|
3802
|
+
"summary": "a starter template, or `list`",
|
|
3803
|
+
"hasDynamicHelp": false,
|
|
3804
|
+
"helpValue": "<id>",
|
|
3805
|
+
"multiple": false,
|
|
3806
|
+
"type": "option"
|
|
3807
|
+
}
|
|
3808
|
+
},
|
|
3809
|
+
"hasDynamicHelp": false,
|
|
3810
|
+
"hiddenAliases": [],
|
|
3811
|
+
"id": "init",
|
|
3812
|
+
"pluginAlias": "@crombolo/cli",
|
|
3813
|
+
"pluginName": "@crombolo/cli",
|
|
3814
|
+
"pluginType": "core",
|
|
3815
|
+
"strict": true,
|
|
3816
|
+
"summary": "scaffold a site in the current directory",
|
|
3817
|
+
"enableJsonFlag": false,
|
|
3818
|
+
"spec": {
|
|
3819
|
+
"effects": "non_idempotent",
|
|
3820
|
+
"cardinality": "bounded",
|
|
3821
|
+
"outputFields": [
|
|
3822
|
+
{
|
|
3823
|
+
"name": "created",
|
|
3824
|
+
"type": "array",
|
|
3825
|
+
"items": {
|
|
3826
|
+
"type": "string"
|
|
3827
|
+
}
|
|
3828
|
+
},
|
|
3829
|
+
{
|
|
3830
|
+
"name": "existing",
|
|
3831
|
+
"type": "array",
|
|
3832
|
+
"items": {
|
|
3833
|
+
"type": "string"
|
|
3834
|
+
}
|
|
3835
|
+
},
|
|
3836
|
+
{
|
|
3837
|
+
"name": "templates",
|
|
3838
|
+
"type": "array",
|
|
3839
|
+
"items": {
|
|
3840
|
+
"type": "object"
|
|
3841
|
+
}
|
|
3842
|
+
}
|
|
3843
|
+
],
|
|
3844
|
+
"errors": [
|
|
3456
3845
|
"not_found"
|
|
3457
3846
|
]
|
|
3458
3847
|
},
|
|
@@ -3796,10 +4185,17 @@
|
|
|
3796
4185
|
"status.ts"
|
|
3797
4186
|
]
|
|
3798
4187
|
},
|
|
3799
|
-
"media:
|
|
4188
|
+
"media:export": {
|
|
3800
4189
|
"aliases": [],
|
|
3801
|
-
"args": {
|
|
3802
|
-
|
|
4190
|
+
"args": {
|
|
4191
|
+
"folder": {
|
|
4192
|
+
"description": "a media folder, as a path or uuid; everything when not given",
|
|
4193
|
+
"name": "folder"
|
|
4194
|
+
}
|
|
4195
|
+
},
|
|
4196
|
+
"examples": [
|
|
4197
|
+
"<%= config.bin %> media export /Gallery --out ./gallery"
|
|
4198
|
+
],
|
|
3803
4199
|
"flags": {
|
|
3804
4200
|
"output": {
|
|
3805
4201
|
"char": "o",
|
|
@@ -3821,27 +4217,36 @@
|
|
|
3821
4217
|
"summary": "the same as -o json",
|
|
3822
4218
|
"allowNo": false,
|
|
3823
4219
|
"type": "boolean"
|
|
4220
|
+
},
|
|
4221
|
+
"out": {
|
|
4222
|
+
"name": "out",
|
|
4223
|
+
"required": true,
|
|
4224
|
+
"summary": "the folder to write into",
|
|
4225
|
+
"hasDynamicHelp": false,
|
|
4226
|
+
"helpValue": "<dir>",
|
|
4227
|
+
"multiple": false,
|
|
4228
|
+
"type": "option"
|
|
3824
4229
|
}
|
|
3825
4230
|
},
|
|
3826
4231
|
"hasDynamicHelp": false,
|
|
3827
4232
|
"hiddenAliases": [],
|
|
3828
|
-
"id": "media:
|
|
4233
|
+
"id": "media:export",
|
|
3829
4234
|
"pluginAlias": "@crombolo/cli",
|
|
3830
4235
|
"pluginName": "@crombolo/cli",
|
|
3831
4236
|
"pluginType": "core",
|
|
3832
4237
|
"strict": true,
|
|
3833
|
-
"summary": "
|
|
4238
|
+
"summary": "write media files back out as a folder tree",
|
|
3834
4239
|
"enableJsonFlag": false,
|
|
3835
4240
|
"spec": {
|
|
3836
4241
|
"effects": "idempotent",
|
|
3837
|
-
"cardinality": "
|
|
4242
|
+
"cardinality": "bounded",
|
|
3838
4243
|
"outputFields": [
|
|
3839
4244
|
{
|
|
3840
|
-
"name": "
|
|
3841
|
-
"type": "
|
|
4245
|
+
"name": "out",
|
|
4246
|
+
"type": "string"
|
|
3842
4247
|
},
|
|
3843
4248
|
{
|
|
3844
|
-
"name": "
|
|
4249
|
+
"name": "files",
|
|
3845
4250
|
"type": "integer"
|
|
3846
4251
|
},
|
|
3847
4252
|
{
|
|
@@ -3849,18 +4254,16 @@
|
|
|
3849
4254
|
"type": "integer"
|
|
3850
4255
|
},
|
|
3851
4256
|
{
|
|
3852
|
-
"name": "
|
|
4257
|
+
"name": "missing",
|
|
3853
4258
|
"type": "array",
|
|
3854
4259
|
"items": {
|
|
3855
4260
|
"type": "string"
|
|
3856
|
-
}
|
|
4261
|
+
},
|
|
4262
|
+
"description": "items whose file is not in the store"
|
|
3857
4263
|
}
|
|
3858
4264
|
],
|
|
3859
4265
|
"errors": [
|
|
3860
|
-
"not_found"
|
|
3861
|
-
"auth",
|
|
3862
|
-
"unavailable",
|
|
3863
|
-
"io"
|
|
4266
|
+
"not_found"
|
|
3864
4267
|
]
|
|
3865
4268
|
},
|
|
3866
4269
|
"isESM": true,
|
|
@@ -3868,21 +4271,13 @@
|
|
|
3868
4271
|
"src",
|
|
3869
4272
|
"commands",
|
|
3870
4273
|
"media",
|
|
3871
|
-
"
|
|
4274
|
+
"export.ts"
|
|
3872
4275
|
]
|
|
3873
4276
|
},
|
|
3874
|
-
"
|
|
4277
|
+
"media:fetch": {
|
|
3875
4278
|
"aliases": [],
|
|
3876
|
-
"args": {
|
|
3877
|
-
|
|
3878
|
-
"description": "the remote; the only one, when there is one",
|
|
3879
|
-
"name": "remote"
|
|
3880
|
-
}
|
|
3881
|
-
},
|
|
3882
|
-
"description": "Sealed and anonymised unless --full. In an empty folder it starts a new site and serves it; in a site it replaces it, saying first what it loses (recycled, and asked about unless --yes).\n\n--media-info-only fetches media files one at a time, only what changed since the last pull; --lazy-media fetches each the first time it is asked for; --no-media leaves them out.",
|
|
3883
|
-
"examples": [
|
|
3884
|
-
"<%= config.bin %> pull production --env staging --yes"
|
|
3885
|
-
],
|
|
4279
|
+
"args": {},
|
|
4280
|
+
"description": "Exits 10 when a file could not be fetched; running it again fetches only what is missing.",
|
|
3886
4281
|
"flags": {
|
|
3887
4282
|
"output": {
|
|
3888
4283
|
"char": "o",
|
|
@@ -3904,37 +4299,232 @@
|
|
|
3904
4299
|
"summary": "the same as -o json",
|
|
3905
4300
|
"allowNo": false,
|
|
3906
4301
|
"type": "boolean"
|
|
3907
|
-
}
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3921
|
-
|
|
3922
|
-
|
|
3923
|
-
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
|
|
3934
|
-
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
4302
|
+
}
|
|
4303
|
+
},
|
|
4304
|
+
"hasDynamicHelp": false,
|
|
4305
|
+
"hiddenAliases": [],
|
|
4306
|
+
"id": "media:fetch",
|
|
4307
|
+
"pluginAlias": "@crombolo/cli",
|
|
4308
|
+
"pluginName": "@crombolo/cli",
|
|
4309
|
+
"pluginType": "core",
|
|
4310
|
+
"strict": true,
|
|
4311
|
+
"summary": "a lazily pulled site's media files, all of them now",
|
|
4312
|
+
"enableJsonFlag": false,
|
|
4313
|
+
"spec": {
|
|
4314
|
+
"effects": "idempotent",
|
|
4315
|
+
"cardinality": "single",
|
|
4316
|
+
"outputFields": [
|
|
4317
|
+
{
|
|
4318
|
+
"name": "fetched",
|
|
4319
|
+
"type": "integer"
|
|
4320
|
+
},
|
|
4321
|
+
{
|
|
4322
|
+
"name": "skipped",
|
|
4323
|
+
"type": "integer"
|
|
4324
|
+
},
|
|
4325
|
+
{
|
|
4326
|
+
"name": "bytes",
|
|
4327
|
+
"type": "integer"
|
|
4328
|
+
},
|
|
4329
|
+
{
|
|
4330
|
+
"name": "failed",
|
|
4331
|
+
"type": "array",
|
|
4332
|
+
"items": {
|
|
4333
|
+
"type": "string"
|
|
4334
|
+
}
|
|
4335
|
+
}
|
|
4336
|
+
],
|
|
4337
|
+
"errors": [
|
|
4338
|
+
"not_found",
|
|
4339
|
+
"auth",
|
|
4340
|
+
"unavailable",
|
|
4341
|
+
"io"
|
|
4342
|
+
]
|
|
4343
|
+
},
|
|
4344
|
+
"isESM": true,
|
|
4345
|
+
"relativePath": [
|
|
4346
|
+
"src",
|
|
4347
|
+
"commands",
|
|
4348
|
+
"media",
|
|
4349
|
+
"fetch.ts"
|
|
4350
|
+
]
|
|
4351
|
+
},
|
|
4352
|
+
"media:import": {
|
|
4353
|
+
"aliases": [],
|
|
4354
|
+
"args": {
|
|
4355
|
+
"dir": {
|
|
4356
|
+
"description": "the folder to import",
|
|
4357
|
+
"name": "dir",
|
|
4358
|
+
"required": true
|
|
4359
|
+
}
|
|
4360
|
+
},
|
|
4361
|
+
"description": "Each directory becomes a media folder and each file a media item, typed by its extension as an upload is. Files no media type takes are reported and left.\n\nRun it again after a stop: a file already imported with the same bytes is skipped, and one whose bytes differ is reported and left alone.",
|
|
4362
|
+
"examples": [
|
|
4363
|
+
"<%= config.bin %> media import ./photos --under /Gallery --dry-run"
|
|
4364
|
+
],
|
|
4365
|
+
"flags": {
|
|
4366
|
+
"output": {
|
|
4367
|
+
"char": "o",
|
|
4368
|
+
"helpGroup": "GLOBAL",
|
|
4369
|
+
"name": "output",
|
|
4370
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
4371
|
+
"default": "text",
|
|
4372
|
+
"hasDynamicHelp": false,
|
|
4373
|
+
"multiple": false,
|
|
4374
|
+
"options": [
|
|
4375
|
+
"text",
|
|
4376
|
+
"json"
|
|
4377
|
+
],
|
|
4378
|
+
"type": "option"
|
|
4379
|
+
},
|
|
4380
|
+
"json": {
|
|
4381
|
+
"hidden": true,
|
|
4382
|
+
"name": "json",
|
|
4383
|
+
"summary": "the same as -o json",
|
|
4384
|
+
"allowNo": false,
|
|
4385
|
+
"type": "boolean"
|
|
4386
|
+
},
|
|
4387
|
+
"under": {
|
|
4388
|
+
"name": "under",
|
|
4389
|
+
"summary": "the media folder to import into; the root when not given",
|
|
4390
|
+
"hasDynamicHelp": false,
|
|
4391
|
+
"helpValue": "<path|uuid>",
|
|
4392
|
+
"multiple": false,
|
|
4393
|
+
"type": "option"
|
|
4394
|
+
},
|
|
4395
|
+
"dry-run": {
|
|
4396
|
+
"name": "dry-run",
|
|
4397
|
+
"summary": "say what it would do, and change nothing",
|
|
4398
|
+
"allowNo": false,
|
|
4399
|
+
"type": "boolean"
|
|
4400
|
+
}
|
|
4401
|
+
},
|
|
4402
|
+
"hasDynamicHelp": false,
|
|
4403
|
+
"hiddenAliases": [],
|
|
4404
|
+
"id": "media:import",
|
|
4405
|
+
"pluginAlias": "@crombolo/cli",
|
|
4406
|
+
"pluginName": "@crombolo/cli",
|
|
4407
|
+
"pluginType": "core",
|
|
4408
|
+
"strict": true,
|
|
4409
|
+
"summary": "import a folder of files into the media library, keeping its folders",
|
|
4410
|
+
"enableJsonFlag": false,
|
|
4411
|
+
"audit": {
|
|
4412
|
+
"category": "media",
|
|
4413
|
+
"action": "Import",
|
|
4414
|
+
"entityType": "Media"
|
|
4415
|
+
},
|
|
4416
|
+
"spec": {
|
|
4417
|
+
"effects": "idempotent",
|
|
4418
|
+
"cardinality": "bounded",
|
|
4419
|
+
"outputFields": [
|
|
4420
|
+
{
|
|
4421
|
+
"name": "created",
|
|
4422
|
+
"type": "integer"
|
|
4423
|
+
},
|
|
4424
|
+
{
|
|
4425
|
+
"name": "folders",
|
|
4426
|
+
"type": "integer"
|
|
4427
|
+
},
|
|
4428
|
+
{
|
|
4429
|
+
"name": "skipped",
|
|
4430
|
+
"type": "integer"
|
|
4431
|
+
},
|
|
4432
|
+
{
|
|
4433
|
+
"name": "differs",
|
|
4434
|
+
"type": "array",
|
|
4435
|
+
"items": {
|
|
4436
|
+
"type": "string"
|
|
4437
|
+
}
|
|
4438
|
+
},
|
|
4439
|
+
{
|
|
4440
|
+
"name": "unsupported",
|
|
4441
|
+
"type": "array",
|
|
4442
|
+
"items": {
|
|
4443
|
+
"type": "string"
|
|
4444
|
+
}
|
|
4445
|
+
},
|
|
4446
|
+
{
|
|
4447
|
+
"name": "changed",
|
|
4448
|
+
"type": "boolean"
|
|
4449
|
+
}
|
|
4450
|
+
],
|
|
4451
|
+
"errors": [
|
|
4452
|
+
"not_found",
|
|
4453
|
+
"io"
|
|
4454
|
+
]
|
|
4455
|
+
},
|
|
4456
|
+
"isESM": true,
|
|
4457
|
+
"relativePath": [
|
|
4458
|
+
"src",
|
|
4459
|
+
"commands",
|
|
4460
|
+
"media",
|
|
4461
|
+
"import.ts"
|
|
4462
|
+
]
|
|
4463
|
+
},
|
|
4464
|
+
"pull": {
|
|
4465
|
+
"aliases": [],
|
|
4466
|
+
"args": {
|
|
4467
|
+
"remote": {
|
|
4468
|
+
"description": "the remote; the only one, when there is one",
|
|
4469
|
+
"name": "remote"
|
|
4470
|
+
}
|
|
4471
|
+
},
|
|
4472
|
+
"description": "Sealed and anonymised unless --full. In an empty folder it starts a new site and serves it; in a site it replaces it, saying first what it loses (recycled, and asked about unless --yes).\n\n--media-info-only fetches media files one at a time, only what changed since the last pull; --lazy-media fetches each the first time it is asked for; --no-media leaves them out.",
|
|
4473
|
+
"examples": [
|
|
4474
|
+
"<%= config.bin %> pull production --env staging --yes"
|
|
4475
|
+
],
|
|
4476
|
+
"flags": {
|
|
4477
|
+
"output": {
|
|
4478
|
+
"char": "o",
|
|
4479
|
+
"helpGroup": "GLOBAL",
|
|
4480
|
+
"name": "output",
|
|
4481
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
4482
|
+
"default": "text",
|
|
4483
|
+
"hasDynamicHelp": false,
|
|
4484
|
+
"multiple": false,
|
|
4485
|
+
"options": [
|
|
4486
|
+
"text",
|
|
4487
|
+
"json"
|
|
4488
|
+
],
|
|
4489
|
+
"type": "option"
|
|
4490
|
+
},
|
|
4491
|
+
"json": {
|
|
4492
|
+
"hidden": true,
|
|
4493
|
+
"name": "json",
|
|
4494
|
+
"summary": "the same as -o json",
|
|
4495
|
+
"allowNo": false,
|
|
4496
|
+
"type": "boolean"
|
|
4497
|
+
},
|
|
4498
|
+
"env": {
|
|
4499
|
+
"name": "env",
|
|
4500
|
+
"summary": "the environment to pull",
|
|
4501
|
+
"hasDynamicHelp": false,
|
|
4502
|
+
"helpValue": "<id>",
|
|
4503
|
+
"multiple": false,
|
|
4504
|
+
"type": "option"
|
|
4505
|
+
},
|
|
4506
|
+
"full": {
|
|
4507
|
+
"name": "full",
|
|
4508
|
+
"summary": "a full copy, people included: needs the permission for it",
|
|
4509
|
+
"allowNo": false,
|
|
4510
|
+
"type": "boolean"
|
|
4511
|
+
},
|
|
4512
|
+
"yes": {
|
|
4513
|
+
"name": "yes",
|
|
4514
|
+
"summary": "replace this site without asking",
|
|
4515
|
+
"allowNo": false,
|
|
4516
|
+
"type": "boolean"
|
|
4517
|
+
},
|
|
4518
|
+
"no-media": {
|
|
4519
|
+
"name": "no-media",
|
|
4520
|
+
"summary": "leave the media files out",
|
|
4521
|
+
"allowNo": false,
|
|
4522
|
+
"type": "boolean"
|
|
4523
|
+
},
|
|
4524
|
+
"media-info-only": {
|
|
4525
|
+
"name": "media-info-only",
|
|
4526
|
+
"summary": "fetch media files one at a time, only what changed",
|
|
4527
|
+
"allowNo": false,
|
|
3938
4528
|
"type": "boolean"
|
|
3939
4529
|
},
|
|
3940
4530
|
"lazy-media": {
|
|
@@ -4147,24 +4737,10 @@
|
|
|
4147
4737
|
"push.ts"
|
|
4148
4738
|
]
|
|
4149
4739
|
},
|
|
4150
|
-
"
|
|
4740
|
+
"recycle-bin:empty": {
|
|
4151
4741
|
"aliases": [],
|
|
4152
|
-
"args": {
|
|
4153
|
-
|
|
4154
|
-
"description": "a name for it: lower case letters, digits and dashes",
|
|
4155
|
-
"name": "name",
|
|
4156
|
-
"required": true
|
|
4157
|
-
},
|
|
4158
|
-
"url": {
|
|
4159
|
-
"description": "the site's URL",
|
|
4160
|
-
"name": "url",
|
|
4161
|
-
"required": true
|
|
4162
|
-
}
|
|
4163
|
-
},
|
|
4164
|
-
"description": "URLs only: sign-ins are kept in your keychain. Adding the same remote again changes nothing; a different URL for a name already taken needs --force.",
|
|
4165
|
-
"examples": [
|
|
4166
|
-
"<%= config.bin %> remote add production https://example.com --env production"
|
|
4167
|
-
],
|
|
4742
|
+
"args": {},
|
|
4743
|
+
"description": "Pages and media both, unless --content or --media names one. --older-than keeps what was trashed recently; an item trashed before crombolo recorded when is kept by it too, and counted.\n\nAsks first, unless --yes; --dry-run lists what would go.",
|
|
4168
4744
|
"flags": {
|
|
4169
4745
|
"output": {
|
|
4170
4746
|
"char": "o",
|
|
@@ -4187,24 +4763,174 @@
|
|
|
4187
4763
|
"allowNo": false,
|
|
4188
4764
|
"type": "boolean"
|
|
4189
4765
|
},
|
|
4190
|
-
"
|
|
4191
|
-
"
|
|
4192
|
-
|
|
4766
|
+
"content": {
|
|
4767
|
+
"exclusive": [
|
|
4768
|
+
"media"
|
|
4769
|
+
],
|
|
4770
|
+
"name": "content",
|
|
4771
|
+
"summary": "only pages",
|
|
4772
|
+
"allowNo": false,
|
|
4773
|
+
"type": "boolean"
|
|
4774
|
+
},
|
|
4775
|
+
"media": {
|
|
4776
|
+
"exclusive": [
|
|
4777
|
+
"content"
|
|
4778
|
+
],
|
|
4779
|
+
"name": "media",
|
|
4780
|
+
"summary": "only media, with their files",
|
|
4781
|
+
"allowNo": false,
|
|
4782
|
+
"type": "boolean"
|
|
4783
|
+
},
|
|
4784
|
+
"older-than": {
|
|
4785
|
+
"name": "older-than",
|
|
4786
|
+
"summary": "only what was trashed more than this many days ago",
|
|
4193
4787
|
"hasDynamicHelp": false,
|
|
4194
|
-
"helpValue": "<id>",
|
|
4195
4788
|
"multiple": false,
|
|
4196
4789
|
"type": "option"
|
|
4197
4790
|
},
|
|
4198
|
-
"
|
|
4199
|
-
"name": "
|
|
4200
|
-
"summary": "
|
|
4791
|
+
"yes": {
|
|
4792
|
+
"name": "yes",
|
|
4793
|
+
"summary": "don't ask",
|
|
4201
4794
|
"allowNo": false,
|
|
4202
4795
|
"type": "boolean"
|
|
4203
|
-
}
|
|
4204
|
-
|
|
4205
|
-
|
|
4206
|
-
|
|
4207
|
-
|
|
4796
|
+
},
|
|
4797
|
+
"dry-run": {
|
|
4798
|
+
"name": "dry-run",
|
|
4799
|
+
"summary": "say what it would do, and change nothing",
|
|
4800
|
+
"allowNo": false,
|
|
4801
|
+
"type": "boolean"
|
|
4802
|
+
}
|
|
4803
|
+
},
|
|
4804
|
+
"hasDynamicHelp": false,
|
|
4805
|
+
"hiddenAliases": [],
|
|
4806
|
+
"id": "recycle-bin:empty",
|
|
4807
|
+
"pluginAlias": "@crombolo/cli",
|
|
4808
|
+
"pluginName": "@crombolo/cli",
|
|
4809
|
+
"pluginType": "core",
|
|
4810
|
+
"strict": true,
|
|
4811
|
+
"summary": "delete what is in the recycle bin, for good",
|
|
4812
|
+
"enableJsonFlag": false,
|
|
4813
|
+
"audit": {
|
|
4814
|
+
"category": "content",
|
|
4815
|
+
"action": "EmptyRecycleBin",
|
|
4816
|
+
"entityType": "Document"
|
|
4817
|
+
},
|
|
4818
|
+
"spec": {
|
|
4819
|
+
"effects": "idempotent",
|
|
4820
|
+
"cardinality": "bounded",
|
|
4821
|
+
"confirmationBypassArg": "--yes",
|
|
4822
|
+
"outputFields": [
|
|
4823
|
+
{
|
|
4824
|
+
"name": "items",
|
|
4825
|
+
"type": "array",
|
|
4826
|
+
"items": {
|
|
4827
|
+
"type": "object",
|
|
4828
|
+
"fields": [
|
|
4829
|
+
{
|
|
4830
|
+
"name": "key",
|
|
4831
|
+
"type": "string"
|
|
4832
|
+
},
|
|
4833
|
+
{
|
|
4834
|
+
"name": "name",
|
|
4835
|
+
"type": "string"
|
|
4836
|
+
},
|
|
4837
|
+
{
|
|
4838
|
+
"name": "kind",
|
|
4839
|
+
"type": "string",
|
|
4840
|
+
"enum": [
|
|
4841
|
+
"content",
|
|
4842
|
+
"media"
|
|
4843
|
+
]
|
|
4844
|
+
},
|
|
4845
|
+
{
|
|
4846
|
+
"name": "trashedAt",
|
|
4847
|
+
"type": "string",
|
|
4848
|
+
"nullable": true
|
|
4849
|
+
}
|
|
4850
|
+
]
|
|
4851
|
+
}
|
|
4852
|
+
},
|
|
4853
|
+
{
|
|
4854
|
+
"name": "kept",
|
|
4855
|
+
"type": "integer",
|
|
4856
|
+
"description": "trashed too recently, or at an unknown time"
|
|
4857
|
+
},
|
|
4858
|
+
{
|
|
4859
|
+
"name": "changed",
|
|
4860
|
+
"type": "boolean"
|
|
4861
|
+
}
|
|
4862
|
+
],
|
|
4863
|
+
"errors": [
|
|
4864
|
+
"confirmation_required",
|
|
4865
|
+
"refused"
|
|
4866
|
+
]
|
|
4867
|
+
},
|
|
4868
|
+
"isESM": true,
|
|
4869
|
+
"relativePath": [
|
|
4870
|
+
"src",
|
|
4871
|
+
"commands",
|
|
4872
|
+
"recycle-bin",
|
|
4873
|
+
"empty.ts"
|
|
4874
|
+
]
|
|
4875
|
+
},
|
|
4876
|
+
"remote:add": {
|
|
4877
|
+
"aliases": [],
|
|
4878
|
+
"args": {
|
|
4879
|
+
"name": {
|
|
4880
|
+
"description": "a name for it: lower case letters, digits and dashes",
|
|
4881
|
+
"name": "name",
|
|
4882
|
+
"required": true
|
|
4883
|
+
},
|
|
4884
|
+
"url": {
|
|
4885
|
+
"description": "the site's URL",
|
|
4886
|
+
"name": "url",
|
|
4887
|
+
"required": true
|
|
4888
|
+
}
|
|
4889
|
+
},
|
|
4890
|
+
"description": "URLs only: sign-ins are kept in your keychain. Adding the same remote again changes nothing; a different URL for a name already taken needs --force.",
|
|
4891
|
+
"examples": [
|
|
4892
|
+
"<%= config.bin %> remote add production https://example.com --env production"
|
|
4893
|
+
],
|
|
4894
|
+
"flags": {
|
|
4895
|
+
"output": {
|
|
4896
|
+
"char": "o",
|
|
4897
|
+
"helpGroup": "GLOBAL",
|
|
4898
|
+
"name": "output",
|
|
4899
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
4900
|
+
"default": "text",
|
|
4901
|
+
"hasDynamicHelp": false,
|
|
4902
|
+
"multiple": false,
|
|
4903
|
+
"options": [
|
|
4904
|
+
"text",
|
|
4905
|
+
"json"
|
|
4906
|
+
],
|
|
4907
|
+
"type": "option"
|
|
4908
|
+
},
|
|
4909
|
+
"json": {
|
|
4910
|
+
"hidden": true,
|
|
4911
|
+
"name": "json",
|
|
4912
|
+
"summary": "the same as -o json",
|
|
4913
|
+
"allowNo": false,
|
|
4914
|
+
"type": "boolean"
|
|
4915
|
+
},
|
|
4916
|
+
"env": {
|
|
4917
|
+
"name": "env",
|
|
4918
|
+
"summary": "the environment it goes to by default",
|
|
4919
|
+
"hasDynamicHelp": false,
|
|
4920
|
+
"helpValue": "<id>",
|
|
4921
|
+
"multiple": false,
|
|
4922
|
+
"type": "option"
|
|
4923
|
+
},
|
|
4924
|
+
"force": {
|
|
4925
|
+
"name": "force",
|
|
4926
|
+
"summary": "replace a remote of the same name",
|
|
4927
|
+
"allowNo": false,
|
|
4928
|
+
"type": "boolean"
|
|
4929
|
+
}
|
|
4930
|
+
},
|
|
4931
|
+
"hasDynamicHelp": false,
|
|
4932
|
+
"hiddenAliases": [],
|
|
4933
|
+
"id": "remote:add",
|
|
4208
4934
|
"pluginAlias": "@crombolo/cli",
|
|
4209
4935
|
"pluginName": "@crombolo/cli",
|
|
4210
4936
|
"pluginType": "core",
|
|
@@ -6628,6 +7354,647 @@
|
|
|
6628
7354
|
"rewrite.ts"
|
|
6629
7355
|
]
|
|
6630
7356
|
},
|
|
7357
|
+
"users:disable": {
|
|
7358
|
+
"aliases": [],
|
|
7359
|
+
"args": {
|
|
7360
|
+
"user": {
|
|
7361
|
+
"description": "their e-mail address or username",
|
|
7362
|
+
"name": "user",
|
|
7363
|
+
"required": true
|
|
7364
|
+
}
|
|
7365
|
+
},
|
|
7366
|
+
"flags": {
|
|
7367
|
+
"output": {
|
|
7368
|
+
"char": "o",
|
|
7369
|
+
"helpGroup": "GLOBAL",
|
|
7370
|
+
"name": "output",
|
|
7371
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
7372
|
+
"default": "text",
|
|
7373
|
+
"hasDynamicHelp": false,
|
|
7374
|
+
"multiple": false,
|
|
7375
|
+
"options": [
|
|
7376
|
+
"text",
|
|
7377
|
+
"json"
|
|
7378
|
+
],
|
|
7379
|
+
"type": "option"
|
|
7380
|
+
},
|
|
7381
|
+
"json": {
|
|
7382
|
+
"hidden": true,
|
|
7383
|
+
"name": "json",
|
|
7384
|
+
"summary": "the same as -o json",
|
|
7385
|
+
"allowNo": false,
|
|
7386
|
+
"type": "boolean"
|
|
7387
|
+
}
|
|
7388
|
+
},
|
|
7389
|
+
"hasDynamicHelp": false,
|
|
7390
|
+
"hiddenAliases": [],
|
|
7391
|
+
"id": "users:disable",
|
|
7392
|
+
"pluginAlias": "@crombolo/cli",
|
|
7393
|
+
"pluginName": "@crombolo/cli",
|
|
7394
|
+
"pluginType": "core",
|
|
7395
|
+
"strict": true,
|
|
7396
|
+
"summary": "stop a user signing in, and end their sessions",
|
|
7397
|
+
"enableJsonFlag": false,
|
|
7398
|
+
"audit": {
|
|
7399
|
+
"category": "user",
|
|
7400
|
+
"action": "Disable",
|
|
7401
|
+
"entityType": "User"
|
|
7402
|
+
},
|
|
7403
|
+
"spec": {
|
|
7404
|
+
"effects": "idempotent",
|
|
7405
|
+
"cardinality": "single",
|
|
7406
|
+
"outputFields": [
|
|
7407
|
+
{
|
|
7408
|
+
"name": "id",
|
|
7409
|
+
"type": "string"
|
|
7410
|
+
},
|
|
7411
|
+
{
|
|
7412
|
+
"name": "email",
|
|
7413
|
+
"type": "string"
|
|
7414
|
+
},
|
|
7415
|
+
{
|
|
7416
|
+
"name": "state",
|
|
7417
|
+
"type": "string"
|
|
7418
|
+
},
|
|
7419
|
+
{
|
|
7420
|
+
"name": "changed",
|
|
7421
|
+
"type": "boolean"
|
|
7422
|
+
}
|
|
7423
|
+
],
|
|
7424
|
+
"errors": [
|
|
7425
|
+
"not_found",
|
|
7426
|
+
"refused"
|
|
7427
|
+
]
|
|
7428
|
+
},
|
|
7429
|
+
"isESM": true,
|
|
7430
|
+
"relativePath": [
|
|
7431
|
+
"src",
|
|
7432
|
+
"commands",
|
|
7433
|
+
"users",
|
|
7434
|
+
"disable.ts"
|
|
7435
|
+
]
|
|
7436
|
+
},
|
|
7437
|
+
"users:enable": {
|
|
7438
|
+
"aliases": [],
|
|
7439
|
+
"args": {
|
|
7440
|
+
"user": {
|
|
7441
|
+
"description": "their e-mail address or username",
|
|
7442
|
+
"name": "user",
|
|
7443
|
+
"required": true
|
|
7444
|
+
}
|
|
7445
|
+
},
|
|
7446
|
+
"flags": {
|
|
7447
|
+
"output": {
|
|
7448
|
+
"char": "o",
|
|
7449
|
+
"helpGroup": "GLOBAL",
|
|
7450
|
+
"name": "output",
|
|
7451
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
7452
|
+
"default": "text",
|
|
7453
|
+
"hasDynamicHelp": false,
|
|
7454
|
+
"multiple": false,
|
|
7455
|
+
"options": [
|
|
7456
|
+
"text",
|
|
7457
|
+
"json"
|
|
7458
|
+
],
|
|
7459
|
+
"type": "option"
|
|
7460
|
+
},
|
|
7461
|
+
"json": {
|
|
7462
|
+
"hidden": true,
|
|
7463
|
+
"name": "json",
|
|
7464
|
+
"summary": "the same as -o json",
|
|
7465
|
+
"allowNo": false,
|
|
7466
|
+
"type": "boolean"
|
|
7467
|
+
}
|
|
7468
|
+
},
|
|
7469
|
+
"hasDynamicHelp": false,
|
|
7470
|
+
"hiddenAliases": [],
|
|
7471
|
+
"id": "users:enable",
|
|
7472
|
+
"pluginAlias": "@crombolo/cli",
|
|
7473
|
+
"pluginName": "@crombolo/cli",
|
|
7474
|
+
"pluginType": "core",
|
|
7475
|
+
"strict": true,
|
|
7476
|
+
"summary": "let a disabled user sign in again",
|
|
7477
|
+
"enableJsonFlag": false,
|
|
7478
|
+
"audit": {
|
|
7479
|
+
"category": "user",
|
|
7480
|
+
"action": "Enable",
|
|
7481
|
+
"entityType": "User"
|
|
7482
|
+
},
|
|
7483
|
+
"spec": {
|
|
7484
|
+
"effects": "idempotent",
|
|
7485
|
+
"cardinality": "single",
|
|
7486
|
+
"outputFields": [
|
|
7487
|
+
{
|
|
7488
|
+
"name": "id",
|
|
7489
|
+
"type": "string"
|
|
7490
|
+
},
|
|
7491
|
+
{
|
|
7492
|
+
"name": "email",
|
|
7493
|
+
"type": "string"
|
|
7494
|
+
},
|
|
7495
|
+
{
|
|
7496
|
+
"name": "state",
|
|
7497
|
+
"type": "string"
|
|
7498
|
+
},
|
|
7499
|
+
{
|
|
7500
|
+
"name": "changed",
|
|
7501
|
+
"type": "boolean"
|
|
7502
|
+
}
|
|
7503
|
+
],
|
|
7504
|
+
"errors": [
|
|
7505
|
+
"not_found",
|
|
7506
|
+
"refused"
|
|
7507
|
+
]
|
|
7508
|
+
},
|
|
7509
|
+
"isESM": true,
|
|
7510
|
+
"relativePath": [
|
|
7511
|
+
"src",
|
|
7512
|
+
"commands",
|
|
7513
|
+
"users",
|
|
7514
|
+
"enable.ts"
|
|
7515
|
+
]
|
|
7516
|
+
},
|
|
7517
|
+
"users:invite": {
|
|
7518
|
+
"aliases": [],
|
|
7519
|
+
"args": {
|
|
7520
|
+
"email": {
|
|
7521
|
+
"description": "their e-mail address",
|
|
7522
|
+
"name": "email",
|
|
7523
|
+
"required": true
|
|
7524
|
+
}
|
|
7525
|
+
},
|
|
7526
|
+
"description": "The link is printed rather than e-mailed, so it works on a site with no e-mail delivery. It is used once, and expires as an invitation does.",
|
|
7527
|
+
"examples": [
|
|
7528
|
+
"<%= config.bin %> users invite editor@example.com --group editor --name \"Ada Lovelace\""
|
|
7529
|
+
],
|
|
7530
|
+
"flags": {
|
|
7531
|
+
"output": {
|
|
7532
|
+
"char": "o",
|
|
7533
|
+
"helpGroup": "GLOBAL",
|
|
7534
|
+
"name": "output",
|
|
7535
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
7536
|
+
"default": "text",
|
|
7537
|
+
"hasDynamicHelp": false,
|
|
7538
|
+
"multiple": false,
|
|
7539
|
+
"options": [
|
|
7540
|
+
"text",
|
|
7541
|
+
"json"
|
|
7542
|
+
],
|
|
7543
|
+
"type": "option"
|
|
7544
|
+
},
|
|
7545
|
+
"json": {
|
|
7546
|
+
"hidden": true,
|
|
7547
|
+
"name": "json",
|
|
7548
|
+
"summary": "the same as -o json",
|
|
7549
|
+
"allowNo": false,
|
|
7550
|
+
"type": "boolean"
|
|
7551
|
+
},
|
|
7552
|
+
"group": {
|
|
7553
|
+
"name": "group",
|
|
7554
|
+
"summary": "a user group, by alias; repeatable",
|
|
7555
|
+
"default": [],
|
|
7556
|
+
"hasDynamicHelp": false,
|
|
7557
|
+
"helpValue": "<alias>",
|
|
7558
|
+
"multiple": true,
|
|
7559
|
+
"type": "option"
|
|
7560
|
+
},
|
|
7561
|
+
"name": {
|
|
7562
|
+
"name": "name",
|
|
7563
|
+
"summary": "their name; the address when not given",
|
|
7564
|
+
"hasDynamicHelp": false,
|
|
7565
|
+
"helpValue": "<name>",
|
|
7566
|
+
"multiple": false,
|
|
7567
|
+
"type": "option"
|
|
7568
|
+
}
|
|
7569
|
+
},
|
|
7570
|
+
"hasDynamicHelp": false,
|
|
7571
|
+
"hiddenAliases": [],
|
|
7572
|
+
"id": "users:invite",
|
|
7573
|
+
"pluginAlias": "@crombolo/cli",
|
|
7574
|
+
"pluginName": "@crombolo/cli",
|
|
7575
|
+
"pluginType": "core",
|
|
7576
|
+
"strict": true,
|
|
7577
|
+
"summary": "create a user and print the link they set their password with",
|
|
7578
|
+
"enableJsonFlag": false,
|
|
7579
|
+
"audit": {
|
|
7580
|
+
"category": "user",
|
|
7581
|
+
"action": "Invite",
|
|
7582
|
+
"entityType": "User"
|
|
7583
|
+
},
|
|
7584
|
+
"spec": {
|
|
7585
|
+
"effects": "non_idempotent",
|
|
7586
|
+
"cardinality": "single",
|
|
7587
|
+
"outputFields": [
|
|
7588
|
+
{
|
|
7589
|
+
"name": "id",
|
|
7590
|
+
"type": "string"
|
|
7591
|
+
},
|
|
7592
|
+
{
|
|
7593
|
+
"name": "email",
|
|
7594
|
+
"type": "string"
|
|
7595
|
+
},
|
|
7596
|
+
{
|
|
7597
|
+
"name": "groups",
|
|
7598
|
+
"type": "array",
|
|
7599
|
+
"items": {
|
|
7600
|
+
"type": "string"
|
|
7601
|
+
}
|
|
7602
|
+
},
|
|
7603
|
+
{
|
|
7604
|
+
"name": "link",
|
|
7605
|
+
"type": "string"
|
|
7606
|
+
}
|
|
7607
|
+
],
|
|
7608
|
+
"errors": [
|
|
7609
|
+
"usage",
|
|
7610
|
+
"not_found",
|
|
7611
|
+
"conflict",
|
|
7612
|
+
"refused"
|
|
7613
|
+
]
|
|
7614
|
+
},
|
|
7615
|
+
"isESM": true,
|
|
7616
|
+
"relativePath": [
|
|
7617
|
+
"src",
|
|
7618
|
+
"commands",
|
|
7619
|
+
"users",
|
|
7620
|
+
"invite.ts"
|
|
7621
|
+
]
|
|
7622
|
+
},
|
|
7623
|
+
"users:list": {
|
|
7624
|
+
"aliases": [],
|
|
7625
|
+
"args": {},
|
|
7626
|
+
"flags": {
|
|
7627
|
+
"output": {
|
|
7628
|
+
"char": "o",
|
|
7629
|
+
"helpGroup": "GLOBAL",
|
|
7630
|
+
"name": "output",
|
|
7631
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
7632
|
+
"default": "text",
|
|
7633
|
+
"hasDynamicHelp": false,
|
|
7634
|
+
"multiple": false,
|
|
7635
|
+
"options": [
|
|
7636
|
+
"text",
|
|
7637
|
+
"json"
|
|
7638
|
+
],
|
|
7639
|
+
"type": "option"
|
|
7640
|
+
},
|
|
7641
|
+
"json": {
|
|
7642
|
+
"hidden": true,
|
|
7643
|
+
"name": "json",
|
|
7644
|
+
"summary": "the same as -o json",
|
|
7645
|
+
"allowNo": false,
|
|
7646
|
+
"type": "boolean"
|
|
7647
|
+
},
|
|
7648
|
+
"limit": {
|
|
7649
|
+
"name": "limit",
|
|
7650
|
+
"summary": "how many to list",
|
|
7651
|
+
"default": 50,
|
|
7652
|
+
"hasDynamicHelp": false,
|
|
7653
|
+
"multiple": false,
|
|
7654
|
+
"type": "option"
|
|
7655
|
+
},
|
|
7656
|
+
"offset": {
|
|
7657
|
+
"name": "offset",
|
|
7658
|
+
"summary": "how many to skip first",
|
|
7659
|
+
"default": 0,
|
|
7660
|
+
"hasDynamicHelp": false,
|
|
7661
|
+
"multiple": false,
|
|
7662
|
+
"type": "option"
|
|
7663
|
+
},
|
|
7664
|
+
"fields": {
|
|
7665
|
+
"name": "fields",
|
|
7666
|
+
"summary": "only these fields of each item, comma-separated",
|
|
7667
|
+
"hasDynamicHelp": false,
|
|
7668
|
+
"helpValue": "<a,b>",
|
|
7669
|
+
"multiple": false,
|
|
7670
|
+
"type": "option"
|
|
7671
|
+
}
|
|
7672
|
+
},
|
|
7673
|
+
"hasDynamicHelp": false,
|
|
7674
|
+
"hiddenAliases": [],
|
|
7675
|
+
"id": "users:list",
|
|
7676
|
+
"pluginAlias": "@crombolo/cli",
|
|
7677
|
+
"pluginName": "@crombolo/cli",
|
|
7678
|
+
"pluginType": "core",
|
|
7679
|
+
"strict": true,
|
|
7680
|
+
"summary": "the back-office users: who, their groups, their state and last sign-in",
|
|
7681
|
+
"enableJsonFlag": false,
|
|
7682
|
+
"spec": {
|
|
7683
|
+
"effects": "read_only",
|
|
7684
|
+
"cardinality": "unbounded",
|
|
7685
|
+
"pagination": {
|
|
7686
|
+
"style": "offset",
|
|
7687
|
+
"offsetArg": "--offset",
|
|
7688
|
+
"limitArg": "--limit"
|
|
7689
|
+
},
|
|
7690
|
+
"fieldsArg": "--fields",
|
|
7691
|
+
"outputFields": [
|
|
7692
|
+
{
|
|
7693
|
+
"name": "id",
|
|
7694
|
+
"type": "string"
|
|
7695
|
+
},
|
|
7696
|
+
{
|
|
7697
|
+
"name": "name",
|
|
7698
|
+
"type": "string"
|
|
7699
|
+
},
|
|
7700
|
+
{
|
|
7701
|
+
"name": "email",
|
|
7702
|
+
"type": "string"
|
|
7703
|
+
},
|
|
7704
|
+
{
|
|
7705
|
+
"name": "userName",
|
|
7706
|
+
"type": "string"
|
|
7707
|
+
},
|
|
7708
|
+
{
|
|
7709
|
+
"name": "kind",
|
|
7710
|
+
"type": "string",
|
|
7711
|
+
"enum": [
|
|
7712
|
+
"Default",
|
|
7713
|
+
"Api"
|
|
7714
|
+
]
|
|
7715
|
+
},
|
|
7716
|
+
{
|
|
7717
|
+
"name": "state",
|
|
7718
|
+
"type": "string"
|
|
7719
|
+
},
|
|
7720
|
+
{
|
|
7721
|
+
"name": "groups",
|
|
7722
|
+
"type": "array",
|
|
7723
|
+
"items": {
|
|
7724
|
+
"type": "string"
|
|
7725
|
+
}
|
|
7726
|
+
},
|
|
7727
|
+
{
|
|
7728
|
+
"name": "failedLoginAttempts",
|
|
7729
|
+
"type": "integer"
|
|
7730
|
+
},
|
|
7731
|
+
{
|
|
7732
|
+
"name": "lastLoginDate",
|
|
7733
|
+
"type": "string",
|
|
7734
|
+
"nullable": true
|
|
7735
|
+
}
|
|
7736
|
+
]
|
|
7737
|
+
},
|
|
7738
|
+
"isESM": true,
|
|
7739
|
+
"relativePath": [
|
|
7740
|
+
"src",
|
|
7741
|
+
"commands",
|
|
7742
|
+
"users",
|
|
7743
|
+
"list.ts"
|
|
7744
|
+
]
|
|
7745
|
+
},
|
|
7746
|
+
"users:reset-2fa": {
|
|
7747
|
+
"aliases": [],
|
|
7748
|
+
"args": {
|
|
7749
|
+
"user": {
|
|
7750
|
+
"description": "their e-mail address or username",
|
|
7751
|
+
"name": "user",
|
|
7752
|
+
"required": true
|
|
7753
|
+
}
|
|
7754
|
+
},
|
|
7755
|
+
"flags": {
|
|
7756
|
+
"output": {
|
|
7757
|
+
"char": "o",
|
|
7758
|
+
"helpGroup": "GLOBAL",
|
|
7759
|
+
"name": "output",
|
|
7760
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
7761
|
+
"default": "text",
|
|
7762
|
+
"hasDynamicHelp": false,
|
|
7763
|
+
"multiple": false,
|
|
7764
|
+
"options": [
|
|
7765
|
+
"text",
|
|
7766
|
+
"json"
|
|
7767
|
+
],
|
|
7768
|
+
"type": "option"
|
|
7769
|
+
},
|
|
7770
|
+
"json": {
|
|
7771
|
+
"hidden": true,
|
|
7772
|
+
"name": "json",
|
|
7773
|
+
"summary": "the same as -o json",
|
|
7774
|
+
"allowNo": false,
|
|
7775
|
+
"type": "boolean"
|
|
7776
|
+
}
|
|
7777
|
+
},
|
|
7778
|
+
"hasDynamicHelp": false,
|
|
7779
|
+
"hiddenAliases": [],
|
|
7780
|
+
"id": "users:reset-2fa",
|
|
7781
|
+
"pluginAlias": "@crombolo/cli",
|
|
7782
|
+
"pluginName": "@crombolo/cli",
|
|
7783
|
+
"pluginType": "core",
|
|
7784
|
+
"strict": true,
|
|
7785
|
+
"summary": "remove a user's second factors, so their next sign-in sets one up again",
|
|
7786
|
+
"enableJsonFlag": false,
|
|
7787
|
+
"audit": {
|
|
7788
|
+
"category": "user",
|
|
7789
|
+
"action": "ResetTwoFactor",
|
|
7790
|
+
"entityType": "User"
|
|
7791
|
+
},
|
|
7792
|
+
"spec": {
|
|
7793
|
+
"effects": "idempotent",
|
|
7794
|
+
"cardinality": "single",
|
|
7795
|
+
"outputFields": [
|
|
7796
|
+
{
|
|
7797
|
+
"name": "id",
|
|
7798
|
+
"type": "string"
|
|
7799
|
+
},
|
|
7800
|
+
{
|
|
7801
|
+
"name": "email",
|
|
7802
|
+
"type": "string"
|
|
7803
|
+
},
|
|
7804
|
+
{
|
|
7805
|
+
"name": "removed",
|
|
7806
|
+
"type": "array",
|
|
7807
|
+
"items": {
|
|
7808
|
+
"type": "string"
|
|
7809
|
+
}
|
|
7810
|
+
},
|
|
7811
|
+
{
|
|
7812
|
+
"name": "changed",
|
|
7813
|
+
"type": "boolean"
|
|
7814
|
+
}
|
|
7815
|
+
],
|
|
7816
|
+
"errors": [
|
|
7817
|
+
"not_found"
|
|
7818
|
+
]
|
|
7819
|
+
},
|
|
7820
|
+
"isESM": true,
|
|
7821
|
+
"relativePath": [
|
|
7822
|
+
"src",
|
|
7823
|
+
"commands",
|
|
7824
|
+
"users",
|
|
7825
|
+
"reset-2fa.ts"
|
|
7826
|
+
]
|
|
7827
|
+
},
|
|
7828
|
+
"users:reset-password": {
|
|
7829
|
+
"aliases": [],
|
|
7830
|
+
"args": {
|
|
7831
|
+
"user": {
|
|
7832
|
+
"description": "their e-mail address or username",
|
|
7833
|
+
"name": "user",
|
|
7834
|
+
"required": true
|
|
7835
|
+
}
|
|
7836
|
+
},
|
|
7837
|
+
"description": "A new one is generated and printed, unless --stdin gives it. `admin reset-password` does the same for the site's own administrator.",
|
|
7838
|
+
"examples": [
|
|
7839
|
+
"<%= config.bin %> users reset-password editor@example.com",
|
|
7840
|
+
"printf %s \"$PASSWORD\" | <%= config.bin %> users reset-password editor@example.com --stdin"
|
|
7841
|
+
],
|
|
7842
|
+
"flags": {
|
|
7843
|
+
"output": {
|
|
7844
|
+
"char": "o",
|
|
7845
|
+
"helpGroup": "GLOBAL",
|
|
7846
|
+
"name": "output",
|
|
7847
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
7848
|
+
"default": "text",
|
|
7849
|
+
"hasDynamicHelp": false,
|
|
7850
|
+
"multiple": false,
|
|
7851
|
+
"options": [
|
|
7852
|
+
"text",
|
|
7853
|
+
"json"
|
|
7854
|
+
],
|
|
7855
|
+
"type": "option"
|
|
7856
|
+
},
|
|
7857
|
+
"json": {
|
|
7858
|
+
"hidden": true,
|
|
7859
|
+
"name": "json",
|
|
7860
|
+
"summary": "the same as -o json",
|
|
7861
|
+
"allowNo": false,
|
|
7862
|
+
"type": "boolean"
|
|
7863
|
+
},
|
|
7864
|
+
"stdin": {
|
|
7865
|
+
"name": "stdin",
|
|
7866
|
+
"summary": "read the new password from stdin",
|
|
7867
|
+
"allowNo": false,
|
|
7868
|
+
"type": "boolean"
|
|
7869
|
+
}
|
|
7870
|
+
},
|
|
7871
|
+
"hasDynamicHelp": false,
|
|
7872
|
+
"hiddenAliases": [],
|
|
7873
|
+
"id": "users:reset-password",
|
|
7874
|
+
"pluginAlias": "@crombolo/cli",
|
|
7875
|
+
"pluginName": "@crombolo/cli",
|
|
7876
|
+
"pluginType": "core",
|
|
7877
|
+
"strict": true,
|
|
7878
|
+
"summary": "give a user a new password, and end their sessions",
|
|
7879
|
+
"enableJsonFlag": false,
|
|
7880
|
+
"audit": {
|
|
7881
|
+
"category": "user",
|
|
7882
|
+
"action": "ResetPassword",
|
|
7883
|
+
"entityType": "User"
|
|
7884
|
+
},
|
|
7885
|
+
"spec": {
|
|
7886
|
+
"effects": "non_idempotent",
|
|
7887
|
+
"cardinality": "single",
|
|
7888
|
+
"outputFields": [
|
|
7889
|
+
{
|
|
7890
|
+
"name": "id",
|
|
7891
|
+
"type": "string"
|
|
7892
|
+
},
|
|
7893
|
+
{
|
|
7894
|
+
"name": "email",
|
|
7895
|
+
"type": "string"
|
|
7896
|
+
},
|
|
7897
|
+
{
|
|
7898
|
+
"name": "password",
|
|
7899
|
+
"type": "string",
|
|
7900
|
+
"nullable": true,
|
|
7901
|
+
"description": "the generated one; null when given"
|
|
7902
|
+
}
|
|
7903
|
+
],
|
|
7904
|
+
"errors": [
|
|
7905
|
+
"not_found",
|
|
7906
|
+
"usage",
|
|
7907
|
+
"refused"
|
|
7908
|
+
]
|
|
7909
|
+
},
|
|
7910
|
+
"isESM": true,
|
|
7911
|
+
"relativePath": [
|
|
7912
|
+
"src",
|
|
7913
|
+
"commands",
|
|
7914
|
+
"users",
|
|
7915
|
+
"reset-password.ts"
|
|
7916
|
+
]
|
|
7917
|
+
},
|
|
7918
|
+
"users:unlock": {
|
|
7919
|
+
"aliases": [],
|
|
7920
|
+
"args": {
|
|
7921
|
+
"user": {
|
|
7922
|
+
"description": "their e-mail address or username",
|
|
7923
|
+
"name": "user",
|
|
7924
|
+
"required": true
|
|
7925
|
+
}
|
|
7926
|
+
},
|
|
7927
|
+
"flags": {
|
|
7928
|
+
"output": {
|
|
7929
|
+
"char": "o",
|
|
7930
|
+
"helpGroup": "GLOBAL",
|
|
7931
|
+
"name": "output",
|
|
7932
|
+
"summary": "text for people; json for scripts, on stdout",
|
|
7933
|
+
"default": "text",
|
|
7934
|
+
"hasDynamicHelp": false,
|
|
7935
|
+
"multiple": false,
|
|
7936
|
+
"options": [
|
|
7937
|
+
"text",
|
|
7938
|
+
"json"
|
|
7939
|
+
],
|
|
7940
|
+
"type": "option"
|
|
7941
|
+
},
|
|
7942
|
+
"json": {
|
|
7943
|
+
"hidden": true,
|
|
7944
|
+
"name": "json",
|
|
7945
|
+
"summary": "the same as -o json",
|
|
7946
|
+
"allowNo": false,
|
|
7947
|
+
"type": "boolean"
|
|
7948
|
+
}
|
|
7949
|
+
},
|
|
7950
|
+
"hasDynamicHelp": false,
|
|
7951
|
+
"hiddenAliases": [],
|
|
7952
|
+
"id": "users:unlock",
|
|
7953
|
+
"pluginAlias": "@crombolo/cli",
|
|
7954
|
+
"pluginName": "@crombolo/cli",
|
|
7955
|
+
"pluginType": "core",
|
|
7956
|
+
"strict": true,
|
|
7957
|
+
"summary": "clear a user's lockout and failed sign-ins",
|
|
7958
|
+
"enableJsonFlag": false,
|
|
7959
|
+
"audit": {
|
|
7960
|
+
"category": "user",
|
|
7961
|
+
"action": "Unlock",
|
|
7962
|
+
"entityType": "User"
|
|
7963
|
+
},
|
|
7964
|
+
"spec": {
|
|
7965
|
+
"effects": "idempotent",
|
|
7966
|
+
"cardinality": "single",
|
|
7967
|
+
"outputFields": [
|
|
7968
|
+
{
|
|
7969
|
+
"name": "id",
|
|
7970
|
+
"type": "string"
|
|
7971
|
+
},
|
|
7972
|
+
{
|
|
7973
|
+
"name": "email",
|
|
7974
|
+
"type": "string"
|
|
7975
|
+
},
|
|
7976
|
+
{
|
|
7977
|
+
"name": "state",
|
|
7978
|
+
"type": "string"
|
|
7979
|
+
},
|
|
7980
|
+
{
|
|
7981
|
+
"name": "changed",
|
|
7982
|
+
"type": "boolean"
|
|
7983
|
+
}
|
|
7984
|
+
],
|
|
7985
|
+
"errors": [
|
|
7986
|
+
"not_found",
|
|
7987
|
+
"refused"
|
|
7988
|
+
]
|
|
7989
|
+
},
|
|
7990
|
+
"isESM": true,
|
|
7991
|
+
"relativePath": [
|
|
7992
|
+
"src",
|
|
7993
|
+
"commands",
|
|
7994
|
+
"users",
|
|
7995
|
+
"unlock.ts"
|
|
7996
|
+
]
|
|
7997
|
+
},
|
|
6631
7998
|
"whoami": {
|
|
6632
7999
|
"aliases": [],
|
|
6633
8000
|
"args": {
|
|
@@ -6706,5 +8073,5 @@
|
|
|
6706
8073
|
]
|
|
6707
8074
|
}
|
|
6708
8075
|
},
|
|
6709
|
-
"version": "0.
|
|
8076
|
+
"version": "0.16.0"
|
|
6710
8077
|
}
|