@iobroker/js-controller-cli 7.2.3 → 8.0.0-alpha.2-20260923-99da17fcc

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 (225) hide show
  1. package/build/cjs/index.js +3 -3
  2. package/build/cjs/lib/_Types.d.ts +8 -1
  3. package/build/cjs/lib/cli/cliCert.d.ts +7 -4
  4. package/build/cjs/lib/cli/cliCert.js +10 -6
  5. package/build/cjs/lib/cli/cliCert.js.map +2 -2
  6. package/build/cjs/lib/cli/cliCommand.d.ts +63 -15
  7. package/build/cjs/lib/cli/cliCommand.js +8 -1
  8. package/build/cjs/lib/cli/cliCommand.js.map +2 -2
  9. package/build/cjs/lib/cli/cliCompact.d.ts +5 -2
  10. package/build/cjs/lib/cli/cliCompact.js +9 -2
  11. package/build/cjs/lib/cli/cliCompact.js.map +2 -2
  12. package/build/cjs/lib/cli/cliDebug.d.ts +5 -2
  13. package/build/cjs/lib/cli/cliDebug.js +8 -1
  14. package/build/cjs/lib/cli/cliDebug.js.map +2 -2
  15. package/build/cjs/lib/cli/cliHost.d.ts +13 -10
  16. package/build/cjs/lib/cli/cliHost.js +13 -5
  17. package/build/cjs/lib/cli/cliHost.js.map +2 -2
  18. package/build/cjs/lib/cli/cliLogs.d.ts +9 -3
  19. package/build/cjs/lib/cli/cliLogs.js +12 -1
  20. package/build/cjs/lib/cli/cliLogs.js.map +2 -2
  21. package/build/cjs/lib/cli/cliMessage.d.ts +2 -1
  22. package/build/cjs/lib/cli/cliMessage.js +5 -0
  23. package/build/cjs/lib/cli/cliMessage.js.map +2 -2
  24. package/build/cjs/lib/cli/cliObjects.d.ts +21 -18
  25. package/build/cjs/lib/cli/cliObjects.js +51 -33
  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 +6 -0
  29. package/build/cjs/lib/cli/cliPlugin.js.map +2 -2
  30. package/build/cjs/lib/cli/cliProcess.d.ts +17 -7
  31. package/build/cjs/lib/cli/cliProcess.js +77 -24
  32. package/build/cjs/lib/cli/cliProcess.js.map +3 -3
  33. package/build/cjs/lib/cli/cliStates.d.ts +7 -4
  34. package/build/cjs/lib/cli/cliStates.js +14 -6
  35. package/build/cjs/lib/cli/cliStates.js.map +2 -2
  36. package/build/cjs/lib/cli/cliTools.js +11 -0
  37. package/build/cjs/lib/cli/cliTools.js.map +1 -1
  38. package/build/cjs/lib/cli/messages.js +47 -46
  39. package/build/cjs/lib/cli/messages.js.map +1 -1
  40. package/build/cjs/lib/progressBar.d.ts +59 -0
  41. package/build/cjs/lib/progressBar.js +115 -0
  42. package/build/cjs/lib/progressBar.js.map +7 -0
  43. package/build/cjs/lib/setup/customError.d.ts +4 -0
  44. package/build/cjs/lib/setup/customError.js +7 -0
  45. package/build/cjs/lib/setup/customError.js.map +2 -2
  46. package/build/cjs/lib/setup/dbConnection.js +69 -64
  47. package/build/cjs/lib/setup/dbConnection.js.map +3 -3
  48. package/build/cjs/lib/setup/formatters.d.ts +4 -4
  49. package/build/cjs/lib/setup/formatters.js +5 -0
  50. package/build/cjs/lib/setup/formatters.js.map +2 -2
  51. package/build/cjs/lib/setup/multihostClient.js +6 -2
  52. package/build/cjs/lib/setup/multihostClient.js.map +1 -1
  53. package/build/cjs/lib/setup/pluginInfos.d.ts +5 -0
  54. package/build/cjs/lib/setup/pluginInfos.js +2 -0
  55. package/build/cjs/lib/setup/pluginInfos.js.map +2 -2
  56. package/build/cjs/lib/setup/setupBackup.d.ts +53 -0
  57. package/build/cjs/lib/setup/setupBackup.js +125 -14
  58. package/build/cjs/lib/setup/setupBackup.js.map +3 -3
  59. package/build/cjs/lib/setup/setupInstall.d.ts +66 -15
  60. package/build/cjs/lib/setup/setupInstall.js +282 -28
  61. package/build/cjs/lib/setup/setupInstall.js.map +2 -2
  62. package/build/cjs/lib/setup/setupLicense.d.ts +13 -0
  63. package/build/cjs/lib/setup/setupLicense.js +33 -2
  64. package/build/cjs/lib/setup/setupLicense.js.map +2 -2
  65. package/build/cjs/lib/setup/setupList.d.ts +55 -1
  66. package/build/cjs/lib/setup/setupList.js +78 -24
  67. package/build/cjs/lib/setup/setupList.js.map +3 -3
  68. package/build/cjs/lib/setup/setupMultihost.d.ts +7 -0
  69. package/build/cjs/lib/setup/setupMultihost.js +78 -11
  70. package/build/cjs/lib/setup/setupMultihost.js.map +3 -3
  71. package/build/cjs/lib/setup/setupPacketManager.d.ts +10 -0
  72. package/build/cjs/lib/setup/setupPacketManager.js +16 -6
  73. package/build/cjs/lib/setup/setupPacketManager.js.map +2 -2
  74. package/build/cjs/lib/setup/setupRepo.d.ts +19 -0
  75. package/build/cjs/lib/setup/setupRepo.js +141 -13
  76. package/build/cjs/lib/setup/setupRepo.js.map +2 -2
  77. package/build/cjs/lib/setup/setupSetup.d.ts +34 -0
  78. package/build/cjs/lib/setup/setupSetup.js +209 -35
  79. package/build/cjs/lib/setup/setupSetup.js.map +3 -3
  80. package/build/cjs/lib/setup/setupUpgrade.d.ts +13 -2
  81. package/build/cjs/lib/setup/setupUpgrade.js +72 -12
  82. package/build/cjs/lib/setup/setupUpgrade.js.map +2 -2
  83. package/build/cjs/lib/setup/setupUpload.d.ts +77 -1
  84. package/build/cjs/lib/setup/setupUpload.js +152 -9
  85. package/build/cjs/lib/setup/setupUpload.js.map +2 -2
  86. package/build/cjs/lib/setup/setupUsers.d.ts +44 -14
  87. package/build/cjs/lib/setup/setupUsers.js +330 -17
  88. package/build/cjs/lib/setup/setupUsers.js.map +2 -2
  89. package/build/cjs/lib/setup/setupVendor.d.ts +14 -1
  90. package/build/cjs/lib/setup/setupVendor.js +40 -8
  91. package/build/cjs/lib/setup/setupVendor.js.map +2 -2
  92. package/build/cjs/lib/setup/setupVisDebug.d.ts +16 -2
  93. package/build/cjs/lib/setup/setupVisDebug.js +41 -17
  94. package/build/cjs/lib/setup/setupVisDebug.js.map +3 -3
  95. package/build/cjs/lib/setup/utils.d.ts +1 -1
  96. package/build/cjs/lib/setup/utils.js +13 -9
  97. package/build/cjs/lib/setup/utils.js.map +3 -3
  98. package/build/cjs/lib/setup.d.ts +1 -1
  99. package/build/cjs/lib/setup.js +858 -1758
  100. package/build/cjs/lib/setup.js.map +3 -3
  101. package/build/esm/lib/_Types.d.ts +8 -1
  102. package/build/esm/lib/_Types.d.ts.map +1 -1
  103. package/build/esm/lib/cli/cliCert.d.ts +7 -4
  104. package/build/esm/lib/cli/cliCert.d.ts.map +1 -1
  105. package/build/esm/lib/cli/cliCert.js +6 -6
  106. package/build/esm/lib/cli/cliCert.js.map +1 -1
  107. package/build/esm/lib/cli/cliCommand.d.ts +63 -15
  108. package/build/esm/lib/cli/cliCommand.d.ts.map +1 -1
  109. package/build/esm/lib/cli/cliCommand.js +4 -1
  110. package/build/esm/lib/cli/cliCommand.js.map +1 -1
  111. package/build/esm/lib/cli/cliCompact.d.ts +5 -2
  112. package/build/esm/lib/cli/cliCompact.d.ts.map +1 -1
  113. package/build/esm/lib/cli/cliCompact.js +5 -2
  114. package/build/esm/lib/cli/cliCompact.js.map +1 -1
  115. package/build/esm/lib/cli/cliDebug.d.ts +5 -2
  116. package/build/esm/lib/cli/cliDebug.d.ts.map +1 -1
  117. package/build/esm/lib/cli/cliDebug.js +4 -1
  118. package/build/esm/lib/cli/cliDebug.js.map +1 -1
  119. package/build/esm/lib/cli/cliHost.d.ts +13 -10
  120. package/build/esm/lib/cli/cliHost.d.ts.map +1 -1
  121. package/build/esm/lib/cli/cliHost.js +8 -5
  122. package/build/esm/lib/cli/cliHost.js.map +1 -1
  123. package/build/esm/lib/cli/cliLogs.d.ts +9 -3
  124. package/build/esm/lib/cli/cliLogs.d.ts.map +1 -1
  125. package/build/esm/lib/cli/cliLogs.js +8 -1
  126. package/build/esm/lib/cli/cliLogs.js.map +1 -1
  127. package/build/esm/lib/cli/cliMessage.d.ts +2 -1
  128. package/build/esm/lib/cli/cliMessage.d.ts.map +1 -1
  129. package/build/esm/lib/cli/cliMessage.js +1 -0
  130. package/build/esm/lib/cli/cliMessage.js.map +1 -1
  131. package/build/esm/lib/cli/cliObjects.d.ts +21 -18
  132. package/build/esm/lib/cli/cliObjects.d.ts.map +1 -1
  133. package/build/esm/lib/cli/cliObjects.js +44 -38
  134. package/build/esm/lib/cli/cliObjects.js.map +1 -1
  135. package/build/esm/lib/cli/cliPlugin.d.ts +3 -3
  136. package/build/esm/lib/cli/cliPlugin.d.ts.map +1 -1
  137. package/build/esm/lib/cli/cliPlugin.js +1 -1
  138. package/build/esm/lib/cli/cliPlugin.js.map +1 -1
  139. package/build/esm/lib/cli/cliProcess.d.ts +17 -7
  140. package/build/esm/lib/cli/cliProcess.d.ts.map +1 -1
  141. package/build/esm/lib/cli/cliProcess.js +73 -12
  142. package/build/esm/lib/cli/cliProcess.js.map +1 -1
  143. package/build/esm/lib/cli/cliStates.d.ts +7 -4
  144. package/build/esm/lib/cli/cliStates.d.ts.map +1 -1
  145. package/build/esm/lib/cli/cliStates.js +6 -2
  146. package/build/esm/lib/cli/cliStates.js.map +1 -1
  147. package/build/esm/lib/progressBar.d.ts +59 -0
  148. package/build/esm/lib/progressBar.d.ts.map +1 -0
  149. package/build/esm/lib/progressBar.js +104 -0
  150. package/build/esm/lib/progressBar.js.map +1 -0
  151. package/build/esm/lib/setup/customError.d.ts +4 -0
  152. package/build/esm/lib/setup/customError.d.ts.map +1 -1
  153. package/build/esm/lib/setup/customError.js +3 -0
  154. package/build/esm/lib/setup/customError.js.map +1 -1
  155. package/build/esm/lib/setup/dbConnection.d.ts.map +1 -1
  156. package/build/esm/lib/setup/dbConnection.js +10 -13
  157. package/build/esm/lib/setup/dbConnection.js.map +1 -1
  158. package/build/esm/lib/setup/formatters.d.ts +4 -4
  159. package/build/esm/lib/setup/formatters.js +4 -4
  160. package/build/esm/lib/setup/pluginInfos.d.ts +5 -0
  161. package/build/esm/lib/setup/pluginInfos.d.ts.map +1 -1
  162. package/build/esm/lib/setup/pluginInfos.js +5 -0
  163. package/build/esm/lib/setup/pluginInfos.js.map +1 -1
  164. package/build/esm/lib/setup/setupBackup.d.ts +53 -0
  165. package/build/esm/lib/setup/setupBackup.d.ts.map +1 -1
  166. package/build/esm/lib/setup/setupBackup.js +132 -13
  167. package/build/esm/lib/setup/setupBackup.js.map +1 -1
  168. package/build/esm/lib/setup/setupInstall.d.ts +66 -15
  169. package/build/esm/lib/setup/setupInstall.d.ts.map +1 -1
  170. package/build/esm/lib/setup/setupInstall.js +309 -23
  171. package/build/esm/lib/setup/setupInstall.js.map +1 -1
  172. package/build/esm/lib/setup/setupLicense.d.ts +13 -0
  173. package/build/esm/lib/setup/setupLicense.d.ts.map +1 -1
  174. package/build/esm/lib/setup/setupLicense.js +31 -1
  175. package/build/esm/lib/setup/setupLicense.js.map +1 -1
  176. package/build/esm/lib/setup/setupList.d.ts +55 -1
  177. package/build/esm/lib/setup/setupList.d.ts.map +1 -1
  178. package/build/esm/lib/setup/setupList.js +61 -8
  179. package/build/esm/lib/setup/setupList.js.map +1 -1
  180. package/build/esm/lib/setup/setupMultihost.d.ts +7 -0
  181. package/build/esm/lib/setup/setupMultihost.d.ts.map +1 -1
  182. package/build/esm/lib/setup/setupMultihost.js +85 -6
  183. package/build/esm/lib/setup/setupMultihost.js.map +1 -1
  184. package/build/esm/lib/setup/setupPacketManager.d.ts +10 -0
  185. package/build/esm/lib/setup/setupPacketManager.d.ts.map +1 -1
  186. package/build/esm/lib/setup/setupPacketManager.js +9 -0
  187. package/build/esm/lib/setup/setupPacketManager.js.map +1 -1
  188. package/build/esm/lib/setup/setupRepo.d.ts +19 -0
  189. package/build/esm/lib/setup/setupRepo.d.ts.map +1 -1
  190. package/build/esm/lib/setup/setupRepo.js +164 -14
  191. package/build/esm/lib/setup/setupRepo.js.map +1 -1
  192. package/build/esm/lib/setup/setupSetup.d.ts +34 -0
  193. package/build/esm/lib/setup/setupSetup.d.ts.map +1 -1
  194. package/build/esm/lib/setup/setupSetup.js +218 -21
  195. package/build/esm/lib/setup/setupSetup.js.map +1 -1
  196. package/build/esm/lib/setup/setupUpgrade.d.ts +13 -2
  197. package/build/esm/lib/setup/setupUpgrade.d.ts.map +1 -1
  198. package/build/esm/lib/setup/setupUpgrade.js +70 -6
  199. package/build/esm/lib/setup/setupUpgrade.js.map +1 -1
  200. package/build/esm/lib/setup/setupUpload.d.ts +77 -1
  201. package/build/esm/lib/setup/setupUpload.d.ts.map +1 -1
  202. package/build/esm/lib/setup/setupUpload.js +164 -7
  203. package/build/esm/lib/setup/setupUpload.js.map +1 -1
  204. package/build/esm/lib/setup/setupUsers.d.ts +44 -14
  205. package/build/esm/lib/setup/setupUsers.d.ts.map +1 -1
  206. package/build/esm/lib/setup/setupUsers.js +346 -14
  207. package/build/esm/lib/setup/setupUsers.js.map +1 -1
  208. package/build/esm/lib/setup/setupVendor.d.ts +14 -1
  209. package/build/esm/lib/setup/setupVendor.d.ts.map +1 -1
  210. package/build/esm/lib/setup/setupVendor.js +33 -2
  211. package/build/esm/lib/setup/setupVendor.js.map +1 -1
  212. package/build/esm/lib/setup/setupVisDebug.d.ts +16 -2
  213. package/build/esm/lib/setup/setupVisDebug.d.ts.map +1 -1
  214. package/build/esm/lib/setup/setupVisDebug.js +39 -14
  215. package/build/esm/lib/setup/setupVisDebug.js.map +1 -1
  216. package/build/esm/lib/setup/utils.d.ts +1 -1
  217. package/build/esm/lib/setup/utils.d.ts.map +1 -1
  218. package/build/esm/lib/setup/utils.js +2 -4
  219. package/build/esm/lib/setup/utils.js.map +1 -1
  220. package/build/esm/lib/setup.d.ts +1 -1
  221. package/build/esm/lib/setup.d.ts.map +1 -1
  222. package/build/esm/lib/setup.js +959 -1910
  223. package/build/esm/lib/setup.js.map +1 -1
  224. package/build/tsconfig.build.tsbuildinfo +1 -1
  225. package/package.json +14 -14
@@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
9
  var __export = (target, all) => {
9
10
  for (var name in all)
10
11
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -28,16 +29,23 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
29
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
30
  var setupVisDebug_exports = {};
30
31
  __export(setupVisDebug_exports, {
31
- VisDebug: () => VisDebug
32
+ VisDebug: () => VisDebug,
33
+ processCommandVisDebug: () => processCommandVisDebug
32
34
  });
33
35
  module.exports = __toCommonJS(setupVisDebug_exports);
34
36
  var import_fs_extra = __toESM(require("fs-extra"), 1);
35
- var import_js_controller_common = require("@iobroker/js-controller-common");
36
37
  var import_node_path = __toESM(require("node:path"), 1);
37
- var import_js_controller_common2 = require("@iobroker/js-controller-common");
38
+ var import_js_controller_common = require("@iobroker/js-controller-common");
39
+ var import_dbConnection = require("../../lib/setup/dbConnection.js");
38
40
  class VisDebug {
41
+ static {
42
+ __name(this, "VisDebug");
43
+ }
39
44
  objects;
40
45
  processExit;
46
+ /**
47
+ * @param options The objects client and the process-exit callback
48
+ */
41
49
  constructor(options) {
42
50
  this.objects = options.objects;
43
51
  this.processExit = options.processExit;
@@ -68,12 +76,12 @@ class VisDebug {
68
76
  /**
69
77
  * Activates vis debug for given widget
70
78
  *
71
- * @param widgetset widget to activate vis debug for
79
+ * @param widgetSet widget to activate vis debug for
72
80
  */
73
- async enableDebug(widgetset) {
81
+ async enableDebug(widgetSet) {
74
82
  let adapterDir;
75
- if (widgetset) {
76
- const adapterNames2Try = [`vis-${widgetset}`, widgetset];
83
+ if (widgetSet) {
84
+ const adapterNames2Try = [`vis-${widgetSet}`, widgetSet];
77
85
  if (adapterNames2Try[0] === adapterNames2Try[1]) {
78
86
  adapterNames2Try.splice(1, 1);
79
87
  }
@@ -90,7 +98,7 @@ class VisDebug {
90
98
  }
91
99
  if (!adapterDir) {
92
100
  console.error(`Adapter not found. Tried: ${adapterNames2Try.join(", ")}`);
93
- return void this.processExit(import_js_controller_common2.EXIT_CODES.MISSING_ADAPTER_FILES);
101
+ return void this.processExit(import_js_controller_common.EXIT_CODES.MISSING_ADAPTER_FILES);
94
102
  }
95
103
  }
96
104
  const controllerDir = import_js_controller_common.tools.getControllerDir();
@@ -103,7 +111,7 @@ class VisDebug {
103
111
  visDir = `${controllerDir}/../${import_js_controller_common.tools.appName.toLowerCase()}.vis`;
104
112
  if (!import_fs_extra.default.existsSync(visDir)) {
105
113
  console.error(`Cannot find ${import_js_controller_common.tools.appName.toLowerCase()}.vis`);
106
- return void this.processExit(import_js_controller_common2.EXIT_CODES.MISSING_ADAPTER_FILES);
114
+ return void this.processExit(import_js_controller_common.EXIT_CODES.MISSING_ADAPTER_FILES);
107
115
  }
108
116
  }
109
117
  }
@@ -166,14 +174,14 @@ FALLBACK:
166
174
  await this.objects.enableFileCacheAsync(false);
167
175
  console.log('Disable cache. ioBroker restart required! Execute "iobroker restart"');
168
176
  }
169
- if (widgetset) {
177
+ if (widgetSet) {
170
178
  const { file: file2 } = await this.objects.readFile("vis", "js/config.js", null);
171
- let content = typeof file2 === "string" ? file2 : file2.toString();
179
+ let content = typeof file2 === "string" ? file2 : file2?.toString() || "";
172
180
  content = content.replace(/[\r\n]/g, "");
173
181
  const json = JSON.parse(content.match(/"widgetSets":\s(.*)};/)[1]);
174
182
  let found = false;
175
183
  for (const widget of Object.values(json)) {
176
- if (widget === widgetset || widget.name === widgetset) {
184
+ if (widget === widgetSet || widget.name === widgetSet) {
177
185
  found = true;
178
186
  break;
179
187
  }
@@ -181,13 +189,13 @@ FALLBACK:
181
189
  if (!found) {
182
190
  console.log("Modify config.js");
183
191
  const pckg = import_fs_extra.default.readJSONSync(`${adapterDir}/io-package.json`);
184
- if (pckg.native && pckg.native.dependencies && pckg.native.dependencies.length) {
192
+ if (pckg.native?.dependencies?.length) {
185
193
  json.push({
186
- name: widgetset,
194
+ name: widgetSet,
187
195
  depends: pckg.native.dependencies
188
196
  });
189
197
  } else {
190
- json.push(widgetset);
198
+ json.push(widgetSet);
191
199
  }
192
200
  content = content.replace(/"widgetSets":\s+.*};/, `"widgetSets": ${JSON.stringify(json, null, 2)}};`);
193
201
  await this.objects.writeFile("vis", "js/config.js", content);
@@ -198,11 +206,27 @@ FALLBACK:
198
206
  await this.uploadWidgets(`${adapterDir}/widgets`, "vis", "widgets");
199
207
  }
200
208
  }
201
- this.processExit(import_js_controller_common2.EXIT_CODES.NO_ERROR);
209
+ this.processExit(import_js_controller_common.EXIT_CODES.NO_ERROR);
210
+ }
211
+ }
212
+ function processCommandVisDebug(options) {
213
+ const { args, params, callback } = options;
214
+ let widgetset = args[0];
215
+ if (widgetset?.startsWith("vis-")) {
216
+ widgetset = widgetset.substring(4);
202
217
  }
218
+ (0, import_dbConnection.dbConnect)(params, ({ objects }) => {
219
+ const visDebug = new VisDebug({
220
+ objects,
221
+ processExit: callback
222
+ });
223
+ visDebug.enableDebug(widgetset).catch((e) => console.error(`Cannot enable debug: ${e.message}`));
224
+ });
203
225
  }
226
+ __name(processCommandVisDebug, "processCommandVisDebug");
204
227
  // Annotate the CommonJS export names for ESM import in node:
205
228
  0 && (module.exports = {
206
- VisDebug
229
+ VisDebug,
230
+ processCommandVisDebug
207
231
  });
208
232
  //# sourceMappingURL=setupVisDebug.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/setup/setupVisDebug.ts"],
4
- "sourcesContent": ["import fs from 'fs-extra';\nimport { tools } from '@iobroker/js-controller-common';\nimport path from 'node:path';\nimport { EXIT_CODES } from '@iobroker/js-controller-common';\n\nimport type { Client as ObjectsRedisClient } from '@iobroker/db-objects-redis';\nimport type { ProcessExitCallback } from '../_Types.js';\n\nexport interface CLIVisDebugOptions {\n objects: ObjectsRedisClient;\n processExit: ProcessExitCallback;\n}\n\nexport class VisDebug {\n private readonly objects: ObjectsRedisClient;\n private readonly processExit: ProcessExitCallback;\n\n constructor(options: CLIVisDebugOptions) {\n this.objects = options.objects;\n this.processExit = options.processExit;\n }\n\n /**\n * Upload widget directory to vis directory\n *\n * @param widgetDir directory of widgets\n * @param adapter name of the adapter\n * @param pathW widgets path\n */\n private async uploadWidgets(widgetDir: string, adapter: string, pathW: string): Promise<void> {\n if (!fs.existsSync(widgetDir)) {\n console.error(`Cannot upload widgets, because folder \"${widgetDir}\" does not exist`);\n return;\n }\n const dirs = fs.readdirSync(widgetDir);\n\n for (const dir of dirs) {\n const stat = fs.statSync(`${widgetDir}/${dir}`);\n if (stat.isDirectory()) {\n await this.uploadWidgets(`${widgetDir}/${dir}`, adapter, `${pathW}/${dir}`);\n } else {\n console.log(`Upload \"${widgetDir}/${dir}\"`);\n await this.objects.writeFile(adapter, `${pathW}/${dir}`, fs.readFileSync(`${widgetDir}/${dir}`));\n }\n }\n }\n\n /**\n * Activates vis debug for given widget\n *\n * @param widgetset widget to activate vis debug for\n */\n async enableDebug(widgetset: string): Promise<void> {\n let adapterDir: string | undefined;\n\n if (widgetset) {\n // Try to find out the adapter directory out of a list of options\n const adapterNames2Try = [`vis-${widgetset}`, widgetset];\n if (adapterNames2Try[0] === adapterNames2Try[1]) {\n adapterNames2Try.splice(1, 1);\n }\n for (const adapterName of adapterNames2Try) {\n try {\n const adapterDir2Try = tools.getAdapterDir(adapterName)!;\n // Query the entry\n const stats = fs.statSync(adapterDir2Try);\n\n // Is it a directory?\n if (stats.isDirectory()) {\n //found it!\n adapterDir = adapterDir2Try;\n break;\n }\n } catch {\n // OK\n }\n }\n\n if (!adapterDir) {\n console.error(`Adapter not found. Tried: ${adapterNames2Try.join(', ')}`);\n return void this.processExit(EXIT_CODES.MISSING_ADAPTER_FILES);\n }\n }\n\n // copy index.html.original to index.html\n // copy edit.html.original to edit.html\n // correct appName.json\n // correct config.js\n const controllerDir = tools.getControllerDir();\n let visDir = `${controllerDir}/node_modules/${tools.appName.toLowerCase()}.vis`;\n if (!fs.existsSync(visDir)) {\n visDir = `${controllerDir}/node_modules/${tools.appName.toLowerCase()}.vis`;\n if (!fs.existsSync(visDir)) {\n visDir = `${controllerDir}/../${tools.appName.toLowerCase()}.vis`;\n if (!fs.existsSync(visDir)) {\n visDir = `${controllerDir}/../${tools.appName.toLowerCase()}.vis`;\n if (!fs.existsSync(visDir)) {\n console.error(`Cannot find ${tools.appName.toLowerCase()}.vis`);\n return void this.processExit(EXIT_CODES.MISSING_ADAPTER_FILES);\n }\n }\n }\n }\n\n if (fs.existsSync(`${visDir}/www/index.html.original`)) {\n console.log(`Upload \"${path.normalize(`${visDir}/www/index.html.original`)}\"`);\n const file = fs.readFileSync(`${visDir}/www/index.html.original`, 'utf8');\n try {\n await this.objects.writeFile('vis', 'index.html', file);\n } catch (e) {\n console.error(`Cannot save ${visDir}/vis/index.html: ${e.message}`);\n }\n }\n\n if (fs.existsSync(`${visDir}/www/edit.html.original`)) {\n console.log(`Upload \"${path.normalize(`${visDir}/www/edit.html.original`)}\"`);\n const file = fs.readFileSync(`${visDir}/www/edit.html.original`, 'utf8');\n try {\n await this.objects.writeFile('vis', 'edit.html', file);\n } catch (e) {\n console.error(`Cannot save ${visDir}/vis/index.html: ${e.message}`);\n }\n }\n\n if (fs.existsSync(`${visDir}/www/cache.manifest`)) {\n console.log(`Modify \"${path.normalize(`${visDir}/www/cache.manifest`)}\"`);\n let file = fs.readFileSync(`${visDir}/www/cache.manifest`, 'utf-8');\n // if file does not exists\n if (!file.toString().trim()) {\n const version = fs.readJSONSync(`${visDir}/package.json`).version;\n file = `CACHE MANIFEST\n#\n# vis Version ${version}\n# dev build 2\n\n\n\nNETWORK:\n *\n\n\nCACHE:\n ./img/disconnect.png\n\nFALLBACK:\n ./index.html ./offline.html\n ./edit.html ./offline.html\n`;\n }\n const n = file.match(/# dev build (\\d+)/)![1];\n file = file.replace(`# dev build ${n}`, `# dev build ${parseInt(n, 10) + 1}`);\n // also update it in the vis npm dir like vis does it by itself\n fs.writeFileSync(`${visDir}/www/cache.manifest`, file);\n try {\n await this.objects.writeFile('vis', 'cache.manifest', file);\n } catch (e) {\n console.error(`Cannot save ${visDir}/www/cache.manifest: ${e.message}`);\n }\n }\n\n const file = fs.readJSONSync(tools.getConfigFileName(), 'utf8');\n\n if (!file.objects.noFileCache) {\n file.objects.noFileCache = true;\n fs.writeFileSync(tools.getConfigFileName(), JSON.stringify(file, null, 2));\n await this.objects.enableFileCacheAsync(false);\n console.log('Disable cache. ioBroker restart required! Execute \"iobroker restart\"');\n }\n\n if (widgetset) {\n const { file } = await this.objects.readFile('vis', 'js/config.js', null);\n let content = typeof file === 'string' ? file : file.toString();\n\n content = content.replace(/[\\r\\n]/g, '');\n const json: Record<string, any> = JSON.parse(content.match(/\"widgetSets\":\\s(.*)};/)![1]);\n let found = false;\n for (const widget of Object.values(json)) {\n if (widget === widgetset || widget.name === widgetset) {\n found = true;\n break;\n }\n }\n // if widget-set not found in config.js\n if (!found) {\n console.log('Modify config.js');\n const pckg = fs.readJSONSync(`${adapterDir}/io-package.json`);\n if (pckg.native && pckg.native.dependencies && pckg.native.dependencies.length) {\n json.push({\n name: widgetset,\n depends: pckg.native.dependencies,\n });\n } else {\n json.push(widgetset);\n }\n\n content = content.replace(/\"widgetSets\":\\s+.*};/, `\"widgetSets\": ${JSON.stringify(json, null, 2)}};`);\n\n await this.objects.writeFile('vis', 'js/config.js', content);\n // upload all files into vis\n console.log(`Upload ${adapterDir}/widgets`);\n await this.uploadWidgets(`${adapterDir}/widgets`, 'vis', 'widgets');\n } else {\n // upload all files into vis\n console.log(`Upload \"${adapterDir}/widgets\"`);\n await this.uploadWidgets(`${adapterDir}/widgets`, 'vis', 'widgets');\n }\n }\n\n this.processExit(EXIT_CODES.NO_ERROR);\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["import_js_controller_common", "fs", "path", "file"]
4
+ "sourcesContent": ["import fs from 'fs-extra';\nimport path from 'node:path';\nimport { tools, EXIT_CODES } from '@iobroker/js-controller-common';\n\nimport type { Client as ObjectsRedisClient } from '@iobroker/db-objects-redis';\nimport type { ProcessExitCallback } from '../_Types.js';\nimport type { ProcessCommandOptions } from '@/lib/cli/cliCommand.js';\nimport { dbConnect } from '@/lib/setup/dbConnection.js';\n\n/** Options for the vis debug helper */\nexport interface CLIVisDebugOptions {\n /** The objects database client */\n objects: ObjectsRedisClient;\n /** Callback to exit the process with an exit code */\n processExit: ProcessExitCallback;\n}\n\n/**\n * Helper to upload a vis widget directory for debugging\n */\nexport class VisDebug {\n private readonly objects: ObjectsRedisClient;\n private readonly processExit: ProcessExitCallback;\n\n /**\n * @param options The objects client and the process-exit callback\n */\n constructor(options: CLIVisDebugOptions) {\n this.objects = options.objects;\n this.processExit = options.processExit;\n }\n\n /**\n * Upload widget directory to vis directory\n *\n * @param widgetDir directory of widgets\n * @param adapter name of the adapter\n * @param pathW widgets path\n */\n private async uploadWidgets(widgetDir: string, adapter: string, pathW: string): Promise<void> {\n if (!fs.existsSync(widgetDir)) {\n console.error(`Cannot upload widgets, because folder \"${widgetDir}\" does not exist`);\n return;\n }\n const dirs = fs.readdirSync(widgetDir);\n\n for (const dir of dirs) {\n const stat = fs.statSync(`${widgetDir}/${dir}`);\n if (stat.isDirectory()) {\n await this.uploadWidgets(`${widgetDir}/${dir}`, adapter, `${pathW}/${dir}`);\n } else {\n console.log(`Upload \"${widgetDir}/${dir}\"`);\n await this.objects.writeFile(adapter, `${pathW}/${dir}`, fs.readFileSync(`${widgetDir}/${dir}`));\n }\n }\n }\n\n /**\n * Activates vis debug for given widget\n *\n * @param widgetSet widget to activate vis debug for\n */\n async enableDebug(widgetSet: string): Promise<void> {\n let adapterDir: string | undefined;\n\n if (widgetSet) {\n // Try to find out the adapter directory out of a list of options\n const adapterNames2Try = [`vis-${widgetSet}`, widgetSet];\n if (adapterNames2Try[0] === adapterNames2Try[1]) {\n adapterNames2Try.splice(1, 1);\n }\n for (const adapterName of adapterNames2Try) {\n try {\n const adapterDir2Try = tools.getAdapterDir(adapterName)!;\n // Query the entry\n const stats = fs.statSync(adapterDir2Try);\n\n // Is it a directory?\n if (stats.isDirectory()) {\n //found it!\n adapterDir = adapterDir2Try;\n break;\n }\n } catch {\n // OK\n }\n }\n\n if (!adapterDir) {\n console.error(`Adapter not found. Tried: ${adapterNames2Try.join(', ')}`);\n return void this.processExit(EXIT_CODES.MISSING_ADAPTER_FILES);\n }\n }\n\n // copy index.html.original to index.html\n // copy edit.html.original to edit.html\n // correct appName.json\n // correct config.js\n const controllerDir = tools.getControllerDir();\n let visDir = `${controllerDir}/node_modules/${tools.appName.toLowerCase()}.vis`;\n if (!fs.existsSync(visDir)) {\n visDir = `${controllerDir}/node_modules/${tools.appName.toLowerCase()}.vis`;\n if (!fs.existsSync(visDir)) {\n visDir = `${controllerDir}/../${tools.appName.toLowerCase()}.vis`;\n if (!fs.existsSync(visDir)) {\n visDir = `${controllerDir}/../${tools.appName.toLowerCase()}.vis`;\n if (!fs.existsSync(visDir)) {\n console.error(`Cannot find ${tools.appName.toLowerCase()}.vis`);\n return void this.processExit(EXIT_CODES.MISSING_ADAPTER_FILES);\n }\n }\n }\n }\n\n if (fs.existsSync(`${visDir}/www/index.html.original`)) {\n console.log(`Upload \"${path.normalize(`${visDir}/www/index.html.original`)}\"`);\n const file = fs.readFileSync(`${visDir}/www/index.html.original`, 'utf8');\n try {\n await this.objects.writeFile('vis', 'index.html', file);\n } catch (e) {\n console.error(`Cannot save ${visDir}/vis/index.html: ${e.message}`);\n }\n }\n\n if (fs.existsSync(`${visDir}/www/edit.html.original`)) {\n console.log(`Upload \"${path.normalize(`${visDir}/www/edit.html.original`)}\"`);\n const file = fs.readFileSync(`${visDir}/www/edit.html.original`, 'utf8');\n try {\n await this.objects.writeFile('vis', 'edit.html', file);\n } catch (e) {\n console.error(`Cannot save ${visDir}/vis/index.html: ${e.message}`);\n }\n }\n\n if (fs.existsSync(`${visDir}/www/cache.manifest`)) {\n console.log(`Modify \"${path.normalize(`${visDir}/www/cache.manifest`)}\"`);\n let file = fs.readFileSync(`${visDir}/www/cache.manifest`, 'utf-8');\n // if file does not exist\n if (!file.toString().trim()) {\n const version = fs.readJSONSync(`${visDir}/package.json`).version;\n file = `CACHE MANIFEST\n#\n# vis Version ${version}\n# dev build 2\n\n\n\nNETWORK:\n *\n\n\nCACHE:\n ./img/disconnect.png\n\nFALLBACK:\n ./index.html ./offline.html\n ./edit.html ./offline.html\n`;\n }\n const n = file.match(/# dev build (\\d+)/)![1];\n file = file.replace(`# dev build ${n}`, `# dev build ${parseInt(n, 10) + 1}`);\n // also update it in the vis npm dir like vis does it by itself\n fs.writeFileSync(`${visDir}/www/cache.manifest`, file);\n try {\n await this.objects.writeFile('vis', 'cache.manifest', file);\n } catch (e) {\n console.error(`Cannot save ${visDir}/www/cache.manifest: ${e.message}`);\n }\n }\n\n const file = fs.readJSONSync(tools.getConfigFileName(), 'utf8');\n\n if (!file.objects.noFileCache) {\n file.objects.noFileCache = true;\n fs.writeFileSync(tools.getConfigFileName(), JSON.stringify(file, null, 2));\n await this.objects.enableFileCacheAsync(false);\n console.log('Disable cache. ioBroker restart required! Execute \"iobroker restart\"');\n }\n\n if (widgetSet) {\n const { file } = await this.objects.readFile('vis', 'js/config.js', null);\n let content = typeof file === 'string' ? file : file?.toString() || '';\n\n content = content.replace(/[\\r\\n]/g, '');\n const json: ({ name: string; depends?: string | string[]; always?: boolean; v2?: boolean } | string)[] =\n JSON.parse(content.match(/\"widgetSets\":\\s(.*)};/)![1]);\n let found = false;\n for (const widget of Object.values(json)) {\n if (\n widget === widgetSet ||\n (widget as { name: string; depends?: string | string[]; always?: boolean; v2?: boolean }).name ===\n widgetSet\n ) {\n found = true;\n break;\n }\n }\n // if the idget set isn't found in config.js\n if (!found) {\n console.log('Modify config.js');\n const pckg = fs.readJSONSync(`${adapterDir}/io-package.json`);\n if (pckg.native?.dependencies?.length) {\n json.push({\n name: widgetSet,\n depends: pckg.native.dependencies,\n });\n } else {\n json.push(widgetSet);\n }\n\n content = content.replace(/\"widgetSets\":\\s+.*};/, `\"widgetSets\": ${JSON.stringify(json, null, 2)}};`);\n\n await this.objects.writeFile('vis', 'js/config.js', content);\n // upload all files into vis\n console.log(`Upload ${adapterDir}/widgets`);\n await this.uploadWidgets(`${adapterDir}/widgets`, 'vis', 'widgets');\n } else {\n // upload all files into vis\n console.log(`Upload \"${adapterDir}/widgets\"`);\n await this.uploadWidgets(`${adapterDir}/widgets`, 'vis', 'widgets');\n }\n }\n\n this.processExit(EXIT_CODES.NO_ERROR);\n }\n}\n\n/**\n * @param options The command options\n */\nexport function processCommandVisDebug(options: ProcessCommandOptions): void {\n const { args, params, callback } = options;\n\n let widgetset = args[0];\n if (widgetset?.startsWith('vis-')) {\n widgetset = widgetset.substring(4);\n }\n\n dbConnect(params, ({ objects }) => {\n const visDebug = new VisDebug({\n objects,\n processExit: callback,\n });\n\n visDebug.enableDebug(widgetset).catch(e => console.error(`Cannot enable debug: ${e.message}`));\n });\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["fs", "path", "file"]
7
7
  }
@@ -10,7 +10,7 @@ interface GetRepositoryOptions {
10
10
  *
11
11
  * @param options Repository specific options
12
12
  */
13
- export declare function getRepository(options: GetRepositoryOptions): Promise<Record<string, ioBroker.RepositoryJsonAdapterContent>>;
13
+ export declare function getRepository(options: GetRepositoryOptions): Promise<ioBroker.RepositoryJson>;
14
14
  interface VersionOptions {
15
15
  /** The adapter name to check the version for */
16
16
  adapterName: string;
@@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
9
  var __export = (target, all) => {
9
10
  for (var name in all)
10
11
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -37,13 +38,11 @@ __export(utils_exports, {
37
38
  recognizeVersion: () => recognizeVersion
38
39
  });
39
40
  module.exports = __toCommonJS(utils_exports);
40
- var import_js_controller_common = require("@iobroker/js-controller-common");
41
- var import_js_controller_common2 = require("@iobroker/js-controller-common");
42
41
  var import_semver = __toESM(require("semver"), 1);
42
+ var import_js_controller_common = require("@iobroker/js-controller-common");
43
43
  var import_customError = require("../../lib/setup/customError.js");
44
44
  async function getRepository(options) {
45
- const { objects } = options;
46
- const { repoName } = options;
45
+ const { objects, repoName } = options;
47
46
  let repoNameOrArray = repoName;
48
47
  if (!repoName || repoName === "auto") {
49
48
  const systemConfig = await objects.getObject("system.config");
@@ -66,10 +65,10 @@ async function getRepository(options) {
66
65
  }
67
66
  if (!systemRepos.native.repositories[repoUrl].json) {
68
67
  console.log(`Update repository "${repoUrl}" under "${systemRepos.native.repositories[repoUrl].link}"`);
69
- const data = await import_js_controller_common2.tools.getRepositoryFileAsync(systemRepos.native.repositories[repoUrl].link);
68
+ const data = await import_js_controller_common.tools.getRepositoryFileAsync(systemRepos.native.repositories[repoUrl].link);
70
69
  systemRepos.native.repositories[repoUrl].json = data.json;
71
70
  systemRepos.native.repositories[repoUrl].hash = data.hash;
72
- systemRepos.from = `system.host.${import_js_controller_common2.tools.getHostName()}.cli`;
71
+ systemRepos.from = `system.host.${import_js_controller_common.tools.getHostName()}.cli`;
73
72
  systemRepos.ts = (/* @__PURE__ */ new Date()).getTime();
74
73
  changed = true;
75
74
  }
@@ -94,17 +93,19 @@ async function getRepository(options) {
94
93
  return allSources;
95
94
  }
96
95
  }
96
+ __name(getRepository, "getRepository");
97
97
  async function isVersionIgnored(options) {
98
98
  const { adapterName, version, objects } = options;
99
- const obj = await objects.getObject(`system.host.${import_js_controller_common2.tools.getHostName()}.adapter.${adapterName}`);
99
+ const obj = await objects.getObject(`system.host.${import_js_controller_common.tools.getHostName()}.adapter.${adapterName}`);
100
100
  if (obj?.common.ignoreVersion === void 0) {
101
101
  return false;
102
102
  }
103
103
  return import_semver.default.satisfies(version, obj?.common.ignoreVersion);
104
104
  }
105
+ __name(isVersionIgnored, "isVersionIgnored");
105
106
  async function ignoreVersion(options) {
106
107
  const { adapterName, version, objects } = options;
107
- const id = `system.host.${import_js_controller_common2.tools.getHostName()}.adapter.${adapterName}`;
108
+ const id = `system.host.${import_js_controller_common.tools.getHostName()}.adapter.${adapterName}`;
108
109
  const obj = await objects.getObject(id);
109
110
  if (!obj) {
110
111
  throw new import_customError.IoBrokerError({ code: import_js_controller_common.EXIT_CODES.CANNOT_SET_OBJECT, message: `Object "${id}" does not exist` });
@@ -112,9 +113,10 @@ async function ignoreVersion(options) {
112
113
  obj.common.ignoreVersion = version;
113
114
  await objects.setObject(id, obj);
114
115
  }
116
+ __name(ignoreVersion, "ignoreVersion");
115
117
  async function recognizeVersion(options) {
116
118
  const { adapterName, objects } = options;
117
- const id = `system.host.${import_js_controller_common2.tools.getHostName()}.adapter.${adapterName}`;
119
+ const id = `system.host.${import_js_controller_common.tools.getHostName()}.adapter.${adapterName}`;
118
120
  const obj = await objects.getObject(id);
119
121
  if (!obj) {
120
122
  throw new import_customError.IoBrokerError({ code: import_js_controller_common.EXIT_CODES.CANNOT_SET_OBJECT, message: `Object "${id}" does not exist` });
@@ -122,9 +124,11 @@ async function recognizeVersion(options) {
122
124
  delete obj.common.ignoreVersion;
123
125
  await objects.setObject(id, obj);
124
126
  }
127
+ __name(recognizeVersion, "recognizeVersion");
125
128
  function isIntegerLikeInput(input) {
126
129
  return /^\d+$/.test(input);
127
130
  }
131
+ __name(isIntegerLikeInput, "isIntegerLikeInput");
128
132
  const STABLE_REPO_URL = "http://download.iobroker.net/sources-dist.json";
129
133
  const BETA_REPO_URL = "http://download.iobroker.net/sources-dist-latest.json";
130
134
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/setup/utils.ts"],
4
- "sourcesContent": ["import { EXIT_CODES } from '@iobroker/js-controller-common';\nimport { tools } from '@iobroker/js-controller-common';\nimport type { Client as ObjectsClient } from '@iobroker/db-objects-redis';\nimport semver from 'semver';\nimport { IoBrokerError } from '@/lib/setup/customError.js';\n\ninterface GetRepositoryOptions {\n /** The objects DB client */\n objects: ObjectsClient;\n /** Name of the repository */\n repoName?: string;\n}\n\n/**\n * Get JSON of the given repository\n *\n * @param options Repository specific options\n */\nexport async function getRepository(\n options: GetRepositoryOptions,\n): Promise<Record<string, ioBroker.RepositoryJsonAdapterContent>> {\n const { objects } = options;\n const { repoName } = options;\n\n let repoNameOrArray: string | string[] | undefined = repoName;\n if (!repoName || repoName === 'auto') {\n const systemConfig = await objects.getObject('system.config');\n repoNameOrArray = systemConfig!.common.activeRepo;\n }\n\n const repoArr = !Array.isArray(repoNameOrArray) ? [repoNameOrArray!] : repoNameOrArray;\n\n const systemRepos = (await objects.getObject('system.repositories'))!;\n\n const allSources: Record<string, ioBroker.RepositoryJsonAdapterContent> = {};\n let changed = false;\n let anyFound = false;\n for (const repoUrl of repoArr) {\n const repo = systemRepos.native.repositories[repoUrl];\n if (repo) {\n if (typeof repo === 'string') {\n systemRepos.native.repositories[repo] = {\n link: repo,\n json: null,\n };\n changed = true;\n }\n\n // If repo is not yet loaded\n if (!systemRepos.native.repositories[repoUrl].json) {\n console.log(`Update repository \"${repoUrl}\" under \"${systemRepos.native.repositories[repoUrl].link}\"`);\n const data = await tools.getRepositoryFileAsync(systemRepos.native.repositories[repoUrl].link);\n systemRepos.native.repositories[repoUrl].json = data.json;\n systemRepos.native.repositories[repoUrl].hash = data.hash;\n systemRepos.from = `system.host.${tools.getHostName()}.cli`;\n systemRepos.ts = new Date().getTime();\n changed = true;\n }\n\n if (systemRepos.native.repositories[repoUrl].json) {\n Object.assign(allSources, systemRepos.native.repositories[repoUrl].json);\n anyFound = true;\n }\n }\n\n if (changed) {\n await objects.setObject('system.repositories', systemRepos);\n }\n }\n\n if (!anyFound) {\n let message: string;\n if (repoArr.length) {\n message = `ERROR: No repositories defined matching \"${repoArr.join(\n ' | ',\n )}\". Please use one of ${Object.keys(systemRepos.native.repositories)\n .map(repo => `\"${repo}\"`)\n .join(', ')}.`;\n } else {\n message = `ERROR: No repositories defined. Please define one repository as active: \"iob repo set <${Object.keys(\n systemRepos.native.repositories,\n ).join(' | ')}>\"`;\n }\n\n throw new IoBrokerError({ message, code: EXIT_CODES.INVALID_REPO });\n } else {\n return allSources;\n }\n}\n\ninterface VersionOptions {\n /** The adapter name to check the version for */\n adapterName: string;\n /** The objects DB instance */\n objects: ObjectsClient;\n}\n\ninterface IgnoreVersionOptions extends VersionOptions {\n /** The version which will be checked */\n version: string;\n}\n\n/**\n * Get info if a specific version should be ignored of this adapter\n *\n * @param options name and target version of the adapter\n */\nexport async function isVersionIgnored(options: IgnoreVersionOptions): Promise<boolean> {\n const { adapterName, version, objects } = options;\n const obj = await objects.getObject(`system.host.${tools.getHostName()}.adapter.${adapterName}`);\n\n if (obj?.common.ignoreVersion === undefined) {\n return false;\n }\n\n return semver.satisfies(version, obj?.common.ignoreVersion);\n}\n\n/**\n * Ignore a specific version of an adapter\n *\n * @param options name and target version of the adapter\n */\nexport async function ignoreVersion(options: IgnoreVersionOptions): Promise<void> {\n const { adapterName, version, objects } = options;\n const id = `system.host.${tools.getHostName()}.adapter.${adapterName}`;\n const obj = await objects.getObject(id);\n\n if (!obj) {\n throw new IoBrokerError({ code: EXIT_CODES.CANNOT_SET_OBJECT, message: `Object \"${id}\" does not exist` });\n }\n\n obj.common.ignoreVersion = version;\n\n await objects.setObject(id, obj);\n}\n\n/**\n * Recognize all updates of adapter again\n *\n * @param options name of the adapter\n */\nexport async function recognizeVersion(options: VersionOptions): Promise<void> {\n const { adapterName, objects } = options;\n const id = `system.host.${tools.getHostName()}.adapter.${adapterName}`;\n const obj = await objects.getObject(id);\n\n if (!obj) {\n throw new IoBrokerError({ code: EXIT_CODES.CANNOT_SET_OBJECT, message: `Object \"${id}\" does not exist` });\n }\n\n delete obj.common.ignoreVersion;\n\n await objects.setObject(id, obj);\n}\n\n/**\n * Check if user input is an integer\n *\n * @param input input string to check\n */\nexport function isIntegerLikeInput(input: string): boolean {\n return /^\\d+$/.test(input);\n}\n\n/** URL of the official stable repository */\nexport const STABLE_REPO_URL = 'http://download.iobroker.net/sources-dist.json';\n\n/** URL of the official beta repository */\nexport const BETA_REPO_URL = 'http://download.iobroker.net/sources-dist-latest.json';\n"],
5
- "mappings": "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",
6
- "names": ["import_js_controller_common", "semver"]
4
+ "sourcesContent": ["import semver from 'semver';\n\nimport { tools, EXIT_CODES } from '@iobroker/js-controller-common';\nimport type { Client as ObjectsClient } from '@iobroker/db-objects-redis';\nimport { IoBrokerError } from '@/lib/setup/customError.js';\n\ninterface GetRepositoryOptions {\n /** The objects DB client */\n objects: ObjectsClient;\n /** Name of the repository */\n repoName?: string;\n}\n\n/**\n * Get JSON of the given repository\n *\n * @param options Repository specific options\n */\nexport async function getRepository(options: GetRepositoryOptions): Promise<ioBroker.RepositoryJson> {\n const { objects, repoName } = options;\n\n let repoNameOrArray: string | string[] | undefined = repoName;\n if (!repoName || repoName === 'auto') {\n const systemConfig = await objects.getObject('system.config');\n repoNameOrArray = systemConfig!.common.activeRepo;\n }\n\n const repoArr = !Array.isArray(repoNameOrArray) ? [repoNameOrArray!] : repoNameOrArray;\n\n const systemRepos = (await objects.getObject('system.repositories'))!;\n\n const allSources: ioBroker.RepositoryJson = {} as ioBroker.RepositoryJson;\n let changed = false;\n let anyFound = false;\n for (const repoUrl of repoArr) {\n const repo = systemRepos.native.repositories[repoUrl];\n if (repo) {\n if (typeof repo === 'string') {\n systemRepos.native.repositories[repo] = {\n link: repo,\n json: null,\n };\n changed = true;\n }\n\n // If repo is not yet loaded\n if (!systemRepos.native.repositories[repoUrl].json) {\n console.log(`Update repository \"${repoUrl}\" under \"${systemRepos.native.repositories[repoUrl].link}\"`);\n const data = await tools.getRepositoryFileAsync(systemRepos.native.repositories[repoUrl].link);\n systemRepos.native.repositories[repoUrl].json = data.json;\n systemRepos.native.repositories[repoUrl].hash = data.hash;\n systemRepos.from = `system.host.${tools.getHostName()}.cli`;\n systemRepos.ts = new Date().getTime();\n changed = true;\n }\n\n if (systemRepos.native.repositories[repoUrl].json) {\n Object.assign(allSources, systemRepos.native.repositories[repoUrl].json);\n anyFound = true;\n }\n }\n\n if (changed) {\n await objects.setObject('system.repositories', systemRepos);\n }\n }\n\n if (!anyFound) {\n let message: string;\n if (repoArr.length) {\n message = `ERROR: No repositories defined matching \"${repoArr.join(\n ' | ',\n )}\". Please use one of ${Object.keys(systemRepos.native.repositories)\n .map(repo => `\"${repo}\"`)\n .join(', ')}.`;\n } else {\n message = `ERROR: No repositories defined. Please define one repository as active: \"iob repo set <${Object.keys(\n systemRepos.native.repositories,\n ).join(' | ')}>\"`;\n }\n\n throw new IoBrokerError({ message, code: EXIT_CODES.INVALID_REPO });\n } else {\n return allSources;\n }\n}\n\ninterface VersionOptions {\n /** The adapter name to check the version for */\n adapterName: string;\n /** The objects DB instance */\n objects: ObjectsClient;\n}\n\ninterface IgnoreVersionOptions extends VersionOptions {\n /** The version which will be checked */\n version: string;\n}\n\n/**\n * Get info if a specific version should be ignored of this adapter\n *\n * @param options name and target version of the adapter\n */\nexport async function isVersionIgnored(options: IgnoreVersionOptions): Promise<boolean> {\n const { adapterName, version, objects } = options;\n const obj = await objects.getObject(`system.host.${tools.getHostName()}.adapter.${adapterName}`);\n\n if (obj?.common.ignoreVersion === undefined) {\n return false;\n }\n\n return semver.satisfies(version, obj?.common.ignoreVersion);\n}\n\n/**\n * Ignore a specific version of an adapter\n *\n * @param options name and target version of the adapter\n */\nexport async function ignoreVersion(options: IgnoreVersionOptions): Promise<void> {\n const { adapterName, version, objects } = options;\n const id = `system.host.${tools.getHostName()}.adapter.${adapterName}`;\n const obj = await objects.getObject(id);\n\n if (!obj) {\n throw new IoBrokerError({ code: EXIT_CODES.CANNOT_SET_OBJECT, message: `Object \"${id}\" does not exist` });\n }\n\n obj.common.ignoreVersion = version;\n\n await objects.setObject(id, obj);\n}\n\n/**\n * Recognize all updates of adapter again\n *\n * @param options name of the adapter\n */\nexport async function recognizeVersion(options: VersionOptions): Promise<void> {\n const { adapterName, objects } = options;\n const id = `system.host.${tools.getHostName()}.adapter.${adapterName}`;\n const obj = await objects.getObject(id);\n\n if (!obj) {\n throw new IoBrokerError({ code: EXIT_CODES.CANNOT_SET_OBJECT, message: `Object \"${id}\" does not exist` });\n }\n\n delete obj.common.ignoreVersion;\n\n await objects.setObject(id, obj);\n}\n\n/**\n * Check if user input is an integer\n *\n * @param input input string to check\n */\nexport function isIntegerLikeInput(input: string): boolean {\n return /^\\d+$/.test(input);\n}\n\n/** URL of the official stable repository */\nexport const STABLE_REPO_URL = 'http://download.iobroker.net/sources-dist.json';\n\n/** URL of the official beta repository */\nexport const BETA_REPO_URL = 'http://download.iobroker.net/sources-dist-latest.json';\n"],
5
+ "mappings": "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",
6
+ "names": ["semver"]
7
7
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Method which should be called from CLI to initialize the handling of all args
2
+ * Method that should be called from CLI to initialize the handling of all args
3
3
  */
4
4
  export declare function execute(): void;
5
5
  //# sourceMappingURL=setup.d.ts.map