@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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/setup/pluginInfos.ts"],
4
- "sourcesContent": ["// Special Handling to inform users about reporting plugins correctly\nexport function isReportingPlugin(name: string): boolean {\n return name === 'sentry';\n}\n\nexport const PLUGIN_INFOS = {\n sentry: {\n headline: {\n en: 'ATTENTION: Error reporting via Sentry will be activated on next start of ioBroker',\n de: 'ACHTUNG: Die Fehlerberichterstattung \u00FCber Sentry wird beim n\u00E4chsten Start von ioBroker aktiviert',\n ru: '\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415: \u041E\u0442\u0447\u0435\u0442 \u043E\u0431 \u043E\u0448\u0438\u0431\u043A\u0430\u0445 \u0447\u0435\u0440\u0435\u0437 Sentry \u0431\u0443\u0434\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D \u043F\u0440\u0438 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C \u0437\u0430\u043F\u0443\u0441\u043A\u0435 ioBroker',\n pt: 'ATEN\u00C7\u00C3O: O relat\u00F3rio de erros via Sentry ser\u00E1 ativado no pr\u00F3ximo in\u00EDcio do ioBroker',\n nl: 'LET OP: Foutrapportage via Sentry wordt geactiveerd bij de volgende start van ioBroker',\n fr: \"ATTENTION: Le rapport d'erreurs via Sentry sera activ\u00E9 au prochain d\u00E9marrage d'ioBroker\",\n it: 'ATTENZIONE: la segnalazione degli errori tramite Sentry verr\u00E0 attivata al prossimo avvio di ioBroker',\n es: 'ATENCI\u00D3N: el informe de errores a trav\u00E9s de Sentry se activar\u00E1 en el pr\u00F3ximo inicio de ioBroker',\n pl: 'UWAGA: Raportowanie b\u0142\u0119d\u00F3w za po\u015Brednictwem Sentry zostanie aktywowane przy nast\u0119pnym uruchomieniu ioBroker',\n uk: '\u0423\u0412\u0410\u0413\u0410: \u0417\u0432\u0456\u0442 \u043F\u0440\u043E \u043F\u043E\u043C\u0438\u043B\u043A\u0438 \u0447\u0435\u0440\u0435\u0437 Sentry \u0431\u0443\u0434\u0435 \u0430\u043A\u0442\u0438\u0432\u043E\u0432\u0430\u043D\u043E \u043F\u0440\u0438 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u043C\u0443 \u0437\u0430\u043F\u0443\u0441\u043A\u0443 ioBroker',\n 'zh-cn': '\u6CE8\u610F\uFF1A\u901A\u8FC7Sentry\u7684\u9519\u8BEF\u62A5\u544A\u5C06\u5728ioBroker\u7684\u4E0B\u4E00\u6B21\u542F\u52A8\u65F6\u88AB\u6FC0\u6D3B',\n },\n text: {\n en: \"ioBroker wants to make sure to deliver the most stable smart home system.\\nTo allow this we decided to implement an automatic error and crash reporting solution into the js-controller and also into adapters. \\n\\nTHIS REPORTING WILL BE ENABLED WITH THE NEXT START OF YOUR IOBROKER!\\n\\nFor any error that leads to the crash of the js-controller or one of the relevant adapters the error details are send to a server. For the js-controller and core adapters this server is located and operated in germany. For community adapters please check the Github Readme of the affected adapter for details which Sentry server is used.\\n\\nIf you want to disable the error reporting you can use the command\\n'iobroker plugin disable sentry'\\nThis command will also make sure that no adapter that runs on this host will send crash reporting data to sentry.\",\n de: \"Wir von ioBroker wollen das stabilste Smart-Home-System bereitstellen.\\nUm dies zu erm\u00F6glichen, haben wir uns entschlossen, eine automatische Fehler- und Crash-Reporting-L\u00F6sung in den js-Controller und auch in Adapter zu implementieren.\\n\\nDIESE BERICHTERSTATTUNG WIRD MIT DEM N\u00C4CHSTEN START IHRES IOBROKERS AKTIVIERT!\\n\\nBei Fehlern, die zum Absturz des js-Controllers oder eines der relevanten Adapter f\u00FChren, werden die Fehlerdetails an einen Server gesendet. F\u00FCr den js-controller und die Haupt-Adapter befindet sich dieser Server in Deutschland. Informationen zu Community-Adaptern sind in der Github-Readme-Datei des betroffenen Adapters zu finden. Dort steht welcher Sentry-Server verwendet wird.\\n\\nDie Fehlerberichterstattung kann, falls gew\u00FCnscht, \u00FCber den Befehl\\n'iobroker plugin disable sentry'\\ndeaktiviert werden. Dieser Befehl stellt auch sicher, dass kein Adapter, der auf diesem Host ausgef\u00FChrt wird, Absturzberichtsdaten an den Sentry-Server sendet.\",\n ru: \"ioBroker \u0445\u043E\u0447\u0435\u0442 \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0438\u0442\u044C \u0441\u0430\u043C\u0443\u044E \u0441\u0442\u0430\u0431\u0438\u043B\u044C\u043D\u0443\u044E \u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u0443\u043C\u043D\u043E\u0433\u043E \u0434\u043E\u043C\u0430.\\n\u0427\u0442\u043E\u0431\u044B \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u044D\u0442\u043E, \u043C\u044B \u0440\u0435\u0448\u0438\u043B\u0438 \u0432\u043D\u0435\u0434\u0440\u0438\u0442\u044C \u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043E\u0431 \u043E\u0448\u0438\u0431\u043A\u0430\u0445 \u0438 \u0441\u0431\u043E\u044F\u0445 \u0432 js-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440, \u0430 \u0442\u0430\u043A\u0436\u0435 \u0432 \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u044B.\\n\\n\u042D\u0422\u0410 \u041E\u0422\u0427\u0415\u0422\u041D\u041E\u0421\u0422\u042C \u0411\u0423\u0414\u0415\u0422 \u0412\u041A\u041B\u042E\u0427\u0415\u041D\u0410 \u0421 \u0421\u041B\u0415\u0414\u0423\u042E\u0429\u0418\u041C \u0421\u0422\u0410\u0420\u0422\u041E\u041C \u0412\u0410\u0428\u0415\u0413\u041E IOBROKER!\\n\\n\u0414\u043B\u044F \u043B\u044E\u0431\u043E\u0439 \u043E\u0448\u0438\u0431\u043A\u0438, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u043F\u0440\u0438\u0432\u043E\u0434\u0438\u0442 \u043A \u0441\u0431\u043E\u044E js-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0430 \u0438\u043B\u0438 \u043E\u0434\u043D\u043E\u0433\u043E \u0438\u0437 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0445 \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u043E\u0432, \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u043E\u0448\u0438\u0431\u043A\u0438 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440. \u0414\u043B\u044F js-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0430 \u0438 \u0431\u0430\u0437\u043E\u0432\u044B\u0445 \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u043E\u0432 \u044D\u0442\u043E\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D \u0438 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0432 \u0413\u0435\u0440\u043C\u0430\u043D\u0438\u0438. \u0414\u043B\u044F \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u043E\u0432 \u0441\u043E\u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0430, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 Github Readme \u0443\u044F\u0437\u0432\u0438\u043C\u043E\u0433\u043E \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u0430 \u0434\u043B\u044F \u0434\u0435\u0442\u0430\u043B\u0435\u0439, \u043A\u0430\u043A\u043E\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 Sentry \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F.\\n\\n\u0415\u0441\u043B\u0438 \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043E\u0442\u0447\u0435\u0442\u044B \u043E\u0431 \u043E\u0448\u0438\u0431\u043A\u0430\u0445, \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443\\n'iobroker plugin disable sentry'\\n\u042D\u0442\u0430 \u043A\u043E\u043C\u0430\u043D\u0434\u0430 \u0442\u0430\u043A\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043B\u0435\u0434\u0438\u0442\u044C \u0437\u0430 \u0442\u0435\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0438 \u043E\u0434\u0438\u043D \u0430\u0434\u0430\u043F\u0442\u0435\u0440, \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0449\u0438\u0439 \u043D\u0430 \u044D\u0442\u043E\u043C \u0445\u043E\u0441\u0442\u0435, \u043D\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u043B \u0434\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0447\u0435\u0442\u043E\u0432 \u043E \u0441\u0431\u043E\u044F\u0445 \u0447\u0430\u0441\u043E\u0432\u043E\u043C\u0443.\",\n pt: \"A ioBroker quer garantir o sistema dom\u00E9stico inteligente mais est\u00E1vel.\\nPara permitir isso, decidimos implementar uma solu\u00E7\u00E3o autom\u00E1tica de relat\u00F3rios de erros e falhas no controlador js e tamb\u00E9m nos adaptadores.\\n\\nESTE RELAT\u00D3RIO SER\u00C1 ATIVADO COM O PR\u00D3XIMO IN\u00CDCIO DO SEU IOBROKER!\\n\\nPara qualquer erro que leve ao travamento do controlador js ou de um dos adaptadores relevantes, os detalhes do erro ser\u00E3o enviados para um servidor. Para os controladores js e adaptadores principais, este servidor est\u00E1 localizado e operado na Alemanha. Para adaptadores da comunidade, consulte o Leia-me do Github do adaptador afetado para obter detalhes de qual servidor Sentry \u00E9 usado.\\n\\nSe voc\u00EA deseja desativar o relat\u00F3rio de erros, pode usar o comando\\n'iobroker plugin disable sentry'\\nEste comando tamb\u00E9m garantir\u00E1 que nenhum adaptador executado neste host envie dados de relat\u00F3rio de falha \u00E0 sentinela.\",\n nl: \"ioBroker wil ervoor zorgen dat het het meest stabiele slimme thuissysteem levert.\\nOm dit mogelijk te maken, hebben we besloten om een automatische fout- en crashrapportageoplossing in de js-controller en ook in adapters te implementeren.\\n\\nDEZE RAPPORTAGE WORDT INGESCHAKELD MET DE VOLGENDE START VAN UW IOBROKER!\\n\\nVoor elke fout die leidt tot het crashen van de js-controller of een van de relevante adapters, worden de foutdetails naar een server gestuurd. Voor de js-controller en core-adapters bevindt deze server zich in Duitsland. Raadpleeg voor communityadapters het Github Readme van de betreffende adapter voor details welke Sentry-server wordt gebruikt.\\n\\nAls u de foutrapportage wilt uitschakelen, kunt u de opdracht gebruiken\\n'iobroker plugin disable sentry'\\nDeze opdracht zorgt er ook voor dat geen enkele adapter die op deze host wordt uitgevoerd, crashrapportagegegevens naar de wachtpost verzendt.\",\n fr: \"ioBroker veut s'assurer de fournir le syst\u00E8me de maison intelligente le plus stable.\\nPour permettre cela, nous avons d\u00E9cid\u00E9 d'impl\u00E9menter une solution automatique de rapport d'erreurs et de plantages dans le contr\u00F4leur js et \u00E9galement dans les adaptateurs.\\n\\nCE RAPPORT SERA ACTIV\u00C9 AU PROCHAIN D\u00C9MARRAGE DE VOTRE IOBROKER!\\n\\nPour toute erreur entra\u00EEnant la panne du contr\u00F4leur js ou de l'un des adaptateurs concern\u00E9s, les d\u00E9tails de l'erreur sont envoy\u00E9s \u00E0 un serveur. Pour le contr\u00F4leur js et les adaptateurs principaux, ce serveur est situ\u00E9 et exploit\u00E9 en Allemagne. Pour les adaptateurs de communaut\u00E9, consultez le fichier Lisezmoi Github de l'adaptateur concern\u00E9 pour plus de d\u00E9tails sur le serveur Sentry utilis\u00E9.\\n\\nSi vous souhaitez d\u00E9sactiver le rapport d'erreurs, vous pouvez utiliser la commande\\n'iobroker plugin disable sentry'\\nCette commande s'assurera \u00E9galement qu'aucun adaptateur qui s'ex\u00E9cute sur cet h\u00F4te n'enverra de donn\u00E9es de rapport d'incident \u00E0 la sentinelle.\",\n it: \"ioBroker vuole assicurarsi di fornire il sistema di casa intelligente pi\u00F9 stabile.\\nPer consentire ci\u00F2, abbiamo deciso di implementare una soluzione di segnalazione automatica di errori e arresti anomali nel controller js e anche negli adattatori.\\n\\nQUESTA RENDICONTAZIONE SAR\u00C0 ABILITATA CON IL PROSSIMO INIZIO DEL TUO IOBROKER!\\n\\nPer qualsiasi errore che porta al crash del controller js o di uno dei relativi adattatori, i dettagli dell'errore vengono inviati a un server. Per il controller js e gli adattatori core questo server si trova e funziona in Germania. Per gli adattatori della comunit\u00E0, consultare il file Leggimi di Github dell'adattatore interessato per i dettagli su quale server Sentry viene utilizzato.\\n\\nSe si desidera disabilitare la segnalazione degli errori, \u00E8 possibile utilizzare il comando\\n'iobroker plugin disable sentry'\\nQuesto comando assicurer\u00E0 inoltre che nessun adattatore in esecuzione su questo host invier\u00E0 dati di segnalazione di crash a sentinella.\",\n es: \"ioBroker quiere asegurarse de ofrecer el sistema de hogar inteligente m\u00E1s estable.\\nPara permitir esto, decidimos implementar una soluci\u00F3n autom\u00E1tica de informe de errores y fallas en el controlador js y tambi\u00E9n en los adaptadores.\\n\\n\u00A1ESTE INFORME SER\u00C1 HABILITADO CON EL PR\u00D3XIMO INICIO DE SU IOBROKER!\\n\\nPara cualquier error que provoque el bloqueo del controlador js o de uno de los adaptadores relevantes, los detalles del error se env\u00EDan a un servidor. Para el controlador js y los adaptadores principales, este servidor est\u00E1 ubicado y funciona en Alemania. Para los adaptadores comunitarios, consulte el archivo L\u00E9ame de Github del adaptador afectado para obtener detalles sobre qu\u00E9 servidor Sentry se utiliza.\\n\\nSi desea deshabilitar el informe de errores, puede usar el comando\\n'iobroker plugin disable sentry'\\nEste comando tambi\u00E9n se asegurar\u00E1 de que ning\u00FAn adaptador que se ejecute en este host env\u00EDe datos de informes de fallas al centinela.\",\n pl: 'ioBroker chce zapewni\u0107 najbardziej stabilny system inteligentnego domu.\\nAby to umo\u017Cliwi\u0107, zdecydowali\u015Bmy si\u0119 wdro\u017Cy\u0107 automatyczne raportowanie b\u0142\u0119d\u00F3w i awarii w sterowniku js, a tak\u017Ce w adapterach.\\n\\nNINIEJSZE SPRAWOZDAWCZO\u015A\u0106 B\u0118DZIE W\u0141\u0104CZONA Z NAST\u0118PNYM STARTEM TWOJEGO IOBROKERA!\\n\\nW przypadku ka\u017Cdego b\u0142\u0119du, kt\u00F3ry prowadzi do awarii sterownika js lub jednego z odpowiednich adapter\u00F3w, szczeg\u00F3\u0142y b\u0142\u0119du s\u0105 wysy\u0142ane do serwera. W przypadku kontrolera js i podstawowych adapter\u00F3w serwer ten znajduje si\u0119 i dzia\u0142a w Niemczech. W przypadku adapter\u00F3w spo\u0142eczno\u015Bciowych sprawd\u017A plik Github Readme odpowiedniego adaptera, aby uzyska\u0107 szczeg\u00F3\u0142owe informacje na temat u\u017Cywanego serwera Sentry.\\n\\nJe\u015Bli chcesz wy\u0142\u0105czy\u0107 raportowanie b\u0142\u0119d\u00F3w, mo\u017Cesz u\u017Cy\u0107 polecenia\\n\u201Eiobroker plugin disable sentry\u201D\\nTo polecenie upewni si\u0119 r\u00F3wnie\u017C, \u017Ce \u017Caden adapter dzia\u0142aj\u0105cy na tym ho\u015Bcie nie wy\u015Ble danych raportowania awarii do wartownika.',\n uk: 'ioBroker \u0445\u043E\u0447\u0435 \u0437\u0430\u0431\u0435\u0437\u043F\u0435\u0447\u0438\u0442\u0438 \u043D\u0430\u0439\u0441\u0442\u0430\u0431\u0456\u043B\u044C\u043D\u0456\u0448\u0443 \u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u0440\u043E\u0437\u0443\u043C\u043D\u043E\u0433\u043E \u0431\u0443\u0434\u0438\u043D\u043A\u0443.\\n\u0414\u043B\u044F \u0446\u044C\u043E\u0433\u043E \u043C\u0438 \u0432\u0438\u0440\u0456\u0448\u0438\u043B\u0438 \u0432\u043F\u0440\u043E\u0432\u0430\u0434\u0438\u0442\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0435 \u043F\u043E\u0432\u0456\u0434\u043E\u043C\u043B\u0435\u043D\u043D\u044F \u043F\u0440\u043E \u043F\u043E\u043C\u0438\u043B\u043A\u0438 \u0442\u0430 \u0430\u0432\u0430\u0440\u0456\u0457 \u0432 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u0435\u0440\u0456 js \u0442\u0430 \u0442\u0430\u043A\u043E\u0436 \u0432 \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u0438.\\n\\n\u0426\u0415 \u0417\u0412\u0406\u0422\u0423\u0412\u0410\u041D\u041D\u042F \u0411\u0423\u0414\u0415 \u0410\u041A\u0422\u0418\u0412\u041E\u0412\u0410\u041D\u041E \u0417 \u041D\u0410\u0421\u0422\u0423\u041F\u041D\u0418\u041C \u0421\u0422\u0410\u0420\u0422\u041E\u041C \u0412\u0410\u0428\u041E\u0413\u041E IOBROKER!\\n\\n\u0414\u043B\u044F \u0431\u0443\u0434\u044C-\u044F\u043A\u043E\u0457 \u043F\u043E\u043C\u0438\u043B\u043A\u0438, \u044F\u043A\u0430 \u043F\u0440\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u044C \u0434\u043E \u0430\u0432\u0430\u0440\u0456\u0457 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u0435\u0440\u0430 js \u0430\u0431\u043E \u043E\u0434\u043D\u043E\u0433\u043E \u0437 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u043D\u0438\u0445 \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u0456\u0432, \u0434\u0435\u0442\u0430\u043B\u0456 \u043F\u043E\u043C\u0438\u043B\u043A\u0438 \u043D\u0430\u0434\u0441\u0438\u043B\u0430\u044E\u0442\u044C\u0441\u044F \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440. \u0414\u043B\u044F \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u0435\u0440\u0430 js \u0442\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u0438\u0445 \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u0456\u0432 \u0446\u0435\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u043E\u0437\u0442\u0430\u0448\u043E\u0432\u0430\u043D\u0438\u0439 \u0442\u0430 \u043F\u0440\u0430\u0446\u044E\u0454 \u0432 \u041D\u0456\u043C\u0435\u0447\u0447\u0438\u043D\u0456. \u0414\u043B\u044F \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u0456\u0432 \u0441\u043F\u0456\u043B\u044C\u043D\u043E\u0442\u0438 \u043F\u0435\u0440\u0435\u0432\u0456\u0440\u0442\u0435 \u0444\u0430\u0439\u043B Github Readme \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u043D\u043E\u0433\u043E \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u0430 \u0434\u043B\u044F \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043D\u044F \u0434\u0435\u0442\u0430\u043B\u0435\u0439 \u043F\u0440\u043E \u0442\u0435, \u044F\u043A\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 Sentry \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0454\u0442\u044C\u0441\u044F.\\n\\n\u042F\u043A\u0449\u043E \u0432\u0438 \u0445\u043E\u0447\u0435\u0442\u0435 \u0432\u0438\u043C\u043A\u043D\u0443\u0442\u0438 \u0437\u0432\u0456\u0442 \u043F\u0440\u043E \u043F\u043E\u043C\u0438\u043B\u043A\u0438, \u0432\u0438 \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u0443\\n\u201Ciobroker plugin disable sentry\u201D\\n\u0426\u044F \u043A\u043E\u043C\u0430\u043D\u0434\u0430 \u0442\u0430\u043A\u043E\u0436 \u043F\u0435\u0440\u0435\u043A\u043E\u043D\u0430\u0454\u0442\u044C\u0441\u044F, \u0449\u043E \u0436\u043E\u0434\u0435\u043D \u0430\u0434\u0430\u043F\u0442\u0435\u0440, \u044F\u043A\u0438\u0439 \u043F\u0440\u0430\u0446\u044E\u0454 \u043D\u0430 \u0446\u044C\u043E\u043C\u0443 \u0445\u043E\u0441\u0442\u0456, \u043D\u0435 \u043D\u0430\u0434\u0441\u0438\u043B\u0430\u0442\u0438\u043C\u0435 \u0434\u0430\u043D\u0456 \u0437\u0432\u0456\u0442\u0443 \u043F\u0440\u043E \u0430\u0432\u0430\u0440\u0456\u044E \u0434\u043E \u0432\u0430\u0440\u0442\u043E\u0432\u043E\u0433\u043E.',\n 'zh-cn':\n 'ioBroker\u5E0C\u671B\u786E\u4FDD\u63D0\u4F9B\u6700\u7A33\u5B9A\u7684\u667A\u80FD\u5BB6\u5C45\u7CFB\u7EDF\u3002\\n\u4E3A\u6B64\uFF0C\u6211\u4EEC\u51B3\u5B9A\u5728js-controller\u548C\u9002\u914D\u5668\u4E2D\u5B9E\u73B0\u81EA\u52A8\u9519\u8BEF\u548C\u5D29\u6E83\u62A5\u544A\u89E3\u51B3\u65B9\u6848\u3002\\n\\n\u60A8\u7684\u70B8\u5F39\u4EBA\u7684\u4E0B\u4E00\u4E2A\u5F00\u59CB\u5C06\u542F\u7528\u6B64\u62A5\u544A\uFF01\\n\\n\u5BF9\u4E8E\u5BFC\u81F4js-controller\u6216\u76F8\u5173\u9002\u914D\u5668\u4E4B\u4E00\u5D29\u6E83\u7684\u4EFB\u4F55\u9519\u8BEF\uFF0C\u9519\u8BEF\u8BE6\u7EC6\u4FE1\u606F\u5C06\u53D1\u9001\u5230\u670D\u52A1\u5668\u3002\u5BF9\u4E8Ejs-controller\u548C\u6838\u5FC3\u9002\u914D\u5668\uFF0C\u6B64\u670D\u52A1\u5668\u4F4D\u4E8E\u5FB7\u56FD\u5E76\u5728\u5176\u4E2D\u8FD0\u884C\u3002\u5BF9\u4E8E\u793E\u533A\u9002\u914D\u5668\uFF0C\u8BF7\u68C0\u67E5\u53D7\u5F71\u54CD\u7684\u9002\u914D\u5668\u7684Github\u81EA\u8FF0\u6587\u4EF6\uFF0C\u4EE5\u4E86\u89E3\u4F7F\u7528\u54EA\u4E2ASentry\u670D\u52A1\u5668\u7684\u8BE6\u7EC6\u4FE1\u606F\u3002\\n\\n\u5982\u679C\u8981\u7981\u7528\u9519\u8BEF\u62A5\u544A\uFF0C\u53EF\u4EE5\u4F7F\u7528\u4EE5\u4E0B\u547D\u4EE4\\n\u201C iobroker plugin disable sentry\u201D\\n\u6B64\u547D\u4EE4\u8FD8\u5C06\u786E\u4FDD\u5728\u6B64\u4E3B\u673A\u4E0A\u8FD0\u884C\u7684\u4EFB\u4F55\u9002\u914D\u5668\u90FD\u4E0D\u4F1A\u5C06\u5D29\u6E83\u62A5\u544A\u6570\u636E\u53D1\u9001\u5230\u54E8\u5175\u3002',\n },\n },\n} as const;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;;;;;;AACM,SAAU,kBAAkB,MAAY;AAC1C,SAAO,SAAS;AACpB;AAEO,MAAM,eAAe;EACxB,QAAQ;IACJ,UAAU;MACN,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,SAAS;;IAEb,MAAM;MACF,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,SACI;;;;",
4
+ "sourcesContent": ["// Special Handling to inform users about reporting plugins correctly\n/**\n * Check whether the given plugin reports data to an external service (e.g. Sentry)\n *\n * @param name The plugin name to check\n */\nexport function isReportingPlugin(name: string): boolean {\n return name === 'sentry';\n}\n\nexport const PLUGIN_INFOS = {\n sentry: {\n headline: {\n en: 'ATTENTION: Error reporting via Sentry will be activated on next start of ioBroker',\n de: 'ACHTUNG: Die Fehlerberichterstattung \u00FCber Sentry wird beim n\u00E4chsten Start von ioBroker aktiviert',\n ru: '\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415: \u041E\u0442\u0447\u0435\u0442 \u043E\u0431 \u043E\u0448\u0438\u0431\u043A\u0430\u0445 \u0447\u0435\u0440\u0435\u0437 Sentry \u0431\u0443\u0434\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D \u043F\u0440\u0438 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C \u0437\u0430\u043F\u0443\u0441\u043A\u0435 ioBroker',\n pt: 'ATEN\u00C7\u00C3O: O relat\u00F3rio de erros via Sentry ser\u00E1 ativado no pr\u00F3ximo in\u00EDcio do ioBroker',\n nl: 'LET OP: Foutrapportage via Sentry wordt geactiveerd bij de volgende start van ioBroker',\n fr: \"ATTENTION: Le rapport d'erreurs via Sentry sera activ\u00E9 au prochain d\u00E9marrage d'ioBroker\",\n it: 'ATTENZIONE: la segnalazione degli errori tramite Sentry verr\u00E0 attivata al prossimo avvio di ioBroker',\n es: 'ATENCI\u00D3N: el informe de errores a trav\u00E9s de Sentry se activar\u00E1 en el pr\u00F3ximo inicio de ioBroker',\n pl: 'UWAGA: Raportowanie b\u0142\u0119d\u00F3w za po\u015Brednictwem Sentry zostanie aktywowane przy nast\u0119pnym uruchomieniu ioBroker',\n uk: '\u0423\u0412\u0410\u0413\u0410: \u0417\u0432\u0456\u0442 \u043F\u0440\u043E \u043F\u043E\u043C\u0438\u043B\u043A\u0438 \u0447\u0435\u0440\u0435\u0437 Sentry \u0431\u0443\u0434\u0435 \u0430\u043A\u0442\u0438\u0432\u043E\u0432\u0430\u043D\u043E \u043F\u0440\u0438 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u043C\u0443 \u0437\u0430\u043F\u0443\u0441\u043A\u0443 ioBroker',\n 'zh-cn': '\u6CE8\u610F\uFF1A\u901A\u8FC7Sentry\u7684\u9519\u8BEF\u62A5\u544A\u5C06\u5728ioBroker\u7684\u4E0B\u4E00\u6B21\u542F\u52A8\u65F6\u88AB\u6FC0\u6D3B',\n },\n text: {\n en: \"ioBroker wants to make sure to deliver the most stable smart home system.\\nTo allow this we decided to implement an automatic error and crash reporting solution into the js-controller and also into adapters. \\n\\nTHIS REPORTING WILL BE ENABLED WITH THE NEXT START OF YOUR IOBROKER!\\n\\nFor any error that leads to the crash of the js-controller or one of the relevant adapters the error details are send to a server. For the js-controller and core adapters this server is located and operated in germany. For community adapters please check the Github Readme of the affected adapter for details which Sentry server is used.\\n\\nIf you want to disable the error reporting you can use the command\\n'iobroker plugin disable sentry'\\nThis command will also make sure that no adapter that runs on this host will send crash reporting data to sentry.\",\n de: \"Wir von ioBroker wollen das stabilste Smart-Home-System bereitstellen.\\nUm dies zu erm\u00F6glichen, haben wir uns entschlossen, eine automatische Fehler- und Crash-Reporting-L\u00F6sung in den js-Controller und auch in Adapter zu implementieren.\\n\\nDIESE BERICHTERSTATTUNG WIRD MIT DEM N\u00C4CHSTEN START IHRES IOBROKERS AKTIVIERT!\\n\\nBei Fehlern, die zum Absturz des js-Controllers oder eines der relevanten Adapter f\u00FChren, werden die Fehlerdetails an einen Server gesendet. F\u00FCr den js-controller und die Haupt-Adapter befindet sich dieser Server in Deutschland. Informationen zu Community-Adaptern sind in der Github-Readme-Datei des betroffenen Adapters zu finden. Dort steht welcher Sentry-Server verwendet wird.\\n\\nDie Fehlerberichterstattung kann, falls gew\u00FCnscht, \u00FCber den Befehl\\n'iobroker plugin disable sentry'\\ndeaktiviert werden. Dieser Befehl stellt auch sicher, dass kein Adapter, der auf diesem Host ausgef\u00FChrt wird, Absturzberichtsdaten an den Sentry-Server sendet.\",\n ru: \"ioBroker \u0445\u043E\u0447\u0435\u0442 \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0438\u0442\u044C \u0441\u0430\u043C\u0443\u044E \u0441\u0442\u0430\u0431\u0438\u043B\u044C\u043D\u0443\u044E \u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u0443\u043C\u043D\u043E\u0433\u043E \u0434\u043E\u043C\u0430.\\n\u0427\u0442\u043E\u0431\u044B \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u044D\u0442\u043E, \u043C\u044B \u0440\u0435\u0448\u0438\u043B\u0438 \u0432\u043D\u0435\u0434\u0440\u0438\u0442\u044C \u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043E\u0431 \u043E\u0448\u0438\u0431\u043A\u0430\u0445 \u0438 \u0441\u0431\u043E\u044F\u0445 \u0432 js-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440, \u0430 \u0442\u0430\u043A\u0436\u0435 \u0432 \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u044B.\\n\\n\u042D\u0422\u0410 \u041E\u0422\u0427\u0415\u0422\u041D\u041E\u0421\u0422\u042C \u0411\u0423\u0414\u0415\u0422 \u0412\u041A\u041B\u042E\u0427\u0415\u041D\u0410 \u0421 \u0421\u041B\u0415\u0414\u0423\u042E\u0429\u0418\u041C \u0421\u0422\u0410\u0420\u0422\u041E\u041C \u0412\u0410\u0428\u0415\u0413\u041E IOBROKER!\\n\\n\u0414\u043B\u044F \u043B\u044E\u0431\u043E\u0439 \u043E\u0448\u0438\u0431\u043A\u0438, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u043F\u0440\u0438\u0432\u043E\u0434\u0438\u0442 \u043A \u0441\u0431\u043E\u044E js-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0430 \u0438\u043B\u0438 \u043E\u0434\u043D\u043E\u0433\u043E \u0438\u0437 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0445 \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u043E\u0432, \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u043E\u0448\u0438\u0431\u043A\u0438 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440. \u0414\u043B\u044F js-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0430 \u0438 \u0431\u0430\u0437\u043E\u0432\u044B\u0445 \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u043E\u0432 \u044D\u0442\u043E\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D \u0438 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0432 \u0413\u0435\u0440\u043C\u0430\u043D\u0438\u0438. \u0414\u043B\u044F \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u043E\u0432 \u0441\u043E\u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0430, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 Github Readme \u0443\u044F\u0437\u0432\u0438\u043C\u043E\u0433\u043E \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u0430 \u0434\u043B\u044F \u0434\u0435\u0442\u0430\u043B\u0435\u0439, \u043A\u0430\u043A\u043E\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 Sentry \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F.\\n\\n\u0415\u0441\u043B\u0438 \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043E\u0442\u0447\u0435\u0442\u044B \u043E\u0431 \u043E\u0448\u0438\u0431\u043A\u0430\u0445, \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443\\n'iobroker plugin disable sentry'\\n\u042D\u0442\u0430 \u043A\u043E\u043C\u0430\u043D\u0434\u0430 \u0442\u0430\u043A\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043B\u0435\u0434\u0438\u0442\u044C \u0437\u0430 \u0442\u0435\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0438 \u043E\u0434\u0438\u043D \u0430\u0434\u0430\u043F\u0442\u0435\u0440, \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0449\u0438\u0439 \u043D\u0430 \u044D\u0442\u043E\u043C \u0445\u043E\u0441\u0442\u0435, \u043D\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u043B \u0434\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0447\u0435\u0442\u043E\u0432 \u043E \u0441\u0431\u043E\u044F\u0445 \u0447\u0430\u0441\u043E\u0432\u043E\u043C\u0443.\",\n pt: \"A ioBroker quer garantir o sistema dom\u00E9stico inteligente mais est\u00E1vel.\\nPara permitir isso, decidimos implementar uma solu\u00E7\u00E3o autom\u00E1tica de relat\u00F3rios de erros e falhas no controlador js e tamb\u00E9m nos adaptadores.\\n\\nESTE RELAT\u00D3RIO SER\u00C1 ATIVADO COM O PR\u00D3XIMO IN\u00CDCIO DO SEU IOBROKER!\\n\\nPara qualquer erro que leve ao travamento do controlador js ou de um dos adaptadores relevantes, os detalhes do erro ser\u00E3o enviados para um servidor. Para os controladores js e adaptadores principais, este servidor est\u00E1 localizado e operado na Alemanha. Para adaptadores da comunidade, consulte o Leia-me do Github do adaptador afetado para obter detalhes de qual servidor Sentry \u00E9 usado.\\n\\nSe voc\u00EA deseja desativar o relat\u00F3rio de erros, pode usar o comando\\n'iobroker plugin disable sentry'\\nEste comando tamb\u00E9m garantir\u00E1 que nenhum adaptador executado neste host envie dados de relat\u00F3rio de falha \u00E0 sentinela.\",\n nl: \"ioBroker wil ervoor zorgen dat het het meest stabiele slimme thuissysteem levert.\\nOm dit mogelijk te maken, hebben we besloten om een automatische fout- en crashrapportageoplossing in de js-controller en ook in adapters te implementeren.\\n\\nDEZE RAPPORTAGE WORDT INGESCHAKELD MET DE VOLGENDE START VAN UW IOBROKER!\\n\\nVoor elke fout die leidt tot het crashen van de js-controller of een van de relevante adapters, worden de foutdetails naar een server gestuurd. Voor de js-controller en core-adapters bevindt deze server zich in Duitsland. Raadpleeg voor communityadapters het Github Readme van de betreffende adapter voor details welke Sentry-server wordt gebruikt.\\n\\nAls u de foutrapportage wilt uitschakelen, kunt u de opdracht gebruiken\\n'iobroker plugin disable sentry'\\nDeze opdracht zorgt er ook voor dat geen enkele adapter die op deze host wordt uitgevoerd, crashrapportagegegevens naar de wachtpost verzendt.\",\n fr: \"ioBroker veut s'assurer de fournir le syst\u00E8me de maison intelligente le plus stable.\\nPour permettre cela, nous avons d\u00E9cid\u00E9 d'impl\u00E9menter une solution automatique de rapport d'erreurs et de plantages dans le contr\u00F4leur js et \u00E9galement dans les adaptateurs.\\n\\nCE RAPPORT SERA ACTIV\u00C9 AU PROCHAIN D\u00C9MARRAGE DE VOTRE IOBROKER!\\n\\nPour toute erreur entra\u00EEnant la panne du contr\u00F4leur js ou de l'un des adaptateurs concern\u00E9s, les d\u00E9tails de l'erreur sont envoy\u00E9s \u00E0 un serveur. Pour le contr\u00F4leur js et les adaptateurs principaux, ce serveur est situ\u00E9 et exploit\u00E9 en Allemagne. Pour les adaptateurs de communaut\u00E9, consultez le fichier Lisezmoi Github de l'adaptateur concern\u00E9 pour plus de d\u00E9tails sur le serveur Sentry utilis\u00E9.\\n\\nSi vous souhaitez d\u00E9sactiver le rapport d'erreurs, vous pouvez utiliser la commande\\n'iobroker plugin disable sentry'\\nCette commande s'assurera \u00E9galement qu'aucun adaptateur qui s'ex\u00E9cute sur cet h\u00F4te n'enverra de donn\u00E9es de rapport d'incident \u00E0 la sentinelle.\",\n it: \"ioBroker vuole assicurarsi di fornire il sistema di casa intelligente pi\u00F9 stabile.\\nPer consentire ci\u00F2, abbiamo deciso di implementare una soluzione di segnalazione automatica di errori e arresti anomali nel controller js e anche negli adattatori.\\n\\nQUESTA RENDICONTAZIONE SAR\u00C0 ABILITATA CON IL PROSSIMO INIZIO DEL TUO IOBROKER!\\n\\nPer qualsiasi errore che porta al crash del controller js o di uno dei relativi adattatori, i dettagli dell'errore vengono inviati a un server. Per il controller js e gli adattatori core questo server si trova e funziona in Germania. Per gli adattatori della comunit\u00E0, consultare il file Leggimi di Github dell'adattatore interessato per i dettagli su quale server Sentry viene utilizzato.\\n\\nSe si desidera disabilitare la segnalazione degli errori, \u00E8 possibile utilizzare il comando\\n'iobroker plugin disable sentry'\\nQuesto comando assicurer\u00E0 inoltre che nessun adattatore in esecuzione su questo host invier\u00E0 dati di segnalazione di crash a sentinella.\",\n es: \"ioBroker quiere asegurarse de ofrecer el sistema de hogar inteligente m\u00E1s estable.\\nPara permitir esto, decidimos implementar una soluci\u00F3n autom\u00E1tica de informe de errores y fallas en el controlador js y tambi\u00E9n en los adaptadores.\\n\\n\u00A1ESTE INFORME SER\u00C1 HABILITADO CON EL PR\u00D3XIMO INICIO DE SU IOBROKER!\\n\\nPara cualquier error que provoque el bloqueo del controlador js o de uno de los adaptadores relevantes, los detalles del error se env\u00EDan a un servidor. Para el controlador js y los adaptadores principales, este servidor est\u00E1 ubicado y funciona en Alemania. Para los adaptadores comunitarios, consulte el archivo L\u00E9ame de Github del adaptador afectado para obtener detalles sobre qu\u00E9 servidor Sentry se utiliza.\\n\\nSi desea deshabilitar el informe de errores, puede usar el comando\\n'iobroker plugin disable sentry'\\nEste comando tambi\u00E9n se asegurar\u00E1 de que ning\u00FAn adaptador que se ejecute en este host env\u00EDe datos de informes de fallas al centinela.\",\n pl: 'ioBroker chce zapewni\u0107 najbardziej stabilny system inteligentnego domu.\\nAby to umo\u017Cliwi\u0107, zdecydowali\u015Bmy si\u0119 wdro\u017Cy\u0107 automatyczne raportowanie b\u0142\u0119d\u00F3w i awarii w sterowniku js, a tak\u017Ce w adapterach.\\n\\nNINIEJSZE SPRAWOZDAWCZO\u015A\u0106 B\u0118DZIE W\u0141\u0104CZONA Z NAST\u0118PNYM STARTEM TWOJEGO IOBROKERA!\\n\\nW przypadku ka\u017Cdego b\u0142\u0119du, kt\u00F3ry prowadzi do awarii sterownika js lub jednego z odpowiednich adapter\u00F3w, szczeg\u00F3\u0142y b\u0142\u0119du s\u0105 wysy\u0142ane do serwera. W przypadku kontrolera js i podstawowych adapter\u00F3w serwer ten znajduje si\u0119 i dzia\u0142a w Niemczech. W przypadku adapter\u00F3w spo\u0142eczno\u015Bciowych sprawd\u017A plik Github Readme odpowiedniego adaptera, aby uzyska\u0107 szczeg\u00F3\u0142owe informacje na temat u\u017Cywanego serwera Sentry.\\n\\nJe\u015Bli chcesz wy\u0142\u0105czy\u0107 raportowanie b\u0142\u0119d\u00F3w, mo\u017Cesz u\u017Cy\u0107 polecenia\\n\u201Eiobroker plugin disable sentry\u201D\\nTo polecenie upewni si\u0119 r\u00F3wnie\u017C, \u017Ce \u017Caden adapter dzia\u0142aj\u0105cy na tym ho\u015Bcie nie wy\u015Ble danych raportowania awarii do wartownika.',\n uk: 'ioBroker \u0445\u043E\u0447\u0435 \u0437\u0430\u0431\u0435\u0437\u043F\u0435\u0447\u0438\u0442\u0438 \u043D\u0430\u0439\u0441\u0442\u0430\u0431\u0456\u043B\u044C\u043D\u0456\u0448\u0443 \u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u0440\u043E\u0437\u0443\u043C\u043D\u043E\u0433\u043E \u0431\u0443\u0434\u0438\u043D\u043A\u0443.\\n\u0414\u043B\u044F \u0446\u044C\u043E\u0433\u043E \u043C\u0438 \u0432\u0438\u0440\u0456\u0448\u0438\u043B\u0438 \u0432\u043F\u0440\u043E\u0432\u0430\u0434\u0438\u0442\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0435 \u043F\u043E\u0432\u0456\u0434\u043E\u043C\u043B\u0435\u043D\u043D\u044F \u043F\u0440\u043E \u043F\u043E\u043C\u0438\u043B\u043A\u0438 \u0442\u0430 \u0430\u0432\u0430\u0440\u0456\u0457 \u0432 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u0435\u0440\u0456 js \u0442\u0430 \u0442\u0430\u043A\u043E\u0436 \u0432 \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u0438.\\n\\n\u0426\u0415 \u0417\u0412\u0406\u0422\u0423\u0412\u0410\u041D\u041D\u042F \u0411\u0423\u0414\u0415 \u0410\u041A\u0422\u0418\u0412\u041E\u0412\u0410\u041D\u041E \u0417 \u041D\u0410\u0421\u0422\u0423\u041F\u041D\u0418\u041C \u0421\u0422\u0410\u0420\u0422\u041E\u041C \u0412\u0410\u0428\u041E\u0413\u041E IOBROKER!\\n\\n\u0414\u043B\u044F \u0431\u0443\u0434\u044C-\u044F\u043A\u043E\u0457 \u043F\u043E\u043C\u0438\u043B\u043A\u0438, \u044F\u043A\u0430 \u043F\u0440\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u044C \u0434\u043E \u0430\u0432\u0430\u0440\u0456\u0457 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u0435\u0440\u0430 js \u0430\u0431\u043E \u043E\u0434\u043D\u043E\u0433\u043E \u0437 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u043D\u0438\u0445 \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u0456\u0432, \u0434\u0435\u0442\u0430\u043B\u0456 \u043F\u043E\u043C\u0438\u043B\u043A\u0438 \u043D\u0430\u0434\u0441\u0438\u043B\u0430\u044E\u0442\u044C\u0441\u044F \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440. \u0414\u043B\u044F \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u0435\u0440\u0430 js \u0442\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u0438\u0445 \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u0456\u0432 \u0446\u0435\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u043E\u0437\u0442\u0430\u0448\u043E\u0432\u0430\u043D\u0438\u0439 \u0442\u0430 \u043F\u0440\u0430\u0446\u044E\u0454 \u0432 \u041D\u0456\u043C\u0435\u0447\u0447\u0438\u043D\u0456. \u0414\u043B\u044F \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u0456\u0432 \u0441\u043F\u0456\u043B\u044C\u043D\u043E\u0442\u0438 \u043F\u0435\u0440\u0435\u0432\u0456\u0440\u0442\u0435 \u0444\u0430\u0439\u043B Github Readme \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u043D\u043E\u0433\u043E \u0430\u0434\u0430\u043F\u0442\u0435\u0440\u0430 \u0434\u043B\u044F \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043D\u044F \u0434\u0435\u0442\u0430\u043B\u0435\u0439 \u043F\u0440\u043E \u0442\u0435, \u044F\u043A\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 Sentry \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0454\u0442\u044C\u0441\u044F.\\n\\n\u042F\u043A\u0449\u043E \u0432\u0438 \u0445\u043E\u0447\u0435\u0442\u0435 \u0432\u0438\u043C\u043A\u043D\u0443\u0442\u0438 \u0437\u0432\u0456\u0442 \u043F\u0440\u043E \u043F\u043E\u043C\u0438\u043B\u043A\u0438, \u0432\u0438 \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u0443\\n\u201Ciobroker plugin disable sentry\u201D\\n\u0426\u044F \u043A\u043E\u043C\u0430\u043D\u0434\u0430 \u0442\u0430\u043A\u043E\u0436 \u043F\u0435\u0440\u0435\u043A\u043E\u043D\u0430\u0454\u0442\u044C\u0441\u044F, \u0449\u043E \u0436\u043E\u0434\u0435\u043D \u0430\u0434\u0430\u043F\u0442\u0435\u0440, \u044F\u043A\u0438\u0439 \u043F\u0440\u0430\u0446\u044E\u0454 \u043D\u0430 \u0446\u044C\u043E\u043C\u0443 \u0445\u043E\u0441\u0442\u0456, \u043D\u0435 \u043D\u0430\u0434\u0441\u0438\u043B\u0430\u0442\u0438\u043C\u0435 \u0434\u0430\u043D\u0456 \u0437\u0432\u0456\u0442\u0443 \u043F\u0440\u043E \u0430\u0432\u0430\u0440\u0456\u044E \u0434\u043E \u0432\u0430\u0440\u0442\u043E\u0432\u043E\u0433\u043E.',\n 'zh-cn':\n 'ioBroker\u5E0C\u671B\u786E\u4FDD\u63D0\u4F9B\u6700\u7A33\u5B9A\u7684\u667A\u80FD\u5BB6\u5C45\u7CFB\u7EDF\u3002\\n\u4E3A\u6B64\uFF0C\u6211\u4EEC\u51B3\u5B9A\u5728js-controller\u548C\u9002\u914D\u5668\u4E2D\u5B9E\u73B0\u81EA\u52A8\u9519\u8BEF\u548C\u5D29\u6E83\u62A5\u544A\u89E3\u51B3\u65B9\u6848\u3002\\n\\n\u60A8\u7684\u70B8\u5F39\u4EBA\u7684\u4E0B\u4E00\u4E2A\u5F00\u59CB\u5C06\u542F\u7528\u6B64\u62A5\u544A\uFF01\\n\\n\u5BF9\u4E8E\u5BFC\u81F4js-controller\u6216\u76F8\u5173\u9002\u914D\u5668\u4E4B\u4E00\u5D29\u6E83\u7684\u4EFB\u4F55\u9519\u8BEF\uFF0C\u9519\u8BEF\u8BE6\u7EC6\u4FE1\u606F\u5C06\u53D1\u9001\u5230\u670D\u52A1\u5668\u3002\u5BF9\u4E8Ejs-controller\u548C\u6838\u5FC3\u9002\u914D\u5668\uFF0C\u6B64\u670D\u52A1\u5668\u4F4D\u4E8E\u5FB7\u56FD\u5E76\u5728\u5176\u4E2D\u8FD0\u884C\u3002\u5BF9\u4E8E\u793E\u533A\u9002\u914D\u5668\uFF0C\u8BF7\u68C0\u67E5\u53D7\u5F71\u54CD\u7684\u9002\u914D\u5668\u7684Github\u81EA\u8FF0\u6587\u4EF6\uFF0C\u4EE5\u4E86\u89E3\u4F7F\u7528\u54EA\u4E2ASentry\u670D\u52A1\u5668\u7684\u8BE6\u7EC6\u4FE1\u606F\u3002\\n\\n\u5982\u679C\u8981\u7981\u7528\u9519\u8BEF\u62A5\u544A\uFF0C\u53EF\u4EE5\u4F7F\u7528\u4EE5\u4E0B\u547D\u4EE4\\n\u201C iobroker plugin disable sentry\u201D\\n\u6B64\u547D\u4EE4\u8FD8\u5C06\u786E\u4FDD\u5728\u6B64\u4E3B\u673A\u4E0A\u8FD0\u884C\u7684\u4EFB\u4F55\u9002\u914D\u5668\u90FD\u4E0D\u4F1A\u5C06\u5D29\u6E83\u62A5\u544A\u6570\u636E\u53D1\u9001\u5230\u54E8\u5175\u3002',\n },\n },\n} as const;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAMM,SAAU,kBAAkB,MAAY;AAC1C,SAAO,SAAS;AACpB;AAFgB;AAIT,MAAM,eAAe;EACxB,QAAQ;IACJ,UAAU;MACN,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,SAAS;;IAEb,MAAM;MACF,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,SACI;;;;",
6
6
  "names": []
7
7
  }
@@ -2,14 +2,23 @@ import { EXIT_CODES } from '@iobroker/js-controller-common';
2
2
  import type { Client as StatesRedisClient } from '@iobroker/db-states-redis';
3
3
  import type { Client as ObjectsRedisClient } from '@iobroker/db-objects-redis';
4
4
  import type { CleanDatabaseHandler, ProcessExitCallback, RestartController } from '../_Types.js';
5
+ import type { ProcessCommandOptions } from '../../lib/cli/cliCommand.js';
6
+ /** Options for the backup/restore command */
5
7
  export interface CLIBackupRestoreOptions {
8
+ /** Whether this is part of a database migration */
6
9
  dbMigration?: boolean;
10
+ /** The states database client */
7
11
  states: StatesRedisClient;
12
+ /** The objects database client */
8
13
  objects: ObjectsRedisClient;
14
+ /** Callback to exit the process with an exit code */
9
15
  processExit: ProcessExitCallback;
16
+ /** Handler to clean the database */
10
17
  cleanDatabase: CleanDatabaseHandler;
18
+ /** Handler to restart the controller */
11
19
  restartController: RestartController;
12
20
  }
21
+ /** Result returned after restoring a backup */
13
22
  export interface RestoreBackupReturnValue {
14
23
  /** Exit code of the process */
15
24
  exitCode: EXIT_CODES;
@@ -18,6 +27,7 @@ export interface RestoreBackupReturnValue {
18
27
  /** The new objects db connection after restore */
19
28
  objects: ObjectsRedisClient;
20
29
  }
30
+ /** Options for restoring a backup */
21
31
  export interface RestoreBackupOptions {
22
32
  /** backup name, absolute path or index */
23
33
  name: string | number;
@@ -26,6 +36,9 @@ export interface RestoreBackupOptions {
26
36
  /** skip adapter deletion, e.g. for setup custom db migration */
27
37
  dontDeleteAdapters: boolean;
28
38
  }
39
+ /**
40
+ * CLI command to create and restore ioBroker backups
41
+ */
29
42
  export declare class BackupRestore {
30
43
  private readonly hostname;
31
44
  private readonly tmpDir;
@@ -49,14 +62,36 @@ export declare class BackupRestore {
49
62
  private readonly HOSTNAME_PLACEHOLDER_REGEX;
50
63
  /** Postfix for backup name */
51
64
  private readonly BACKUP_POSTFIX;
65
+ /**
66
+ * @param options The states/objects clients and the exit, clean and restart handlers
67
+ */
52
68
  constructor(options: CLIBackupRestoreOptions);
53
69
  private _copyFile;
70
+ /**
71
+ * Recursively copy a directory from the object's file storage to disk
72
+ *
73
+ * @param id The object id owning the files
74
+ * @param srcPath The source directory in the object's file storage
75
+ * @param destPath The destination directory on disk
76
+ */
54
77
  copyDir(id: string, srcPath: string, destPath: string): Promise<void>;
55
78
  /**
56
79
  * Get the directory where backups should be stored
57
80
  */
58
81
  static getBackupDir(): string;
82
+ /**
83
+ * Copy a single file synchronously
84
+ *
85
+ * @param source The source file path
86
+ * @param target The target file or directory path
87
+ */
59
88
  copyFileSync(source: string, target: string): void;
89
+ /**
90
+ * Recursively copy a folder synchronously
91
+ *
92
+ * @param source The source folder path
93
+ * @param target The target folder path
94
+ */
60
95
  copyFolderRecursiveSync(source: string, target: string): void;
61
96
  /**
62
97
  * Removes the temporary backup directory, never throws
@@ -177,4 +212,22 @@ export declare class BackupRestore {
177
212
  */
178
213
  private _restorePreservedAdapters;
179
214
  }
215
+ /**
216
+ * Processes the `restore` command
217
+ *
218
+ * @param options the command options
219
+ */
220
+ export declare function processCommandRestore(options: ProcessCommandOptions): void;
221
+ /**
222
+ * Processes the `backup` command
223
+ *
224
+ * @param options the command options
225
+ */
226
+ export declare function processCommandBackup(options: ProcessCommandOptions): void;
227
+ /**
228
+ * Processes the `validate` command
229
+ *
230
+ * @param options the command options
231
+ */
232
+ export declare function processCommandValidate(options: ProcessCommandOptions): void;
180
233
  //# sourceMappingURL=setupBackup.d.ts.map
@@ -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,21 +29,27 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
29
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
30
  var setupBackup_exports = {};
30
31
  __export(setupBackup_exports, {
31
- BackupRestore: () => BackupRestore
32
+ BackupRestore: () => BackupRestore,
33
+ processCommandBackup: () => processCommandBackup,
34
+ processCommandRestore: () => processCommandRestore,
35
+ processCommandValidate: () => processCommandValidate
32
36
  });
33
37
  module.exports = __toCommonJS(setupBackup_exports);
34
- var import_fs_extra = __toESM(require("fs-extra"), 1);
35
38
  var import_node_path = __toESM(require("node:path"), 1);
36
- var import_js_controller_common = require("@iobroker/js-controller-common");
37
- var import_promisify_child_process = require("promisify-child-process");
39
+ var import_promises = require("node:fs/promises");
40
+ var import_fs_extra = __toESM(require("fs-extra"), 1);
41
+ var import_node_child_process = require("node:child_process");
38
42
  var tar = __toESM(require("tar"), 1);
43
+ var import_js_controller_common = require("@iobroker/js-controller-common");
39
44
  var import_setupUpload = require("./setupUpload.js");
40
45
  var import_dbConnection = require("./dbConnection.js");
41
46
  var import_customError = require("./customError.js");
42
47
  var import_cliProcess = require("../../lib/cli/cliProcess.js");
43
- var import_promises = require("node:fs/promises");
44
48
  const controllerDir = import_js_controller_common.tools.getControllerDir();
45
49
  class BackupRestore {
50
+ static {
51
+ __name(this, "BackupRestore");
52
+ }
46
53
  hostname = import_js_controller_common.tools.getHostName();
47
54
  tmpDir = import_node_path.default.normalize(import_node_path.default.join(controllerDir, "tmp"));
48
55
  bkpDir = import_node_path.default.normalize(import_node_path.default.join(controllerDir, "backups"));
@@ -65,6 +72,9 @@ class BackupRestore {
65
72
  HOSTNAME_PLACEHOLDER_REGEX = /\$\$__hostname__\$\$/g;
66
73
  /** Postfix for backup name */
67
74
  BACKUP_POSTFIX = `_backup${import_js_controller_common.tools.appNameLowerCase}`;
75
+ /**
76
+ * @param options The states/objects clients and the exit, clean and restart handlers
77
+ */
68
78
  constructor(options) {
69
79
  options = options || {};
70
80
  if (!options.states) {
@@ -97,13 +107,20 @@ class BackupRestore {
97
107
  async _copyFile(id, srcPath, destPath) {
98
108
  try {
99
109
  const data = await this.objects.readFile(id, srcPath);
100
- if (data) {
110
+ if (data?.file) {
101
111
  import_fs_extra.default.writeFileSync(destPath, data.file);
102
112
  }
103
113
  } catch (err) {
104
114
  console.log(`Can not copy File ${id}${srcPath} to ${destPath}: ${err.message}`);
105
115
  }
106
116
  }
117
+ /**
118
+ * Recursively copy a directory from the object's file storage to disk
119
+ *
120
+ * @param id The object id owning the files
121
+ * @param srcPath The source directory in the object's file storage
122
+ * @param destPath The destination directory on disk
123
+ */
107
124
  async copyDir(id, srcPath, destPath) {
108
125
  import_fs_extra.default.ensureDirSync(destPath);
109
126
  try {
@@ -130,6 +147,12 @@ class BackupRestore {
130
147
  static getBackupDir() {
131
148
  return import_node_path.default.join(import_js_controller_common.tools.getRootDir(), "backups/");
132
149
  }
150
+ /**
151
+ * Copy a single file synchronously
152
+ *
153
+ * @param source The source file path
154
+ * @param target The target file or directory path
155
+ */
133
156
  copyFileSync(source, target) {
134
157
  let targetFile = target;
135
158
  try {
@@ -143,6 +166,12 @@ class BackupRestore {
143
166
  console.error(`Could not copy ${targetFile} to ${source}: ${e.message}`);
144
167
  }
145
168
  }
169
+ /**
170
+ * Recursively copy a folder synchronously
171
+ *
172
+ * @param source The source folder path
173
+ * @param target The target folder path
174
+ */
146
175
  copyFolderRecursiveSync(source, target) {
147
176
  let files = [];
148
177
  if (!import_fs_extra.default.existsSync(target)) {
@@ -446,7 +475,7 @@ class BackupRestore {
446
475
  return object;
447
476
  }
448
477
  if (!isCustomHostname) {
449
- if (object._id.match(/^system\.adapter\.([\w\d_-]+).(\d+)$/) && object.common.host === hostname) {
478
+ if (object._id.match(/^system\.adapter\.([\w_-]+).(\d+)$/) && object.common.host === hostname) {
450
479
  object.common.host = this.HOSTNAME_PLACEHOLDER;
451
480
  object.common.host = this.HOSTNAME_PLACEHOLDER;
452
481
  } else if (object._id.startsWith(thisHostNameStartsWith)) {
@@ -455,7 +484,7 @@ class BackupRestore {
455
484
  object._id = `system.host.${this.HOSTNAME_PLACEHOLDER}`;
456
485
  object.common.name = object._id;
457
486
  object.common.hostname = this.HOSTNAME_PLACEHOLDER;
458
- if (object.native && object.native.os) {
487
+ if (object.native?.os) {
459
488
  object.native.os.hostname = this.HOSTNAME_PLACEHOLDER;
460
489
  }
461
490
  object.common.name = object._id;
@@ -653,7 +682,15 @@ class BackupRestore {
653
682
  if (force) {
654
683
  console.log("Forced restore - executing setup ...");
655
684
  try {
656
- await (0, import_promisify_child_process.exec)(`"${process.execPath}" "${import_node_path.default.join(controllerDir, `${import_js_controller_common.tools.appName.toLowerCase()}.js`)}" setup`);
685
+ await new Promise((resolve, reject) => {
686
+ (0, import_node_child_process.exec)(`"${process.execPath}" "${import_node_path.default.join(controllerDir, `${import_js_controller_common.tools.appName.toLowerCase()}.js`)}" setup`, (error, stdout, stderr) => {
687
+ if (error) {
688
+ reject(stderr ? new Error(stderr) : error);
689
+ } else {
690
+ resolve();
691
+ }
692
+ });
693
+ });
657
694
  } catch (e) {
658
695
  console.error(`Could not execute "setup" command, please ensure "setup" is called before starting ioBroker: ${e.message}`);
659
696
  }
@@ -811,8 +848,8 @@ class BackupRestore {
811
848
  backups.sort((a, b) => b > a ? 1 : b === a ? 0 : -1);
812
849
  if (backups.length) {
813
850
  console.log("Please specify one of the backup names:");
814
- for (const t in backups) {
815
- console.log(`${backups[t]} or ${backups[t].replace(`${this.BACKUP_POSTFIX}.tar.gz`, "")} or ${t}`);
851
+ for (const [t, backup] of backups.entries()) {
852
+ console.log(`${backup} or ${backup.replace(`${this.BACKUP_POSTFIX}.tar.gz`, "")} or ${t}`);
816
853
  }
817
854
  } else {
818
855
  console.warn(`No backups found. Create a backup, using "${import_js_controller_common.tools.appName} backup" first`);
@@ -827,8 +864,8 @@ class BackupRestore {
827
864
  console.log("No matching backup found");
828
865
  if (backups.length) {
829
866
  console.log("Please specify one of the backup names:");
830
- for (const t in backups) {
831
- console.log(`${backups[t]} or ${backups[t].replace(`${this.BACKUP_POSTFIX}.tar.gz`, "")} or ${t}`);
867
+ for (const [t, backup] of backups.entries()) {
868
+ console.log(`${backup} or ${backup.replace(`${this.BACKUP_POSTFIX}.tar.gz`, "")} or ${t}`);
832
869
  }
833
870
  } else {
834
871
  console.log(`No existing backups. Create a backup, using "${import_js_controller_common.tools.appName} backup" first`);
@@ -1044,8 +1081,82 @@ class BackupRestore {
1044
1081
  }
1045
1082
  }
1046
1083
  }
1084
+ function processCommandRestore(options) {
1085
+ const { args, params, callback, cleanDatabase, restartController } = options;
1086
+ (0, import_dbConnection.dbConnect)(params, async ({ isOffline, objects, states }) => {
1087
+ if (!isOffline) {
1088
+ console.error(`Stop ${import_js_controller_common.tools.appName} first!`);
1089
+ return void callback(import_js_controller_common.EXIT_CODES.CONTROLLER_RUNNING);
1090
+ }
1091
+ const backup = new BackupRestore({
1092
+ states,
1093
+ objects,
1094
+ cleanDatabase,
1095
+ restartController,
1096
+ processExit: callback
1097
+ });
1098
+ const { exitCode } = await backup.restoreBackup({
1099
+ name: args[0],
1100
+ force: !!params.force,
1101
+ dontDeleteAdapters: false
1102
+ });
1103
+ if (exitCode === import_js_controller_common.EXIT_CODES.NO_ERROR) {
1104
+ console.log("System successfully restored!");
1105
+ }
1106
+ return void callback(exitCode);
1107
+ });
1108
+ }
1109
+ __name(processCommandRestore, "processCommandRestore");
1110
+ function processCommandBackup(options) {
1111
+ const { args, params, callback, cleanDatabase, restartController } = options;
1112
+ const name = args[0];
1113
+ (0, import_dbConnection.dbConnect)(params, async ({ states, objects }) => {
1114
+ const backup = new BackupRestore({
1115
+ states,
1116
+ objects,
1117
+ cleanDatabase,
1118
+ restartController,
1119
+ processExit: callback
1120
+ });
1121
+ try {
1122
+ const filePath = await backup.createBackup(name);
1123
+ console.log(`Backup created: ${filePath}`);
1124
+ console.log("This backup can only be restored with js-controller version 7.0 or higher");
1125
+ return void callback(import_js_controller_common.EXIT_CODES.NO_ERROR);
1126
+ } catch (e) {
1127
+ console.log(`Cannot create backup: ${e.message}`);
1128
+ return void callback(e instanceof import_customError.IoBrokerError ? e.code : import_js_controller_common.EXIT_CODES.CANNOT_EXTRACT_FROM_ZIP);
1129
+ }
1130
+ });
1131
+ }
1132
+ __name(processCommandBackup, "processCommandBackup");
1133
+ function processCommandValidate(options) {
1134
+ const { args, params, callback, cleanDatabase, restartController } = options;
1135
+ const name = args[0];
1136
+ (0, import_dbConnection.dbConnect)(params, async ({ objects, states }) => {
1137
+ const backup = new BackupRestore({
1138
+ states,
1139
+ objects,
1140
+ cleanDatabase,
1141
+ restartController,
1142
+ processExit: callback
1143
+ });
1144
+ try {
1145
+ await backup.validateBackup(name);
1146
+ console.log("Backup OK");
1147
+ return void (0, import_dbConnection.exitApplicationSave)(0);
1148
+ } catch (e) {
1149
+ console.log(`Backup check failed: ${e.message}`);
1150
+ return void (0, import_dbConnection.exitApplicationSave)(e instanceof import_customError.IoBrokerError ? e.code : 1);
1151
+ }
1152
+ });
1153
+ }
1154
+ __name(processCommandValidate, "processCommandValidate");
1047
1155
  // Annotate the CommonJS export names for ESM import in node:
1048
1156
  0 && (module.exports = {
1049
- BackupRestore
1157
+ BackupRestore,
1158
+ processCommandBackup,
1159
+ processCommandRestore,
1160
+ processCommandValidate
1050
1161
  });
1051
1162
  //# sourceMappingURL=setupBackup.js.map