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