legispro-cli 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +696 -0
  3. package/bin/dev +17 -0
  4. package/bin/dev.cmd +3 -0
  5. package/bin/run +5 -0
  6. package/bin/run.cmd +3 -0
  7. package/dist/commands/backup/create.d.ts +7 -0
  8. package/dist/commands/backup/create.js +26 -0
  9. package/dist/commands/backup/list.d.ts +7 -0
  10. package/dist/commands/backup/list.js +38 -0
  11. package/dist/commands/collection/add.d.ts +12 -0
  12. package/dist/commands/collection/add.js +108 -0
  13. package/dist/commands/collection/create.d.ts +14 -0
  14. package/dist/commands/collection/create.js +132 -0
  15. package/dist/commands/collection/delete.d.ts +10 -0
  16. package/dist/commands/collection/delete.js +53 -0
  17. package/dist/commands/collection/download.d.ts +11 -0
  18. package/dist/commands/collection/download.js +87 -0
  19. package/dist/commands/collection/get.d.ts +10 -0
  20. package/dist/commands/collection/get.js +54 -0
  21. package/dist/commands/collection/list.d.ts +7 -0
  22. package/dist/commands/collection/list.js +25 -0
  23. package/dist/commands/collection/perms.d.ts +12 -0
  24. package/dist/commands/collection/perms.js +82 -0
  25. package/dist/commands/collection/update.d.ts +16 -0
  26. package/dist/commands/collection/update.js +174 -0
  27. package/dist/commands/collection/upload.d.ts +12 -0
  28. package/dist/commands/collection/upload.js +127 -0
  29. package/dist/commands/config/get.d.ts +1 -0
  30. package/dist/commands/config/get.js +19 -0
  31. package/dist/commands/config/set.d.ts +1 -0
  32. package/dist/commands/config/set.js +125 -0
  33. package/dist/commands/db/init.d.ts +7 -0
  34. package/dist/commands/db/init.js +90 -0
  35. package/dist/commands/db/memory.d.ts +7 -0
  36. package/dist/commands/db/memory.js +27 -0
  37. package/dist/commands/db/uptime.d.ts +7 -0
  38. package/dist/commands/db/uptime.js +17 -0
  39. package/dist/commands/db/version.d.ts +7 -0
  40. package/dist/commands/db/version.js +17 -0
  41. package/dist/commands/document/copy.d.ts +7 -0
  42. package/dist/commands/document/copy.js +35 -0
  43. package/dist/commands/document/list.d.ts +7 -0
  44. package/dist/commands/document/list.js +34 -0
  45. package/dist/commands/group/create.d.ts +14 -0
  46. package/dist/commands/group/create.js +132 -0
  47. package/dist/commands/group/delete.d.ts +10 -0
  48. package/dist/commands/group/delete.js +50 -0
  49. package/dist/commands/group/get.d.ts +10 -0
  50. package/dist/commands/group/get.js +51 -0
  51. package/dist/commands/group/list.d.ts +7 -0
  52. package/dist/commands/group/list.js +20 -0
  53. package/dist/commands/group/update.d.ts +14 -0
  54. package/dist/commands/group/update.js +132 -0
  55. package/dist/commands/locks/add.d.ts +7 -0
  56. package/dist/commands/locks/add.js +80 -0
  57. package/dist/commands/locks/clear.d.ts +7 -0
  58. package/dist/commands/locks/clear.js +23 -0
  59. package/dist/commands/locks/list.d.ts +7 -0
  60. package/dist/commands/locks/list.js +86 -0
  61. package/dist/commands/services/health.d.ts +8 -0
  62. package/dist/commands/services/health.js +66 -0
  63. package/dist/commands/user/create.d.ts +26 -0
  64. package/dist/commands/user/create.js +374 -0
  65. package/dist/commands/user/delete.d.ts +10 -0
  66. package/dist/commands/user/delete.js +58 -0
  67. package/dist/commands/user/get.d.ts +10 -0
  68. package/dist/commands/user/get.js +53 -0
  69. package/dist/commands/user/list.d.ts +7 -0
  70. package/dist/commands/user/list.js +24 -0
  71. package/dist/commands/user/login.d.ts +13 -0
  72. package/dist/commands/user/login.js +93 -0
  73. package/dist/commands/user/update.d.ts +25 -0
  74. package/dist/commands/user/update.js +267 -0
  75. package/dist/index.d.ts +1 -0
  76. package/dist/index.js +5 -0
  77. package/dist/lib/fusiondb-client.d.ts +52 -0
  78. package/dist/lib/fusiondb-client.js +655 -0
  79. package/dist/lib/rclone-client.d.ts +11 -0
  80. package/dist/lib/rclone-client.js +41 -0
  81. package/dist/lib/types.d.ts +79 -0
  82. package/dist/lib/types.js +2 -0
  83. package/dist/lib/utils.d.ts +4 -0
  84. package/dist/lib/utils.js +7 -0
  85. package/dist/lib/xml-templates.d.ts +6 -0
  86. package/dist/lib/xml-templates.js +66 -0
  87. package/oclif.manifest.json +1063 -0
  88. package/package.json +98 -0
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const core_1 = require("@oclif/core");
5
+ const utils_1 = require("../../lib/utils");
6
+ const enquirer_1 = require("enquirer");
7
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
+ const path_1 = tslib_1.__importDefault(require("path"));
9
+ class UserUpdate extends core_1.Command {
10
+ async run() {
11
+ const configFile = path_1.default.join(this.config.configDir, 'config.json');
12
+ const env = require(configFile);
13
+ utils_1.client.setConfig(this);
14
+ const { flags } = await this.parse(UserUpdate);
15
+ let userObject = { userName: "empty" };
16
+ // prompts
17
+ if (!flags.username) {
18
+ const name_answer = await (0, enquirer_1.prompt)([
19
+ {
20
+ type: 'input',
21
+ name: 'username',
22
+ message: 'Username',
23
+ required: true
24
+ },
25
+ ]);
26
+ // @ts-ignore
27
+ flags.username = name_answer['username'];
28
+ // load user info
29
+ let user_object_response = await utils_1.client.getUser(flags.username);
30
+ if (user_object_response.status == 200) {
31
+ userObject = user_object_response.data;
32
+ }
33
+ else {
34
+ this.log(`${chalk_1.default.red("Error:")} user ${flags.username} doesn't exist.`);
35
+ this.exit();
36
+ }
37
+ let test = utils_1.client.getMeta(userObject.metadata, "lastName");
38
+ // console.log("last name: " + test);
39
+ //this.exit();
40
+ const res = await (0, enquirer_1.prompt)([
41
+ {
42
+ type: 'password',
43
+ name: 'password',
44
+ message: 'Password',
45
+ initial: null,
46
+ required: false
47
+ },
48
+ {
49
+ type: 'input',
50
+ name: 'groups',
51
+ message: 'Group membership',
52
+ initial: (typeof userObject.groups !== "undefined") ? userObject.groups.toString() : '',
53
+ required: true
54
+ },
55
+ {
56
+ type: 'input',
57
+ name: 'primaryGroup',
58
+ message: 'Primary group',
59
+ initial: (typeof userObject.primaryGroup !== "undefined") ? userObject.primaryGroup : env.group,
60
+ required: true
61
+ },
62
+ {
63
+ type: 'confirm',
64
+ name: 'enabled',
65
+ message: 'Enabled',
66
+ initial: (typeof userObject.enabled !== "undefined") ? userObject.enabled : 'Y',
67
+ required: true
68
+ },
69
+ {
70
+ type: 'confirm',
71
+ name: 'expired',
72
+ message: 'Expired',
73
+ initial: (typeof userObject.expired !== "undefined") ? userObject.expired : 'N',
74
+ required: false,
75
+ skip: true
76
+ },
77
+ {
78
+ type: 'input',
79
+ name: 'firstName',
80
+ message: 'First name',
81
+ initial: (typeof utils_1.client.getMeta(userObject.metadata, "firstName") !== null) ?
82
+ utils_1.client.getMeta(userObject.metadata, "firstName") : '',
83
+ required: false,
84
+ skip: false
85
+ },
86
+ {
87
+ type: 'input',
88
+ name: 'lastName',
89
+ message: 'Last name',
90
+ initial: (typeof utils_1.client.getMeta(userObject.metadata, "lastName") !== null) ?
91
+ utils_1.client.getMeta(userObject.metadata, "lastName") : '',
92
+ required: false,
93
+ skip: false
94
+ },
95
+ {
96
+ type: 'input',
97
+ name: 'fullName',
98
+ message: 'Full name',
99
+ initial: (typeof utils_1.client.getMeta(userObject.metadata, "fullName") !== null) ?
100
+ utils_1.client.getMeta(userObject.metadata, "fullName") : '',
101
+ required: false,
102
+ skip: false
103
+ },
104
+ {
105
+ type: 'input',
106
+ name: 'alias',
107
+ message: 'Alias',
108
+ initial: (typeof utils_1.client.getMeta(userObject.metadata, "alias") !== null) ?
109
+ utils_1.client.getMeta(userObject.metadata, "alias") : '',
110
+ required: false,
111
+ skip: false
112
+ },
113
+ {
114
+ type: 'input',
115
+ name: 'email',
116
+ message: 'Email',
117
+ initial: (typeof utils_1.client.getMeta(userObject.metadata, "email") !== null) ?
118
+ utils_1.client.getMeta(userObject.metadata, "email") : '',
119
+ required: false,
120
+ skip: false
121
+ },
122
+ {
123
+ type: 'input',
124
+ name: 'country',
125
+ message: 'Country',
126
+ initial: (typeof utils_1.client.getMeta(userObject.metadata, "country") !== null) ?
127
+ utils_1.client.getMeta(userObject.metadata, "country") : '',
128
+ required: false,
129
+ skip: false
130
+ },
131
+ {
132
+ type: 'input',
133
+ name: 'language',
134
+ message: 'Language',
135
+ initial: (typeof utils_1.client.getMeta(userObject.metadata, "language") !== null) ?
136
+ utils_1.client.getMeta(userObject.metadata, "language") : '',
137
+ required: false,
138
+ skip: false
139
+ },
140
+ {
141
+ type: 'input',
142
+ name: 'timezone',
143
+ message: 'Timezone',
144
+ initial: (typeof utils_1.client.getMeta(userObject.metadata, "timezone") !== null) ?
145
+ utils_1.client.getMeta(userObject.metadata, "timezone") : '',
146
+ required: false,
147
+ skip: false
148
+ },
149
+ {
150
+ type: 'input',
151
+ name: 'description',
152
+ message: 'Description',
153
+ initial: (typeof utils_1.client.getMeta(userObject.metadata, "description") !== null) ?
154
+ utils_1.client.getMeta(userObject.metadata, "description") : '',
155
+ required: false,
156
+ skip: false
157
+ },
158
+ ]);
159
+ for (const key in res) {
160
+ if (res.hasOwnProperty(key)) {
161
+ // @ts-ignore
162
+ flags[key] = res[key];
163
+ }
164
+ }
165
+ }
166
+ if (flags.username) {
167
+ let user = {
168
+ userName: flags.username,
169
+ primaryGroup: (typeof flags.primaryGroup !== "undefined") ? flags.primaryGroup : env.group,
170
+ groups: (typeof flags.groups !== "undefined") ? `${flags.groups}`.split(",") : ['users', flags.username, env.group],
171
+ metadata: utils_1.client.setMeta(flags),
172
+ expired: (typeof flags.expired !== "undefined") ? flags.expired : false,
173
+ enabled: (typeof flags.enabled !== "undefined") ? flags.enabled : true,
174
+ umask: (typeof flags.umask !== "undefined") ? flags.umask : 18
175
+ };
176
+ // console.log(user);
177
+ // change password
178
+ if (typeof flags.password !== "undefined" && flags.password !== null && flags.password.length > 0) {
179
+ let RIPEMD160 = require('ripemd160');
180
+ user.password = new RIPEMD160().update(flags.password).digest('base64');
181
+ }
182
+ // todo: create new groups if they don't exist
183
+ let update_user_response = await utils_1.client.createUser(user);
184
+ let display_user_response = await utils_1.client.getUser(flags.username);
185
+ if (display_user_response.status == 200) {
186
+ // this.log(JSON.stringify(display_user_response.data, null, 2));
187
+ this.log(`User ${chalk_1.default.magenta(flags.username)} updated.`);
188
+ }
189
+ else {
190
+ this.log(`${chalk_1.default.red("Error:")} user ${flags.username} doesn't exist.`);
191
+ }
192
+ this.exit();
193
+ }
194
+ }
195
+ }
196
+ UserUpdate.flags = {
197
+ username: core_1.Flags.string({
198
+ description: 'Username to create',
199
+ required: false
200
+ }),
201
+ groups: core_1.Flags.string({
202
+ description: 'Group memberships',
203
+ required: false
204
+ }),
205
+ email: core_1.Flags.string({
206
+ description: 'email',
207
+ required: false
208
+ }),
209
+ language: core_1.Flags.string({
210
+ description: 'language',
211
+ required: false
212
+ }),
213
+ description: core_1.Flags.string({
214
+ description: 'description',
215
+ required: false
216
+ }),
217
+ password: core_1.Flags.string({
218
+ description: 'password',
219
+ required: false
220
+ }),
221
+ primaryGroup: core_1.Flags.string({
222
+ description: 'primary group',
223
+ required: false
224
+ }),
225
+ alias: core_1.Flags.string({
226
+ description: 'alias',
227
+ required: false
228
+ }),
229
+ timezone: core_1.Flags.string({
230
+ description: 'timezone',
231
+ required: false
232
+ }),
233
+ firstName: core_1.Flags.string({
234
+ description: 'first name',
235
+ required: false
236
+ }),
237
+ lastName: core_1.Flags.string({
238
+ description: 'last name',
239
+ required: false
240
+ }),
241
+ country: core_1.Flags.string({
242
+ description: 'country',
243
+ required: false
244
+ }),
245
+ fullName: core_1.Flags.string({
246
+ description: 'full name',
247
+ required: false
248
+ }),
249
+ enabled: core_1.Flags.boolean({
250
+ description: 'User enabled?',
251
+ required: false,
252
+ default: true
253
+ }),
254
+ expired: core_1.Flags.boolean({
255
+ description: 'User expired?',
256
+ required: false,
257
+ default: false
258
+ }),
259
+ umask: core_1.Flags.integer({
260
+ description: 'User umask',
261
+ required: false,
262
+ default: 18
263
+ }),
264
+ };
265
+ UserUpdate.description = "Update user properties";
266
+ UserUpdate.examples = [`$ legispro user:update --name demo --password secret`,];
267
+ exports.default = UserUpdate;
@@ -0,0 +1 @@
1
+ export { run } from '@oclif/core';
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.run = void 0;
4
+ var core_1 = require("@oclif/core");
5
+ Object.defineProperty(exports, "run", { enumerable: true, get: function () { return core_1.run; } });
@@ -0,0 +1,52 @@
1
+ /// <reference types="node" />
2
+ import { Command } from '@oclif/core';
3
+ import { User, Group, Collection, Document, Metadata } from "./types.js";
4
+ export declare class FusiondbClient {
5
+ private _userName;
6
+ private _groupName;
7
+ private _auth;
8
+ private _headers;
9
+ private _baseUrl;
10
+ private static _instance;
11
+ private constructor();
12
+ static get instance(): FusiondbClient;
13
+ setConfig(cmd: Command): void;
14
+ get(url: string): Promise<import("axios").AxiosResponse<any, any>>;
15
+ put(url: string, data: object): Promise<import("axios").AxiosResponse<any, any>>;
16
+ putXml(url: string, data: Buffer): Promise<import("axios").AxiosResponse<any, any>>;
17
+ delete(url: string): Promise<import("axios").AxiosResponse<any, any>>;
18
+ post(url: string, data: object): Promise<import("axios").AxiosResponse<any, any>>;
19
+ raw_post(url: string, headers: any, data: string): Promise<import("axios").AxiosResponse<any, any>>;
20
+ getMeta(meta: any, key: string): any;
21
+ setMeta(flags: any): Metadata[];
22
+ getUsers(): Promise<unknown>;
23
+ getUser(username: string | undefined): Promise<unknown>;
24
+ createUser(user: User): Promise<unknown>;
25
+ deleteUser(userName: string | undefined): Promise<unknown>;
26
+ getGroups(): Promise<unknown>;
27
+ getGroup(groupName: string | undefined): Promise<unknown>;
28
+ createGroup(group: Group): Promise<unknown>;
29
+ deleteGroup(groupName: string | undefined): Promise<unknown>;
30
+ getCollection(uri: string): Promise<unknown>;
31
+ getCollectionObject(uri: string): Promise<unknown>;
32
+ getCollectionProject(uri: string): Promise<unknown>;
33
+ existsCollection(uri: string): Promise<unknown>;
34
+ createCollection(collection: Collection): Promise<unknown>;
35
+ modifyCollection(collection: Collection): Promise<unknown>;
36
+ deleteCollection(uri: string): Promise<unknown>;
37
+ createDocument(uri: string, data: Buffer): Promise<unknown>;
38
+ updateDocumentProperties(document: Document): Promise<unknown>;
39
+ updateUserCollectionPerms(owner: string): Promise<unknown>;
40
+ updateLibraryCollectionPerms(owner: string): Promise<unknown>;
41
+ updateSharedCollectionPerms(owner: string): Promise<unknown>;
42
+ backupDatabase(): Promise<unknown>;
43
+ listBackups(): Promise<unknown>;
44
+ clearExpiredLocks(): Promise<unknown>;
45
+ listExpiredLocks(): Promise<unknown>;
46
+ listActiveLocks(): Promise<unknown>;
47
+ listAllLocks(): Promise<unknown>;
48
+ memoryFree(): Promise<unknown>;
49
+ memoryTotal(): Promise<unknown>;
50
+ memoryMax(): Promise<unknown>;
51
+ uptime(): Promise<unknown>;
52
+ }