iobroker.javascript 10.2.3 → 10.2.5

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 (135) hide show
  1. package/README.md +6 -8
  2. package/admin/assets/{AiChatPanel-DsQB1Hb5.js → AiChatPanel-oBeXbUFv.js} +8 -8
  3. package/admin/assets/{AiChatService-Bsp_rhVx.js → AiChatService-BOL3J2Jd.js} +1 -1
  4. package/admin/assets/AiDiffView-C-KKjnJD.js +1 -0
  5. package/admin/assets/{AiInlineProvider-BxOW88xU.js → AiInlineProvider-BIlcrTkS.js} +1 -1
  6. package/admin/assets/Debugger-DwHHsh9O.js +15 -0
  7. package/admin/assets/Documentation-Bc0RmoEF.js +4339 -0
  8. package/admin/assets/Error-DZ4vCykD.js +1 -0
  9. package/admin/assets/Import-Cu02ceLW.js +1 -0
  10. package/admin/assets/RulesEditor-D3kTbD_T.css +1 -0
  11. package/admin/assets/RulesEditor-QCbi1lV_.js +1 -0
  12. package/admin/assets/{ScriptEditor-BkuL2lZ1.js → ScriptEditor-CEHpEFp7.js} +2 -2
  13. package/admin/assets/ScriptEditorVanillaMonaco-ChQmnk0p.js +3 -0
  14. package/admin/assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-CM95r358.js +1 -0
  15. package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__180366418666083__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BEpNZh4U.js +1217 -0
  16. package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__180366418666083__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-FeM77flT.js +9 -0
  17. package/admin/assets/aiPromptBuilder-DKler0UK.js +1 -0
  18. package/admin/assets/{blocks_action-EYzXGRHi.js → blocks_action-DywZVfRY.js} +1 -1
  19. package/admin/assets/{blocks_convert-BewF036e.js → blocks_convert-BP2RjhQH.js} +1 -1
  20. package/admin/assets/{blocks_logic-BEcVdiZ4.js → blocks_logic-CdTl5YZw.js} +1 -1
  21. package/admin/assets/{blocks_number-Cp7J-juL.js → blocks_number-DXFd9Rva.js} +1 -1
  22. package/admin/assets/{blocks_object-CCe0acSu.js → blocks_object-by1uBDHi.js} +1 -1
  23. package/admin/assets/{blocks_procedures-BzFeWYcX.js → blocks_procedures-BcJ7N70D.js} +1 -1
  24. package/admin/assets/{blocks_sendto-EBwcaHpm.js → blocks_sendto-qIKzOAcV.js} +1 -1
  25. package/admin/assets/{blocks_switch-CjohzLLS.js → blocks_switch-dLF6hSJl.js} +1 -1
  26. package/admin/assets/{blocks_system-D9V3f3Vv.js → blocks_system-DmX-SBy8.js} +1 -1
  27. package/admin/assets/{blocks_text-CnEbzx6V.js → blocks_text-BI4zNU3o.js} +1 -1
  28. package/admin/assets/{blocks_time-B5OcgKMo.js → blocks_time-BgYA4Y_4.js} +1 -1
  29. package/admin/assets/{blocks_timeout-ONu3mIX3.js → blocks_timeout-DUzgMyAu.js} +1 -1
  30. package/admin/assets/{blocks_trigger-3DujkROX.js → blocks_trigger-CnmXLCUE.js} +1 -1
  31. package/admin/assets/{cronHoverProvider-BZMOFHO_.js → cronHoverProvider-CcIFAhVy.js} +1 -1
  32. package/admin/assets/{field_cron-CxKi__cX.js → field_cron-Ba46q8Qc.js} +1 -1
  33. package/admin/assets/{field_oid-CJIYiGxY.js → field_oid-lWCjOzuq.js} +1 -1
  34. package/admin/assets/{field_script-CehplM7L.js → field_script-BCWZHhnW.js} +1 -1
  35. package/admin/assets/{helpers-BiP5KGR8.js → helpers-CnEjYAup.js} +1 -1
  36. package/admin/assets/{hostInit-Bs-bStPF.js → hostInit-CVybS7BB.js} +1 -1
  37. package/admin/assets/iconLibraryData-B5fiyl1C.js +1 -0
  38. package/admin/assets/index-B3s0zmWC.js +871 -0
  39. package/admin/assets/{inlineChatWidget-NIvdRGmU.js → inlineChatWidget-N8xIkvxX.js} +2 -2
  40. package/admin/assets/{inlineDiffController-Qh402KhK.js → inlineDiffController-BuqYsKKq.js} +2 -2
  41. package/admin/assets/{mf-entry-bootstrap-0-4b82aeb4.js → mf-entry-bootstrap-0-a5a39621.js} +3 -3
  42. package/admin/assets/{pendingShares-B3t6ewri.js → pendingShares-DOAkyFMS.js} +1 -1
  43. package/admin/assets/stateHoverProvider-BYAbe1Ay.js +11 -0
  44. package/admin/custom/assets/Components-FkGDIlId.js +1 -0
  45. package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1-Cs88NUCd.js +1 -0
  46. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-P-8ffWXw.js +1 -0
  47. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-ZVuRAEo5.js +1 -0
  48. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DVb0ZZ1Q.js +1217 -0
  49. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-Dna3WF04.js +1 -0
  50. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_mui_mf_1_x_mf_2_date_mf_2_pickers__loadShare__.js-DcjdCGAx.js +1 -0
  51. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare__date_mf_2_fns__loadShare__.js-CnhNjamd.js +1 -0
  52. package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare__leaflet__loadShare__.js-im3edKNs.js → _virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare__leaflet__loadShare__.js-Dz7BFJqH.js} +1 -1
  53. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-B0olko2J.js +1 -0
  54. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-CzN4reh_.js +122 -0
  55. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild__leaflet__prebuild__-xPcBaiTQ.js +1 -0
  56. package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-Byvr2uOb.js → _virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-CXpyx8Vy.js} +1 -1
  57. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild__react_mf_2_dom_mf_1_client__prebuild__-DuFBE5fh.js +9 -0
  58. package/admin/custom/assets/{hostInit-IJMNq3h7.js → hostInit-6oh4UY2k.js} +1 -1
  59. package/admin/custom/assets/iconLibraryData-B5fiyl1C.js +1 -0
  60. package/admin/custom/assets/index-BrlyEy6J.js +1 -0
  61. package/admin/custom/assets/lib-BmDlTzq2.js +3 -0
  62. package/admin/custom/assets/{mf-entry-bootstrap-0-f149bc46.js → mf-entry-bootstrap-0-ad1cd7d0.js} +3 -3
  63. package/admin/custom/assets/pendingShares-kV2kwejX.js +1 -0
  64. package/admin/custom/assets/rolldown-runtime-Dqfqb5bO.js +1 -0
  65. package/admin/custom/customComponents.js +3 -2
  66. package/admin/custom/i18n/en.json +39 -39
  67. package/admin/custom/i18n/es.json +1 -1
  68. package/admin/custom/i18n/fr.json +2 -2
  69. package/admin/custom/i18n/it.json +1 -1
  70. package/admin/custom/i18n/nl.json +2 -2
  71. package/admin/custom/i18n/pt.json +2 -2
  72. package/admin/custom/i18n/ru.json +2 -2
  73. package/admin/custom/i18n/uk.json +1 -1
  74. package/admin/custom/i18n/zh-cn.json +1 -1
  75. package/admin/i18n/de.json +1 -1
  76. package/admin/i18n/en.json +115 -115
  77. package/admin/i18n/fr.json +115 -115
  78. package/admin/i18n/it.json +115 -115
  79. package/admin/i18n/nl.json +115 -115
  80. package/admin/i18n/pl.json +1 -1
  81. package/admin/i18n/pt.json +115 -115
  82. package/admin/i18n/ru.json +115 -115
  83. package/admin/i18n/uk.json +115 -115
  84. package/admin/i18n/zh-cn.json +115 -115
  85. package/admin/mf-manifest.json +1 -1
  86. package/admin/mf-stats.json +1 -1
  87. package/admin/remoteEntry.js +2 -2
  88. package/admin/tab.html +4 -4
  89. package/build/lib/inspect.js +547 -632
  90. package/build/lib/inspect.js.map +1 -1
  91. package/build/lib/javascript.d.ts +16 -16
  92. package/build/main.js +8 -13
  93. package/build/main.js.map +1 -1
  94. package/docs/de/README.md +1 -1
  95. package/docs/de/javascript.md +2167 -0
  96. package/docs/en/javascript.md +28 -30
  97. package/io-package.json +27 -27
  98. package/package.json +8 -8
  99. package/admin/assets/AiDiffView-Cri2QFh1.js +0 -1
  100. package/admin/assets/Debugger-CcDNCkmw.js +0 -15
  101. package/admin/assets/Error-Ch2nx5uC.js +0 -1
  102. package/admin/assets/Import-XKVP-nRT.js +0 -1
  103. package/admin/assets/RulesEditor-B6YQNZfq.js +0 -1
  104. package/admin/assets/RulesEditor-BwQ6Bo1V.css +0 -1
  105. package/admin/assets/ScriptEditorVanillaMonaco-DYNr4-5w.js +0 -3
  106. package/admin/assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-BMAFQFoH.js +0 -1
  107. package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__113183188387379__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-D-gi6Mty.js +0 -1217
  108. package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__113183188387379__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-CDctpiPx.js +0 -9
  109. package/admin/assets/aiPromptBuilder-db3Z4xhV.js +0 -1
  110. package/admin/assets/index-CRX4LAhD.js +0 -871
  111. package/admin/assets/stateHoverProvider-BkW15VMN.js +0 -9
  112. package/admin/assets/virtualExposes-DgGB-18P.js +0 -1
  113. package/admin/assets/virtual_mf-REMOTE_ENTRY_ID___mfe_internal__iobroker_javascript__remoteEntry_js-CiidVc0O.js +0 -1
  114. package/admin/assets/virtual_mf-exposes___mfe_internal__iobroker_javascript__remoteEntry_js-ChiJXsfH.js +0 -1
  115. package/admin/custom/assets/Components-SGnA-3W_.js +0 -1
  116. package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1-Bx3X6TLB.js +0 -1
  117. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-Cc7MmJgr.js +0 -1
  118. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-CdvEvX5z.js +0 -1
  119. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-D5NaoeJi.js +0 -1217
  120. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-Cbgw_a3f.js +0 -1
  121. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_mui_mf_1_x_mf_2_date_mf_2_pickers__loadShare__.js-CMr75K5w.js +0 -1
  122. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare__date_mf_2_fns__loadShare__.js-DKIvPDPX.js +0 -1
  123. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-D50aYKgD.js +0 -1
  124. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-CEzQFX7o.js +0 -122
  125. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__prebuild__leaflet__prebuild__-BUDmnAcx.js +0 -1
  126. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__prebuild__react_mf_2_dom_mf_1_client__prebuild__-D_1oh1WH.js +0 -9
  127. package/admin/custom/assets/index-7r4VklMp.js +0 -1
  128. package/admin/custom/assets/lib-DDU2Oe48.js +0 -3
  129. package/admin/custom/assets/pendingShares-DarGQhyO.js +0 -1
  130. package/admin/custom/assets/rolldown-runtime-BcKkbAw3.js +0 -1
  131. package/admin/custom/assets/virtualExposes-C0IqMANQ.js +0 -1
  132. package/admin/custom/assets/virtual_mf-REMOTE_ENTRY_ID___mfe_internal__ConfigCustomJavascriptSet__customComponents_js-CqKvh5Xu.js +0 -1
  133. package/admin/custom/assets/virtual_mf-exposes___mfe_internal__ConfigCustomJavascriptSet__customComponents_js-DrBN_S5o.js +0 -2
  134. package/build/lib/debugger.js +0 -1135
  135. package/build/lib/debugger.js.map +0 -1
@@ -1,9 +1,8 @@
1
1
  ## Content
2
- - [Note](#note)
3
2
  - [Global functions](#global-functions)
4
3
  - [Best practice](#best-practice)
5
4
 
6
- - [Functions](#following-functions-can-be-used-in-scripts)
5
+ - [Functions](#the-following-functions-can-be-used-in-scripts)
7
6
  - [require - load some module](#require---load-some-module)
8
7
  - [console - Gives out the message into log](#console---gives-out-the-message-into-log)
9
8
  - [exec - execute some OS command, like "cp file1 file2"](#exec---execute-some-os-command-like-cp-file1-file2)
@@ -90,7 +89,6 @@
90
89
  - [registerNotification](#registerNotification)
91
90
 
92
91
  - [Scripts activity](#scripts-activity)
93
- - [Changelog](#changelog)
94
92
 
95
93
  ## Global functions
96
94
  You can define the global scripts in the `global` folder.
@@ -146,7 +144,7 @@ exec('ls /var/log', (error, stdout, stderr) => {
146
144
  Node.js uses /bin/sh to execute commands. If you want to use another shell, you can use the option object as described in the [Node.js documentation](https://nodejs.org/api/child_process.html#child_processexeccommand-options-callback) for child_process.exec.
147
145
  It is the best practice to always use fill path names to commands to make sure the right command is executed.
148
146
 
149
- **Notice:** you must enable *Enable command "setObject"* option to call it.
147
+ **Notice:** you must enable *Enable command "exec"* option to call it.
150
148
 
151
149
  ### on - Subscribe on changes or updates of some state
152
150
  ```js
@@ -243,29 +241,29 @@ You can use the following parameters to specify the trigger:
243
241
  | oldAck | bool | Acknowledged state of previous value is equal to given one |
244
242
  | oldQ | number | Quality code state of previous value is equal to given one. You can use '*' for matching to any code |
245
243
  | | | |
246
- | ts | string | New value time stamp must be equal to given one (state.ts == ts) |
247
- | tsGt | string | New value time stamp must be not equal to the given one (state.ts != ts) |
248
- | tsGe | string | New value time stamp must be greater than given value (state.ts > ts) |
249
- | tsLt | string | New value time stamp must be greater or equal to given one (state.ts >= ts) |
250
- | tsLe | string | New value time stamp must be smaller than given one (state.ts < ts) |
244
+ | ts | number | New value time stamp must be equal to given one (state.ts == ts) |
245
+ | tsGt | number | New value time stamp must be greater than given one (state.ts > ts) |
246
+ | tsGe | number | New value time stamp must be greater or equal to given one (state.ts >= ts) |
247
+ | tsLt | number | New value time stamp must be smaller than given one (state.ts < ts) |
248
+ | tsLe | number | New value time stamp must be smaller or equal to given one (state.ts <= ts) |
251
249
  | | | |
252
- | oldTs | string | Previous time stamp must be equal to given one (oldState.ts == ts) |
253
- | oldTsGt | string | Previous time stamp must be not equal to the given one (oldState.ts != ts) |
254
- | oldTsGe | string | Previous time stamp must be greater than given value (oldState.ts > ts) |
255
- | oldTsLt | string | Previous time stamp must be greater or equal to given one (oldState.ts >= ts) |
256
- | oldTsLe | string | Previous time stamp must be smaller than given one (oldState.ts < ts) |
250
+ | oldTs | number | Previous time stamp must be equal to given one (oldState.ts == ts) |
251
+ | oldTsGt | number | Previous time stamp must be greater than given one (oldState.ts > ts) |
252
+ | oldTsGe | number | Previous time stamp must be greater or equal to given one (oldState.ts >= ts) |
253
+ | oldTsLt | number | Previous time stamp must be smaller than given one (oldState.ts < ts) |
254
+ | oldTsLe | number | Previous time stamp must be smaller or equal to given one (oldState.ts <= ts) |
257
255
  | | | |
258
- | lc | string | Last change time stamp must be equal to given one (state.lc == lc) |
259
- | lcGt | string | Last change time stamp must be not equal to the given one (state.lc != lc) |
260
- | lcGe | string | Last change time stamp must be greater than given value (state.lc > lc) |
261
- | lcLt | string | Last change time stamp must be greater or equal to given one (state.lc >= lc) |
262
- | lcLe | string | Last change time stamp must be smaller than given one (state.lc < lc) |
256
+ | lc | number | Last change time stamp must be equal to given one (state.lc == lc) |
257
+ | lcGt | number | Last change time stamp must be greater than given one (state.lc > lc) |
258
+ | lcGe | number | Last change time stamp must be greater or equal to given one (state.lc >= lc) |
259
+ | lcLt | number | Last change time stamp must be smaller than given one (state.lc < lc) |
260
+ | lcLe | number | Last change time stamp must be smaller or equal to given one (state.lc <= lc) |
263
261
  | | | |
264
- | oldLc | string | Previous last change time stamp must be equal to given one (oldState.lc == lc) |
265
- | oldLcGt | string | Previous last change time stamp must be not equal to the given one (oldState.lc != lc) |
266
- | oldLcGe | string | Previous last change time stamp must be greater than given value (oldState.lc > lc) |
267
- | oldLcLt | string | Previous last change time stamp must be greater or equal to given one (oldState.lc >= lc) |
268
- | oldLcLe | string | Previous last change time stamp must be smaller than given one (oldState.lc < lc) |
262
+ | oldLc | number | Previous last change time stamp must be equal to given one (oldState.lc == lc) |
263
+ | oldLcGt | number | Previous last change time stamp must be greater than given one (oldState.lc > lc) |
264
+ | oldLcGe | number | Previous last change time stamp must be greater or equal to given one (oldState.lc >= lc) |
265
+ | oldLcLt | number | Previous last change time stamp must be smaller than given one (oldState.lc < lc) |
266
+ | oldLcLe | number | Previous last change time stamp must be smaller or equal to given one (oldState.lc <= lc) |
269
267
  | | | |
270
268
  | channelId | string | Channel ID must be equal to given one |
271
269
  | | RegExp | Channel ID matched to regular expression |
@@ -563,7 +561,7 @@ on({ astro: 'sunset', shift: 10 }, () => {
563
561
  });
564
562
  ```
565
563
 
566
- ## scheduleById
564
+ ### scheduleById
567
565
  ```js
568
566
  scheduleById(id, callback);
569
567
  scheduleById(id, ack, callback);
@@ -655,7 +653,7 @@ If the first attribute is string, the function will try to parse the string as J
655
653
  ```js
656
654
  getAstroDate(pattern, date, offsetMinutes);
657
655
  ```
658
- Returns a javascript Date object for the specified astro-name (e.g. `"sunrise"` or `"sunriseEnd"`). For valid values, see the list of allowed values in the [Astro](#astro--function) section in the *schedule* function.
656
+ Returns a javascript Date object for the specified astro-name (e.g. `"sunrise"` or `"sunriseEnd"`). For valid values, see the list of allowed values in the [Astro](#astro-function) section in the *schedule* function.
659
657
 
660
658
  The returned Date object is calculated for the passed *date*. If no date is provided, the current day is used.
661
659
 
@@ -701,7 +699,7 @@ Time can be Date object or Date with time or just time.
701
699
 
702
700
  You can use astro-names for the time definition. All 3 parameters can be set as astro time.
703
701
  Following values are possible: `sunrise`, `sunset`, `sunriseEnd`, `sunsetStart`, `dawn`, `dusk`, `nauticalDawn`, `nauticalDusk`, `nightEnd`, `night`, `goldenHourEnd`, `goldenHour`.
704
- See [Astro](#astro--function) for detail.
702
+ See [Astro](#astro-function) for detail.
705
703
 
706
704
  ```js
707
705
  log(compareTime('sunsetStart', 'sunsetEnd', 'between') ? 'Now is sunrise' : 'Now is no sunrise');
@@ -1205,7 +1203,7 @@ The following commands are supported:
1205
1203
  - `'updateMultihost'`
1206
1204
  - `'upgradeController'` - Upgrade js-controller to newest version
1207
1205
  - `'getInterfaces'` - Returns all available network interfaces of the system
1208
- - `'getInterfaces'` - Starts an adapter upload
1206
+ - `'upload'` - Starts an adapter upload
1209
1207
  - `'rebuildAdapter'`
1210
1208
  - `'readBaseSettings'`
1211
1209
  - `'writeBaseSettings'`
@@ -1226,7 +1224,7 @@ sendToHost('myComputer', 'cmdExec', { data: 'ls /' }, (res) => {
1226
1224
  });
1227
1225
  ```
1228
1226
 
1229
- **Notice:** you must enable *Enable command "setObject"* option to call it.
1227
+ **Notice:** you must enable *Enable command "sendToHost"* option to call it.
1230
1228
 
1231
1229
  ### sendToHostAsync
1232
1230
  ```js
@@ -2049,7 +2047,7 @@ readFile('0_userdata.0', 'test.jpg', (err, data, mimeType) => {
2049
2047
  });
2050
2048
  ```
2051
2049
 
2052
- ## registerNotification
2050
+ ### registerNotification
2053
2051
 
2054
2052
  *Requires version >= 8.8.0*
2055
2053
 
package/io-package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "javascript",
4
- "version": "10.2.3",
4
+ "version": "10.2.5",
5
5
  "blockedVersions": [
6
6
  "8.0.0",
7
7
  "8.0.1"
@@ -40,6 +40,32 @@
40
40
  "Matthias Kleine <info@haus-automatisierung.com>"
41
41
  ],
42
42
  "news": {
43
+ "10.2.5": {
44
+ "en": "Added the functions help dialog in editor",
45
+ "de": "Hilfedialog im Editor hinzugefügt",
46
+ "ru": "Добавлен диалог справки по функциям в редакторе",
47
+ "pt": "Adicionou a ajuda de funções no editor",
48
+ "nl": "De helpdialoog voor functies toegevoegd in de editor",
49
+ "fr": "Ajout de la boîte d'aide aux fonctions de l'éditeur",
50
+ "it": "Aggiunte le funzioni di aiuto in editor",
51
+ "es": "Añadió las funciones de ayuda en el editor",
52
+ "pl": "Dodano okno dialogowe pomocy funkcji w edytorze",
53
+ "uk": "Додано діалогове вікно допомоги функцій в редакторі",
54
+ "zh-cn": "在编辑器中添加了功能帮助对话框"
55
+ },
56
+ "10.2.4": {
57
+ "en": "Rules: selection of state fixed\nFixed debugger",
58
+ "de": "Regeln: Bundeslandwahl fest\nFester Debugger",
59
+ "ru": "Правила: выбор фиксированного государства\nИсправлен отладчик",
60
+ "pt": "Regras: seleção de estado fixo\nDepurador fixo",
61
+ "nl": "Regels: de keuze van de staat is vastgesteld\nDebugger opgelost",
62
+ "fr": "Règles : choix de l'État fixe\nDébogueur fixe",
63
+ "it": "Regole: scelta dello stato fissa\nDebugger fisso",
64
+ "es": "Reglas: selección de estado fija\nDepurador fijo",
65
+ "pl": "Zasady: wybór stanu stałego\nNaprawiono debugger",
66
+ "uk": "Правила: вибір штату фіксований\nВиправлений налагоджувач",
67
+ "zh-cn": "规则:选州固定\n修复了调试器"
68
+ },
43
69
  "10.2.3": {
44
70
  "en": "Rules: selection of state fixed",
45
71
  "de": "Regeln: Bundeslandwahl fest",
@@ -104,32 +130,6 @@
104
130
  "pl": "Reguły: tekst akcji może zaokrąglić wartość wyzwalającą o `%.1s` - dowolną liczbę cyfr po przecinku, także `%.2old` dla starej wartości - sformatowaną za pomocą separatora dziesiętnego systemu, więc `Kühlschrank zu warm (%.1s°C) `daje `29,4°C` gdzie `%s` dało `29.400000000000002°C`\nPoprawiono blok funkcji w bloku\nNiestandardowy punkt końcowy AI zgodny z OpenAI odpowiedział na „Nieprawidłowy klucz API” podczas uzupełniania linii i podczas ładowania listy modeli, chociaż przycisk testowy w ustawieniach powiedział „ok”: obaj poprosili adapter o dostawcę `openai`, a adapter wybiera klucz pod tą nazwą, więc użyli „klucza API OpenAI” zamiast „Custom API key”. Niestandardowy punkt końcowy jest teraz adresowany tak, jak jest, wszędzie (#2369)\nSkonfigurowany „Custom API Base URL” przekierował również każde żądanie przeznaczone dla samego OpenAI na ten adres - z dołączonym kluczem OpenAI i bez możliwości jego wyłączenia. Podstawowy adres URL należy teraz do samego niestandardowego punktu końcowego, więc oba mogą być używane obok siebie. Jeśli klucz niestandardowego punktu końcowego znajduje się w polu „Klucz API OpenAI”, przenieś go do pola „Custom API key”; adapter zapisuje ostrzeżenie w dzienniku, jeśli znajdzie taką konfigurację (#2369)",
105
131
  "uk": "Правила: текст дії може округлити значення тригера з `%.1s `- будь-якою кількістю цифр після десяткової коми, також `%.2old` для старого значення - відформатоване десятковим роздільником системи, тому `Kühlschrank zu warm (%.1s°C)` дає `29,4°C`, де `%s` дав `29.400000000000002°C`\nВиправлено функціональний блок в blockly\nСпеціальна кінцева точка AI, сумісна з OpenAI, відповіла «Недійсний ключ API» у вбудованому доповненні та під час завантаження списку моделей, хоча на кнопці тестування в налаштуваннях було написано «ok»: обидва запитали у адаптера постачальника `openai`, а адаптер вибирає ключ під цим ім'ям, тому вони використовували «ключ API OpenAI» замість «Custom API key». Користувацьку кінцеву точку тепер адресовано як те, що вона є, скрізь (#2369)\nНалаштована «Custom API Base URL» також перенаправляла кожен запит, призначений для самої OpenAI, на цю адресу - з прикріпленим ключем OpenAI і без можливості його вимкнути. Базова URL-адреса тепер належить лише користувацькій кінцевій точці, тому обидві можуть бути використані поруч. Якщо ключ вашої користувацької кінцевої точки знаходиться в полі «OpenAI API key», перемістіть його в поле «Custom API key»; адаптер записує попередження в журнал, якщо знайде таку настройку (#2369)",
106
132
  "zh-cn": "规则:动作文本可以用 `%.1s` 对触发值进行四舍五入——小数点后的任意位数,旧值也是 `%.2old` ——使用系统的十进制分隔符进行格式化,因此 `Kühlschrank zu warm (%.1s°C) `给出 `29,4°C`,其中 `%s` 给出 `29.4000000000002°C`\n方块更正了功能块\n一个兼容 OpenAI 的自定义 AI 端点在行内完成和加载模型列表时回答 “无效 API 密钥”,尽管设置中的测试按钮显示 “确定”:两者都要求适配器提供提供商 “openai”,而适配器按该名称选择密钥,因此他们使用 “OpenAI API 密钥” 而不是 “自定义 API 密钥”。现在,自定义终端节点随处可见 (#2369)\n配置的 “自定义API基础网址” 还将所有发送给OpenAI本身的请求重定向到该地址——附加了OpenAI密钥,无法将其关闭。基本 URL 现在仅属于自定义端点,因此两者可以并排使用。如果您的自定义终端节点的密钥位于 “OpenAI API 密钥” 字段中,请将其移至 “自定义 API 密钥” 字段;如果适配器发现此类设置,则会在日志中写入警告 (#2369)"
107
- },
108
- "10.1.3": {
109
- "en": "The plain text export named its files after the script ID instead of the script name, so every dot of a name came out as an underscore - `HK-Balkontuer_v0.1` was exported as `HK-Balkontuer_v0_1.js`, and importing it back renamed the script to that. The files are now named after the script (#2364)\nImporting a plain text export treated a dot inside a file name as a folder level, so `PW-TV-Control_v0.6.js` created a folder `PW-TV-Control_v0` containing a script named `6`. Only the directories of the ZIP are folders now (#2364)\nThe folder icons in the script tree were drawn at less than half the size of the script icons next to them: they spaced themselves with a padding, and since `CssBaseline` sets `box-sizing: border-box` that padding was subtracted from their 20px instead of being added to them. They use a margin now, like the script icons always did (#2360)\nThe log below the editor could not be resized while a script was open: the editor area guessed its height from the height the tabs and the toolbar were expected to have, hung over the bottom edge of its pane and covered the 8px splitter with the horizontal scrollbar of the editor, which swallowed the mouse click. The three parts now share the height as a flex column (#2351)\nThe script list cut off long names, although there was still free space next to them: the space for the buttons at the end of a row was a fixed 185px, which is more than the three buttons occupy, and it did not account for the icon column\nFixed the Blockly comment block: the text was written in white on the yellow block and could not be read, the editor opened somewhere else on the page instead of over the block, and on a smartphone or tablet it did not open at all and left the whole workspace unusable until the page was reloaded (#2348)\nFixed the script mirror for folder names containing regular expression characters: a folder called e.g. `Lampen (Flur` aborted the synchronization with a `SyntaxError`, a folder called e.g. `[ab]` silently synchronized the scripts of another folder (#2239)\nThe Blockly block \"http (POST)\" got a \"content type\" selector, so an API that insists on `Content-Type: application/json` no longer needs an `exec` block. \"automatic\" is the default and behaves exactly as before, \"own\" allows any other type (#1983)\n`getSchedules()` returned the schedules of the time wizard of **all** scripts, even without the argument `true`. Now only the schedules of the own script are returned (#2164)\n`clearSchedule()` did not accept the objects that `getSchedules()` returns for schedules of the time wizard, so such a schedule stayed in the script and in the schedule counter (#2164)\n`clearSchedule()` can now clear the CRON jobs of other scripts too, as documented for `getSchedules(true)` (#2164)\n`getSchedules()` no longer lists the already canceled schedules of the own script in an `onStop` callback (#2164)",
110
- "de": "Beim Export im Klartext wurden die Dateien nach der Skript-ID anstatt nach dem Skriptnamen benannt. Dadurch wurde jeder Punkt im Namen als Unterstrich dargestellt – beispielsweise wurde `HK-Balkontuer_v0.1` als `HK-Balkontuer_v0_1.js` exportiert, und beim erneuten Import wurde das Skript entsprechend umbenannt. Die Dateien sind nun nach dem Skript benannt (#2364).\nBeim Importieren eines Klartextexports wurde ein Punkt im Dateinamen als Ordnerebene interpretiert, sodass `PW-TV-Control_v0.6.js` einen Ordner `PW-TV-Control_v0` mit einem Skript namens `6` erstellte. Nur die Verzeichnisse der ZIP-Datei sind jetzt Ordner (#2364).\nDie Ordnersymbole im Skriptbaum wurden mit weniger als der halben Größe der daneben liegenden Skriptsymbole dargestellt: Sie hatten einen Innenabstand (Padding), und da `CssBaseline` `box-sizing: border-box` festlegt, wurde dieser Innenabstand von ihren 20 Pixeln abgezogen, anstatt addiert zu werden. Sie verwenden nun einen Außenabstand (Margin), wie es bei den Skriptsymbolen immer der Fall war (#2360).\nDer Bereich unterhalb des Editors konnte nicht in der Größe angepasst werden, solange ein Skript geöffnet war: Der Editorbereich berechnete seine Höhe anhand der erwarteten Höhe der Tabs und der Symbolleiste, ragte über den unteren Rand des Fensters hinaus und verdeckte den 8-Pixel-Trennstreifen mit der horizontalen Scrollleiste des Editors, wodurch der Mausklick blockiert wurde. Die drei Bereiche teilen sich nun die Höhe als Flexbox-Spalte (#2351).\nDie Skriptliste schnitt lange Namen ab, obwohl daneben noch Platz war: Der Platz für die Schaltflächen am Ende einer Zeile betrug feste 185 Pixel, was mehr ist, als die drei Schaltflächen einnehmen, und die Spalte für die Symbole nicht berücksichtigte.\nDer Blockly-Kommentarblock wurde korrigiert: Der Text wurde in Weiß auf dem gelben Block geschrieben und war unlesbar, der Editor öffnete sich an einer anderen Stelle auf der Seite anstatt über dem Block, und auf einem Smartphone oder Tablet öffnete er sich überhaupt nicht und der gesamte Arbeitsbereich war unbrauchbar, bis die Seite neu geladen wurde (#2348).\nDas Problem mit der Skriptspiegelung für Ordnernamen, die reguläre Ausdrücke enthalten, wurde behoben: Ein Ordner namens z. B. `Lampen (Flur` brach die Synchronisierung mit einem `SyntaxError` ab, ein Ordner namens z. B. `[ab]` synchronisierte stillschweigend die Skripte eines anderen Ordners (#2239).\nDer Blockly-Block „http (POST)“ hat einen „Content-Type“-Selektor erhalten, sodass eine API, die auf `Content-Type: application/json` besteht, keinen `exec`-Block mehr benötigt. „automatic“ ist die Standardeinstellung und verhält sich wie zuvor, „own“ erlaubt jeden anderen Typ (#1983).\n`getSchedules()` gab die Zeitpläne des Zeitassistenten **aller** Skripte zurück, selbst ohne das Argument `true`. Jetzt werden nur noch die Zeitpläne des eigenen Skripts zurückgegeben (#2164).\n`clearSchedule()` akzeptierte die Objekte nicht, die `getSchedules()` für Zeitpläne des Zeitassistenten zurückgibt, sodass ein solcher Zeitplan im Skript und im Zeitplanzähler verblieb (#2164).\n`clearSchedule()` kann nun auch die CRON-Jobs anderer Skripte löschen, wie für `getSchedules(true)` dokumentiert (#2164).\n`getSchedules()` listet die bereits abgebrochenen Zeitpläne des eigenen Skripts nicht mehr in einem `onStop`-Callback auf (#2164).",
111
- "ru": "При экспорте в текстовом формате файлы назывались по идентификатору скрипта, а не по его имени, поэтому каждая точка в имени отображалась как нижнее подчеркивание — `HK-Balkontuer_v0.1` экспортировался как `HK-Balkontuer_v0_1.js`, а при обратном импорте скрипт переименовывался в это имя. Теперь файлы называются по имени скрипта (#2364)\nПри импорте файла в виде простого текста точка внутри имени файла рассматривалась как уровень папки, поэтому файл `PW-TV-Control_v0.6.js` создал папку `PW-TV-Control_v0`, содержащую скрипт с именем `6`. Теперь только каталоги ZIP-архива являются папками (#2364)\nЗначки папок в дереве скриптов отображались в размере менее половины размера значков скриптов рядом с ними: они отступали, и поскольку `CssBaseline` устанавливает `box-sizing: border-box`, этот отступ вычитался из их 20 пикселей, а не добавлялся к ним. Теперь они используют поля, как и всегда использовали значки скриптов (#2360)\nРазмер области под редактором нельзя было изменить, пока открыт скрипт: область редактора определяла свою высоту исходя из ожидаемой высоты вкладок и панели инструментов, выступала за нижний край своей панели и закрывала 8-пиксельный разделитель горизонтальной полосой прокрутки редактора, которая «проглатывала» щелчок мыши. Теперь все три части имеют одинаковую высоту в виде гибкой колонки (#2351)\nВ списке скриптов длинные имена были обрезаны, хотя рядом с ними оставалось свободное место: пространство для кнопок в конце строки составляло фиксированные 185 пикселей, что больше, чем занимают три кнопки, и это не учитывало столбец с иконками.\nИсправлена ошибка в блоке комментариев Blockly: текст писался белым цветом на желтом фоне и не читался, редактор открывался в другом месте страницы, а не поверх блока, и на смартфоне или планшете он вообще не открывался, оставляя все рабочее пространство недоступным до перезагрузки страницы (#2348)\nИсправлена ошибка зеркалирования скриптов для папок с именами, содержащими символы регулярных выражений: папка с именем, например, `Lampen (Flur`), прерывала синхронизацию с ошибкой `SyntaxError`, а папка с именем, например, `[ab]` молча синхронизировала скрипты другой папки (#2239)\nБлок Blockly \"http (POST)\" получил селектор \"тип содержимого\", поэтому API, который настаивает на `Content-Type: application/json`, больше не нуждается в блоке `exec`. \"automatic\" является значением по умолчанию и ведет себя точно так же, как и раньше, \"own\" допускает любой другой тип (#1983)\nФункция `getSchedules()` возвращала расписания мастера времени **всех** скриптов, даже без аргумента `true`. Теперь возвращаются только расписания собственного скрипта (#2164)\nФункция `clearSchedule()` не принимала объекты, возвращаемые функцией `getSchedules()` для расписаний мастера времени, поэтому такое расписание оставалось в скрипте и в счетчике расписаний (#2164)\nТеперь функция `clearSchedule()` может очищать задания CRON и других скриптов, как это описано в документации для функции `getSchedules(true)` (#2164).\nФункция `getSchedules()` больше не отображает уже отмененные расписания собственного скрипта в функции обратного вызова `onStop` (#2164)",
112
- "pt": "A exportação em texto simples nomeava os arquivos de acordo com o ID do script em vez do nome do script, então cada ponto de um nome era interpretado como um sublinhado - `HK-Balkontuer_v0.1` foi exportado como `HK-Balkontuer_v0_1.js`, e ao importá-lo de volta, o script foi renomeado para esse nome. Os arquivos agora estão nomeados de acordo com o script (#2364)\nA importação de uma exportação de texto simples tratava um ponto dentro de um nome de arquivo como um nível de pasta, então `PW-TV-Control_v0.6.js` criou uma pasta `PW-TV-Control_v0` contendo um script chamado `6`. Somente os diretórios do ZIP são pastas agora (#2364)\nOs ícones de pasta na árvore de scripts eram desenhados com menos da metade do tamanho dos ícones de script ao lado: eles se espaçavam com um preenchimento, e como `CssBaseline` define `box-sizing: border-box`, esse preenchimento era subtraído de seus 20px em vez de ser adicionado. Agora eles usam uma margem, como os ícones de script sempre usaram (#2360)\nO log abaixo do editor não podia ser redimensionado enquanto um script estivesse aberto: a área do editor estimava sua altura com base na altura esperada das abas e da barra de ferramentas, ultrapassava a borda inferior do painel e cobria o divisor de 8px com a barra de rolagem horizontal do editor, que anulava o clique do mouse. As três partes agora compartilham a mesma altura como uma coluna flexível (#2351)\nA lista de scripts cortou nomes longos, embora ainda houvesse espaço livre ao lado deles: o espaço para os botões no final de uma linha era fixo em 185px, o que é mais do que os três botões ocupam, e não levava em conta a coluna de ícones.\nCorrigido o bloco de comentários do Blockly: o texto era escrito em branco no bloco amarelo e não podia ser lido, o editor abria em outro lugar da página em vez de sobre o bloco e em um smartphone ou tablet ele não abria de jeito nenhum e deixava todo o espaço de trabalho inutilizável até que a página fosse recarregada (#2348)\nCorrigido o espelhamento de scripts para nomes de pastas contendo caracteres de expressão regular: uma pasta chamada, por exemplo, `Lampen (Flur)` abortava a sincronização com um `SyntaxError`, uma pasta chamada, por exemplo, `[ab]` sincronizava silenciosamente os scripts de outra pasta (#2239)\nO bloco Blockly \"http (POST)\" recebeu um seletor de \"tipo de conteúdo\", então uma API que exige `Content-Type: application/json` não precisa mais de um bloco `exec`. \"automatic\" é o padrão e se comporta exatamente como antes, \"own\" permite qualquer outro tipo (#1983)\n`getSchedules()` retornava os agendamentos do assistente de tempo de **todos** os scripts, mesmo sem o argumento `true`. Agora, apenas os agendamentos do próprio script são retornados (#2164)\n`clearSchedule()` não aceitou os objetos que `getSchedules()` retorna para agendamentos do assistente de tempo, então tal agendamento permaneceu no script e no contador de agendamentos (#2164)\n`clearSchedule()` agora também pode limpar os trabalhos CRON de outros scripts, conforme documentado para `getSchedules(true)` (#2164)\n`getSchedules()` não lista mais os agendamentos já cancelados do próprio script em um retorno de chamada `onStop` (#2164)",
113
- "nl": "Bij de export in platte tekst werden de bestanden vernoemd naar de script-ID in plaats van de scriptnaam, waardoor elke punt in een naam als een underscore werd weergegeven - `HK-Balkontuer_v0.1` werd geëxporteerd als `HK-Balkontuer_v0_1.js`, en bij het terug importeren werd het script hernoemd naar die naam. De bestanden zijn nu vernoemd naar het script (#2364).\nBij het importeren van een platte tekstexport werd een punt in een bestandsnaam als mapniveau behandeld, dus `PW-TV-Control_v0.6.js` creëerde een map `PW-TV-Control_v0` met daarin een script met de naam `6`. Alleen de mappen in het ZIP-bestand zijn nu nog mappen (#2364)\nDe mappictogrammen in de scriptstructuur werden getekend op minder dan de helft van de grootte van de scriptpictogrammen ernaast: ze hadden een opvulling (padding) en omdat `CssBaseline` `box-sizing: border-box` instelt, werd die opvulling van hun 20px afgetrokken in plaats van erbij opgeteld. Ze gebruiken nu een marge, zoals de scriptpictogrammen altijd al deden (#2360).\nHet logbestand onder de editor kon niet worden aangepast qua grootte terwijl een script open was: het editorgebied schatte zijn hoogte op basis van de hoogte die de tabbladen en de werkbalk zouden moeten hebben, stak over de onderrand van het paneel heen en bedekte de 8px-splitter met de horizontale schuifbalk van de editor, die de muisklik blokkeerde. De drie onderdelen delen nu de hoogte als een flexibele kolom (#2351).\nDe scriptlijst kortte lange namen af, hoewel er nog vrije ruimte naast was: de ruimte voor de knoppen aan het einde van een rij was een vaste 185px, wat meer is dan de drie knoppen innemen, en er werd geen rekening gehouden met de pictogramkolom.\nHet probleem met het Blockly-commentaarblok is opgelost: de tekst werd in het wit op het gele blok geschreven en was onleesbaar, de editor opende ergens anders op de pagina in plaats van over het blok heen, en op een smartphone of tablet opende hij helemaal niet, waardoor de hele werkruimte onbruikbaar werd totdat de pagina opnieuw werd geladen (#2348)\nHet probleem met de scriptspiegeling voor mapnamen die reguliere expressietekens bevatten, is opgelost: een map met de naam bijvoorbeeld `Lampen (Flur)` brak de synchronisatie af met een `SyntaxError`, terwijl een map met de naam bijvoorbeeld `[ab]` de scripts van een andere map stilzwijgend synchroniseerde (#2239).\nHet Blockly-blok \"http (POST)\" heeft een \"content type\"-selector gekregen, waardoor een API die aandringt op `Content-Type: application/json` geen `exec`-blok meer nodig heeft. \"automatic\" is de standaardinstelling en gedraagt zich precies zoals voorheen, \"own\" staat elk ander type toe (#1983).\n`getSchedules()` gaf de schema's van de tijdwizard van **alle** scripts terug, zelfs zonder het argument `true`. Nu worden alleen de schema's van het eigen script teruggestuurd (#2164)\n`clearSchedule()` accepteerde de objecten die `getSchedules()` retourneert voor de schema's van de tijdwizard niet, dus bleef een dergelijk schema in het script en in de schemateller staan (#2164).\n`clearSchedule()` kan nu ook de CRON-taken van andere scripts wissen, zoals gedocumenteerd voor `getSchedules(true)` (#2164).\n`getSchedules()` geeft niet langer de reeds geannuleerde schema's van het eigen script weer in een `onStop`-callback (#2164)",
114
- "fr": "L'exportation en texte brut nommait les fichiers d'après l'identifiant du script au lieu de son nom. Par conséquent, chaque point d'un nom était remplacé par un tiret bas : `HK-Balkontuer_v0.1` était exporté en `HK-Balkontuer_v0_1.js`, et l'importation du script l'a renommé en conséquence. Les fichiers portent désormais le nom du script (#2364).\nL'importation d'un fichier texte brut interprétait un point dans un nom de fichier comme un niveau de dossier ; ainsi, `PW-TV-Control_v0.6.js` créait un dossier `PW-TV-Control_v0` contenant un script nommé `6`. Seuls les répertoires de l'archive ZIP sont désormais considérés comme des dossiers (#2364).\nLes icônes de dossiers dans l'arborescence des scripts étaient dessinées à une taille inférieure à la moitié de celle des icônes de scripts adjacentes : elles étaient espacées par un remplissage, et comme `CssBaseline` définit `box-sizing: border-box`, ce remplissage était soustrait de leurs 20 px au lieu d'y être ajouté. Elles utilisent désormais une marge, comme le faisaient auparavant les icônes de scripts (#2360).\nImpossible de redimensionner le journal situé sous l'éditeur lorsqu'un script était ouvert : la zone de l'éditeur, dont la hauteur était estimée à partir de celle des onglets et de la barre d'outils, dépassait le bord inférieur de son panneau et masquait le séparateur de 8 px avec la barre de défilement horizontale, qui empêchait le clic de la souris d'être pris en compte. Les trois éléments partagent désormais la même hauteur sous forme de colonne flexible (#2351).\nLa liste des scripts tronquait les noms longs, bien qu'il restât de l'espace libre à côté : l'espace réservé aux boutons en fin de ligne était de 185 px, ce qui est supérieur à la surface occupée par les trois boutons, et ne tenait pas compte de la colonne d'icônes.\nCorrection du bloc de commentaires Blockly : le texte était écrit en blanc sur le bloc jaune et était illisible, l’éditeur s’ouvrait ailleurs sur la page au lieu de se superposer au bloc, et sur un smartphone ou une tablette, il ne s’ouvrait pas du tout et rendait l’espace de travail inutilisable jusqu’au rechargement de la page (#2348)\nCorrection du problème de synchronisation des scripts pour les noms de dossiers contenant des caractères d'expression régulière : un dossier appelé par exemple `Lampen (Flur)` interrompait la synchronisation avec une `SyntaxError`, un dossier appelé par exemple `[ab]` synchronisait silencieusement les scripts d'un autre dossier (#2239)\nLe bloc Blockly « http (POST) » dispose désormais d'un sélecteur de type de contenu. Ainsi, une API exigeant `Content-Type: application/json` n'a plus besoin d'un bloc `exec`. La valeur par défaut est « automatic » et son comportement reste inchangé ; « own » autorise tout autre type (#1983).\nLa fonction `getSchedules()` renvoyait les planifications de l'assistant de planification de l'heure de **tous** les scripts, même sans l'argument `true`. Désormais, seules les planifications du script lui-même sont renvoyées (#2164).\n`clearSchedule()` n'acceptait pas les objets que `getSchedules()` renvoie pour les planifications de l'assistant de planification, donc une telle planification est restée dans le script et dans le compteur de planification (#2164)\n`clearSchedule()` peut désormais également effacer les tâches CRON d'autres scripts, comme indiqué dans la documentation de `getSchedules(true)` (#2164).\n`getSchedules()` ne liste plus les planifications déjà annulées du propre script dans un rappel `onStop` (#2164)",
115
- "it": "L'esportazione in testo semplice denominava i file in base all'ID dello script anziché al nome dello script stesso, quindi ogni punto del nome veniva visualizzato come un trattino basso: `HK-Balkontuer_v0.1` veniva esportato come `HK-Balkontuer_v0_1.js` e, importandolo nuovamente, lo script veniva rinominato in quel modo. Ora i file sono denominati in base allo script (#2364).\nL'importazione di un'esportazione in testo semplice trattava il punto all'interno del nome del file come livello di cartella, quindi `PW-TV-Control_v0.6.js` creava una cartella `PW-TV-Control_v0` contenente uno script chiamato `6`. Ora solo le directory dello ZIP sono cartelle (#2364)\nLe icone delle cartelle nell'albero degli script venivano disegnate con dimensioni inferiori alla metà rispetto alle icone degli script adiacenti: si distanziavano con un padding e, poiché `CssBaseline` imposta `box-sizing: border-box`, tale padding veniva sottratto dai loro 20px anziché essere aggiunto. Ora utilizzano un margine, come hanno sempre fatto le icone degli script (#2360).\nIl registro sotto l'editor non poteva essere ridimensionato mentre uno script era aperto: l'area dell'editor deduceva la sua altezza dall'altezza prevista per le schede e la barra degli strumenti, sporgeva dal bordo inferiore del suo riquadro e copriva il divisore da 8px con la barra di scorrimento orizzontale dell'editor, che inghiottiva il clic del mouse. Ora le tre parti condividono l'altezza come una colonna flex (#2351)\nL'elenco degli script troncava i nomi lunghi, sebbene ci fosse ancora spazio libero accanto a essi: lo spazio per i pulsanti alla fine di una riga era fisso a 185px, che è più di quanto occupato dai tre pulsanti, e non teneva conto della colonna delle icone.\nRisolto il problema del blocco commenti di Blockly: il testo veniva scritto in bianco sul blocco giallo e non era leggibile, l'editor si apriva in un altro punto della pagina invece che sopra il blocco e su smartphone o tablet non si apriva affatto, lasciando l'intera area di lavoro inutilizzabile fino al ricaricamento della pagina (#2348)\nCorretto il mirroring degli script per i nomi delle cartelle contenenti caratteri di espressione regolare: una cartella chiamata ad esempio `Lampen (Flur` interrompeva la sincronizzazione con un `SyntaxError`, una cartella chiamata ad esempio `[ab]` sincronizzava silenziosamente gli script di un'altra cartella (#2239)\nIl blocco Blockly \"http (POST)\" ha ora un selettore \"content type\", quindi un'API che richiede `Content-Type: application/json` non necessita più di un blocco `exec`. \"automatic\" è l'impostazione predefinita e si comporta esattamente come prima, \"own\" consente qualsiasi altro tipo (#1983).\n`getSchedules()` restituiva gli orari della procedura guidata oraria di **tutti** gli script, anche senza l'argomento `true`. Ora vengono restituiti solo gli orari del proprio script (#2164)\n`clearSchedule()` non accetta gli oggetti che `getSchedules()` restituisce per le pianificazioni della procedura guidata oraria, quindi tale pianificazione rimane nello script e nel contatore delle pianificazioni (#2164)\n`clearSchedule()` ora può cancellare anche i processi CRON di altri script, come documentato per `getSchedules(true)` (#2164)\n`getSchedules()` non elenca più le pianificazioni già annullate del proprio script in una callback `onStop` (#2164)",
116
- "es": "La exportación en texto plano nombró los archivos según el ID del script en lugar del nombre del script, por lo que cada punto del nombre se convirtió en un guion bajo: `HK-Balkontuer_v0.1` se exportó como `HK-Balkontuer_v0_1.js`, y al importarlo de nuevo, el script se renombró así. Ahora los archivos se nombran según el script (#2364).\nAl importar una exportación de texto plano, el punto dentro del nombre del archivo se interpretaba como un nivel de carpeta, por lo que `PW-TV-Control_v0.6.js` creaba una carpeta llamada `PW-TV-Control_v0` que contenía un script llamado `6`. Ahora solo los directorios del archivo ZIP son carpetas (#2364).\nLos iconos de carpeta en el árbol de scripts se dibujaban con un tamaño inferior a la mitad del de los iconos de script adyacentes: se espaciaban con un relleno, y dado que `CssBaseline` establece `box-sizing: border-box`, ese relleno se restaba de sus 20 px en lugar de sumarse. Ahora usan un margen, como siempre lo hicieron los iconos de script (#2360).\nEl registro debajo del editor no se podía redimensionar mientras había un script abierto: el área del editor calculaba su altura a partir de la altura esperada de las pestañas y la barra de herramientas, sobresalía del borde inferior de su panel y cubría el divisor de 8 px con la barra de desplazamiento horizontal del editor, que absorbía el clic del ratón. Ahora las tres partes comparten la altura como una columna flexible (#2351).\nLa lista de scripts truncaba los nombres largos, aunque aún quedaba espacio libre junto a ellos: el espacio para los botones al final de una fila era fijo, de 185 px, más de lo que ocupan los tres botones, y no tenía en cuenta la columna de iconos.\nSe corrigió el bloque de comentarios de Blockly: el texto se escribía en blanco sobre el bloque amarillo y no se podía leer, el editor se abría en otra parte de la página en lugar de sobre el bloque, y en un teléfono inteligente o tableta no se abría en absoluto y dejaba todo el espacio de trabajo inutilizable hasta que se recargaba la página (#2348).\nSe corrigió el espejo de scripts para nombres de carpetas que contienen caracteres de expresiones regulares: una carpeta llamada, por ejemplo, `Lampen (Flur` abortaba la sincronización con un `SyntaxError`, una carpeta llamada, por ejemplo, `[ab]` sincronizaba silenciosamente los scripts de otra carpeta (#2239)\nEl bloque de Blockly \"http (POST)\" ahora tiene un selector de \"tipo de contenido\", por lo que una API que insiste en `Content-Type: application/json` ya no necesita un bloque `exec`. \"automatic\" es el valor predeterminado y se comporta exactamente igual que antes, \"own\" permite cualquier otro tipo (#1983).\n`getSchedules()` devolvía los horarios del asistente de tiempo de **todos** los scripts, incluso sin el argumento `true`. Ahora solo se devuelven los horarios del propio script (#2164).\n`clearSchedule()` no aceptaba los objetos que `getSchedules()` devuelve para los horarios del asistente de tiempo, por lo que dicho horario permaneció en el script y en el contador de horarios (#2164).\n`clearSchedule()` ahora también puede borrar las tareas CRON de otros scripts, como se documenta para `getSchedules(true)` (#2164).\n`getSchedules()` ya no muestra las programaciones canceladas del propio script en una llamada de retorno `onStop` (#2164)",
117
- "pl": "Eksport zwykłego tekstu nazwał pliki identyfikatorem skryptu, a nie jego nazwą, więc każda kropka w nazwie była podkreślona – „HK-Balkontuer_v0.1” został wyeksportowany jako „HK-Balkontuer_v0_1.js”, a po ponownym zaimportowaniu zmienił nazwę skryptu na tę. Pliki noszą teraz nazwy pochodzące od skryptu (#2364).\nImportowanie eksportu zwykłego tekstu traktowało kropkę w nazwie pliku jako poziom folderu, więc `PW-TV-Control_v0.6.js` utworzyło folder `PW-TV-Control_v0` zawierający skrypt o nazwie `6`. Teraz tylko katalogi w pliku ZIP są folderami (#2364).\nIkony folderów w drzewie skryptów były narysowane w rozmiarze mniejszym niż połowa rozmiaru ikon skryptów obok nich: były oddzielone odstępem, a ponieważ `CssBaseline` ustawia `box-sizing: border-box`, odstęp ten został odjęty od ich 20 pikseli zamiast zostać do nich dodany. Teraz używają marginesu, tak jak zawsze ikony skryptów (#2360).\nRozmiar logu pod edytorem nie mógł zostać zmieniony, gdy skrypt był otwarty: obszar edytora odgadł swoją wysokość na podstawie wysokości, jaką miały mieć zakładki i pasek narzędzi, zawisł nad dolną krawędzią panelu i zakrył 8-pikselowy separator poziomym paskiem przewijania edytora, co uniemożliwiało kliknięcie myszką. Te trzy części mają teraz wspólną wysokość jako elastyczna kolumna (#2351).\nLista skryptów obcięła długie nazwy, chociaż obok nich wciąż było wolne miejsce: przestrzeń na przyciski na końcu wiersza wynosiła stałe 185 px, co jest więcej niż zajmują trzy przyciski, i nie uwzględniało kolumny z ikonami\nNaprawiono blok komentarza Blockly: tekst był napisany na biało na żółtym bloku i nie dało się go odczytać, edytor otwierał się w innym miejscu strony zamiast nad blokiem, a na smartfonie lub tablecie w ogóle się nie otwierał i cała przestrzeń robocza pozostawała bezużyteczna do momentu ponownego załadowania strony (#2348)\nNaprawiono lustrzane odbicie skryptów dla nazw folderów zawierających znaki wyrażeń regularnych: folder o nazwie np. `Lampen (Flur` przerywał synchronizację z błędem `SyntaxError`, folder o nazwie np. `[ab]` po cichu synchronizował skrypty innego folderu (#2239)\nBlok Blockly „http (POST)” otrzymał selektor „typu zawartości”, więc API, które wymaga „Content-Type: application/json”, nie potrzebuje już bloku „exec”. Domyślnym typem jest „automatic”, który zachowuje się dokładnie tak samo jak wcześniej, „own” dopuszcza każdy inny typ (#1983).\nFunkcja `getSchedules()` zwróciła harmonogramy kreatora czasu **wszystkich** skryptów, nawet bez argumentu `true`. Teraz zwracane są tylko harmonogramy własnego skryptu (#2164).\n`clearSchedule()` nie akceptował obiektów zwracanych przez `getSchedules()` dla harmonogramów kreatora czasu, więc taki harmonogram pozostał w skrypcie i liczniku harmonogramu (#2164)\n`clearSchedule()` może teraz czyścić zadania CRON także innych skryptów, zgodnie z dokumentacją dla `getSchedules(true)` (#2164)\n`getSchedules()` nie wyświetla już anulowanych harmonogramów własnego skryptu w wywołaniu zwrotnym `onStop` (#2164)",
118
- "uk": "Експорт у звичайний текст назвав свої файли за ідентифікатором скрипта, а не за назвою скрипта, тому кожна крапка в назві відображалася як символ підкреслення – `HK-Balkontuer_v0.1` було експортовано як `HK-Balkontuer_v0_1.js`, а його зворотний імпорт перейменував скрипт на це. Файли тепер названі за назвою скрипта (#2364)\nІмпорт експорту звичайного тексту обробляв крапку всередині назви файлу як рівень папки, тому `PW-TV-Control_v0.6.js` створив папку `PW-TV-Control_v0`, що містить скрипт під назвою `6`. Тепер лише каталоги ZIP-архіву є папками (#2364)\nРозмір іконок папок у дереві скриптів був меншим, ніж половина розміру іконок скриптів поруч: вони мали інтервал між собою з відступом, і оскільки `CssBaseline` встановлює `box-sizing: border-box`, цей відступ віднімався від їхніх 20px, а не додавався до них. Тепер вони використовують відступ, як і завжди використовували іконки скриптів (#2360)\nРозмір журналу під редактором не можна було змінити, коли скрипт був відкритий: область редактора визначала свою висоту на основі висоти вкладок та панелі інструментів, нависала над нижнім краєм своєї панелі та перекривала роздільник розміром 8 пікселів горизонтальною смугою прокручування редактора, яка поглинала клацання миші. Тепер три частини мають однакову висоту як гнучкий стовпець (#2351).\nСписок скриптів обрізав довгі назви, хоча поруч із ними все ще залишався вільний простір: простір для кнопок у кінці рядка становив фіксовані 185 пікселів, що більше, ніж займають три кнопки, і це не враховувало стовпець значків.\nВиправлено блок коментарів Blockly: текст писався білим кольором на жовтому блоці та не міг бути прочитаний, редактор відкривався деінде на сторінці, а не над блоком, а на смартфоні чи планшеті він взагалі не відкривався та залишав увесь робочий простір непридатним для використання до перезавантаження сторінки (#2348)\nВиправлено дзеркало скриптів для імен папок, що містять символи регулярних виразів: папка з назвою, наприклад, `Lampen (Flur`, переривала синхронізацію з помилкою `SyntaxError`, папка з назвою, наприклад, `[ab]`, непомітно синхронізувала скрипти іншої папки (#2239)\nБлок Blockly \"http (POST)\" отримав селектор \"content type\", тому API, який наполягає на `Content-Type: application/json`, більше не потребує блоку `exec`. \"automatic\" є значенням за замовчуванням і поводиться точно так само, як і раніше, \"own\" дозволяє будь-який інший тип (#1983)\n`getSchedules()` повертав розклади майстра часу **всіх** скриптів, навіть без аргументу `true`. Тепер повертаються лише розклади власного скрипта (#2164)\n`clearSchedule()` не приймав об'єкти, які повертає `getSchedules()` для розкладів майстра часу, тому такий розклад залишався у скрипті та в лічильнику розкладів (#2164)\n`clearSchedule()` тепер може очищати CRON-завдання інших скриптів, як задокументовано для `getSchedules(true)` (#2164)\n`getSchedules()` більше не відображає вже скасовані розклади власного скрипта у зворотному виклику `onStop` (#2164)",
119
- "zh-cn": "纯文本导出时,文件名使用的是脚本 ID 而不是脚本名称,因此脚本名称中的每个点号都被转换成了下划线——例如,`HK-Balkontuer_v0.1` 被导出为 `HK-Balkontuer_v0_1.js`,重新导入后,脚本名称也随之更改。现在,文件名已正确更改为脚本名称 (#2364)。\n导入纯文本导出文件时,文件名中的点号会被识别为文件夹级别,因此 `PW-TV-Control_v0.6.js` 会创建一个名为 `PW-TV-Control_v0` 的文件夹,其中包含一个名为 `6` 的脚本。现在只有 ZIP 文件中的目录才是文件夹(#2364)。\n脚本树中的文件夹图标绘制尺寸不到旁边脚本图标的一半:它们通过内边距来保持间距,而由于 `CssBaseline` 设置了 `box-sizing: border-box`,所以这个内边距从它们的 20px 宽度中减去了,而不是加到了宽度上。现在它们使用外边距,就像脚本图标一直以来那样 (#2360)。\n当脚本打开时,编辑器下方的日志区域无法调整大小:编辑器区域会根据标签页和工具栏的预期高度来估算自身高度,导致其超出面板底部边缘,并且编辑器的水平滚动条会覆盖 8 像素的分隔线,从而吞噬鼠标点击。现在,这三个部分共享高度,形成一个弹性列(#2351)。\n脚本列表会截断过长的名称,尽管名称旁边还有剩余空间:每行末尾按钮的空间固定为 185 像素,这比三个按钮实际占用的空间要大,而且也没有考虑到图标列。\n修复了 Blockly 评论块的问题:文本显示在黄色块上时为白色,无法阅读;编辑器打开的位置在页面的其他位置而不是评论块上方;在智能手机或平板电脑上,编辑器根本无法打开,导致整个工作区无法使用,直到页面重新加载为止 (#2348)\n修复了文件夹名称包含正则表达式字符时的脚本镜像问题:例如,名为 `Lampen (Flur)` 的文件夹会因 `SyntaxError` 而中止同步,例如,名为 `[ab]` 的文件夹会静默同步另一个文件夹的脚本 (#2239)\nBlockly 的“http (POST)”代码块新增了“content type”选择器,因此,如果 API 要求使用 `Content-Type: application/json`,则不再需要 `exec` 代码块。“automatic”是默认值,其行为与之前完全相同;“own”则允许使用任何其他类型(#1983)。\n`getSchedules()` 函数会返回**所有**脚本的时间向导日程表,即使没有指定参数 `true` 也是如此。现在,它只会返回自身脚本的日程表 (#2164)。\n`clearSchedule()` 不接受时间向导的 `getSchedules()` 返回的日程对象,因此这样的日程会保留在脚本和日程计数器中 (#2164)\n`clearSchedule()` 现在也可以清除其他脚本的 CRON 作业,如 `getSchedules(true)` 的文档中所述 (#2164)\n`getSchedules()` 函数不再在 `onStop` 回调函数中列出自身脚本已取消的日程安排 (#2164)"
120
- },
121
- "10.1.2": {
122
- "en": "Added new rule blocks\nFixed saving of Blockly scripts under Blockly 13: a script containing a named timeout, interval or schedule could not be saved anymore - the save button did not appear (#2349)\nFixed saving of Blockly scripts containing a function with a return value and no statements (#1958)\nThe Blockly regression tests now also cover saving: every block is serialized the way the editor does it and reloaded to the same code\nWhen a block fails while the script is regenerated after a change, the editor now shows the error instead of silently never offering the save button; a failing export shows its error too",
123
- "de": "Neue Regelblöcke hinzugefügt\nProblem beim Speichern von Blockly-Skripten unter Blockly 13 behoben: Ein Skript, das ein benanntes Timeout, Intervall oder einen Zeitplan enthielt, konnte nicht mehr gespeichert werden – die Schaltfläche „Speichern“ wurde nicht angezeigt (#2349).\nProblem beim Speichern von Blockly-Skripten behoben, die eine Funktion mit Rückgabewert, aber keine Anweisungen enthalten (#1958)\nDie Blockly-Regressionstests umfassen nun auch das Speichern: Jeder Block wird auf die gleiche Weise wie vom Editor serialisiert und in denselben Code wieder geladen.\nWenn ein Block beim Neugenerieren des Skripts nach einer Änderung fehlschlägt, zeigt der Editor nun den Fehler an, anstatt die Schaltfläche „Speichern“ stillschweigend nicht anzubieten; auch ein fehlgeschlagener Export zeigt seinen Fehler an.",
124
- "ru": "Добавлены новые блоки правил.\nИсправлена ошибка сохранения скриптов Blockly в Blockly 13: скрипт, содержащий именованный таймаут, интервал или расписание, больше нельзя было сохранить — кнопка сохранения не отображалась (#2349)\nИсправлена ошибка сохранения скриптов Blockly, содержащих функцию с возвращаемым значением и без операторов (#1958)\nВ тестах регрессии Blockly теперь также проверяется сохранение: каждый блок сериализуется так же, как это делает редактор, и загружается в тот же самый код.\nТеперь, если при перегенерации скрипта после внесения изменений блок кода завершается с ошибкой, редактор отображает сообщение об ошибке, вместо того чтобы молча предлагать кнопку сохранения; при неудачном экспорте также отображается сообщение об ошибке.",
125
- "pt": "Adicionados novos blocos de regras\nCorreção no salvamento de scripts Blockly no Blockly 13: um script contendo um tempo limite, intervalo ou agendamento nomeado não podia mais ser salvo - o botão de salvar não aparecia (#2349)\nCorreção no salvamento de scripts Blockly contendo uma função com um valor de retorno e nenhuma instrução (#1958)\nOs testes de regressão do Blockly agora também abrangem o salvamento: cada bloco é serializado da mesma forma que o editor faz e recarregado com o mesmo código.\nQuando um bloco falha durante a regeneração do script após uma alteração, o editor agora exibe o erro em vez de simplesmente não oferecer o botão de salvar; uma exportação com falha também exibe o erro.",
126
- "nl": "Nieuwe regelblokken toegevoegd\nOpgelost probleem met het opslaan van Blockly-scripts onder Blockly 13: een script met een benoemde time-out, interval of schema kon niet meer worden opgeslagen - de knop 'Opslaan' verscheen niet (#2349)\nHet opslaan van Blockly-scripts met een functie met een retourwaarde en zonder instructies is nu opgelost (#1958).\nDe regressietests van Blockly omvatten nu ook het opslaan: elk blok wordt geserialiseerd zoals de editor dat doet en opnieuw geladen met dezelfde code.\nAls een codeblok mislukt tijdens het opnieuw genereren van het script na een wijziging, toont de editor nu de foutmelding in plaats van de knop 'Opslaan' stilzwijgend te negeren; een mislukte export toont ook de bijbehorende foutmelding.",
127
- "fr": "Ajout de nouveaux blocs de règles\nCorrection de l'enregistrement des scripts Blockly sous Blockly 13 : un script contenant un délai d'expiration, un intervalle ou une planification nommés ne pouvait plus être enregistré - le bouton d'enregistrement n'apparaissait pas (#2349)\nCorrection de l'enregistrement des scripts Blockly contenant une fonction avec une valeur de retour et aucune instruction (#1958)\nLes tests de régression de Blockly couvrent désormais également la sauvegarde : chaque bloc est sérialisé de la même manière que l’éditeur et rechargé avec le même code.\nLorsqu'un bloc échoue pendant la régénération du script après une modification, l'éditeur affiche désormais l'erreur au lieu de ne jamais proposer le bouton Enregistrer ; une exportation ayant échoué affiche également son erreur.",
128
- "it": "Sono stati aggiunti nuovi blocchi di regole.\nRisolto il problema di salvataggio degli script di Blockly in Blockly 13: uno script contenente un timeout, un intervallo o una pianificazione con nome non poteva più essere salvato - il pulsante di salvataggio non veniva visualizzato (#2349)\nRisolto il problema di salvataggio degli script Blockly contenenti una funzione con un valore di ritorno e senza istruzioni (#1958)\nI test di regressione di Blockly ora coprono anche il salvataggio: ogni blocco viene serializzato nello stesso modo in cui lo fa l'editor e ricaricato nello stesso codice\nQuando un blocco fallisce durante la rigenerazione dello script dopo una modifica, l'editor ora mostra l'errore invece di non offrire mai silenziosamente il pulsante di salvataggio; anche un'esportazione non riuscita mostra il relativo errore.",
129
- "es": "Se agregaron nuevos bloques de reglas\nSe corrigió el guardado de scripts de Blockly en Blockly 13: un script que contenía un tiempo de espera, intervalo o programación con nombre ya no se podía guardar; el botón de guardar no aparecía (#2349).\nSe corrigió el guardado de scripts de Blockly que contienen una función con un valor de retorno y sin instrucciones (#1958).\nLas pruebas de regresión de Blockly ahora también cubren el guardado: cada bloque se serializa de la forma en que lo hace el editor y se vuelve a cargar en el mismo código.\nCuando un bloque falla mientras el script se regenera después de un cambio, el editor ahora muestra el error en lugar de no ofrecer nunca el botón de guardar; una exportación fallida también muestra su error.",
130
- "pl": "Dodano nowe bloki reguł\nNaprawiono zapisywanie skryptów Blockly w Blockly 13: skryptu zawierającego nazwany limit czasu, interwał lub harmonogram nie można było już zapisać — przycisk zapisu nie pojawiał się (#2349)\nNaprawiono zapisywanie skryptów Blockly zawierających funkcję z wartością zwracaną i bez instrukcji (#1958)\nTesty regresji Blockly obejmują teraz również zapisywanie: każdy blok jest serializowany w taki sam sposób, w jaki robi to edytor, a następnie ładowany ponownie do tego samego kodu\nGdy blok ulegnie awarii podczas ponownego generowania skryptu po zmianie, edytor teraz wyświetla błąd zamiast nie wyświetlać przycisku zapisu; nieudany eksport również wyświetla swój błąd",
131
- "uk": "Додано нові блоки правил\nВиправлено збереження скриптів Blockly у Blockly 13: скрипт, що містить іменований тайм-аут, інтервал або розклад, більше не міг бути збережений - кнопка збереження не відображалася (#2349)\nВиправлено збереження блокових скриптів, що містять функцію з поверненим значенням та без операторів (#1958).\nРегресійні тести Blockly тепер також охоплюють збереження: кожен блок серіалізується так само, як це робить редактор, і перезавантажується в той самий код.\nКоли блок завершується невдачею під час перегенерації скрипта після зміни, редактор тепер показує помилку, а не мовчки ніколи не пропонував кнопку збереження; невдалий експорт також показує свою помилку.",
132
- "zh-cn": "新增规则块\n修复了 Blockly 13 下 Blockly 脚本的保存问题:包含命名超时、间隔或计划的脚本无法再保存 - 保存按钮不显示 (#2349)\n修复了保存包含带返回值但没有语句的函数的 Blockly 脚本的问题 (#1958)\nBlockly 的回归测试现在也涵盖了保存操作:每个代码块都会按照编辑器的方式进行序列化,并重新加载到相同的代码中。\n如果脚本在修改后重新生成时某个代码块执行失败,编辑器现在会显示错误信息,而不是像以前那样默默地不提供保存按钮;导出失败也会显示错误信息。"
133
133
  }
134
134
  },
135
135
  "platform": "Javascript/Node.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.javascript",
3
- "version": "10.2.3",
3
+ "version": "10.2.5",
4
4
  "description": "Rules Engine for ioBroker",
5
5
  "author": "bluefox <dogafox@gmail.com>",
6
6
  "contributors": [
@@ -43,14 +43,14 @@
43
43
  "dependencies": {
44
44
  "@iobroker/adapter-core": "^3.4.3",
45
45
  "@iobroker/types": "^7.2.2",
46
- "@types/node": "^22.20.2",
46
+ "@types/node": "^22.20.3",
47
47
  "axios": "^1.20.0",
48
48
  "jsonata": "^2.2.2",
49
49
  "jszip": "^3.10.2",
50
50
  "node-inspect": "^2.0.0",
51
51
  "node-schedule": "2.1.1",
52
- "nodemailer": "^10.0.9",
53
- "prettier": "^3.9.6",
52
+ "nodemailer": "^10.0.10",
53
+ "prettier": "^3.9.7",
54
54
  "semver": "^7.8.5",
55
55
  "suncalc2": "^1.8.1",
56
56
  "typescript": "~6.0.3",
@@ -64,15 +64,15 @@
64
64
  "@iobroker/adapter-dev": "^1.5.0",
65
65
  "@iobroker/build-tools": "^3.0.3",
66
66
  "@iobroker/eslint-config": "^2.3.4",
67
- "@iobroker/plugin-sentry": "^3.2.0",
68
- "@iobroker/testing": "^6.2.1",
67
+ "@iobroker/plugin-sentry": "^3.2.1",
68
+ "@iobroker/testing": "^6.2.2",
69
69
  "@tsconfig/node22": "^22.0.6",
70
70
  "@types/node-schedule": "^2.1.8",
71
- "@types/nodemailer": "^8.0.1",
71
+ "@types/nodemailer": "^8.0.2",
72
72
  "@types/request": "^2.48.13",
73
73
  "@types/suncalc": "^1.9.2",
74
74
  "alcalzone-shared": "^5.0.0",
75
- "jsdom": "^30.0.1",
75
+ "jsdom": "^30.1.0",
76
76
  "timekeeper": "^2.3.1"
77
77
  },
78
78
  "bugs": {
@@ -1 +0,0 @@
1
- import{$n as e,Bt as t,Qn as n,Rt as r,St as i,Ut as a,Vt as o,bt as s,fr as c,hr as l,p as u,wr as d,yr as f}from"./_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__113183188387379__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-D-gi6Mty.js";d();var p=({originalCode:d,modifiedCode:p,language:m,themeType:h,onAccept:g,onReject:_})=>{let v=f(null),y=f(null),b=f(null);l(()=>{let e=window.monaco;if(!e||!v.current)return;let t=e.editor.createDiffEditor(v.current,{readOnly:!1,originalEditable:!1,renderSideBySide:!0,automaticLayout:!0,theme:h===`dark`?`vs-dark`:`vs`,scrollBeyondLastLine:!1,minimap:{enabled:!1}}),n=e.editor.createModel(d,m),r=e.editor.createModel(p,m);return b.current=r,t.setModel({original:n,modified:r}),y.current=t,()=>{t.dispose(),n.dispose(),r.dispose(),y.current=null,b.current=null}},[d,p,m,h]);let x=c(()=>{var e;g(((e=b.current)==null?void 0:e.getValue())||p)},[p,g]);return e(o,{sx:{display:`flex`,flexDirection:`column`,height:`100%`,width:`100%`},children:[e(r,{variant:`dense`,sx:{minHeight:36,bgcolor:`background.paper`,borderBottom:`1px solid`,borderColor:`divider`,gap:1,flexShrink:0},children:[n(t,{variant:`subtitle2`,sx:{flex:1},children:u.t(`AI suggested changes`)}),n(a,{variant:`contained`,color:`success`,size:`small`,startIcon:n(i,{}),onClick:x,children:u.t(`Accept`)}),n(a,{variant:`outlined`,color:`error`,size:`small`,startIcon:n(s,{}),onClick:_,children:u.t(`Reject`)})]}),n(o,{ref:v,sx:{flex:1,overflow:`hidden`}})]})};export{p as default};