@iobroker/js-controller-cli 7.2.3-alpha.9-20260711-3ea5f3c89 → 7.2.3

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 (214) hide show
  1. package/build/cjs/index.js +3 -3
  2. package/build/cjs/lib/_Types.d.ts +1 -8
  3. package/build/cjs/lib/cli/cliCert.d.ts +4 -7
  4. package/build/cjs/lib/cli/cliCert.js +6 -10
  5. package/build/cjs/lib/cli/cliCert.js.map +2 -2
  6. package/build/cjs/lib/cli/cliCommand.d.ts +14 -45
  7. package/build/cjs/lib/cli/cliCommand.js +1 -8
  8. package/build/cjs/lib/cli/cliCommand.js.map +2 -2
  9. package/build/cjs/lib/cli/cliCompact.d.ts +2 -5
  10. package/build/cjs/lib/cli/cliCompact.js +2 -9
  11. package/build/cjs/lib/cli/cliCompact.js.map +2 -2
  12. package/build/cjs/lib/cli/cliDebug.d.ts +2 -5
  13. package/build/cjs/lib/cli/cliDebug.js +1 -8
  14. package/build/cjs/lib/cli/cliDebug.js.map +2 -2
  15. package/build/cjs/lib/cli/cliHost.d.ts +10 -13
  16. package/build/cjs/lib/cli/cliHost.js +5 -13
  17. package/build/cjs/lib/cli/cliHost.js.map +2 -2
  18. package/build/cjs/lib/cli/cliLogs.d.ts +3 -9
  19. package/build/cjs/lib/cli/cliLogs.js +1 -12
  20. package/build/cjs/lib/cli/cliLogs.js.map +2 -2
  21. package/build/cjs/lib/cli/cliMessage.d.ts +1 -2
  22. package/build/cjs/lib/cli/cliMessage.js +0 -5
  23. package/build/cjs/lib/cli/cliMessage.js.map +2 -2
  24. package/build/cjs/lib/cli/cliObjects.d.ts +18 -21
  25. package/build/cjs/lib/cli/cliObjects.js +33 -51
  26. package/build/cjs/lib/cli/cliObjects.js.map +2 -2
  27. package/build/cjs/lib/cli/cliPlugin.d.ts +3 -3
  28. package/build/cjs/lib/cli/cliPlugin.js +0 -6
  29. package/build/cjs/lib/cli/cliPlugin.js.map +2 -2
  30. package/build/cjs/lib/cli/cliProcess.d.ts +4 -8
  31. package/build/cjs/lib/cli/cliProcess.js +16 -27
  32. package/build/cjs/lib/cli/cliProcess.js.map +3 -3
  33. package/build/cjs/lib/cli/cliStates.d.ts +4 -7
  34. package/build/cjs/lib/cli/cliStates.js +6 -14
  35. package/build/cjs/lib/cli/cliStates.js.map +2 -2
  36. package/build/cjs/lib/cli/cliTools.js +0 -11
  37. package/build/cjs/lib/cli/cliTools.js.map +1 -1
  38. package/build/cjs/lib/cli/messages.js +46 -47
  39. package/build/cjs/lib/cli/messages.js.map +1 -1
  40. package/build/cjs/lib/setup/customError.d.ts +0 -4
  41. package/build/cjs/lib/setup/customError.js +0 -7
  42. package/build/cjs/lib/setup/customError.js.map +2 -2
  43. package/build/cjs/lib/setup/dbConnection.js +64 -69
  44. package/build/cjs/lib/setup/dbConnection.js.map +3 -3
  45. package/build/cjs/lib/setup/formatters.d.ts +4 -4
  46. package/build/cjs/lib/setup/formatters.js +0 -5
  47. package/build/cjs/lib/setup/formatters.js.map +2 -2
  48. package/build/cjs/lib/setup/multihostClient.js +2 -6
  49. package/build/cjs/lib/setup/multihostClient.js.map +1 -1
  50. package/build/cjs/lib/setup/pluginInfos.d.ts +0 -5
  51. package/build/cjs/lib/setup/pluginInfos.js +0 -2
  52. package/build/cjs/lib/setup/pluginInfos.js.map +2 -2
  53. package/build/cjs/lib/setup/setupBackup.d.ts +0 -34
  54. package/build/cjs/lib/setup/setupBackup.js +12 -46
  55. package/build/cjs/lib/setup/setupBackup.js.map +3 -3
  56. package/build/cjs/lib/setup/setupInstall.d.ts +15 -38
  57. package/build/cjs/lib/setup/setupInstall.js +24 -42
  58. package/build/cjs/lib/setup/setupInstall.js.map +2 -2
  59. package/build/cjs/lib/setup/setupLicense.d.ts +0 -8
  60. package/build/cjs/lib/setup/setupLicense.js +0 -7
  61. package/build/cjs/lib/setup/setupLicense.js.map +2 -2
  62. package/build/cjs/lib/setup/setupList.d.ts +1 -55
  63. package/build/cjs/lib/setup/setupList.js +24 -78
  64. package/build/cjs/lib/setup/setupList.js.map +3 -3
  65. package/build/cjs/lib/setup/setupMultihost.js +9 -12
  66. package/build/cjs/lib/setup/setupMultihost.js.map +3 -3
  67. package/build/cjs/lib/setup/setupPacketManager.d.ts +0 -10
  68. package/build/cjs/lib/setup/setupPacketManager.js +6 -16
  69. package/build/cjs/lib/setup/setupPacketManager.js.map +2 -2
  70. package/build/cjs/lib/setup/setupRepo.d.ts +0 -6
  71. package/build/cjs/lib/setup/setupRepo.js +11 -28
  72. package/build/cjs/lib/setup/setupRepo.js.map +2 -2
  73. package/build/cjs/lib/setup/setupSetup.d.ts +0 -27
  74. package/build/cjs/lib/setup/setupSetup.js +33 -52
  75. package/build/cjs/lib/setup/setupSetup.js.map +3 -3
  76. package/build/cjs/lib/setup/setupUpgrade.d.ts +2 -8
  77. package/build/cjs/lib/setup/setupUpgrade.js +10 -19
  78. package/build/cjs/lib/setup/setupUpgrade.js.map +2 -2
  79. package/build/cjs/lib/setup/setupUpload.d.ts +1 -72
  80. package/build/cjs/lib/setup/setupUpload.js +6 -74
  81. package/build/cjs/lib/setup/setupUpload.js.map +2 -2
  82. package/build/cjs/lib/setup/setupUsers.d.ts +14 -23
  83. package/build/cjs/lib/setup/setupUsers.js +15 -58
  84. package/build/cjs/lib/setup/setupUsers.js.map +2 -2
  85. package/build/cjs/lib/setup/setupVendor.d.ts +1 -9
  86. package/build/cjs/lib/setup/setupVendor.js +6 -13
  87. package/build/cjs/lib/setup/setupVendor.js.map +2 -2
  88. package/build/cjs/lib/setup/setupVisDebug.d.ts +2 -11
  89. package/build/cjs/lib/setup/setupVisDebug.js +15 -21
  90. package/build/cjs/lib/setup/setupVisDebug.js.map +3 -3
  91. package/build/cjs/lib/setup/utils.d.ts +1 -1
  92. package/build/cjs/lib/setup/utils.js +9 -13
  93. package/build/cjs/lib/setup/utils.js.map +3 -3
  94. package/build/cjs/lib/setup.js +330 -269
  95. package/build/cjs/lib/setup.js.map +3 -3
  96. package/build/esm/lib/_Types.d.ts +1 -8
  97. package/build/esm/lib/_Types.d.ts.map +1 -1
  98. package/build/esm/lib/cli/cliCert.d.ts +4 -7
  99. package/build/esm/lib/cli/cliCert.d.ts.map +1 -1
  100. package/build/esm/lib/cli/cliCert.js +6 -6
  101. package/build/esm/lib/cli/cliCert.js.map +1 -1
  102. package/build/esm/lib/cli/cliCommand.d.ts +14 -45
  103. package/build/esm/lib/cli/cliCommand.d.ts.map +1 -1
  104. package/build/esm/lib/cli/cliCommand.js +1 -4
  105. package/build/esm/lib/cli/cliCommand.js.map +1 -1
  106. package/build/esm/lib/cli/cliCompact.d.ts +2 -5
  107. package/build/esm/lib/cli/cliCompact.d.ts.map +1 -1
  108. package/build/esm/lib/cli/cliCompact.js +2 -5
  109. package/build/esm/lib/cli/cliCompact.js.map +1 -1
  110. package/build/esm/lib/cli/cliDebug.d.ts +2 -5
  111. package/build/esm/lib/cli/cliDebug.d.ts.map +1 -1
  112. package/build/esm/lib/cli/cliDebug.js +1 -4
  113. package/build/esm/lib/cli/cliDebug.js.map +1 -1
  114. package/build/esm/lib/cli/cliHost.d.ts +10 -13
  115. package/build/esm/lib/cli/cliHost.d.ts.map +1 -1
  116. package/build/esm/lib/cli/cliHost.js +5 -8
  117. package/build/esm/lib/cli/cliHost.js.map +1 -1
  118. package/build/esm/lib/cli/cliLogs.d.ts +3 -9
  119. package/build/esm/lib/cli/cliLogs.d.ts.map +1 -1
  120. package/build/esm/lib/cli/cliLogs.js +1 -8
  121. package/build/esm/lib/cli/cliLogs.js.map +1 -1
  122. package/build/esm/lib/cli/cliMessage.d.ts +1 -2
  123. package/build/esm/lib/cli/cliMessage.d.ts.map +1 -1
  124. package/build/esm/lib/cli/cliMessage.js +0 -1
  125. package/build/esm/lib/cli/cliMessage.js.map +1 -1
  126. package/build/esm/lib/cli/cliObjects.d.ts +18 -21
  127. package/build/esm/lib/cli/cliObjects.d.ts.map +1 -1
  128. package/build/esm/lib/cli/cliObjects.js +38 -44
  129. package/build/esm/lib/cli/cliObjects.js.map +1 -1
  130. package/build/esm/lib/cli/cliPlugin.d.ts +3 -3
  131. package/build/esm/lib/cli/cliPlugin.d.ts.map +1 -1
  132. package/build/esm/lib/cli/cliPlugin.js +1 -1
  133. package/build/esm/lib/cli/cliPlugin.js.map +1 -1
  134. package/build/esm/lib/cli/cliProcess.d.ts +4 -8
  135. package/build/esm/lib/cli/cliProcess.d.ts.map +1 -1
  136. package/build/esm/lib/cli/cliProcess.js +4 -7
  137. package/build/esm/lib/cli/cliProcess.js.map +1 -1
  138. package/build/esm/lib/cli/cliStates.d.ts +4 -7
  139. package/build/esm/lib/cli/cliStates.d.ts.map +1 -1
  140. package/build/esm/lib/cli/cliStates.js +2 -6
  141. package/build/esm/lib/cli/cliStates.js.map +1 -1
  142. package/build/esm/lib/setup/customError.d.ts +0 -4
  143. package/build/esm/lib/setup/customError.d.ts.map +1 -1
  144. package/build/esm/lib/setup/customError.js +0 -3
  145. package/build/esm/lib/setup/customError.js.map +1 -1
  146. package/build/esm/lib/setup/dbConnection.d.ts.map +1 -1
  147. package/build/esm/lib/setup/dbConnection.js +13 -10
  148. package/build/esm/lib/setup/dbConnection.js.map +1 -1
  149. package/build/esm/lib/setup/formatters.d.ts +4 -4
  150. package/build/esm/lib/setup/formatters.js +4 -4
  151. package/build/esm/lib/setup/pluginInfos.d.ts +0 -5
  152. package/build/esm/lib/setup/pluginInfos.d.ts.map +1 -1
  153. package/build/esm/lib/setup/pluginInfos.js +0 -5
  154. package/build/esm/lib/setup/pluginInfos.js.map +1 -1
  155. package/build/esm/lib/setup/setupBackup.d.ts +0 -34
  156. package/build/esm/lib/setup/setupBackup.d.ts.map +1 -1
  157. package/build/esm/lib/setup/setupBackup.js +12 -46
  158. package/build/esm/lib/setup/setupBackup.js.map +1 -1
  159. package/build/esm/lib/setup/setupInstall.d.ts +15 -38
  160. package/build/esm/lib/setup/setupInstall.d.ts.map +1 -1
  161. package/build/esm/lib/setup/setupInstall.js +21 -38
  162. package/build/esm/lib/setup/setupInstall.js.map +1 -1
  163. package/build/esm/lib/setup/setupLicense.d.ts +0 -8
  164. package/build/esm/lib/setup/setupLicense.d.ts.map +1 -1
  165. package/build/esm/lib/setup/setupLicense.js +0 -6
  166. package/build/esm/lib/setup/setupLicense.js.map +1 -1
  167. package/build/esm/lib/setup/setupList.d.ts +1 -55
  168. package/build/esm/lib/setup/setupList.d.ts.map +1 -1
  169. package/build/esm/lib/setup/setupList.js +8 -61
  170. package/build/esm/lib/setup/setupList.js.map +1 -1
  171. package/build/esm/lib/setup/setupMultihost.d.ts.map +1 -1
  172. package/build/esm/lib/setup/setupMultihost.js +6 -5
  173. package/build/esm/lib/setup/setupMultihost.js.map +1 -1
  174. package/build/esm/lib/setup/setupPacketManager.d.ts +0 -10
  175. package/build/esm/lib/setup/setupPacketManager.d.ts.map +1 -1
  176. package/build/esm/lib/setup/setupPacketManager.js +0 -9
  177. package/build/esm/lib/setup/setupPacketManager.js.map +1 -1
  178. package/build/esm/lib/setup/setupRepo.d.ts +0 -6
  179. package/build/esm/lib/setup/setupRepo.d.ts.map +1 -1
  180. package/build/esm/lib/setup/setupRepo.js +14 -30
  181. package/build/esm/lib/setup/setupRepo.js.map +1 -1
  182. package/build/esm/lib/setup/setupSetup.d.ts +0 -27
  183. package/build/esm/lib/setup/setupSetup.d.ts.map +1 -1
  184. package/build/esm/lib/setup/setupSetup.js +21 -36
  185. package/build/esm/lib/setup/setupSetup.js.map +1 -1
  186. package/build/esm/lib/setup/setupUpgrade.d.ts +2 -8
  187. package/build/esm/lib/setup/setupUpgrade.d.ts.map +1 -1
  188. package/build/esm/lib/setup/setupUpgrade.js +6 -14
  189. package/build/esm/lib/setup/setupUpgrade.js.map +1 -1
  190. package/build/esm/lib/setup/setupUpload.d.ts +1 -72
  191. package/build/esm/lib/setup/setupUpload.d.ts.map +1 -1
  192. package/build/esm/lib/setup/setupUpload.js +5 -72
  193. package/build/esm/lib/setup/setupUpload.js.map +1 -1
  194. package/build/esm/lib/setup/setupUsers.d.ts +14 -23
  195. package/build/esm/lib/setup/setupUsers.d.ts.map +1 -1
  196. package/build/esm/lib/setup/setupUsers.js +14 -56
  197. package/build/esm/lib/setup/setupUsers.js.map +1 -1
  198. package/build/esm/lib/setup/setupVendor.d.ts +1 -9
  199. package/build/esm/lib/setup/setupVendor.d.ts.map +1 -1
  200. package/build/esm/lib/setup/setupVendor.js +1 -7
  201. package/build/esm/lib/setup/setupVendor.js.map +1 -1
  202. package/build/esm/lib/setup/setupVisDebug.d.ts +2 -11
  203. package/build/esm/lib/setup/setupVisDebug.d.ts.map +1 -1
  204. package/build/esm/lib/setup/setupVisDebug.js +14 -21
  205. package/build/esm/lib/setup/setupVisDebug.js.map +1 -1
  206. package/build/esm/lib/setup/utils.d.ts +1 -1
  207. package/build/esm/lib/setup/utils.d.ts.map +1 -1
  208. package/build/esm/lib/setup/utils.js +4 -2
  209. package/build/esm/lib/setup/utils.js.map +1 -1
  210. package/build/esm/lib/setup.d.ts.map +1 -1
  211. package/build/esm/lib/setup.js +211 -162
  212. package/build/esm/lib/setup.js.map +1 -1
  213. package/build/tsconfig.build.tsbuildinfo +1 -1
  214. package/package.json +14 -14
@@ -1,14 +1,12 @@
1
1
  import fs from 'fs-extra';
2
+ import { tools } from '@iobroker/js-controller-common';
3
+ import { EXIT_CODES } from '@iobroker/js-controller-common';
2
4
  import deepClone from 'deep-clone';
3
5
  import { isDeepStrictEqual } from 'node:util';
4
6
  import Debug from 'debug';
7
+ import { objectsDbHasServer, isLocalObjectsDbServer, isLocalStatesDbServer } from '@iobroker/js-controller-common';
5
8
  import path from 'node:path';
6
9
  import yargs from 'yargs/yargs';
7
- import * as url from 'node:url';
8
- import * as events from 'node:events';
9
- import { createRequire } from 'node:module';
10
- import { tools, EXIT_CODES, objectsDbHasServer, isLocalObjectsDbServer, isLocalStatesDbServer, } from '@iobroker/js-controller-common';
11
- import { SYSTEM_CONFIG_ID, SYSTEM_REPOSITORIES_ID } from '@iobroker/js-controller-common-db/constants';
12
10
  import * as CLITools from '../lib/cli/cliTools.js';
13
11
  import { CLIHost } from '../lib/cli/cliHost.js';
14
12
  import { CLIStates } from '../lib/cli/cliStates.js';
@@ -24,10 +22,12 @@ import { error as CLIError } from '../lib/cli/messages.js';
24
22
  import { BETA_REPO_URL, getRepository, ignoreVersion, isIntegerLikeInput, recognizeVersion, STABLE_REPO_URL, } from '../lib/setup/utils.js';
25
23
  import { dbConnect, dbConnectAsync, exitApplicationSave } from '../lib/setup/dbConnection.js';
26
24
  import { IoBrokerError } from '../lib/setup/customError.js';
27
- import { List } from '../lib/setup/setupList.js';
28
- import * as formatters from '../lib/setup/formatters.js';
25
+ import * as url from 'node:url';
26
+ import * as events from 'node:events';
29
27
  // eslint-disable-next-line unicorn/prefer-module
30
28
  const thisDir = url.fileURLToPath(new URL('.', import.meta.url || `file://${__filename}`));
29
+ import { createRequire } from 'node:module';
30
+ import { SYSTEM_CONFIG_ID, SYSTEM_REPOSITORIES_ID } from '@iobroker/js-controller-common-db/constants';
31
31
  // eslint-disable-next-line unicorn/prefer-module
32
32
  const require = createRequire(import.meta.url || `file://${__filename}`);
33
33
  tools.ensureDNSOrder();
@@ -441,12 +441,12 @@ async function processCommand(command, args, params, callback) {
441
441
  case 'start':
442
442
  case 'stop': {
443
443
  const procCommand = new CLIProcess(commandOptions);
444
- procCommand[command](args).catch(e => console.error(`Cannot ${command}: ${e.message}`));
444
+ procCommand[command](args);
445
445
  break;
446
446
  }
447
447
  case 'debug': {
448
448
  const debugCommand = new CLIDebug(commandOptions);
449
- debugCommand.execute(args).catch(e => console.error(`Cannot debug: ${e.message}`));
449
+ debugCommand.execute(args);
450
450
  break;
451
451
  }
452
452
  case 'status':
@@ -458,11 +458,11 @@ async function processCommand(command, args, params, callback) {
458
458
  case 'r':
459
459
  case 'restart': {
460
460
  const procCommand = new CLIProcess(commandOptions);
461
- procCommand.restart(args).catch(e => console.error(`Cannot restart: ${e.message}`));
461
+ procCommand.restart(args);
462
462
  break;
463
463
  }
464
464
  case '_restart':
465
- restartController().catch(e => console.error(`Cannot restart controller: ${e.message}`));
465
+ restartController();
466
466
  callback();
467
467
  break;
468
468
  case 'update': {
@@ -553,7 +553,7 @@ async function processCommand(command, args, params, callback) {
553
553
  // Create a new instance of the cert command,
554
554
  // but use the resolve method as a callback
555
555
  const cert = new CLICert({ ...commandOptions, callback: resolve });
556
- cert.create().catch(e => console.error(`Cannot create certificate: ${e.message}`));
556
+ cert.create();
557
557
  });
558
558
  }
559
559
  // we update existing things, in first as well as normal setup
@@ -689,24 +689,19 @@ async function processCommand(command, args, params, callback) {
689
689
  dbConnect(params, async ({ objects }) => {
690
690
  try {
691
691
  const data = await tools.getHostInfo(objects);
692
- for (const attr in data) {
693
- let info;
694
- if (attr === 'Uptime' || attr === 'System uptime') {
695
- info = formatters.formatSeconds(data[attr]);
696
- }
697
- else if (attr === 'RAM') {
698
- info = formatters.formatRam(data[attr]);
699
- }
700
- else if (attr === 'Speed') {
701
- info = formatters.formatSpeed(data[attr]);
702
- }
703
- else if (attr === 'Disk size' || attr === 'Disk free') {
704
- info = formatters.formatBytes(data[attr]);
705
- }
706
- else {
707
- info = data[attr];
708
- }
709
- console.log(`${attr}${attr.length < 16 ? new Array(16 - attr.length).join(' ') : ''}: ${info || ''}`);
692
+ const formatters = await import('./setup/formatters.js');
693
+ const formatInfo = {
694
+ Uptime: formatters.formatSeconds,
695
+ 'System uptime': formatters.formatSeconds,
696
+ RAM: formatters.formatRam,
697
+ Speed: formatters.formatSpeed,
698
+ 'Disk size': formatters.formatBytes,
699
+ 'Disk free': formatters.formatBytes,
700
+ };
701
+ for (const attr of Object.keys(data)) {
702
+ console.log(`${attr}${attr.length < 16 ? new Array(16 - attr.length).join(' ') : ''}: ${
703
+ // @ts-expect-error todo would need checks
704
+ formatInfo[attr] ? formatInfo[attr](data[attr]) : data[attr] || ''}`);
710
705
  }
711
706
  }
712
707
  catch (err) {
@@ -977,18 +972,19 @@ async function processCommand(command, args, params, callback) {
977
972
  output: process.stdout,
978
973
  });
979
974
  if (params.yes || params.y || params.Y) {
980
- unsetup(params, callback).catch(e => console.error(`Cannot unsetup: ${e.message}`));
975
+ unsetup(params, callback);
981
976
  }
982
977
  else {
983
978
  rl.question('UUID will be deleted. Are you sure? [y/N]: ', answer => {
984
979
  rl.close();
985
980
  answer = answer.toLowerCase();
986
981
  if (answer === 'y' || answer === 'yes' || answer === 'ja' || answer === 'j') {
987
- unsetup(params, callback).catch(e => console.error(`Cannot unsetup: ${e.message}`));
988
- return;
982
+ unsetup(params, callback);
983
+ }
984
+ else {
985
+ console.log('Nothing deleted');
986
+ return void callback();
989
987
  }
990
- console.log('Nothing deleted');
991
- return void callback();
992
988
  });
993
989
  }
994
990
  break;
@@ -1086,7 +1082,7 @@ async function processCommand(command, args, params, callback) {
1086
1082
  catch {
1087
1083
  // ignore
1088
1084
  }
1089
- restartController().catch(e => console.error(`Cannot restart controller: ${e.message}`));
1085
+ restartController();
1090
1086
  console.log(`Restarting ${tools.appName}...`);
1091
1087
  callback();
1092
1088
  });
@@ -1168,7 +1164,8 @@ async function processCommand(command, args, params, callback) {
1168
1164
  }
1169
1165
  case 'l':
1170
1166
  case 'list': {
1171
- dbConnect(params, ({ objects, states }) => {
1167
+ dbConnect(params, async ({ objects, states }) => {
1168
+ const { List } = await import('./setup/setupList.js');
1172
1169
  const list = new List({
1173
1170
  states,
1174
1171
  objects,
@@ -1184,7 +1181,7 @@ async function processCommand(command, args, params, callback) {
1184
1181
  console.log('No file path found. Example: "touch /vis-2.0/main/*"');
1185
1182
  return void callback(EXIT_CODES.INVALID_ARGUMENTS);
1186
1183
  }
1187
- dbConnect(params, ({ objects }) => {
1184
+ dbConnect(params, ({ states, objects }) => {
1188
1185
  // extract id
1189
1186
  pattern = pattern.replace(/\\/g, '/');
1190
1187
  if (pattern[0] === '/') {
@@ -1194,29 +1191,42 @@ async function processCommand(command, args, params, callback) {
1194
1191
  objects.getObjectList({
1195
1192
  startkey: 'system.adapter.',
1196
1193
  endkey: 'system.adapter.\u9999',
1197
- }, async (err, arr) => {
1194
+ }, (err, arr) => {
1198
1195
  if (!err && arr?.rows) {
1199
1196
  const files = [];
1197
+ let count = 0;
1200
1198
  for (const row of arr.rows) {
1201
- const rowTyped = row.value;
1202
- if (rowTyped.type !== 'adapter') {
1199
+ if (row.value.type !== 'adapter') {
1203
1200
  continue;
1204
1201
  }
1205
- await new Promise(resolve => objects.touch(rowTyped.common.name, '*', { user: 'system.user.admin' }, err => {
1206
- if (!err) {
1207
- files.push(rowTyped.common.name);
1202
+ count++;
1203
+ objects.touch(row.value.common.name, '*', { user: 'system.user.admin' },
1204
+ // @ts-expect-error todo this looks wrong, we have no cb args other than err
1205
+ async (err, processed, _id) => {
1206
+ if (!err && processed) {
1207
+ files.push({ id: _id, processed: processed });
1208
1208
  }
1209
- else {
1210
- console.warn(`Cannot touch file ${rowTyped.common.name}`);
1209
+ if (!--count) {
1210
+ const { List } = await import('./setup/setupList.js');
1211
+ const list = new List({
1212
+ states,
1213
+ objects,
1214
+ processExit: callback,
1215
+ });
1216
+ files.sort((a, b) => a.id.localeCompare(b.id));
1217
+ for (const file of files) {
1218
+ for (const processedFile of processed) {
1219
+ list.showFile(file.id, processedFile.path, processedFile);
1220
+ }
1221
+ }
1222
+ setTimeout(callback, 1_000);
1211
1223
  }
1212
- resolve();
1213
- }));
1224
+ });
1214
1225
  }
1215
- files.sort((a, b) => a.localeCompare(b));
1216
- for (const file of files) {
1217
- console.log(`Touched ${file}`);
1226
+ if (!count) {
1227
+ console.log('Nothing found');
1228
+ return void callback();
1218
1229
  }
1219
- setTimeout(callback, 1_000);
1220
1230
  }
1221
1231
  });
1222
1232
  }
@@ -1224,12 +1234,23 @@ async function processCommand(command, args, params, callback) {
1224
1234
  const parts = pattern.split('/');
1225
1235
  const id = parts.shift();
1226
1236
  const path = parts.join('/');
1227
- objects.touch(id, path, { user: 'system.user.admin' }, err => {
1237
+ // @ts-expect-error todo processed should not exist, how to proceed?
1238
+ objects.touch(id, path, { user: 'system.user.admin' }, async (err, processed) => {
1228
1239
  if (err) {
1229
1240
  console.error(err);
1230
1241
  }
1231
1242
  else {
1232
- console.log(`Touched ${id}/${path}`);
1243
+ if (processed) {
1244
+ const { List } = await import('./setup/setupList.js');
1245
+ const list = new List({
1246
+ states,
1247
+ objects,
1248
+ processExit: callback,
1249
+ });
1250
+ for (const processedFile of processed) {
1251
+ list.showFile(id, processedFile.path, processedFile);
1252
+ }
1253
+ }
1233
1254
  }
1234
1255
  setTimeout(callback, 1_000);
1235
1256
  });
@@ -1243,7 +1264,7 @@ async function processCommand(command, args, params, callback) {
1243
1264
  console.log('No file path found. Example: "touch /vis-2.0/main/*"');
1244
1265
  return void callback(EXIT_CODES.INVALID_ARGUMENTS);
1245
1266
  }
1246
- dbConnect(params, ({ objects }) => {
1267
+ dbConnect(params, ({ objects, states }) => {
1247
1268
  // extract id
1248
1269
  pattern = pattern.replace(/\\/g, '/');
1249
1270
  if (pattern[0] === '/') {
@@ -1253,28 +1274,43 @@ async function processCommand(command, args, params, callback) {
1253
1274
  objects.getObjectList({
1254
1275
  startkey: 'system.adapter.',
1255
1276
  endkey: 'system.adapter.\u9999',
1256
- }, async (err, arr) => {
1277
+ }, (err, arr) => {
1257
1278
  if (!err && arr?.rows) {
1258
1279
  const files = [];
1280
+ let count = 0;
1259
1281
  for (const row of arr.rows) {
1260
- const rowTyped = row.value;
1261
- if (rowTyped.type !== 'adapter') {
1282
+ if (row.value.type !== 'adapter') {
1262
1283
  continue;
1263
1284
  }
1264
- await new Promise(resolve => objects.rm(rowTyped.common.name, '*', { user: 'system.user.admin' }, (err, processed) => {
1285
+ count++;
1286
+ objects.rm(row.value.common.name, '*', { user: 'system.user.admin' },
1287
+ // @ts-expect-error todo id should not exist according to types check it
1288
+ async (err, processed, _id) => {
1265
1289
  if (!err && processed) {
1266
- files.push({ id: rowTyped.common.name, processed });
1290
+ files.push({ id: _id, processed: processed });
1291
+ }
1292
+ if (!--count) {
1293
+ const { List } = await import('./setup/setupList.js');
1294
+ const list = new List({
1295
+ states,
1296
+ objects,
1297
+ processExit: callback,
1298
+ });
1299
+ files.sort((a, b) => a.id.localeCompare(b.id));
1300
+ list.showFileHeader();
1301
+ for (const file of files) {
1302
+ for (const processedFile of processed) {
1303
+ list.showFile(file.id, processedFile.path, processedFile);
1304
+ }
1305
+ }
1306
+ setTimeout(callback, 1_000);
1267
1307
  }
1268
- resolve();
1269
- }));
1308
+ });
1270
1309
  }
1271
- files.sort((a, b) => a.id.localeCompare(b.id));
1272
- for (const file of files) {
1273
- for (const processedFile of file.processed) {
1274
- console.log(`Removed ${processedFile.path}/${processedFile.file}`);
1275
- }
1310
+ if (!count) {
1311
+ console.log('Nothing found');
1312
+ return void callback();
1276
1313
  }
1277
- setTimeout(callback, 1_000);
1278
1314
  }
1279
1315
  });
1280
1316
  }
@@ -1282,14 +1318,22 @@ async function processCommand(command, args, params, callback) {
1282
1318
  const parts = pattern.split('/');
1283
1319
  const id = parts.shift();
1284
1320
  const path = parts.join('/');
1285
- objects.rm(id, path, { user: 'system.user.admin' }, (err, processed) => {
1321
+ objects.rm(id, path, { user: 'system.user.admin' }, async (err, processed) => {
1286
1322
  if (err) {
1287
1323
  console.error(err);
1288
1324
  }
1289
1325
  else {
1290
1326
  if (processed) {
1327
+ const { List } = await import('./setup/setupList.js');
1328
+ const list = new List({
1329
+ states,
1330
+ objects,
1331
+ processExit: callback,
1332
+ });
1333
+ list.showFileHeader();
1291
1334
  for (const file of processed) {
1292
- console.log(`Removed ${file.path}/${file.file}`);
1335
+ // @ts-expect-error todo types adjustment needed
1336
+ list.showFile(id, file.path, file);
1293
1337
  }
1294
1338
  }
1295
1339
  }
@@ -1322,37 +1366,46 @@ async function processCommand(command, args, params, callback) {
1322
1366
  objects.getObjectList({
1323
1367
  startkey: 'system.adapter.',
1324
1368
  endkey: 'system.adapter.\u9999',
1325
- }, async (err, arr) => {
1369
+ }, (err, arr) => {
1326
1370
  if (!err && arr?.rows) {
1327
1371
  const files = [];
1372
+ let count = 0;
1328
1373
  for (const row of arr.rows) {
1329
- const rowTyped = row.value;
1330
- if (rowTyped.type !== 'adapter') {
1374
+ if (row.value.type !== 'adapter') {
1331
1375
  continue;
1332
1376
  }
1333
- await new Promise(resolve => objects.chmodFile(rowTyped.common.name, '*', {
1377
+ count++;
1378
+ objects.chmodFile(row.value.common.name, '*', {
1334
1379
  user: 'system.user.admin',
1335
1380
  mode,
1336
- }, (err, processed) => {
1381
+ },
1382
+ // @ts-expect-error todo _id should not exist how to handle
1383
+ async (err, processed, _id) => {
1337
1384
  if (!err && processed) {
1338
- files.push({ id: rowTyped.common.name, processed });
1385
+ files.push({ id: _id, processed: processed });
1386
+ }
1387
+ if (!--count) {
1388
+ const { List } = await import('./setup/setupList.js');
1389
+ const list = new List({
1390
+ states,
1391
+ objects,
1392
+ processExit: callback,
1393
+ });
1394
+ files.sort((a, b) => a.id.localeCompare(b.id));
1395
+ list.showFileHeader();
1396
+ for (const file of files) {
1397
+ for (const processedFile of file.processed) {
1398
+ list.showFile(file.id, processedFile.path, processedFile);
1399
+ }
1400
+ }
1401
+ setTimeout(callback, 1_000);
1339
1402
  }
1340
- resolve();
1341
- }));
1403
+ });
1342
1404
  }
1343
- const list = new List({
1344
- states,
1345
- objects,
1346
- processExit: callback,
1347
- });
1348
- files.sort((a, b) => a.id.localeCompare(b.id));
1349
- list.showFileHeader();
1350
- for (const file of files) {
1351
- for (const processedFile of file.processed) {
1352
- list.showFile(file.id, processedFile.path, processedFile);
1353
- }
1405
+ if (!count) {
1406
+ console.log('Nothing found');
1407
+ return void callback();
1354
1408
  }
1355
- setTimeout(callback, 1_000);
1356
1409
  }
1357
1410
  });
1358
1411
  }
@@ -1360,12 +1413,13 @@ async function processCommand(command, args, params, callback) {
1360
1413
  const parts = pattern.split('/');
1361
1414
  const id = parts.shift();
1362
1415
  const path = parts.join('/');
1363
- objects.chmodFile(id, path, { user: 'system.user.admin', mode: mode }, (err, processed) => {
1416
+ objects.chmodFile(id, path, { user: 'system.user.admin', mode: mode }, async (err, processed) => {
1364
1417
  if (err) {
1365
1418
  console.error(err);
1366
1419
  }
1367
1420
  else {
1368
1421
  if (processed) {
1422
+ const { List } = await import('./setup/setupList.js');
1369
1423
  const list = new List({
1370
1424
  states,
1371
1425
  objects,
@@ -1373,6 +1427,7 @@ async function processCommand(command, args, params, callback) {
1373
1427
  });
1374
1428
  list.showFileHeader();
1375
1429
  for (const file of processed) {
1430
+ // @ts-expect-error todo types adjustment needed
1376
1431
  list.showFile(id, file.path, file);
1377
1432
  }
1378
1433
  }
@@ -1395,7 +1450,7 @@ async function processCommand(command, args, params, callback) {
1395
1450
  CLIError.requiredArgumentMissing('user', 'chown user /vis-2.0/main/*');
1396
1451
  return void callback(EXIT_CODES.INVALID_ARGUMENTS);
1397
1452
  }
1398
- if (user.substring(12) !== 'system.user.') {
1453
+ else if (user.substring(12) !== 'system.user.') {
1399
1454
  user = `system.user.${user}`;
1400
1455
  }
1401
1456
  if (group && group.substring(13) !== 'system.group.') {
@@ -1415,42 +1470,47 @@ async function processCommand(command, args, params, callback) {
1415
1470
  objects.getObjectList({
1416
1471
  startkey: 'system.adapter.',
1417
1472
  endkey: 'system.adapter.\u9999',
1418
- }, async (err, arr) => {
1473
+ }, (err, arr) => {
1419
1474
  if (!err && arr?.rows) {
1420
1475
  const files = [];
1476
+ let count = 0;
1421
1477
  for (const row of arr.rows) {
1422
- const rowTyped = row.value;
1423
- if (rowTyped.type !== 'adapter') {
1478
+ if (row.value.type !== 'adapter') {
1424
1479
  continue;
1425
1480
  }
1426
- await new Promise(resolve => objects.chownFile(rowTyped.common.name, '*', {
1481
+ count++;
1482
+ objects.chownFile(row.value.common.name, '*', {
1427
1483
  user: 'system.user.admin',
1428
1484
  owner: user,
1429
1485
  ownerGroup: group,
1430
- }, (err, processed) => {
1486
+ },
1487
+ // @ts-expect-error todo _id should not exist how to handle
1488
+ async (err, processed, _id) => {
1431
1489
  if (!err && processed) {
1432
- files.push({ id: rowTyped.common.name, processed });
1490
+ files.push({ id: _id, processed: processed });
1433
1491
  }
1434
- resolve();
1435
- }));
1492
+ if (!--count) {
1493
+ const { List } = await import('./setup/setupList.js');
1494
+ const list = new List({
1495
+ states,
1496
+ objects,
1497
+ processExit: callback,
1498
+ });
1499
+ files.sort((a, b) => a.id.localeCompare(b.id));
1500
+ list.showFileHeader();
1501
+ for (let k = 0; k < files.length; k++) {
1502
+ for (let t = 0; t < files[k].processed.length; t++) {
1503
+ list.showFile(files[k].id, files[k].processed[t].path, files[k].processed[t]);
1504
+ }
1505
+ }
1506
+ setTimeout(callback, 1_000);
1507
+ }
1508
+ });
1436
1509
  }
1437
- if (!files.length) {
1510
+ if (!count) {
1438
1511
  console.log('Nothing found');
1439
1512
  return void callback();
1440
1513
  }
1441
- const list = new List({
1442
- states,
1443
- objects,
1444
- processExit: callback,
1445
- });
1446
- files.sort((a, b) => a.id.localeCompare(b.id));
1447
- list.showFileHeader();
1448
- for (let k = 0; k < files.length; k++) {
1449
- for (let t = 0; t < files[k].processed.length; t++) {
1450
- list.showFile(files[k].id, files[k].processed[t].path, files[k].processed[t]);
1451
- }
1452
- }
1453
- setTimeout(callback, 1_000);
1454
1514
  }
1455
1515
  });
1456
1516
  }
@@ -1462,13 +1522,14 @@ async function processCommand(command, args, params, callback) {
1462
1522
  user: 'system.user.admin',
1463
1523
  owner: user,
1464
1524
  ownerGroup: group,
1465
- }, (err, processed) => {
1525
+ }, async (err, processed) => {
1466
1526
  if (err) {
1467
1527
  console.error(err);
1468
1528
  }
1469
1529
  else {
1470
1530
  // call here list
1471
1531
  if (processed) {
1532
+ const { List } = await import('./setup/setupList.js');
1472
1533
  const list = new List({
1473
1534
  states,
1474
1535
  objects,
@@ -1476,6 +1537,7 @@ async function processCommand(command, args, params, callback) {
1476
1537
  });
1477
1538
  list.showFileHeader();
1478
1539
  for (const file of processed) {
1540
+ // @ts-expect-error todo types adjustment needed
1479
1541
  list.showFile(id, file.path, file);
1480
1542
  }
1481
1543
  }
@@ -1489,7 +1551,7 @@ async function processCommand(command, args, params, callback) {
1489
1551
  case 'user': {
1490
1552
  const command = args[0] || '';
1491
1553
  let user = args[1] || '';
1492
- if (user?.startsWith('system.user.')) {
1554
+ if (user && user.startsWith('system.user.')) {
1493
1555
  user = user.substring('system.user.'.length);
1494
1556
  }
1495
1557
  dbConnect(params, async ({ objects }) => {
@@ -1531,16 +1593,14 @@ async function processCommand(command, args, params, callback) {
1531
1593
  });
1532
1594
  }
1533
1595
  else if (command === 'set' || command === 'passwd') {
1534
- users
1535
- .setUserPassword(user, password, err => {
1596
+ users.setUserPassword(user, password, err => {
1536
1597
  if (err) {
1537
1598
  console.error(err.message);
1538
1599
  return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
1539
1600
  }
1540
1601
  console.log(`Password for "${user}" was successfully set.`);
1541
1602
  return void callback();
1542
- })
1543
- .catch(e => console.error(`Cannot set password: ${e.message}`));
1603
+ });
1544
1604
  }
1545
1605
  else if (command === 'enable' || command === 'e') {
1546
1606
  users.enableUser(user, true, err => {
@@ -1584,10 +1644,10 @@ async function processCommand(command, args, params, callback) {
1584
1644
  const command = args[0] || '';
1585
1645
  let group = args[1] || '';
1586
1646
  let user = args[2] || '';
1587
- if (group?.startsWith('system.group.')) {
1647
+ if (group && group.startsWith('system.group.')) {
1588
1648
  group = group.substring('system.group.'.length);
1589
1649
  }
1590
- if (user?.startsWith('system.user.')) {
1650
+ if (user && user.startsWith('system.user.')) {
1591
1651
  user = user.substring('system.user.'.length);
1592
1652
  }
1593
1653
  if (!command) {
@@ -1734,16 +1794,14 @@ async function processCommand(command, args, params, callback) {
1734
1794
  objects,
1735
1795
  processExit: callback,
1736
1796
  });
1737
- users
1738
- .setUserPassword(user, password, (err) => {
1797
+ users.setUserPassword(user, password, (err) => {
1739
1798
  if (err) {
1740
1799
  console.error(err);
1741
1800
  return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
1742
1801
  }
1743
1802
  console.log(`Password for "${user}" was successfully set.`);
1744
1803
  return void callback();
1745
- })
1746
- .catch(e => console.error(`Cannot set password: ${e.message}`));
1804
+ });
1747
1805
  });
1748
1806
  break;
1749
1807
  }
@@ -1774,7 +1832,7 @@ async function processCommand(command, args, params, callback) {
1774
1832
  const json = {
1775
1833
  name: tools.appName,
1776
1834
  engines: {
1777
- node: '>=22',
1835
+ node: '>=12',
1778
1836
  },
1779
1837
  optionalDependencies: {},
1780
1838
  dependencies: {
@@ -1783,8 +1841,8 @@ async function processCommand(command, args, params, callback) {
1783
1841
  },
1784
1842
  author: 'bluefox <dogafox@gmail.com>',
1785
1843
  };
1786
- try {
1787
- const sources = await tools.getRepositoryFile();
1844
+ // @ts-expect-error todo fix it
1845
+ tools.getRepositoryFile(null, null, (_err, sources, _sourcesHash) => {
1788
1846
  if (sources) {
1789
1847
  for (const s in sources) {
1790
1848
  if (Object.prototype.hasOwnProperty.call(sources, s)) {
@@ -1803,10 +1861,7 @@ async function processCommand(command, args, params, callback) {
1803
1861
  }
1804
1862
  fs.writeFileSync(path.join(tools.getRootDir(), 'package.json'), JSON.stringify(json, null, 2));
1805
1863
  return void callback();
1806
- }
1807
- catch (e) {
1808
- console.error(`Cannot read repository file: ${e}`);
1809
- }
1864
+ });
1810
1865
  break;
1811
1866
  }
1812
1867
  case 'set': {
@@ -1815,7 +1870,7 @@ async function processCommand(command, args, params, callback) {
1815
1870
  console.warn('please specify instance.');
1816
1871
  return void callback(EXIT_CODES.INVALID_ADAPTER_ID);
1817
1872
  }
1818
- if (!instance.includes('.')) {
1873
+ if (instance.indexOf('.') === -1) {
1819
1874
  console.warn(`please specify instance, like "${instance}.0"`);
1820
1875
  return void callback(EXIT_CODES.INVALID_ADAPTER_ID);
1821
1876
  }
@@ -1897,7 +1952,7 @@ async function processCommand(command, args, params, callback) {
1897
1952
  }
1898
1953
  case 'visdebug': {
1899
1954
  let widgetset = args[0];
1900
- if (widgetset?.startsWith('vis-')) {
1955
+ if (widgetset && widgetset.startsWith('vis-')) {
1901
1956
  widgetset = widgetset.substring(4);
1902
1957
  }
1903
1958
  const { VisDebug } = await import('./setup/setupVisDebug.js');
@@ -1906,7 +1961,7 @@ async function processCommand(command, args, params, callback) {
1906
1961
  objects,
1907
1962
  processExit: callback,
1908
1963
  });
1909
- visDebug.enableDebug(widgetset).catch(e => console.error(`Cannot enable debug: ${e.message}`));
1964
+ visDebug.enableDebug(widgetset);
1910
1965
  });
1911
1966
  break;
1912
1967
  }
@@ -1960,9 +2015,7 @@ async function processCommand(command, args, params, callback) {
1960
2015
  return void callback(EXIT_CODES.INVALID_ARGUMENTS);
1961
2016
  }
1962
2017
  objects.readFile(adapt, parts.join('/'), null, (err, data) => {
1963
- if (err) {
1964
- console.error(err);
1965
- }
2018
+ err && console.error(err);
1966
2019
  if (data) {
1967
2020
  const destFilename = path.join('/');
1968
2021
  fs.writeFileSync(destFilename, data);
@@ -2017,12 +2070,10 @@ async function processCommand(command, args, params, callback) {
2017
2070
  console.log('Invalid parameters: destination adapter cannot be found!');
2018
2071
  return void callback(EXIT_CODES.INVALID_ARGUMENTS);
2019
2072
  }
2020
- objects
2021
- .writeFile(adapt, destFilename, data, _err => {
2073
+ objects.writeFile(adapt, destFilename, data, _err => {
2022
2074
  console.log(`File "${toRead}" stored as "${destFilename}"`);
2023
2075
  return void callback(EXIT_CODES.NO_ERROR);
2024
- })
2025
- .catch(e => console.error(`Cannot write file: ${e.message}`));
2076
+ });
2026
2077
  }
2027
2078
  else if (cmd === 'del' || cmd === 'rm' || cmd === 'unlink') {
2028
2079
  const toDelete = args[1];
@@ -2041,12 +2092,8 @@ async function processCommand(command, args, params, callback) {
2041
2092
  return void callback(EXIT_CODES.INVALID_ARGUMENTS);
2042
2093
  }
2043
2094
  objects.unlink(adapt, parts.join('/'), null, err => {
2044
- if (err) {
2045
- console.error(err);
2046
- }
2047
- else {
2048
- console.log(`File "${toDelete}" was deleted`);
2049
- }
2095
+ err && console.error(err);
2096
+ !err && console.log(`File "${toDelete}" was deleted`);
2050
2097
  return void callback(EXIT_CODES.NO_ERROR);
2051
2098
  });
2052
2099
  }
@@ -2084,7 +2131,8 @@ async function processCommand(command, args, params, callback) {
2084
2131
  const { numberSuccess, notifications } = objects.syncFileDirectory(args[1]);
2085
2132
  console.log(`${numberSuccess} file(s) successfully synchronized with ioBroker storage`);
2086
2133
  if (notifications.length) {
2087
- console.log('\nThe following notifications happened during sync: ');
2134
+ console.log();
2135
+ console.log('The following notifications happened during sync: ');
2088
2136
  notifications.forEach((el) => console.log(`- ${el}`));
2089
2137
  }
2090
2138
  return void callback(EXIT_CODES.NO_ERROR);
@@ -2183,13 +2231,11 @@ async function processCommand(command, args, params, callback) {
2183
2231
  const parts = row.id.split('.');
2184
2232
  // ignore system.host.name.alive and so on
2185
2233
  if (parts.length === 3) {
2186
- states
2187
- .pushMessage(row.id, {
2234
+ states.pushMessage(row.id, {
2188
2235
  command: 'checkLogging',
2189
2236
  message: null,
2190
2237
  from: 'console',
2191
- })
2192
- .catch(e => console.error(`Cannot push checkLogging message: ${e.message}`));
2238
+ });
2193
2239
  }
2194
2240
  }
2195
2241
  }
@@ -2381,7 +2427,7 @@ async function processCommand(command, args, params, callback) {
2381
2427
  console.error(err);
2382
2428
  }
2383
2429
  return void callback(err ? 1 : 0);
2384
- }).catch(e => console.error(`Cannot connect multihost: ${e.message}`));
2430
+ });
2385
2431
  }
2386
2432
  });
2387
2433
  break;
@@ -2409,7 +2455,7 @@ async function processCommand(command, args, params, callback) {
2409
2455
  }
2410
2456
  case 'cert': {
2411
2457
  const certCommand = new CLICert(commandOptions);
2412
- Promise.resolve(certCommand.execute(args)).catch(e => console.error(`Cannot execute cert command: ${e.message}`));
2458
+ certCommand.execute(args);
2413
2459
  break;
2414
2460
  }
2415
2461
  case 'compact': {
@@ -2526,8 +2572,9 @@ async function cleanDatabase(isDeleteDb) {
2526
2572
  const { objects } = await dbConnectAsync(false);
2527
2573
  if (isDeleteDb) {
2528
2574
  await objects.destroyDBAsync();
2529
- // Clean up states and return keys count
2530
- return await delStates();
2575
+ // Clean up states
2576
+ const keysCount = await delStates();
2577
+ return keysCount;
2531
2578
  }
2532
2579
  // Clean only objects, not the views
2533
2580
  let ids = [];
@@ -2542,8 +2589,9 @@ async function cleanDatabase(isDeleteDb) {
2542
2589
  // ignore
2543
2590
  }
2544
2591
  await delObjects(ids);
2545
- // Clean up states and return the key count
2546
- return await delStates();
2592
+ // Clean up states
2593
+ const keysCount = await delStates();
2594
+ return keysCount;
2547
2595
  }
2548
2596
  async function unsetup(params, callback) {
2549
2597
  const { objects } = await dbConnectAsync(false, params);
@@ -2602,6 +2650,7 @@ async function restartController() {
2602
2650
  export function execute() {
2603
2651
  // direct call
2604
2652
  const _yargs = initYargs();
2653
+ // @ts-expect-error todo fix it
2605
2654
  const command = _yargs.argv._[0];
2606
2655
  const args = [];
2607
2656
  // skip interpreter, filename and command
@@ -2612,10 +2661,10 @@ export function execute() {
2612
2661
  }
2613
2662
  args.push(process.argv[i]);
2614
2663
  }
2615
- processCommand(command, args, _yargs.argv, exitApplicationSave).catch(e => console.error(`Cannot process command: ${e.message}`));
2664
+ processCommand(command, args, _yargs.argv, exitApplicationSave);
2616
2665
  }
2617
2666
  process.on('unhandledRejection', (e) => {
2618
2667
  console.error(`Uncaught Rejection: ${e.stack || e}`);
2619
- return exitApplicationSave(EXIT_CODES.UNCAUGHT_EXCEPTION);
2668
+ exitApplicationSave(EXIT_CODES.UNCAUGHT_EXCEPTION);
2620
2669
  });
2621
2670
  //# sourceMappingURL=setup.js.map