@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
@@ -1,26 +1,50 @@
1
- 'use strict';
2
- const { tools } = require('@iobroker/js-controller-common');
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.CLIStates = void 0;
27
+ const js_controller_common_1 = require("@iobroker/js-controller-common");
28
+ const cliCommand_js_1 = require("./cliCommand.js");
29
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
3
30
  const CLI = require('./messages.js');
4
- const CLICommand = require('./cliCommand.js');
31
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
5
32
  const { formatValue } = require('./cliTools');
33
+ const rl = __importStar(require("readline-sync"));
6
34
  const ALIAS_STARTS_WITH = 'alias.';
7
-
8
35
  /** Command iobroker state ... */
9
- module.exports = class CLIStates extends CLICommand {
10
- /** @param {CLICommandOptions} options */
36
+ class CLIStates extends cliCommand_js_1.CLICommand {
11
37
  constructor(options) {
12
38
  super(options);
13
39
  }
14
-
15
40
  /**
16
41
  * Executes a command
17
- * @param {any[]} args
42
+ * @param args
18
43
  */
19
44
  execute(args) {
20
45
  const { callback, pretty, showHelp } = this.options;
21
46
  const command = args[0];
22
47
  let resultTransform;
23
-
24
48
  switch (command) {
25
49
  case 'get':
26
50
  resultTransform = obj => formatValue(obj, pretty);
@@ -31,7 +55,6 @@ module.exports = class CLIStates extends CLICommand {
31
55
  if (!obj) {
32
56
  return 'null';
33
57
  }
34
-
35
58
  return [obj.val, obj.ack, obj.from, obj.ts, obj.lc].map(line => formatValue(line)).join('\n');
36
59
  };
37
60
  return this.get_(args, resultTransform);
@@ -52,7 +75,7 @@ module.exports = class CLIStates extends CLICommand {
52
75
  case 'del':
53
76
  return this.delete(args);
54
77
  case 'getDBVersion':
55
- return this.getDBVersion(args);
78
+ return this.getDBVersion();
56
79
  case 'setDBVersion':
57
80
  return this.setDBVersion();
58
81
  default:
@@ -61,7 +84,6 @@ module.exports = class CLIStates extends CLICommand {
61
84
  return void callback(3);
62
85
  }
63
86
  }
64
-
65
87
  /**
66
88
  * Get the protocol version
67
89
  */
@@ -70,111 +92,97 @@ module.exports = class CLIStates extends CLICommand {
70
92
  dbConnect(async (objects, states) => {
71
93
  const version = await states.getProtocolVersion();
72
94
  console.log(`Current States DB protocol version: ${version}`);
73
- return void callback();
95
+ return void callback(0);
74
96
  });
75
97
  }
76
-
77
98
  /**
78
99
  * Set protocol version
79
100
  */
80
101
  setDBVersion() {
81
102
  const { callback, dbConnect } = this.options;
82
103
  dbConnect(async (objects, states) => {
83
- const rl = require('readline-sync');
84
-
85
104
  let answer = rl.question('Changing the protocol version will restart all hosts! Continue? [N/y]', {
86
105
  limit: /^(yes|y|n|no)$/i,
87
106
  defaultInput: 'no'
88
107
  });
89
-
90
108
  answer = answer.toLowerCase();
91
-
92
109
  if (answer !== 'y' && answer !== 'yes') {
93
110
  console.log('Protocol version has not been changed!');
94
- return void callback();
111
+ return void callback(0);
95
112
  }
96
-
97
113
  try {
98
114
  await states.setProtocolVersion(this.options.version);
99
- } catch (e) {
115
+ }
116
+ catch (e) {
100
117
  console.error(`Cannot update protocol version: ${e.message}`);
101
118
  return void callback(1);
102
119
  }
103
120
  console.log(`States DB protocol updated to version ${this.options.version}`);
104
- return void callback();
121
+ return void callback(0);
105
122
  });
106
123
  }
107
-
108
124
  /**
109
125
  * Checks if state is a binary state
110
- * @param {string} id id of the state
126
+ * @param id id of the state
111
127
  * @param {object} objects the objects db
112
- * @param {ioBroker.OtherObject?} obj cached object
113
- * @return {Promise<boolean>}
114
- * @private
128
+ * @param {ioBroker.OtherObject?} _obj cached object
115
129
  */
116
- async _isBinary(id, objects, obj) {
117
- obj = obj || (await objects.getObjectAsync(id));
118
-
119
- return !!(obj && (obj.binary || (obj.common && obj.common.type === 'file')));
130
+ async _isBinary(id, objects, _obj) {
131
+ const obj = _obj || (await objects.getObjectAsync(id));
132
+ return !!(obj && ('binary' in obj || (obj.common && 'type' in obj.common && obj.common.type === 'file')));
120
133
  }
121
-
122
134
  /**
123
135
  * Get and show binary state
124
136
  *
125
- * @param {any[]} args
126
- * @private
137
+ * @param args
127
138
  */
128
139
  _getBinary(args) {
129
140
  const { callback, dbConnect } = this.options;
130
141
  const id = args[1];
131
142
  dbConnect(async (objects, states) => {
132
143
  try {
133
- /** @type Buffer | null */
144
+ // @ts-expect-error #1917
134
145
  const state = await states.getBinaryState(id);
135
-
136
146
  if (!state) {
137
147
  CLI.error.stateNotFound(id);
138
148
  return void callback(1);
139
149
  }
140
-
141
150
  if (Buffer.isBuffer(state)) {
142
- console.log(state.toString(this.options.encoding));
143
- return void callback();
144
- } else {
151
+ // console.log would append new lines which will mess up the result
152
+ process.stdout.write(state, this.options.encoding);
153
+ return void callback(0);
154
+ }
155
+ else {
145
156
  CLI.error.stateNotBinary(id);
146
157
  return void callback(1);
147
158
  }
148
- } catch (e) {
159
+ }
160
+ catch (e) {
149
161
  CLI.error.unknown(e);
150
162
  return void callback(1);
151
163
  }
152
164
  });
153
165
  }
154
-
155
166
  /**
156
167
  * Returns the value of a state
157
- * @param {any[]} args
158
- * @param {(input: any) => any} resultTransform
168
+ * @param args
169
+ * @param resultTransform
159
170
  */
160
171
  get_(args, resultTransform) {
161
172
  const { callback, dbConnect } = this.options;
162
173
  const id = args[1];
163
-
164
174
  if (!id) {
165
175
  CLI.error.stateNotFound(id);
166
176
  return;
167
177
  }
168
-
169
178
  dbConnect(async (objects, states) => {
170
179
  if (id.startsWith(ALIAS_STARTS_WITH)) {
171
180
  objects.getObject(id, (err, targetObj) => {
172
181
  // alias
173
- if (targetObj && targetObj.common && targetObj.common.alias && targetObj.common.alias.id) {
174
- const aliasId =
175
- typeof targetObj.common.alias.id.read === 'string'
176
- ? targetObj.common.alias.id.read
177
- : targetObj.common.alias.id;
182
+ if (targetObj && targetObj.common && 'alias' in targetObj.common && targetObj.common.alias.id) {
183
+ const aliasId = typeof targetObj.common.alias.id.read === 'string'
184
+ ? targetObj.common.alias.id.read
185
+ : targetObj.common.alias.id;
178
186
  objects.getObject(aliasId, async (err, sourceObj) => {
179
187
  // read target
180
188
  try {
@@ -182,25 +190,29 @@ module.exports = class CLIStates extends CLICommand {
182
190
  CLI.error.stateBinaryGetUnsupported(aliasId);
183
191
  return void callback(1);
184
192
  }
185
-
186
193
  const state = await states.getStateAsync(aliasId);
187
194
  if (!state) {
188
195
  CLI.error.stateNotFound(id);
189
- } else {
190
- tools.formatAliasValue(sourceObj.common, targetObj.common, state, console, '');
196
+ }
197
+ else {
198
+ // @ts-expect-error fix after #1917
199
+ js_controller_common_1.tools.formatAliasValue(sourceObj === null || sourceObj === void 0 ? void 0 : sourceObj.common, targetObj.common, state, console, '');
191
200
  console.log(resultTransform(state));
192
201
  }
193
- } catch (e) {
202
+ }
203
+ catch (e) {
194
204
  CLI.error.unknown(e);
195
205
  }
196
- return void callback();
206
+ return void callback(0);
197
207
  });
198
- } else {
208
+ }
209
+ else {
199
210
  CLI.error.unknown(err || `Alias ${id} has no target`);
200
211
  return void callback(1); // ?
201
212
  }
202
213
  });
203
- } else {
214
+ }
215
+ else {
204
216
  try {
205
217
  if (await this._isBinary(id, objects)) {
206
218
  CLI.error.stateBinaryGetUnsupported(id);
@@ -209,39 +221,36 @@ module.exports = class CLIStates extends CLICommand {
209
221
  const state = await states.getStateAsync(id);
210
222
  if (!state) {
211
223
  CLI.error.stateNotFound(id);
212
- } else {
224
+ }
225
+ else {
213
226
  console.log(resultTransform(state));
214
227
  }
215
- } catch (e) {
228
+ }
229
+ catch (e) {
216
230
  CLI.error.unknown(e);
217
231
  }
218
- return void callback();
232
+ return void callback(0);
219
233
  }
220
234
  });
221
235
  }
222
-
223
236
  /**
224
- * @param {any[]} args
237
+ * @param args
225
238
  */
226
239
  set_(args) {
227
240
  const { callback, dbConnect, showHelp } = this.options;
228
241
  // eslint-disable-next-line prefer-const
229
- let [id, val, ack] = /** @type {[string, any, any]} */ (args.slice(1));
242
+ let [id, val, ack] = args.slice(1);
230
243
  const force = args.includes('--force') || args.includes('-f');
231
-
232
244
  if (val === undefined) {
233
245
  CLI.error.requiredArgumentMissing('value');
234
246
  showHelp();
235
- return void callback();
247
+ return void callback(0);
236
248
  }
237
-
238
249
  if (ack !== undefined) {
239
250
  ack = ack === 'true' || ack === '1' || ack === 1 || ack === true;
240
251
  }
241
-
242
252
  dbConnect((objects, states) => {
243
253
  const newVal = ack === undefined ? { val, ack: false } : { val, ack: !!ack };
244
-
245
254
  if (id.startsWith(ALIAS_STARTS_WITH)) {
246
255
  objects.getObject(id, async (err, obj) => {
247
256
  if (await this._isBinary(id, objects, obj)) {
@@ -250,11 +259,9 @@ module.exports = class CLIStates extends CLICommand {
250
259
  }
251
260
  // alias
252
261
  if (obj && obj.common && obj.common.alias && obj.common.alias.id) {
253
- const aliasId =
254
- typeof obj.common.alias.id.write === 'string'
255
- ? obj.common.alias.id.write
256
- : obj.common.alias.id;
257
-
262
+ const aliasId = typeof obj.common.alias.id.write === 'string'
263
+ ? obj.common.alias.id.write
264
+ : obj.common.alias.id;
258
265
  objects.getObject(aliasId, (err, targetObj) => {
259
266
  if (err) {
260
267
  CLI.error.unknown(err);
@@ -264,111 +271,109 @@ module.exports = class CLIStates extends CLICommand {
264
271
  CLI.error.objectNotFound(id, 'null');
265
272
  return void callback(1); // object not exists
266
273
  }
267
-
268
274
  if (obj && obj.common && obj.common.type) {
269
275
  if (obj.common.type === 'string') {
270
276
  newVal.val = newVal.val.toString();
271
- } else if (obj.common.type === 'number') {
277
+ }
278
+ else if (obj.common.type === 'number') {
272
279
  newVal.val = parseFloat(newVal.val);
273
- } else if (obj.common.type === 'boolean') {
280
+ }
281
+ else if (obj.common.type === 'boolean') {
274
282
  newVal.val = newVal.val.toString();
275
283
  newVal.val =
276
284
  newVal.val === 'true' ||
277
- newVal.val === '1' ||
278
- newVal.val === 'ON' ||
279
- newVal.val === 'on';
285
+ newVal.val === '1' ||
286
+ newVal.val === 'ON' ||
287
+ newVal.val === 'on';
280
288
  }
281
289
  }
282
-
283
290
  // write target
284
- states.setState(
285
- aliasId,
286
- tools.formatAliasValue(obj.common, targetObj.common, newVal, console, ''),
287
- err => {
288
- if (err) {
289
- CLI.error.unknown(err);
290
- return void callback(1); // ?
291
- } else {
292
- CLI.success.stateUpdated(id, val, !!ack);
293
- return void callback();
294
- }
291
+ states.setState(aliasId,
292
+ // @ts-expect-error fix after #1917
293
+ js_controller_common_1.tools.formatAliasValue(obj.common, targetObj.common, newVal, console, ''), err => {
294
+ if (err) {
295
+ CLI.error.unknown(err);
296
+ return void callback(1); // ?
297
+ }
298
+ else {
299
+ CLI.success.stateUpdated(id, val, !!ack);
300
+ return void callback(0);
295
301
  }
296
- );
302
+ });
297
303
  });
298
- } else {
304
+ }
305
+ else {
299
306
  CLI.error.unknown(`Alias ${id} has no target`);
300
307
  return void callback(1); // ?
301
308
  }
302
309
  });
303
- } else {
310
+ }
311
+ else {
304
312
  objects.getObject(id, async (err, obj) => {
305
313
  if (err) {
306
314
  CLI.error.unknown(err);
307
315
  return void callback(1); // access error
308
316
  }
309
-
310
317
  if (await this._isBinary(id, objects, obj)) {
311
318
  CLI.error.stateBinarySetUnsupported(id);
312
319
  return void callback(1);
313
320
  }
314
-
315
321
  if (!obj && !force) {
316
322
  CLI.error.objectNotFound(id, 'null');
317
323
  return void callback(1); // object not exists
318
324
  }
319
-
320
325
  if (obj && obj.common && obj.common.type) {
321
326
  if (obj.common.type === 'string') {
322
327
  newVal.val = newVal.val.toString();
323
- } else if (obj.common.type === 'number') {
328
+ }
329
+ else if (obj.common.type === 'number') {
324
330
  newVal.val = parseFloat(newVal.val);
325
- } else if (obj.common.type === 'boolean') {
331
+ }
332
+ else if (obj.common.type === 'boolean') {
326
333
  newVal.val = newVal.val.toString();
327
334
  newVal.val =
328
335
  newVal.val === 'true' ||
329
- newVal.val === '1' ||
330
- newVal.val === 'ON' ||
331
- newVal.val === 'on';
336
+ newVal.val === '1' ||
337
+ newVal.val === 'ON' ||
338
+ newVal.val === 'on';
332
339
  }
333
340
  }
334
-
335
341
  states.setState(id, newVal, err => {
336
342
  if (err) {
337
343
  CLI.error.unknown(err);
338
344
  return void callback(1); // ?
339
- } else {
345
+ }
346
+ else {
340
347
  CLI.success.stateUpdated(id, val, !!ack);
341
- return void callback();
348
+ return void callback(0);
342
349
  }
343
350
  });
344
351
  });
345
352
  }
346
353
  });
347
354
  }
348
-
349
355
  /**
350
356
  * Deletes a state
351
- * @param {any[]} args
357
+ * @param args
352
358
  */
353
359
  delete(args) {
354
360
  const { callback, dbConnect } = this.options;
355
- /** @type {string} */
356
361
  const id = args[1];
357
362
  if (!id) {
358
363
  CLI.error.requiredArgumentMissing('id', 'state delete id');
359
364
  return void callback(1);
360
365
  }
361
-
362
- dbConnect((objects, states) =>
363
- states.delState(id, err => {
364
- if (err) {
365
- CLI.error.stateNotFound(id, err);
366
- return void callback(3);
367
- } else {
368
- CLI.success.stateDeleted(id);
369
- return void callback();
370
- }
371
- })
372
- );
366
+ dbConnect((objects, states) => states.delState(id, err => {
367
+ if (err) {
368
+ CLI.error.stateNotFound(id, err);
369
+ return void callback(3);
370
+ }
371
+ else {
372
+ CLI.success.stateDeleted(id);
373
+ return void callback(0);
374
+ }
375
+ }));
373
376
  }
374
- };
377
+ }
378
+ exports.CLIStates = CLIStates;
379
+ //# sourceMappingURL=cliStates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliStates.js","sourceRoot":"","sources":["../../../src/lib/cli/cliStates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /// <reference types="iobroker" />
2
+ import type { Client as ObjectsClient } from '@iobroker/db-objects-redis';
3
+ /**
4
+ *
5
+ * @param val The value to format for output
6
+ * @param pretty Whether it should be pretty-printed
7
+ */
8
+ export declare function formatValue(val: any, pretty?: boolean): string;
9
+ /** Returns the "from" property for objects changed by the CLI */
10
+ export declare function getObjectFrom(): `system.host.${string}.cli`;
11
+ /**
12
+ * Removes <tools.appName> from the start of the adapter name if it is there
13
+ * E.g. iobroker.admin -> admin
14
+ * @param name The adapter name to normalize
15
+ */
16
+ export declare function normalizeAdapterName(name: string): string;
17
+ /**
18
+ * Ensures that the given string is a valid adapter identifier (<adaptername>) WITHOUT instance number
19
+ * @param name The name which is supposed to be an adapter identifier
20
+ */
21
+ export declare function validateAdapterIdentifier(name: string): boolean;
22
+ /**
23
+ * Ensures that the given string contains a valid identifier for
24
+ * an adapter (without instance number) or instance (with instance number)
25
+ * @param name
26
+ */
27
+ export declare function validateAdapterOrInstanceIdentifier(name: string): boolean;
28
+ /**
29
+ * Ensures that the given string contains a valid identifier for
30
+ * an adapter (without instance number) or instance (with instance number)
31
+ * @param name
32
+ */
33
+ export declare function splitAdapterOrInstanceIdentifierWithVersion(name: string): {
34
+ name: string;
35
+ instance: string | null;
36
+ version: string | null;
37
+ nameWithVersion: string;
38
+ } | null;
39
+ /**
40
+ * Extracts the instance name from an object ID
41
+ * @param instanceObjID The ID of the instance object
42
+ */
43
+ export declare function getInstanceName(instanceObjID: string): string;
44
+ /**
45
+ * Enumerates the instances of an adapter or all of them
46
+ * @param objects The objects DB to use
47
+ * @param adapter (optional) The adapter whose instances should be enumerated
48
+ * @returns An array of instance objects
49
+ */
50
+ export declare function enumInstances(objects: ObjectsClient, adapter?: string): Promise<(ioBroker.InferGetObjectViewItemType<'system', 'instance'> | null)[]>;
51
+ /**
52
+ * Enumerates all known hosts
53
+ * @param objects The objects DB to use
54
+ * @returns An array of host objects
55
+ */
56
+ export declare function enumHosts(objects: ObjectsClient): Promise<(ioBroker.InferGetObjectViewItemType<'system', 'host'> | null)[]>;
57
+ /**
58
+ * Enumerates all objects of a given type
59
+ * @param objects The objects DB to use
60
+ * @param type The type of the objects to enumerate
61
+ * @param startkey The prefix of the objects
62
+ */
63
+ export declare function enumObjects<T extends string>(objects: ObjectsClient, type: T, startkey: string): Promise<(ioBroker.InferGetObjectViewItemType<'system', T> | null)[]>;
64
+ //# sourceMappingURL=cliTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliTools.d.ts","sourceRoot":"","sources":["../../../src/lib/cli/cliTools.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE1E;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,UAAQ,GAAG,MAAM,CAK5D;AAED,iEAAiE;AACjE,wBAAgB,aAAa,IAAI,eAAe,MAAM,MAAM,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKzD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED;;;;GAIG;AACH,wBAAgB,2CAA2C,CACvD,IAAI,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAWnG;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAC/B,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAM/E;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACrB,OAAO,EAAE,aAAa,GACvB,OAAO,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAE3E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EACxC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAgBtE"}