@iobroker/js-controller-cli 4.0.23 → 4.1.0-alpha.0-20220823-bd606e5c

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 (77) hide show
  1. package/build/index.d.ts +87 -0
  2. package/{index.js → build/index.js} +8 -2
  3. package/build/lib/cli/cliCert.d.ts +16 -0
  4. package/build/lib/cli/cliCert.d.ts.map +1 -0
  5. package/{lib → build/lib}/cli/cliCert.js +6 -10
  6. package/build/lib/cli/cliCert.js.map +1 -0
  7. package/build/lib/cli/cliCommand.d.ts +41 -0
  8. package/build/lib/cli/cliCommand.d.ts.map +1 -0
  9. package/build/lib/cli/cliCommand.js +27 -0
  10. package/build/lib/cli/cliCommand.js.map +1 -0
  11. package/build/lib/cli/cliCompact.d.ts +26 -0
  12. package/build/lib/cli/cliCompact.d.ts.map +1 -0
  13. package/{lib → build/lib}/cli/cliCompact.js +24 -44
  14. package/build/lib/cli/cliCompact.js.map +1 -0
  15. package/build/lib/cli/cliDebug.d.ts +19 -0
  16. package/build/lib/cli/cliDebug.d.ts.map +1 -0
  17. package/{lib → build/lib}/cli/cliDebug.js +7 -14
  18. package/build/lib/cli/cliDebug.js.map +1 -0
  19. package/build/lib/cli/cliHost.d.ts +36 -0
  20. package/build/lib/cli/cliHost.d.ts.map +1 -0
  21. package/{lib → build/lib}/cli/cliHost.js +23 -48
  22. package/build/lib/cli/cliHost.js.map +1 -0
  23. package/build/lib/cli/cliLogs.d.ts +58 -0
  24. package/build/lib/cli/cliLogs.d.ts.map +1 -0
  25. package/{lib → build/lib}/cli/cliLogs.js +17 -21
  26. package/build/lib/cli/cliLogs.js.map +1 -0
  27. package/build/lib/cli/cliMessage.d.ts +10 -0
  28. package/build/lib/cli/cliMessage.d.ts.map +1 -0
  29. package/{lib → build/lib}/cli/cliMessage.js +6 -9
  30. package/build/lib/cli/cliMessage.js.map +1 -0
  31. package/build/lib/cli/cliObjects.d.ts +105 -0
  32. package/build/lib/cli/cliObjects.d.ts.map +1 -0
  33. package/{lib → build/lib}/cli/cliObjects.js +70 -111
  34. package/build/lib/cli/cliObjects.js.map +1 -0
  35. package/build/lib/cli/cliPlugin.d.ts +23 -0
  36. package/build/lib/cli/cliPlugin.d.ts.map +1 -0
  37. package/{lib → build/lib}/cli/cliPlugin.js +25 -51
  38. package/build/lib/cli/cliPlugin.js.map +1 -0
  39. package/build/lib/cli/cliProcess.d.ts +50 -0
  40. package/build/lib/cli/cliProcess.d.ts.map +1 -0
  41. package/{lib → build/lib}/cli/cliProcess.js +51 -63
  42. package/build/lib/cli/cliProcess.js.map +1 -0
  43. package/build/lib/cli/cliStates.d.ts +49 -0
  44. package/build/lib/cli/cliStates.d.ts.map +1 -0
  45. package/{lib → build/lib}/cli/cliStates.js +127 -122
  46. package/build/lib/cli/cliStates.js.map +1 -0
  47. package/build/lib/cli/cliTools.d.ts +64 -0
  48. package/build/lib/cli/cliTools.d.ts.map +1 -0
  49. package/{lib → build/lib}/cli/cliTools.js +37 -49
  50. package/build/lib/cli/cliTools.js.map +1 -0
  51. package/build/lib/cli/messages.d.ts +53 -0
  52. package/build/lib/cli/messages.d.ts.map +1 -0
  53. package/{lib → build/lib}/cli/messages.js +27 -66
  54. package/build/lib/cli/messages.js.map +1 -0
  55. package/build/lib/setup/setupBackup.d.ts +126 -0
  56. package/build/lib/setup/setupBackup.d.ts.map +1 -0
  57. package/build/lib/setup/setupBackup.js +1031 -0
  58. package/build/lib/setup/setupBackup.js.map +1 -0
  59. package/build/lib/setup/setupInstall.d.ts +23 -0
  60. package/build/lib/setup/setupInstall.d.ts.map +1 -0
  61. package/build/lib/setup/setupInstall.js +1620 -0
  62. package/build/lib/setup/setupInstall.js.map +1 -0
  63. package/build/lib/setup/setupList.d.ts +49 -0
  64. package/build/lib/setup/setupList.d.ts.map +1 -0
  65. package/build/lib/setup/setupList.js +722 -0
  66. package/build/lib/setup/setupList.js.map +1 -0
  67. package/build/lib/setup/setupPacketManager.d.ts +65 -0
  68. package/build/lib/setup/setupPacketManager.d.ts.map +1 -0
  69. package/build/lib/setup/setupPacketManager.js +216 -0
  70. package/build/lib/setup/setupPacketManager.js.map +1 -0
  71. package/build/lib/setup/setupUpload.d.ts +72 -0
  72. package/build/lib/setup/setupUpload.d.ts.map +1 -0
  73. package/build/lib/setup/setupUpload.js +784 -0
  74. package/build/lib/setup/setupUpload.js.map +1 -0
  75. package/package.json +18 -11
  76. package/lib/cli/cliCommand.js +0 -58
  77. package/lib/setup/setupList.js +0 -840
@@ -2,27 +2,22 @@
2
2
  const fs = require('fs');
3
3
  const path = require('path');
4
4
  const CLI = require('./messages.js');
5
- const CLICommand = require('./cliCommand.js');
5
+ const { CLICommand } = require('./cliCommand.js');
6
6
  const { tools } = require('@iobroker/js-controller-common');
7
7
  const dbTools = require('@iobroker/js-controller-common-db').tools;
8
8
  const deepClone = require('deep-clone');
9
9
  const { EXIT_CODES } = require('@iobroker/js-controller-common');
10
-
11
10
  const { getObjectFrom, getInstanceName, normalizeAdapterName, enumInstances } = require('./cliTools.js');
12
-
13
11
  // The root of this project. Change this when moving code to another directory
14
12
  const rootDir = tools.getControllerDir();
15
13
  const killAllScriptPath = path.join(rootDir, 'killall.sh');
16
-
17
14
  module.exports = class CLIProcess extends CLICommand {
18
15
  /** @param {import('./cliCommand').CLICommandOptions} options */
19
16
  constructor(options) {
20
17
  super(options);
21
18
  }
22
-
23
19
  // These CLI commands have no subcommands, but belong together thematically
24
20
  // (start/stop/restart/status)
25
-
26
21
  /**
27
22
  * Starts one or more adapters or the js-controller
28
23
  * @param {any[]} args
@@ -31,15 +26,17 @@ module.exports = class CLIProcess extends CLICommand {
31
26
  const adapterName = normalizeAdapterName(args[0]);
32
27
  if (!adapterName) {
33
28
  this.startJSController();
34
- } else if (adapterName === 'all') {
29
+ }
30
+ else if (adapterName === 'all') {
35
31
  this.setAllAdaptersEnabled(true);
36
- } else if (/\.\d+$/.test(adapterName)) {
32
+ }
33
+ else if (/\.\d+$/.test(adapterName)) {
37
34
  this.setAdapterInstanceEnabled(adapterName, true);
38
- } else {
35
+ }
36
+ else {
39
37
  this.setAdapterEnabled(adapterName, true);
40
38
  }
41
39
  }
42
-
43
40
  /**
44
41
  * Restarts one or more adapters or the js-controller
45
42
  * @param {any[]} args
@@ -48,13 +45,14 @@ module.exports = class CLIProcess extends CLICommand {
48
45
  const adapterName = normalizeAdapterName(args[0]);
49
46
  if (!adapterName) {
50
47
  this.restartJSController();
51
- } else if (/\.\d+$/.test(adapterName)) {
48
+ }
49
+ else if (/\.\d+$/.test(adapterName)) {
52
50
  this.setAdapterInstanceEnabled(adapterName, true, /* restartIfRunning */ true);
53
- } else {
51
+ }
52
+ else {
54
53
  this.setAdapterEnabled(adapterName, true, /* restartIfRunning */ true);
55
54
  }
56
55
  }
57
-
58
56
  /**
59
57
  * Stops one or more adapters or the js-controller
60
58
  * @param {any[]} args
@@ -63,22 +61,24 @@ module.exports = class CLIProcess extends CLICommand {
63
61
  const adapterName = normalizeAdapterName(args[0]);
64
62
  if (adapterName === undefined) {
65
63
  this.stopJSController();
66
- } else if (adapterName === 'all') {
64
+ }
65
+ else if (adapterName === 'all') {
67
66
  this.setAllAdaptersEnabled(false);
68
- } else if (/\.\d+$/.test(adapterName)) {
67
+ }
68
+ else if (/\.\d+$/.test(adapterName)) {
69
69
  this.setAdapterInstanceEnabled(adapterName, false);
70
- } else {
70
+ }
71
+ else {
71
72
  this.setAdapterEnabled(adapterName, false);
72
73
  }
73
74
  }
74
-
75
75
  /**
76
76
  * Starts or stops all adapters
77
77
  * @param {boolean} enabled
78
78
  */
79
79
  setAllAdaptersEnabled(enabled) {
80
80
  const { callback, dbConnect } = this.options;
81
- dbConnect(async objects => {
81
+ dbConnect(async (objects) => {
82
82
  // Enumerate all adapter instances
83
83
  const instances = await tools.getInstancesOrderedByStartPrio(objects, console);
84
84
  // Create a promise for each. setInstanceEnabled only starts/stops when necessary
@@ -90,7 +90,6 @@ module.exports = class CLIProcess extends CLICommand {
90
90
  callback();
91
91
  });
92
92
  }
93
-
94
93
  /**
95
94
  * Starts or stops a single adapter. If there are multiple instances this fails
96
95
  * @param {string} adapter The adapter to start
@@ -99,7 +98,7 @@ module.exports = class CLIProcess extends CLICommand {
99
98
  */
100
99
  setAdapterEnabled(adapter, enabled, restartIfRunning) {
101
100
  const { callback, dbConnect } = this.options;
102
- dbConnect(async objects => {
101
+ dbConnect(async (objects) => {
103
102
  // Due to the many return locations we cannot simply chain the promises here
104
103
  // Use the pre-Node8 async/await pattern
105
104
  try {
@@ -107,25 +106,23 @@ module.exports = class CLIProcess extends CLICommand {
107
106
  const adapterInstances = await enumInstances(objects, adapter);
108
107
  // If there are multiple instances for this adapter, ask the user to specify which one
109
108
  if (adapterInstances.length > 1) {
110
- CLI.error.specifyInstance(
111
- adapter,
112
- adapterInstances.map(obj => obj._id.substring('system.adapter.'.length))
113
- );
109
+ CLI.error.specifyInstance(adapter, adapterInstances.map(obj => obj._id.substring('system.adapter.'.length)));
114
110
  return void callback(EXIT_CODES.INVALID_ADAPTER_ID);
115
- } else if (adapterInstances.length === 0) {
111
+ }
112
+ else if (adapterInstances.length === 0) {
116
113
  CLI.error.noInstancesFound(adapter);
117
114
  return void callback(EXIT_CODES.UNKNOWN_ERROR);
118
115
  }
119
116
  const instance = adapterInstances[0];
120
117
  await setInstanceEnabled(objects, instance, enabled, restartIfRunning);
121
118
  return void callback();
122
- } catch (err) {
119
+ }
120
+ catch (err) {
123
121
  CLI.error.unknown(err.message);
124
122
  return void callback(EXIT_CODES.UNKNOWN_ERROR);
125
123
  }
126
124
  });
127
125
  }
128
-
129
126
  /**
130
127
  * Starts or stops a specific adapter instance
131
128
  * @param {string} instance The instance to start, e.g. "adaptername.0"
@@ -140,24 +137,22 @@ module.exports = class CLIProcess extends CLICommand {
140
137
  CLI.error.invalidInstance(instance);
141
138
  return void callback();
142
139
  }
143
-
144
140
  try {
145
141
  await setInstanceEnabled(objects, obj, enabled, restartIfRunning);
146
142
  return void callback();
147
- } catch (e) {
143
+ }
144
+ catch (e) {
148
145
  CLI.error.unknown(e.message);
149
146
  return void callback(EXIT_CODES.UNKNOWN_ERROR);
150
147
  }
151
148
  });
152
149
  });
153
150
  }
154
-
155
151
  /** Starts the JS controller */
156
152
  startJSController() {
157
153
  const daemon = setupDaemonize();
158
154
  daemon.start();
159
155
  }
160
-
161
156
  /** Stops the JS controller */
162
157
  stopJSController() {
163
158
  const { callback } = this.options;
@@ -176,21 +171,20 @@ module.exports = class CLIProcess extends CLICommand {
176
171
  console.log('Exit code for "killall.sh": ' + exitCode);
177
172
  return void callback();
178
173
  });
179
- } else {
174
+ }
175
+ else {
180
176
  console.log('No "killall.sh" script found. Just stop.');
181
177
  }
182
178
  });
183
179
  }
184
180
  daemon.stop();
185
181
  }
186
-
187
182
  /** Restarts the JS controller */
188
183
  restartJSController() {
189
184
  const daemon = setupDaemonize();
190
185
  daemon.on('stopped', () => daemon.start()).on('notrunning', () => daemon.start());
191
186
  daemon.stop();
192
187
  }
193
-
194
188
  /**
195
189
  * Checks if ioBroker is running or not
196
190
  * @param {any[]} args
@@ -199,7 +193,6 @@ module.exports = class CLIProcess extends CLICommand {
199
193
  const { callback, dbConnect } = this.options;
200
194
  const adapterName = normalizeAdapterName(args[0]);
201
195
  const showEntireConfig = adapterName === 'all';
202
-
203
196
  dbConnect(async (_objects, states, isOffline, _objectDbType, config) => {
204
197
  if (!adapterName || showEntireConfig) {
205
198
  // we want host info or/and whole config
@@ -207,44 +200,41 @@ module.exports = class CLIProcess extends CLICommand {
207
200
  const alive = hostAlive ? hostAlive.val : false;
208
201
  CLI.success.controllerStatus(alive);
209
202
  console.log();
210
- if (
211
- !dbTools.isLocalStatesDbServer(config.states.type, config.states.host) &&
212
- !dbTools.isLocalObjectsDbServer(config.objects.type, config.objects.host)
213
- ) {
203
+ if (!dbTools.isLocalStatesDbServer(config.states.type, config.states.host) &&
204
+ !dbTools.isLocalObjectsDbServer(config.objects.type, config.objects.host)) {
214
205
  CLI.success.systemStatus(!isOffline);
215
206
  }
216
-
217
207
  console.log();
218
208
  if (showEntireConfig) {
219
209
  await showAllInstancesStatus(states, _objects);
220
210
  console.log();
221
211
  showConfig(config);
222
- } else {
212
+ }
213
+ else {
223
214
  console.log(`Objects type: ${config.objects.type}`);
224
215
  console.log(`States type: ${config.states.type}`);
225
216
  }
226
217
  return void callback(isOffline ? EXIT_CODES.CONTROLLER_NOT_RUNNING : undefined);
227
218
  });
228
- } else {
219
+ }
220
+ else {
229
221
  // we want to know the status of an adapter
230
222
  if (/\.\d+$/.test(adapterName)) {
231
223
  // instance specified
232
224
  await showInstanceStatus(states, adapterName);
233
225
  return void callback();
234
- } else {
226
+ }
227
+ else {
235
228
  const adapterInstances = await enumInstances(_objects, adapterName);
236
229
  // If there are multiple instances of this adapter, ask the user to specify which one
237
230
  if (adapterInstances.length > 1) {
238
- CLI.error.specifyInstance(
239
- adapterName,
240
- adapterInstances.map(obj => obj._id.substring('system.adapter.'.length))
241
- );
231
+ CLI.error.specifyInstance(adapterName, adapterInstances.map(obj => obj._id.substring('system.adapter.'.length)));
242
232
  return void callback(EXIT_CODES.INVALID_ADAPTER_ID);
243
- } else if (adapterInstances.length === 0) {
233
+ }
234
+ else if (adapterInstances.length === 0) {
244
235
  CLI.error.noInstancesFound(adapterName);
245
236
  return void callback(EXIT_CODES.UNKNOWN_ERROR);
246
237
  }
247
-
248
238
  const instanceId = adapterInstances[0]._id.split('.').pop();
249
239
  await showInstanceStatus(states, `${adapterName}.${instanceId}`);
250
240
  return void callback();
@@ -253,7 +243,6 @@ module.exports = class CLIProcess extends CLICommand {
253
243
  });
254
244
  }
255
245
  };
256
-
257
246
  /**
258
247
  * Outputs the status of all existing adapter instances
259
248
  * @param {object} states The States DB
@@ -268,7 +257,6 @@ async function showAllInstancesStatus(states, objects) {
268
257
  }
269
258
  return Promise.resolve();
270
259
  }
271
-
272
260
  /**
273
261
  * Outputs the status of an adapter instance
274
262
  * @param {object} states the states object
@@ -280,14 +268,14 @@ function showInstanceStatus(states, adapterInstance) {
280
268
  states.getState(`system.adapter.${adapterInstance}.alive`, (err, state) => {
281
269
  if (state && state.val === true) {
282
270
  console.log(`Instance "${adapterInstance}" is running`);
283
- } else {
271
+ }
272
+ else {
284
273
  console.log(`Instance "${adapterInstance}" is not running`);
285
274
  }
286
275
  resolve();
287
276
  });
288
277
  });
289
278
  }
290
-
291
279
  /** Prints the config file to the console */
292
280
  function showConfig(config, root) {
293
281
  if (!tools.isObject(config)) {
@@ -303,12 +291,12 @@ function showConfig(config, root) {
303
291
  const nextRoot = deepClone(root);
304
292
  nextRoot.push(attr);
305
293
  showConfig(config[attr], nextRoot);
306
- } else {
294
+ }
295
+ else {
307
296
  console.log(`${prefix}${(prefix ? '/' : '') + attr}: ` + config[attr]);
308
297
  }
309
298
  }
310
299
  }
311
-
312
300
  /**
313
301
  * Sets the enabled state of an instance to the given value
314
302
  * @param {any} objects The objects DB
@@ -327,17 +315,18 @@ function setInstanceEnabled(objects, instanceObj, enabled, force) {
327
315
  const instanceName = getInstanceName(instanceObj._id);
328
316
  if (enabled) {
329
317
  CLI.success.adapterStarted(instanceName);
330
- } else {
318
+ }
319
+ else {
331
320
  CLI.success.adapterStopped(instanceName);
332
321
  }
333
322
  resolve();
334
323
  });
335
- } else {
324
+ }
325
+ else {
336
326
  resolve();
337
327
  }
338
328
  });
339
329
  }
340
-
341
330
  function setupDaemonize() {
342
331
  let memoryLimitMB = 0;
343
332
  try {
@@ -345,11 +334,10 @@ function setupDaemonize() {
345
334
  if (config && config.system && config.system.memoryLimitMB) {
346
335
  memoryLimitMB = parseInt(config.system.memoryLimitMB, 10);
347
336
  }
348
- } catch {
337
+ }
338
+ catch {
349
339
  console.warn('Cannot read memoryLimitMB');
350
- console.warn(
351
- `May be config file does not exist.\nPlease call "${tools.appName} setup first" to initialize the settings.`
352
- );
340
+ console.warn(`May be config file does not exist.\nPlease call "${tools.appName} setup first" to initialize the settings.`);
353
341
  }
354
342
  const startObj = {
355
343
  main: path.join(rootDir, 'controller.js'),
@@ -361,8 +349,8 @@ function setupDaemonize() {
361
349
  if (memoryLimitMB) {
362
350
  startObj.args = '--max-old-space-size=' + memoryLimitMB;
363
351
  }
364
-
365
352
  const daemon = require('daemonize2').setup(startObj);
366
353
  daemon.on('error', error => CLI.error.unknown(error));
367
354
  return daemon;
368
355
  }
356
+ //# sourceMappingURL=cliProcess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliProcess.js","sourceRoot":"","sources":["../../../src/lib/cli/cliProcess.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { CLICommand, CLICommandOptions } from './cliCommand.js';
2
+ declare type ResultTransform = (input: any) => any;
3
+ /** Command iobroker state ... */
4
+ export declare class CLIStates extends CLICommand {
5
+ constructor(options: CLICommandOptions);
6
+ /**
7
+ * Executes a command
8
+ * @param args
9
+ */
10
+ execute(args: any[]): void;
11
+ /**
12
+ * Get the protocol version
13
+ */
14
+ getDBVersion(): void;
15
+ /**
16
+ * Set protocol version
17
+ */
18
+ setDBVersion(): void;
19
+ /**
20
+ * Checks if state is a binary state
21
+ * @param id id of the state
22
+ * @param {object} objects the objects db
23
+ * @param {ioBroker.OtherObject?} _obj cached object
24
+ */
25
+ private _isBinary;
26
+ /**
27
+ * Get and show binary state
28
+ *
29
+ * @param args
30
+ */
31
+ private _getBinary;
32
+ /**
33
+ * Returns the value of a state
34
+ * @param args
35
+ * @param resultTransform
36
+ */
37
+ get_(args: any[], resultTransform: ResultTransform): void;
38
+ /**
39
+ * @param args
40
+ */
41
+ set_(args: any[]): void;
42
+ /**
43
+ * Deletes a state
44
+ * @param args
45
+ */
46
+ delete(args: any[]): void;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=cliStates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliStates.d.ts","sourceRoot":"","sources":["../../../src/lib/cli/cliStates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAUhE,aAAK,eAAe,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;AAE3C,iCAAiC;AACjC,qBAAa,SAAU,SAAQ,UAAU;gBACzB,OAAO,EAAE,iBAAiB;IAItC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IA8C1B;;OAEG;IACH,YAAY,IAAI,IAAI;IASpB;;OAEG;IACH,YAAY,IAAI,IAAI;IA0BpB;;;;;OAKG;YACW,SAAS;IAMvB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA4BlB;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,eAAe,EAAE,eAAe,GAAG,IAAI;IAgEzD;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IA4HvB;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;CAoB5B"}