iobroker.javascript 10.3.0 → 10.4.1

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 (165) hide show
  1. package/README.md +23 -22
  2. package/admin/assets/AiChatPanel-CfjSsVpE.js +27 -0
  3. package/admin/assets/AiChatService-rFZwYNPk.js +216 -0
  4. package/admin/assets/AiDiffView-DeynDw7L.js +1 -0
  5. package/admin/assets/AiInlineProvider-R_AVYwFT.js +5 -0
  6. package/admin/assets/{BlocklyEditor-BZyoN1JE.js → BlocklyEditor-DPJkoxjP.js} +7 -7
  7. package/admin/assets/Compile-BgTrxmPA.js +165 -0
  8. package/admin/assets/Debugger-CThCzBvP.js +15 -0
  9. package/admin/assets/Diff--plofAtP.js +1 -0
  10. package/admin/assets/{Documentation-uz4Ut9pT.js → Documentation-D3E0U4AK.js} +4 -4
  11. package/admin/assets/ExpandMore-Dio4GeHC.js +1 -0
  12. package/admin/assets/{FbEditor-aOZ-RpPV.js → FbEditor-A7I5U0hA.js} +6 -6
  13. package/admin/assets/History-Ewi5YEEn.js +1 -0
  14. package/admin/assets/Import-6Mm2vrM2.js +1 -0
  15. package/admin/assets/MonacoDiff-BYvG7IqB.js +1 -0
  16. package/admin/assets/{NotificationsActive-BdzH44gp.js → NotificationsActive-CuNfWVJM.js} +1 -1
  17. package/admin/assets/RulesEditor-MDkGXERp.js +1 -0
  18. package/admin/assets/{ScriptEditor-CviB6Hif.js → ScriptEditor-CqphehA8.js} +2 -2
  19. package/admin/assets/ScriptEditorVanillaMonaco-CxgNa-3O.js +3 -0
  20. package/admin/assets/Send-Pz1eveU5.js +1 -0
  21. package/admin/assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-Ceh8EDcF.js +1 -0
  22. package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__234968779812303__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BRdHvuuG.js +1217 -0
  23. package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__234968779812303__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-DLWT3PGo.js +9 -0
  24. package/admin/assets/aiPromptBuilder-CI2ChET0.js +1 -0
  25. package/admin/assets/{blockly-fcfyKYzp.js → blockly-B0t_IRJQ.js} +1 -1
  26. package/admin/assets/{blocklyTheme-CGhU3cEO.js → blocklyTheme-iZoge1S9.js} +1 -1
  27. package/admin/assets/{blocks_action-BQ4O7NRE.js → blocks_action-3CepYoiX.js} +1 -1
  28. package/admin/assets/{blocks_convert-0VBjfhqQ.js → blocks_convert-BEpxVx-_.js} +1 -1
  29. package/admin/assets/{blocks_logic-DAo99xDr.js → blocks_logic-CyIBT53p.js} +1 -1
  30. package/admin/assets/{blocks_number-C--e19NU.js → blocks_number-yqm4qwfh.js} +1 -1
  31. package/admin/assets/{blocks_object-D0TPhdzg.js → blocks_object-CizLkmWp.js} +1 -1
  32. package/admin/assets/blocks_procedures-pFTThYqz.js +3 -0
  33. package/admin/assets/{blocks_sendto-CRIrtOUc.js → blocks_sendto-rEq1xPmO.js} +2 -2
  34. package/admin/assets/{blocks_switch-b_GYfF0n.js → blocks_switch-D3aybjqu.js} +1 -1
  35. package/admin/assets/{blocks_system-BdkUdSsc.js → blocks_system-BVRsS2OE.js} +1 -1
  36. package/admin/assets/{blocks_text-DSFhEVOf.js → blocks_text-D93xQ_03.js} +1 -1
  37. package/admin/assets/{blocks_time-CqALAiJp.js → blocks_time-ChxhjgD7.js} +1 -1
  38. package/admin/assets/{blocks_timeout-yrOD2pZp.js → blocks_timeout-CUZ80HaP.js} +1 -1
  39. package/admin/assets/{blocks_trigger-DeAYXpSS.js → blocks_trigger-DivLpAuy.js} +2 -2
  40. package/admin/assets/{cronHoverProvider-DoO2_tpG.js → cronHoverProvider-Curcjz4m.js} +1 -1
  41. package/admin/assets/dist-CzitsFi7.js +1 -0
  42. package/admin/assets/field_cron-RgLY53_S.js +1 -0
  43. package/admin/assets/field_oid-rBhotXJe.js +1 -0
  44. package/admin/assets/field_script-CU7g3-oB.js +1 -0
  45. package/admin/assets/helpers-BZgjFQNf.js +1 -0
  46. package/admin/assets/{helpers-BTGaTdnT.js → helpers-Bt4VKZBw.js} +1 -1
  47. package/admin/assets/hostInit-CrHjJGJJ.js +1 -0
  48. package/admin/assets/index-DzAQnPTD.js +157 -0
  49. package/admin/assets/{inlineChatWidget-BwQVCPkx.js → inlineChatWidget-ChchJD9a.js} +1 -1
  50. package/admin/assets/{inlineDiffController-BsDDsDHn.js → inlineDiffController-ly6qX4jk.js} +1 -1
  51. package/admin/assets/{loadBlocks-RpqM7PwO.js → loadBlocks-DDLPEDa6.js} +23 -23
  52. package/admin/assets/{mf-entry-bootstrap-0-0deef484.js → mf-entry-bootstrap-0-d055f05d.js} +3 -3
  53. package/admin/assets/pendingShares-mBGPbRwZ.js +2 -0
  54. package/admin/assets/{reactour.esm-DX9ZgYlx.js → reactour.esm-Dk3aGxKn.js} +5 -5
  55. package/admin/assets/{stateHoverProvider-BEadnSXp.js → stateHoverProvider-wAsP-THx.js} +1 -1
  56. package/admin/assets/utils-DUKzLJUz.js +4 -0
  57. package/admin/assets/vite-preload-helper-DjNwdemH.js +1 -0
  58. package/admin/custom/assets/Components-fDcxCyN4.js +1 -0
  59. package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1-BraOrMSu.js +1 -0
  60. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__198282747311932__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-DbKT6Hsb.js +1 -0
  61. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__198282747311932__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-CVvbIPAy.js +1 -0
  62. 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 → _virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__198282747311932__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BhZYie9-.js} +89 -89
  63. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__198282747311932__loadShare___mf_0_mui_mf_1_x_mf_2_date_mf_2_pickers__loadShare__.js-CV50dgj4.js +1 -0
  64. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__198282747311932__loadShare__date_mf_2_fns__loadShare__.js-Djg9OMcQ.js +1 -0
  65. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__198282747311932__loadShare__leaflet__loadShare__.js-D9EyCd42.js +1 -0
  66. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__198282747311932__loadShare__shared-Hb6V6BnJ.js +2 -0
  67. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__198282747311932__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-BrY-nF2a.js +122 -0
  68. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__198282747311932__prebuild__leaflet__prebuild__-CHjWtrkp.js +1 -0
  69. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__198282747311932__prebuild__react_mf_2_dom_mf_1_client__prebuild__-DOkC-g0X.js +9 -0
  70. package/admin/custom/assets/dist-CzitsFi7.js +1 -0
  71. package/admin/custom/assets/helpers-BZgjFQNf.js +1 -0
  72. package/admin/custom/assets/hostInit-akwaQLq8.js +1 -0
  73. package/admin/custom/assets/index-BkItz-nL.js +1 -0
  74. package/admin/custom/assets/{lib-BmDlTzq2.js → lib-CADOx2YN.js} +1 -1
  75. package/admin/custom/assets/{mf-entry-bootstrap-0-ad1cd7d0.js → mf-entry-bootstrap-0-3c4565e0.js} +3 -3
  76. package/admin/custom/assets/pendingShares-TCMDgBLn.js +2 -0
  77. package/admin/custom/assets/utils-DUKzLJUz.js +4 -0
  78. package/admin/custom/assets/vite-preload-helper-DjNwdemH.js +1 -0
  79. package/admin/custom/customComponents.js +2 -2
  80. package/admin/custom/i18n/de.json +19 -1
  81. package/admin/custom/i18n/en.json +19 -1
  82. package/admin/custom/i18n/es.json +19 -1
  83. package/admin/custom/i18n/fr.json +19 -1
  84. package/admin/custom/i18n/it.json +19 -1
  85. package/admin/custom/i18n/nl.json +19 -1
  86. package/admin/custom/i18n/pl.json +19 -1
  87. package/admin/custom/i18n/pt.json +19 -1
  88. package/admin/custom/i18n/ru.json +19 -1
  89. package/admin/custom/i18n/uk.json +19 -1
  90. package/admin/custom/i18n/zh-cn.json +19 -1
  91. package/admin/i18n/de.json +13 -1
  92. package/admin/i18n/en.json +13 -1
  93. package/admin/i18n/es.json +13 -1
  94. package/admin/i18n/fr.json +13 -1
  95. package/admin/i18n/it.json +13 -1
  96. package/admin/i18n/nl.json +13 -1
  97. package/admin/i18n/pl.json +13 -1
  98. package/admin/i18n/pt.json +13 -1
  99. package/admin/i18n/ru.json +13 -1
  100. package/admin/i18n/uk.json +13 -1
  101. package/admin/i18n/zh-cn.json +13 -1
  102. package/admin/jsonConfig.json +274 -86
  103. package/admin/mf-manifest.json +1 -1
  104. package/admin/mf-stats.json +1 -1
  105. package/admin/remoteEntry.js +2 -2
  106. package/admin/tab.html +2 -2
  107. package/build/lib/ai.js +53 -0
  108. package/build/lib/ai.js.map +1 -0
  109. package/build/lib/inspect.js +66 -10
  110. package/build/lib/inspect.js.map +1 -1
  111. package/build/lib/mirror.js +24 -23
  112. package/build/lib/mirror.js.map +1 -1
  113. package/build/lib/scriptHistory.js +245 -0
  114. package/build/lib/scriptHistory.js.map +1 -0
  115. package/build/main.js +358 -413
  116. package/build/main.js.map +1 -1
  117. package/build/types.d.ts +11 -0
  118. package/io-package.json +17 -15
  119. package/package.json +8 -7
  120. package/admin/assets/AiChatPanel-CpY4Bun-.js +0 -27
  121. package/admin/assets/AiChatService-QKcpW4jQ.js +0 -216
  122. package/admin/assets/AiDiffView-DscPfZ38.js +0 -1
  123. package/admin/assets/AiInlineProvider-DTSPKoXG.js +0 -5
  124. package/admin/assets/Compile-Oss28m_f.js +0 -165
  125. package/admin/assets/Debugger-teJTIU-2.js +0 -15
  126. package/admin/assets/ExpandMore-V5Ix1QB1.js +0 -1
  127. package/admin/assets/Import-BIC5Ee9z.js +0 -1
  128. package/admin/assets/RulesEditor-CcDVthPa.js +0 -1
  129. package/admin/assets/ScriptEditorVanillaMonaco-ByuXwybM.js +0 -3
  130. package/admin/assets/Send-Mdo32jMb.js +0 -1
  131. package/admin/assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-BnL93BgK.js +0 -1
  132. package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__180366418666083__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-NI-3Uv4e.js +0 -1217
  133. package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__180366418666083__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-DVaMIZyC.js +0 -9
  134. package/admin/assets/aiPromptBuilder-yTB6N2VT.js +0 -1
  135. package/admin/assets/blocks_procedures-DgTxgXdB.js +0 -3
  136. package/admin/assets/dist-D4uJqRBO.js +0 -4
  137. package/admin/assets/field_cron-D3Ts_s9M.js +0 -1
  138. package/admin/assets/field_oid-BRNXredg.js +0 -1
  139. package/admin/assets/field_script-3X6ousg7.js +0 -1
  140. package/admin/assets/hostInit-2h2Cbsaw.js +0 -1
  141. package/admin/assets/index-CbQlIKB_.js +0 -156
  142. package/admin/assets/pendingShares-BaAadIDv.js +0 -1
  143. package/admin/assets/vite-preload-helper-CaC3yEL3.js +0 -1
  144. package/admin/custom/assets/Components-FkGDIlId.js +0 -1
  145. package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1-Cs88NUCd.js +0 -1
  146. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-P-8ffWXw.js +0 -1
  147. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-ZVuRAEo5.js +0 -1
  148. 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 +0 -1
  149. 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 +0 -1
  150. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare__date_mf_2_fns__loadShare__.js-CnhNjamd.js +0 -1
  151. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare__leaflet__loadShare__.js-Dz7BFJqH.js +0 -1
  152. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-B0olko2J.js +0 -1
  153. 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 +0 -122
  154. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild__leaflet__prebuild__-xPcBaiTQ.js +0 -1
  155. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild__react_mf_2_dom_mf_1_client__prebuild__-DuFBE5fh.js +0 -9
  156. package/admin/custom/assets/dist-D4uJqRBO.js +0 -4
  157. package/admin/custom/assets/hostInit-6oh4UY2k.js +0 -1
  158. package/admin/custom/assets/index-BrlyEy6J.js +0 -1
  159. package/admin/custom/assets/pendingShares-kV2kwejX.js +0 -1
  160. package/admin/custom/assets/vite-preload-helper-CaC3yEL3.js +0 -1
  161. package/build/lib/aiProviderResolver.js +0 -140
  162. package/build/lib/aiProviderResolver.js.map +0 -1
  163. package/build/lib/anthropicAdapter.js +0 -175
  164. package/build/lib/anthropicAdapter.js.map +0 -1
  165. /package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-CXpyx8Vy.js → _virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__198282747311932__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-CXpyx8Vy.js} +0 -0
@@ -1,7 +1,7 @@
1
- import{t as e}from"./assets/vite-preload-helper-CaC3yEL3.js";import{a as t,t as n}from"./assets/dist-D4uJqRBO.js";({...t.global});var r=t.share;t.utils;var i={};typeof __VUE_HMR_RUNTIME__>`u`&&(globalThis.__VUE_HMR_RUNTIME__={createRecord(){},rerender(){},reload(){}});var a=`__mf_init__virtual:mf:__mfe_internal__iobroker_javascript__mf_owner__180366418666083__mf_v__runtimeInit__mf_v__.js__`,o=globalThis[a];if(!o){let e,t,n=new Promise((n,r)=>{e=n,t=r});o=globalThis[a]={initPromise:n,initResolve:e,initReject:t}}var s=o.initResolve,c=`__mf_module_cache__`;globalThis[c]||={share:{},remote:{}},globalThis[c].share||={},globalThis[c].remote||={};var l=globalThis[c];for(let e of Object.keys(l.share))if(e.startsWith(`default:`)){let t=e.slice(8);l.share[t]===void 0&&(l.share[t]=l.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;l.share[t]===void 0&&(l.share[t]=l.share[e])}var u={},d=Array.isArray(`default`)?`default`:[`default`],f=`default`,p=`iobroker_javascript`,m=[[`react`,`prop-types`],[`react/jsx-runtime`,`react-dom`],[`react-dom/client`,`@mui/material`],[`@iobroker/gui-components`]],h,g;async function _(e){for(let t=0;;t++)try{return await e()}catch(e){throw e}}var v=Symbol(`mf.originalSharedProvider`),y={emit:e=>e},b=(e,t)=>{if(t!==`version-first`)return e;let n={};for(let[t,r]of Object.entries(e))n[t]=Object.assign({},r,{[v]:r});return n},x=(e,t)=>{if(!t)return;let n=Object.entries(e||{}),r=n.find(([,e])=>e===t);if(r)return{version:r[0],provider:t,registered:!0};if(typeof t.version==`string`&&t.version)return{version:t.version,provider:t,registered:!1};let i=n.filter(([,e])=>e===t||!!(t.from&&(e==null?void 0:e.from)===t.from));if(i.length===1)return{version:i[0][0],provider:t,registered:!1}},S=(e,t,n,i)=>{var a;if(!e||!n)return;let o=Object.fromEntries(Object.entries(e).filter(([,e])=>{var t;return(e==null||(t=e.shareConfig)==null?void 0:t.import)!==!1}));if(Object.keys(o).length===0)return;let s=Array.isArray(n.scope)?n.scope:[n.scope||`default`],c=b(o,i),l={};for(let e of s)l[e||`default`]={[t]:c};let u=(a=r.getRegisteredShare(l,t,{...n,scope:s,strategy:i},y))==null?void 0:a.shared;return(u==null?void 0:u[v])||u},C=(e,t,n,r)=>{var i;let a=e=>w(e,n),o=Object.fromEntries(Object.entries(e||{}).filter(([,e])=>{var t;return!a(e)&&(e==null||(t=e.shareConfig)==null?void 0:t.import)!==!1}));n!=null&&n.version&&((i=n.shareConfig)==null?void 0:i.import)!==!1&&(o[n.version]||(o[n.version]=n));let s=S(o,t,n,r);return a(s)?void 0:s},w=(e,t)=>e===t||!!(t!=null&&t.from&&(e==null?void 0:e.from)===t.from),T=(e,t,n,r,i,a,o,s,c)=>{var l,u;if(c!==`version-first`||!s)return;let d=t==null||(l=t.options)==null||(l=l.shared)==null?void 0:l[i],f=Array.isArray(d)?d.find(e=>(e==null?void 0:e.version)===a):void 0,p=((s==null?void 0:s.from)===(t==null||(u=t.options)==null?void 0:u.name)?s:void 0)||(w(f,s)?f:t?void 0:s);if(p)return e.some(e=>{var i,a;return e!==t&&(e==null||(i=e.options)==null?void 0:i.name)===(o==null?void 0:o.from)&&(e==null||(a=e.shareScopeMap)==null?void 0:a[r])===n})?p:void 0},E=(e,t,n,r,i,a,o,s,c)=>{let l=a.registered?T(e,t,n,r,i,a.version,a.provider,s,c):void 0,u=l||o;if(u&&(!a.registered||w(u,s)))return{provider:u,scopeRootProvider:l}};async function D(){return h||=_(()=>e(()=>import(`./assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-BnL93BgK.js`),[],import.meta.url)).catch(e=>{throw h=void 0,e}),h}async function O(){return i}async function k(e={},t=[],r={}){var i,a;let o=(e,t,n,r)=>{let i=(Array.isArray(r)?r[0]:r)||`default`,a=t||!n?e:e+`@`+n,o={canonical:i+`:`+a};return i==="default"&&(o.aliases=[a]),o},c=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},h=Symbol.for(`module-federation.shared-cache-listeners`),v=Symbol.for(`module-federation.shared-cache-owners`),y=e=>{let t=e[v];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,v,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},b=(e,t)=>{var n;return(n=e[v])==null?void 0:n[t.canonical]},T=(e,t,n,r)=>{var i;e[t.canonical]=n;let a=t.aliases||[];for(let t of a)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let o=e[v];r===void 0?o&&delete o[t.canonical]:y(e)[t.canonical]=r;let s=(i=e[h])==null?void 0:i[t.canonical];if(s)for(let e of s)e(n);return n},O=Symbol.for(`module-federation.tree-shaking-shared-cache`),k=e=>{let t=e[O];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,O,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},A=(e,t,n,r)=>{if(!Array.isArray(n))return r;let i=[...new Set(n)].sort(),a=k(e),o=a[t.canonical]||=[],s=o.find(e=>e.providedExports.length===i.length&&e.providedExports.every((e,t)=>e===i[t]));return s?s.value=r:o.push({providedExports:i,value:r}),r},j=Symbol.for(`module-federation.tree-shaking-shared-selection-cache`),ee=e=>{let t=e[j];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,j,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},M=(e,t,n)=>{var r;let i=c(e,t);return i===void 0?(r=e[j])==null||(r=r[t.canonical])==null?void 0:r[n]:i},N=(e,t,n,r)=>{let i=ee(e),a=i[t.canonical]||=Object.create(null);return a[n]=r,r},P=((i=globalThis.__FEDERATION__)==null?void 0:i.__INSTANCES__)||[],F=(a=t.find(e=>e==null?void 0:e.from))==null?void 0:a.from,te=P.find(t=>{var n,r;return(t==null||(n=t.options)==null?void 0:n.name)===F&&(t==null||(r=t.shareScopeMap)==null?void 0:r.default)===e})||P.find(t=>{var n,r;return(t==null||(n=t.options)==null?void 0:n.name)!==p&&(t==null||(r=t.shareScopeMap)==null?void 0:r.default)===e}),I=Object.create(null),L=e=>{let t=Object.create(null);for(let[n,r]of Object.entries(e||{}))t[n]=Object.assign(Object.create(null),r);return t},R=(e,t)=>{var n;for(let[i,a]of Object.entries(((n=q.shareScopeMap)==null?void 0:n[e])||{}))for(let[e,n]of Object.entries(a||{})){var r;if(!n||n.get===((r=B[i])==null?void 0:r.get))continue;let a=t[i]||={};a[e]===void 0&&(a[e]=n)}},ne=(e,t)=>{R(e,t);let n=!te&&Object.values(t||{}).some(e=>Object.values(e||{}).some(V)),r=n?L(t):t;return I[e]={host:t,runtime:r,isWebpackScope:n},r},re=()=>{let e=Object.values(I).filter(({isWebpackScope:e})=>e);if(e.length!==0)for(let{host:t,runtime:n}of e)for(let[e,r]of Object.entries(t||{})){let t=n[e]||=Object.create(null);for(let[e,n]of Object.entries(r||{}))t[e]=n}},z=Object.create(null);for(let[t,n]of Object.entries(e)){let e=z[t]=Object.create(null);for(let[t,r]of Object.entries(n))e[t]=Object.assign({},r)}let{usedShared:B,usedRemotes:ie}=await D();function V(e){if(typeof(e==null?void 0:e.get)!=`function`)return!1;let t=Function.prototype.toString.call(e.get);return t.includes(`__webpack_require__`)||/\.\s*e\s*\([^)]*\)\s*\.then\s*\(/.test(t)}let ae=Object.values(z).some(e=>Object.values(e||{}).some(V)),oe=e=>{let t=e.split(`/`);return e.startsWith(`@`)?t.slice(0,2).join(`/`):t[0]},H=(t,n,r,i)=>{if(typeof C!=`function`)return;let a=oe(t),o=!i||a===t?[[t,n]]:[[t,n],[a,B[a]]];for(let[n,i]of o){if(!i)continue;let a=C(r?n===t?r:z[n]:z[n]??e[n],n,i,`version-first`);if(a)return a}},se=(e,t,n)=>{let r=H(e,t,n,!0);return r&&V(r)&&!r.lib&&!r.loaded?r:void 0};var U=u[f];if(U||=u[f]={from:p},t.indexOf(U)>=0)return;t.push(U);let ce=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(n.length>0&&n.some(e=>e!==void 0))break;t=e}return t},le=[],ue=globalThis.window===void 0?await Promise.all([]):[],W=`__mf_vite_runtime_share_load_id__`,de=0,G=new Map,K=new Map,q=n({name:p,remotes:ie,shared:B,plugins:[fe(),pe(),...le,...ue],shareStrategy:`version-first`});q.initShareScopeMap(`default`,ne(`default`,e));function fe(){return{name:`vite-share-pin-lifecycle-plugin`,resolveShare(e){var t;let n=(t=e.shareInfo)==null?void 0:t[W],r=n===void 0?void 0:K.get(n);if(!r)return e;let i=e.resolver;return e.resolver=(...e)=>(r.pinned.reapply(),i(...e)),r.pinned.reveal(),e}}}function pe(){return{name:`vite-real-name-snapshot-plugin`,afterLoadSnapshot(e){let t=e&&e.remoteSnapshot,n=t&&t.globalName,r=t&&t.version;if(!n||!r||!t.remoteEntry)return e;let i=globalThis.__FEDERATION__&&globalThis.__FEDERATION__.moduleInfo,a=n+`:`+r;return i&&!i[a]&&(i[a]=t),e}}}let me=q.sharedHandler.hooks.lifecycle.resolveShare,J=new WeakMap;me.on(e=>{var t;let n=(t=e.shareInfo)==null?void 0:t[W],r=e.resolver;return typeof r==`function`&&(e.resolver=(...e)=>{let t=r(...e),i=t==null?void 0:t.shared;return i&&(typeof i==`object`||typeof i==`function`)&&!J.has(i)&&J.set(i,{from:i.from}),n!==void 0&&i&&G.set(n,i),t}),e});let he=(e,t,n,r)=>{if(!e||e[t]!==n)return;let i=Object.assign({},r,{version:r.version??t,scope:r.scope??(n==null?void 0:n.scope)??[`default`],strategy:`loaded-first`}),a=r.from;e[t]=i;let o=()=>n===void 0?e[t]===void 0:e[t]===n;return{provider:i,reveal(){return e[t]===i&&(n===void 0?delete e[t]:e[t]=n,!0)},reapply(){return o()?(e[t]=i,!0):!1},release(s,c=!0){return r.from=a,e[t]===i?c?s?(i.from=a,s&&i.lib&&(i.loaded=!0),r.strategy===void 0?delete i.strategy:i.strategy=r.strategy,!0):(n===void 0?delete e[t]:e[t]=n,!1):(n===void 0?delete e[t]:e[t]=n,!0):!c&&o()}}},ge=e=>Object.entries(e||{}).map(([e,t])=>({provider:t,version:e,from:t.from,registered:!0})),_e=(e,t)=>{if(t===void 0)return;let n;for(let r of e){let e=r.provider,i=e.treeShaking||e;if(r.loadedFactory===t||e.lib===t||i.lib===t){if(n)return;n=r}}return n},ve=async(e,t,n)=>{let r=++de;K.set(r,{pinned:n});try{let n=await q.loadShare(e,{customShareInfo:{shareConfig:t,[W]:r}});return{factory:n===!1?void 0:n,selectedProvider:G.get(r)}}finally{G.delete(r),K.delete(r)}},ye=async(e,t,n,r,i,a,o=!0)=>{let s=a.from,c=he(n,r,i,a);if(!c)return;let l;try{l=await ve(e,t,c)}catch(e){throw c.release(!1),e}let u=l==null?void 0:l.factory;if(u===void 0){c.release(!1);return}let d=ge(n),f=c.provider.treeShaking||c.provider,p=c.provider.lib===u||f.lib===u;if(!o&&p){let e=d.findIndex(e=>e.provider===c.provider);e!==-1&&d.splice(e,1)}!o&&!d.some(e=>e.provider===a)&&d.push({provider:a,version:r,from:s,registered:!1,loadedFactory:p?u:void 0});let m=!o&&l.selectedProvider===c.provider&&p?a:l.selectedProvider;if(m&&!d.some(e=>e.provider===m)){let e=J.get(m),t=typeof m.version==`string`&&m.version?m.version:r;d.push({provider:m,version:t,from:e?e.from:m.from,registered:(n==null?void 0:n[t])===m,loadedFactory:u})}let h=d.find(e=>e.provider===m)??_e(d,u);if(!c.release(!0,(h==null?void 0:h.provider)===c.provider)||!h)return;let g=J.get(h.provider);h.from=h.provider===a?s:g?g.from:h.provider.from,g&&(h.provider.from=g.from);let _=typeof u==`function`?u():u,v=await Promise.resolve(_);if(!(h.registered&&(n==null?void 0:n[h.version])!==h.provider))return{provider:h.provider,selection:h,resolved:v}},Y=new Set,X=new Map,be=async(t,n,r)=>{var i;let a=!!((i=n.shareConfig)!=null&&i.singleton);if(!a&&n.canLiveRebind!==!1)try{var s,u;let i=C(r,t,n,`version-first`),d=x(r,i);if(!d||((s=n.shareConfig)==null?void 0:s.import)===!1&&w(i,n)||(i==null||(u=i.shareConfig)==null?void 0:u.import)===!1)return;let{version:f}=d;if(!a&&f!==n.version||!i.lib&&!i.loading&&!(i.loaded&&typeof i.get==`function`))return;let p=o(t,a,n.version,n.scope);if(c(l.share,p)!==void 0)return;let m=e[t],h=m==null?void 0:m[f];if(d.registered&&!w(h,i))return;let g,_=i.lib;if(!_&&V(i)||(!_&&i.loading&&(_=await i.loading),!_&&i.loaded&&typeof i.get==`function`&&(_=await i.get()),!_))return;let v=typeof _==`function`?_():_,y=await Promise.resolve(v),b=d.registered?h:i;g={provider:b,selection:{provider:b,version:f,from:i.from,registered:d.registered},resolved:y};let S=g==null?void 0:g.provider,E=g==null?void 0:g.selection;if(!E)return;let D=g==null?void 0:g.resolved;if(D===void 0||c(l.share,p)!==void 0||E.registered&&(m==null?void 0:m[E.version])!==S)return;T(l.share,p,ce(D),E.from),Y.add(S)}catch(e){console.error(`[Module Federation] Failed to bridge materialized shared module "`+t+`"`,e)}},xe=async(t,n,r,i,a)=>{try{var s,u,d,f;let m=o(t,(s=n.shareConfig)==null?void 0:s.singleton,n.version,n.scope),h=c(l.share,m),g=b(l.share,m),_=C(r,t,n,`version-first`),v=_||S(r,t,n,`version-first`)||n,y=x(r,v);if(!y)return;let D=w(v,n),{version:O}=y;if(!((u=n.shareConfig)!=null&&u.singleton)&&O!==n.version)return;let k=i==null?void 0:i[O],A=E(P,te,e,`default`,t,y,_,k,`version-first`);if(!A&&!D)return;let{provider:j,scopeRootProvider:ee}=A||{provider:v,scopeRootProvider:void 0};if(n.canLiveRebind===!1||((d=n.shareConfig)==null?void 0:d.import)===!1&&w(j,n)||(j==null||(f=j.shareConfig)==null?void 0:f.import)===!1||h!==void 0&&g!==p)return;let M=e[t],N=M==null?void 0:M[O];if(y.registered&&!ee&&!w(N,j))return;let F=await ye(t,n.shareConfig,M,O,N,j,y.registered&&!D),I=F==null?void 0:F.provider,L=F==null?void 0:F.selection;if(!L||w(I,n)||a&&(a.version!==L.version||!w({from:L.from},a.provider))||Y.has(I))return;let R=F==null?void 0:F.resolved;if(R===void 0)return;let ne=c(l.share,m),re=b(l.share,m);if(ne!==void 0&&re!==p||L.registered&&(M==null?void 0:M[L.version])!==I)return;a||X.set(t,{version:L.version,provider:{from:L.from}}),Y.add(I);let z=ce(R);T(l.share,m,z,L.from)}catch(e){console.error(`[Module Federation] Failed to bridge external shared module "`+t+`"`,e)}};for(let e of m)await Promise.all(e.map(async e=>{let t=B[e];t&&t.materialize!==!1&&!t.treeShaking&&await be(e,t,z[e])}));for(let[e,t]of Object.entries(B)){var Se;if(t.treeShaking)continue;let n=o(e,(Se=t.shareConfig)==null?void 0:Se.singleton,t.version,t.scope);if(c(l.share,n)!==void 0)continue;let r=o(e,!0,t.version,t.scope),i=c(l.share,r);i!==void 0&&T(l.share,n,i,b(l.share,r))}let Ce=[`react`,`prop-types`,`react/jsx-runtime`,`react-dom`,`react-dom/client`,`@mui/material`,`@iobroker/gui-components`],we=[[`react`,`prop-types`],[`react/jsx-runtime`,`react-dom`],[`react-dom/client`,`@mui/material`],[`@iobroker/gui-components`]],Z=new Map(Ce.map((e,t)=>[e,t])),Te={2:[0],3:[0],4:[0,3],5:[1,0,3],6:[0,3,5]},Q=Ce.filter(e=>{var t;return B[e]&&(B[e].materialize!==!1||((t=B[e].shareConfig)==null?void 0:t.import)===!1)});l.providerInit||=new Map;let Ee=(e,t)=>{let n=l.providerInit.get(e);if(n)return n;let r=Promise.resolve().then(t);return l.providerInit.set(e,r),r.catch(()=>l.providerInit.delete(e)),r};var De=async e=>{let t=new Set(e);for(let e of we)await Promise.all(e.filter(e=>t.has(e)).map(async e=>{var t,n;let r=B[e],i=o(e,(t=r.shareConfig)==null?void 0:t.singleton,r.version,r.scope);if(((n=r.shareConfig)==null?void 0:n.import)===!1||r.treeShaking||c(l.share,i)!==void 0)return;let a=o(e,!0,r.version,r.scope),s=c(l.share,a);if(s!==void 0){T(l.share,i,s,b(l.share,a));return}let u=typeof H==`function`?H(e,r):void 0;if(u){let e=u.lib;if(!e&&u.loading&&(e=await u.loading),!e&&u.loaded&&typeof u.get==`function`&&(e=await u.get()),e){let t=typeof e==`function`?e():e,n=await Promise.resolve(t);T(l.share,i,(e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(n.length>0&&n.some(e=>e!==void 0))break;t=e}return t})(n),u.from)}return}let d=i.canonical,f=await Ee(d,async()=>{let e=await r.get(),t=typeof e==`function`?e():e;return Promise.resolve(t)}),m=(e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(n.length>0&&n.some(e=>e!==void 0))break;t=e}return t})(f),h=m===f?{...f}:m;h.__esModule!==!0&&Object.defineProperty(h,"__esModule",{value:!0,enumerable:!1}),T(l.share,i,h,p)}))};let Oe=e=>{var t,n;let r=B[e];if(!r.treeShaking&&((t=r.shareConfig)==null?void 0:t.import)!==!1)return!1;let i=o(e,(n=r.shareConfig)==null?void 0:n.singleton,r.version,r.scope);return r.treeShaking?M(l.share,i,p)===void 0&&c(l.share,i)===void 0:c(l.share,i)===void 0},ke=e=>{var t,n;let r=B[e],i=o(e,(t=r.shareConfig)==null?void 0:t.singleton,r.version,r.scope);return(r.treeShaking?M(l.share,i,p)??c(l.share,i):c(l.share,i))===void 0?r.treeShaking||((n=r.shareConfig)==null?void 0:n.import)===!1?!0:typeof C==`function`&&!!C(z[e],e,r,`version-first`):!1},Ae=e=>{let t=!0;for(;t;){t=!1;for(let n of Q){let r=Z.get(n);e.has(r)||(Te[r]||[]).some(t=>e.has(t))&&(e.add(r),t=!0)}}return e},je=Ae(new Set(Q.filter(ke).map(e=>Z.get(e)))),Me=Q.filter(e=>!je.has(Z.get(e)));var Ne=Q.filter(e=>je.has(Z.get(e)));await De(Me);try{await _(async()=>{await Promise.all(await q.initializeSharing(`default`,{strategy:`version-first`,from:`build`,initScope:t}))})}catch(e){console.error(`[Module Federation]`,e)}re();let Pe=async()=>{for(let t of m)await Promise.all(t.map(async t=>{let n=B[t];n&&n.materialize!==!1&&!n.treeShaking&&await xe(t,n,e[t],z[t],void 0)}))};await Pe(),ae&&(g=Pe);try{var Fe;let e=(Fe=globalThis.__FEDERATION__)==null?void 0:Fe.__SHARE__,t=Object.create(null);if(e)for(let[,n]of Object.entries(e))for(let e of d){let r=n==null?void 0:n[e];if(r)for(let[e,n]of Object.entries(r)){let r=B==null?void 0:B[e],i=z[e],a=X.get(e);if(!r||!i||!a||r.treeShaking)continue;let o=t[e]||(t[e]=Object.create(null));for(let[e,t]of Object.entries(n)){if(!t.lib||a.version!==e||!w(t,a.provider))continue;let n=i[e];(t===n||n!=null&&n.from&&t.from===n.from)&&(t===r||r.from&&t.from===r.from||o[e]===void 0&&(o[e]=t))}}}for(let e of m)await Promise.all(e.map(async e=>{let n=t[e];n&&await xe(e,B[e],n,z[e],X.get(e))}))}catch(e){console.error(`[Module Federation] Failed to bridge external shared modules`,e)}let Ie=async()=>{},Le=async(t,n)=>{var r,i;let a=o(t,(r=n.shareConfig)==null?void 0:r.singleton,n.version,n.scope),s=n.treeShaking?M(l.share,a,p):c(l.share,a);if(((i=n.shareConfig)==null?void 0:i.import)!==!1||s!==void 0||se(t,n,z[t]))return;let u=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(n.length>0&&n.some(e=>e!==void 0))break;t=e}return t},d=e==null?void 0:e[t],f=S(d,t,n,`version-first`)||n,m=x(d,f);if(!m)return;let h=e=>{var t;return e===n||(e==null||(t=e.shareConfig)==null?void 0:t.import)===!1};if(h(f))return;let{version:g}=m,_=d==null?void 0:d[g],v=await ye(t,n.shareConfig,d,g,_,f,m.registered),y=v==null?void 0:v.selection,b=v==null?void 0:v.provider,C=v==null?void 0:v.resolved;if(!y||h(b)||C===void 0||(n.treeShaking?M(l.share,a,p):c(l.share,a))!==void 0||y.registered&&(d==null?void 0:d[y.version])!==b)return;let w=u(C);if(n.treeShaking){let e=n.treeShaking.providedExports??n.treeShaking.usedExports??[];A(l.share,a,e,w),N(l.share,a,p,w)}else T(l.share,a,w,y.from)},Re=[],$=new Set;for(let e of Ne){let t=B[e],n=Z.get(e);if(Oe(e))try{var ze;t.treeShaking?await Ie(e,t):((ze=t.shareConfig)==null?void 0:ze.import)===!1&&await Le(e,t)}catch(t){console.error(`[Module Federation] Failed to resolve runtime-only shared module "${e}"`,t)}Oe(e)&&$.add(n)}return Ae($),Re.push(...Ne.filter(e=>!$.has(Z.get(e)))),await De(Re),s(q),q}async function A(e){let t=await O();if(!(e in t))throw Error(`[Module Federation] Module ${e} does not exist in container.`);return g&&await g(),l.pendingShareLoads&&await Promise.all(l.pendingShareLoads),t[e]().then(e=>()=>e)}export{A as get,k as init};
1
+ import{t as e}from"./assets/vite-preload-helper-DjNwdemH.js";import{t}from"./assets/dist-CzitsFi7.js";import{t as n}from"./assets/helpers-BZgjFQNf.js";var r={};typeof __VUE_HMR_RUNTIME__>`u`&&(globalThis.__VUE_HMR_RUNTIME__={createRecord(){},rerender(){},reload(){}});var i=`__mf_init__virtual:mf:__mfe_internal__iobroker_javascript__mf_owner__234968779812303__mf_v__runtimeInit__mf_v__.js__`,a=globalThis[i];if(!a){let e,t,n=new Promise((n,r)=>{e=n,t=r});a=globalThis[i]={initPromise:n,initResolve:e,initReject:t}}var o=a.initResolve,s=`__mf_module_cache__`;globalThis[s]||={share:{},remote:{}},globalThis[s].share||={},globalThis[s].remote||={};var c=globalThis[s];for(let e of Object.keys(c.share))if(e.startsWith(`default:`)){let t=e.slice(8);c.share[t]===void 0&&(c.share[t]=c.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;c.share[t]===void 0&&(c.share[t]=c.share[e])}var l={},u=Array.isArray(`default`)?`default`:[`default`],d=`default`,f=`iobroker_javascript`,p=[[`react`,`prop-types`],[`react/jsx-runtime`,`react-dom`],[`react-dom/client`,`@mui/material`],[`@iobroker/gui-components`]],m,h;async function g(e){for(let t=0;;t++)try{return await e()}catch(e){throw e}}var _=Symbol(`mf.originalSharedProvider`),v={emit:e=>e},y=e=>Array.isArray(e.scope)?e.scope:[e.scope||`default`],b=(e,t)=>{if(t!==`version-first`)return e;let n={};for(let[t,r]of Object.entries(e))n[t]=Object.assign({},r,{[_]:r});return n},x=(e,t)=>{if(!t)return;let n=Object.entries(e||{}),r=n.find(([,e])=>e===t);if(r)return{version:r[0],provider:t,registered:!0};if(typeof t.version==`string`&&t.version)return{version:t.version,provider:t,registered:!1};let i=n.filter(([,e])=>e===t||!!(t.from&&(e==null?void 0:e.from)===t.from));if(i.length===1)return{version:i[0][0],provider:t,registered:!1}},S=(e,t,r,i)=>{var a;if(!e||!r)return;let o=Object.fromEntries(Object.entries(e).filter(([,e])=>{var t;return(e==null||(t=e.shareConfig)==null?void 0:t.import)!==!1}));if(Object.keys(o).length===0)return;let s=y(r),c=b(o,i),l={};for(let e of s)l[e||`default`]={[t]:c};let u=(a=n.getRegisteredShare(l,t,{...r,scope:s,strategy:i},v))==null?void 0:a.shared;return(u==null?void 0:u[_])||u},C=(e,t,n,r)=>{var i;let a=e=>w(e,n),o=Object.fromEntries(Object.entries(e||{}).filter(([,e])=>{var t;return!a(e)&&(e==null||(t=e.shareConfig)==null?void 0:t.import)!==!1}));n!=null&&n.version&&((i=n.shareConfig)==null?void 0:i.import)!==!1&&(o[n.version]||(o[n.version]=n));let s=S(o,t,n,r);return a(s)?void 0:s},w=(e,t)=>e===t||!!(t!=null&&t.from&&(e==null?void 0:e.from)===t.from),T=(e,t,n,r,i,a,o,s,c)=>{var l,u;if(c!==`version-first`||!s)return;let d=t==null||(l=t.options)==null||(l=l.shared)==null?void 0:l[i],f=Array.isArray(d)?d.find(e=>(e==null?void 0:e.version)===a):void 0,p=((s==null?void 0:s.from)===(t==null||(u=t.options)==null?void 0:u.name)?s:void 0)||(w(f,s)?f:t?void 0:s);if(p)return e.some(e=>{var i,a;return e!==t&&(e==null||(i=e.options)==null?void 0:i.name)===(o==null?void 0:o.from)&&(e==null||(a=e.shareScopeMap)==null?void 0:a[r])===n})?p:void 0},E=(e,t,n,r,i,a,o,s,c)=>{let l=a.registered?T(e,t,n,r,i,a.version,a.provider,s,c):void 0,u=l||o;if(u&&(!a.registered||w(u,s)))return{provider:u,scopeRootProvider:l}};async function D(){return m||=g(()=>e(()=>import(`./assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-Ceh8EDcF.js`),[],import.meta.url)).catch(e=>{throw m=void 0,e}),m}async function O(){return r}async function k(e={},n=[],r={}){var i,s;let m=(e,t,n,r)=>{let i=(Array.isArray(r)?r[0]:r)||`default`,a=t||!n?e:e+`@`+n,o={canonical:i+`:`+a};return i==="default"&&(o.aliases=[a]),o},_=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},v=Symbol.for(`module-federation.shared-cache-listeners`),y=Symbol.for(`module-federation.shared-cache-owners`),b=e=>{let t=e[y];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,y,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},T=(e,t)=>{var n;return(n=e[y])==null?void 0:n[t.canonical]},O=e=>{let t=[e,e==null?void 0:e.default];for(let e of t)if(e&&typeof e==`object`){for(let t of[`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`,`__TEST_INTERNALS`,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`]){let n=e[t];if(n&&typeof n==`object`)return{internals:n}}if(typeof e.useState==`function`)return{hook:e.useState}}},k=(e,t)=>{if(e===t)return!0;let n=O(e),r=O(t);if(!n||!r)return!1;let i=n.internals,a=r.internals;return i!==void 0||a!==void 0?i!==void 0&&i===a:typeof n.hook==`function`&&n.hook===r.hook},A=(e,t,n,r)=>{var i;let a=_(e,t);if(a!==void 0&&k(a,n))return n;e[t.canonical]=n;let o=t.aliases||[];for(let t of o)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let s=e[y];r===void 0?s&&delete s[t.canonical]:b(e)[t.canonical]=r;let c=(i=e[v])==null?void 0:i[t.canonical];if(c)for(let e of c)e(n);return n},j=Symbol.for(`module-federation.tree-shaking-shared-cache`),ee=e=>{let t=e[j];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,j,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},M=(e,t,n,r)=>{if(!Array.isArray(n))return r;let i=[...new Set(n)].sort(),a=ee(e),o=a[t.canonical]||=[],s=o.find(e=>e.providedExports.length===i.length&&e.providedExports.every((e,t)=>e===i[t]));return s?s.value=r:o.push({providedExports:i,value:r}),r},N=Symbol.for(`module-federation.tree-shaking-shared-selection-cache`),P=e=>{let t=e[N];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,N,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},F=(e,t,n)=>{var r;let i=_(e,t);return i===void 0?(r=e[N])==null||(r=r[t.canonical])==null?void 0:r[n]:i},I=(e,t,n,r)=>{let i=P(e),a=i[t.canonical]||=Object.create(null);return a[n]=r,r},L=((i=globalThis.__FEDERATION__)==null?void 0:i.__INSTANCES__)||[],R=(s=n.find(e=>e==null?void 0:e.from))==null?void 0:s.from,te=L.find(t=>{var n,r;return(t==null||(n=t.options)==null?void 0:n.name)===R&&(t==null||(r=t.shareScopeMap)==null?void 0:r.default)===e})||L.find(t=>{var n,r;return(t==null||(n=t.options)==null?void 0:n.name)!==f&&(t==null||(r=t.shareScopeMap)==null?void 0:r.default)===e}),ne=Object.create(null),re=e=>{let t=Object.create(null);for(let[n,r]of Object.entries(e||{}))t[n]=Object.assign(Object.create(null),r);return t},ie=(e,t)=>{var n;for(let[i,a]of Object.entries(((n=q.shareScopeMap)==null?void 0:n[e])||{}))for(let[e,n]of Object.entries(a||{})){var r;if(!n||n.get===((r=B[i])==null?void 0:r.get))continue;let a=t[i]||={};a[e]===void 0&&(a[e]=n)}},ae=(e,t)=>{ie(e,t);let n=!te&&Object.values(t||{}).some(e=>Object.values(e||{}).some(V)),r=n?re(t):t;return ne[e]={host:t,runtime:r,isWebpackScope:n},r},oe=()=>{let e=Object.values(ne).filter(({isWebpackScope:e})=>e);if(e.length!==0)for(let{host:t,runtime:n}of e)for(let[e,r]of Object.entries(t||{})){let t=n[e]||=Object.create(null);for(let[e,n]of Object.entries(r||{}))t[e]=n}},z=Object.create(null);for(let[t,n]of Object.entries(e)){let e=z[t]=Object.create(null);for(let[t,r]of Object.entries(n))e[t]=Object.assign({},r)}let{usedShared:B,usedRemotes:se}=await D();function V(e){if(typeof(e==null?void 0:e.get)!=`function`)return!1;let t=Function.prototype.toString.call(e.get);return t.includes(`__webpack_require__`)||/\.\s*e\s*\([^)]*\)\s*\.then\s*\(/.test(t)}let ce=Object.values(z).some(e=>Object.values(e||{}).some(V)),le=e=>{let t=e.split(`/`);return e.startsWith(`@`)?t.slice(0,2).join(`/`):t[0]},H=(t,n,r,i)=>{if(typeof C!=`function`)return;let a=le(t),o=!i||a===t?[[t,n]]:[[t,n],[a,B[a]]];for(let[n,i]of o){if(!i)continue;let a=C(r?n===t?r:z[n]:z[n]??e[n],n,i,`version-first`);if(a)return a}},ue=(e,t,n)=>{let r=H(e,t,n,!0);return r&&V(r)&&!r.lib&&!r.loaded?r:void 0};var U=l[d];if(U||=l[d]={from:f},n.indexOf(U)>=0)return;n.push(U);let de=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},fe=[],pe=globalThis.window===void 0?await Promise.all([]):[],W=`__mf_vite_runtime_share_load_id__`,me=0,G=new Map,K=new Map,q=t({name:f,remotes:se,shared:B,plugins:[he(),ge(),...fe,...pe],shareStrategy:`version-first`});q.initShareScopeMap(`default`,ae(`default`,e));function he(){return{name:`vite-share-pin-lifecycle-plugin`,resolveShare(e){var t;let n=(t=e.shareInfo)==null?void 0:t[W],r=n===void 0?void 0:K.get(n);if(!r)return e;let i=e.resolver;return e.resolver=(...e)=>(r.pinned.reapply(),i(...e)),r.pinned.reveal(),e}}}function ge(){return{name:`vite-real-name-snapshot-plugin`,afterLoadSnapshot(e){let t=e&&e.remoteSnapshot,n=t&&t.globalName,r=t&&t.version;if(!n||!r||!t.remoteEntry)return e;let i=globalThis.__FEDERATION__&&globalThis.__FEDERATION__.moduleInfo,a=n+`:`+r;return i&&!i[a]&&(i[a]=t),e}}}let _e=q.sharedHandler.hooks.lifecycle.resolveShare;if(!q.__mfKeepAdoptedProviders){var J,ve;q.__mfKeepAdoptedProviders=!0,(J=q.sharedHandler)==null||(J=J.hooks)==null||(J=J.lifecycle)==null||(J=J.afterRegisterShare)==null||(ve=J.on)==null||ve.call(J,e=>{var t,n,r;let{shared:i,previousShared:a,registeredShared:o}=e||{};if((i==null||(t=i.shareConfig)==null?void 0:t.import)!==!1||o!==i||!a||((n=a.shareConfig)==null?void 0:n.import)===!1)return;let s=(r=q.shareScopeMap)==null||(r=r[e.scope])==null?void 0:r[e.pkgName];s&&s[i.version]===i&&(s[i.version]=a)})}let Y=new WeakMap;_e.on(e=>{var t;let n=(t=e.shareInfo)==null?void 0:t[W],r=e.resolver;return typeof r==`function`&&(e.resolver=(...t)=>{var i;let a=r(...t);if((a==null||(i=a.shared)==null||(i=i.shareConfig)==null?void 0:i.import)===!1&&typeof S==`function`&&B[e.pkgName]){var o,s;let t=S((o=e.shareScopeMap)==null||(o=o[e.scope])==null?void 0:o[e.pkgName],e.pkgName,B[e.pkgName],`version-first`);t&&((s=t.shareConfig)==null?void 0:s.import)!==!1&&(a={shared:t,useTreesShaking:a.useTreesShaking})}let c=a==null?void 0:a.shared;return c&&(typeof c==`object`||typeof c==`function`)&&!Y.has(c)&&Y.set(c,{from:c.from}),n!==void 0&&c&&G.set(n,c),a}),e});let ye=(e,t,n,r)=>{if(!e||e[t]!==n)return;let i=Object.assign({},r,{version:r.version??t,scope:r.scope??(n==null?void 0:n.scope)??[`default`],strategy:`loaded-first`}),a=r.from;e[t]=i;let o=()=>n===void 0?e[t]===void 0:e[t]===n;return{provider:i,reveal(){return e[t]===i&&(n===void 0?delete e[t]:e[t]=n,!0)},reapply(){return o()?(e[t]=i,!0):!1},release(s,c=!0){return r.from=a,e[t]===i?c?s?(i.from=a,s&&i.lib&&(i.loaded=!0),r.strategy===void 0?delete i.strategy:i.strategy=r.strategy,!0):(n===void 0?delete e[t]:e[t]=n,!1):(n===void 0?delete e[t]:e[t]=n,!0):!c&&o()}}},be=e=>Object.entries(e||{}).map(([e,t])=>({provider:t,version:e,from:t.from,registered:!0})),xe=(e,t)=>{if(t===void 0)return;let n;for(let r of e){let e=r.provider,i=e.treeShaking||e;if(r.loadedFactory===t||e.lib===t||i.lib===t){if(n)return;n=r}}return n},Se=async(e,t,n)=>{let r=++me;K.set(r,{pinned:n});try{let n=await q.loadShare(e,{customShareInfo:{shareConfig:t,[W]:r}});return{factory:n===!1?void 0:n,selectedProvider:G.get(r)}}finally{G.delete(r),K.delete(r)}},Ce=async(e,t,n,r,i,a,o=!0)=>{let s=a.from,c=ye(n,r,i,a);if(!c)return;let l;try{l=await Se(e,t,c)}catch(e){throw c.release(!1),e}let u=l==null?void 0:l.factory;if(u===void 0){c.release(!1);return}let d=be(n),f=c.provider.treeShaking||c.provider,p=c.provider.lib===u||f.lib===u;if(!o&&p){let e=d.findIndex(e=>e.provider===c.provider);e!==-1&&d.splice(e,1)}!o&&!d.some(e=>e.provider===a)&&d.push({provider:a,version:r,from:s,registered:!1,loadedFactory:p?u:void 0});let m=!o&&l.selectedProvider===c.provider&&p?a:l.selectedProvider;if(m&&!d.some(e=>e.provider===m)){let e=Y.get(m),t=typeof m.version==`string`&&m.version?m.version:r;d.push({provider:m,version:t,from:e?e.from:m.from,registered:(n==null?void 0:n[t])===m,loadedFactory:u})}let h=d.find(e=>e.provider===m)??xe(d,u);if(!c.release(!0,(h==null?void 0:h.provider)===c.provider)||!h)return;let g=Y.get(h.provider);h.from=h.provider===a?s:g?g.from:h.provider.from,g&&(h.provider.from=g.from);let _=typeof u==`function`?u():u,v=await Promise.resolve(_);if(!(h.registered&&(n==null?void 0:n[h.version])!==h.provider))return{provider:h.provider,selection:h,resolved:v}},X=new Set,we=new Map,Te=async(t,n,r)=>{var i;let a=!!((i=n.shareConfig)!=null&&i.singleton);if(!a&&n.canLiveRebind!==!1)try{var o,s;let i=C(r,t,n,`version-first`),l=x(r,i);if(!l||((o=n.shareConfig)==null?void 0:o.import)===!1&&w(i,n)||(i==null||(s=i.shareConfig)==null?void 0:s.import)===!1)return;let{version:u}=l;if(!a&&u!==n.version||!i.lib&&!i.loading&&!(i.loaded&&typeof i.get==`function`))return;let d=m(t,a,n.version,n.scope);if(_(c.share,d)!==void 0)return;let f=e[t],p=f==null?void 0:f[u];if(l.registered&&!w(p,i))return;let h,g=i.lib;if(!g&&V(i)||(!g&&i.loading&&(g=await i.loading),!g&&i.loaded&&typeof i.get==`function`&&(g=await i.get()),!g))return;let v=typeof g==`function`?g():g,y=await Promise.resolve(v),b=l.registered?p:i;h={provider:b,selection:{provider:b,version:u,from:i.from,registered:l.registered},resolved:y};let S=h==null?void 0:h.provider,T=h==null?void 0:h.selection;if(!T)return;let E=h==null?void 0:h.resolved;if(E===void 0||_(c.share,d)!==void 0||T.registered&&(f==null?void 0:f[T.version])!==S)return;A(c.share,d,de(E),T.from),X.add(S)}catch(e){console.error(`[Module Federation] Failed to bridge materialized shared module "`+t+`"`,e)}},Ee=async(t,n,r,i,a)=>{try{var o,s,l,u;let d=m(t,(o=n.shareConfig)==null?void 0:o.singleton,n.version,n.scope),p=_(c.share,d),h=T(c.share,d),g=C(r,t,n,`version-first`),v=g||S(r,t,n,`version-first`)||n,y=x(r,v);if(!y)return;let b=w(v,n),{version:D}=y;if(!((s=n.shareConfig)!=null&&s.singleton)&&D!==n.version)return;let O=i==null?void 0:i[D],k=E(L,te,e,`default`,t,y,g,O,`version-first`);if(!k&&!b)return;let{provider:j,scopeRootProvider:ee}=k||{provider:v,scopeRootProvider:void 0};if(n.canLiveRebind===!1||((l=n.shareConfig)==null?void 0:l.import)===!1&&w(j,n)||(j==null||(u=j.shareConfig)==null?void 0:u.import)===!1||p!==void 0&&h!==f)return;let M=e[t],N=M==null?void 0:M[D];if(y.registered&&!ee&&!w(N,j))return;let P=await Ce(t,n.shareConfig,M,D,N,j,y.registered&&!b),F=P==null?void 0:P.provider,I=P==null?void 0:P.selection;if(!I||w(F,n)||a&&(a.version!==I.version||!w({from:I.from},a.provider))||X.has(F))return;let R=P==null?void 0:P.resolved;if(R===void 0)return;let ne=_(c.share,d),re=T(c.share,d);if(ne!==void 0&&re!==f||I.registered&&(M==null?void 0:M[I.version])!==F)return;a||we.set(t,{version:I.version,provider:{from:I.from}}),X.add(F);let ie=de(R);A(c.share,d,ie,I.from)}catch(e){console.error(`[Module Federation] Failed to bridge external shared module "`+t+`"`,e)}};for(let e of p)await Promise.all(e.map(async e=>{let t=B[e];t&&t.materialize!==!1&&!t.treeShaking&&await Te(e,t,z[e])}));for(let[e,t]of Object.entries(B)){var De;if(t.treeShaking)continue;let n=m(e,(De=t.shareConfig)==null?void 0:De.singleton,t.version,t.scope);if(_(c.share,n)!==void 0)continue;let r=m(e,!0,t.version,t.scope),i=_(c.share,r);i!==void 0&&A(c.share,n,i,T(c.share,r))}let Oe=[`react`,`prop-types`,`react/jsx-runtime`,`react-dom`,`react-dom/client`,`@mui/material`,`@iobroker/gui-components`],ke=[[`react`,`prop-types`],[`react/jsx-runtime`,`react-dom`],[`react-dom/client`,`@mui/material`],[`@iobroker/gui-components`]],Z=new Map(Oe.map((e,t)=>[e,t])),Ae={2:[0],3:[0],4:[0,3],5:[1,0,3],6:[0,3,5]},Q=Oe.filter(e=>{var t;return B[e]&&(B[e].materialize!==!1||((t=B[e].shareConfig)==null?void 0:t.import)===!1&&!B[e].lazy)});c.providerInit||=new Map;let je=(e,t)=>{let n=c.providerInit.get(e);if(n)return n;let r=Promise.resolve().then(t);return c.providerInit.set(e,r),r.catch(()=>c.providerInit.delete(e)),r};var Me=async e=>{let t=new Set(e);for(let e of ke)await Promise.all(e.filter(e=>t.has(e)).map(async e=>{var t,n,r;let i=B[e],a=m(e,(t=i.shareConfig)==null?void 0:t.singleton,i.version,i.scope);if(((n=i.shareConfig)==null?void 0:n.import)===!1||i.treeShaking||_(c.share,a)!==void 0)return;let o=m(e,!0,i.version,i.scope),s=_(c.share,o);if(s!==void 0){A(c.share,a,s,T(c.share,o));return}let l=typeof H==`function`?H(e,i):void 0;if(l){let e=l.lib;if(!e&&l.loading&&(e=await l.loading),!e&&l.loaded&&typeof l.get==`function`&&(e=await l.get()),e){let t=typeof e==`function`?e():e,n=await Promise.resolve(t);A(c.share,a,(e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t})(n),l.from);return}if(typeof V==`function`&&V(l))return}let u=a.canonical,d=await je(u,async()=>{let e=await i.get(),t=typeof e==`function`?e():e;return Promise.resolve(t)});for(let t of((r=q.options.shared)==null?void 0:r[e])||[])t.get===i.get&&(t.eager=!0);let p=(e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t})(d),h=p===d?{...d}:p;h.__esModule!==!0&&Object.defineProperty(h,"__esModule",{value:!0,enumerable:!1}),A(c.share,a,h,f)}))};let $=e=>{var t,n;let r=B[e];if(!r.treeShaking&&((t=r.shareConfig)==null?void 0:t.import)!==!1)return!1;let i=m(e,(n=r.shareConfig)==null?void 0:n.singleton,r.version,r.scope);return r.treeShaking?F(c.share,i,f)===void 0&&_(c.share,i)===void 0:_(c.share,i)===void 0},Ne=e=>{var t,n;let r=B[e],i=m(e,(t=r.shareConfig)==null?void 0:t.singleton,r.version,r.scope);return(r.treeShaking?F(c.share,i,f)??_(c.share,i):_(c.share,i))===void 0?r.treeShaking||((n=r.shareConfig)==null?void 0:n.import)===!1?!0:typeof C==`function`&&!!C(z[e],e,r,`version-first`):!1},Pe=e=>{let t=!0;for(;t;){t=!1;for(let n of Q){let r=Z.get(n);e.has(r)||(Ae[r]||[]).some(t=>e.has(t))&&(e.add(r),t=!0)}}return e},Fe=Pe(new Set(Q.filter(Ne).map(e=>Z.get(e)))),Ie=Q.filter(e=>!Fe.has(Z.get(e)));var Le=Q.filter(e=>Fe.has(Z.get(e)));await Me(Ie);try{await g(async()=>{await Promise.all(await q.initializeSharing(`default`,{strategy:`version-first`,from:`build`,initScope:n}))})}catch(e){console.error(`[Module Federation]`,e)}oe();let Re=async()=>{for(let t of p)await Promise.all(t.map(async t=>{let n=B[t];n&&n.materialize!==!1&&!n.treeShaking&&await Ee(t,n,e[t],z[t],void 0)}))};ce?h=Re:await Re();try{var ze;let e=(ze=globalThis.__FEDERATION__)==null?void 0:ze.__SHARE__,t=Object.create(null);if(e)for(let[,n]of Object.entries(e))for(let e of u){let r=n==null?void 0:n[e];if(r)for(let[e,n]of Object.entries(r)){let r=B==null?void 0:B[e],i=z[e],a=we.get(e);if(!r||!i||!a||r.treeShaking)continue;let o=t[e]||(t[e]=Object.create(null));for(let[e,t]of Object.entries(n)){if(!t.lib||a.version!==e||!w(t,a.provider))continue;let n=i[e];(t===n||n!=null&&n.from&&t.from===n.from)&&(t===r||r.from&&t.from===r.from||o[e]===void 0&&(o[e]=t))}}}for(let e of p)await Promise.all(e.map(async e=>{let n=t[e];n&&await Ee(e,B[e],n,z[e],we.get(e))}))}catch(e){console.error(`[Module Federation] Failed to bridge external shared modules`,e)}let Be=async()=>{},Ve=async(t,n)=>{var r,i;let a=m(t,(r=n.shareConfig)==null?void 0:r.singleton,n.version,n.scope),o=n.treeShaking?F(c.share,a,f):_(c.share,a);if(((i=n.shareConfig)==null?void 0:i.import)!==!1||o!==void 0||ue(t,n,z[t]))return;let s=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},l=e==null?void 0:e[t],u=S(l,t,n,`version-first`)||n,d=x(l,u);if(!d)return;let p=e=>{var t;return e===n||(e==null||(t=e.shareConfig)==null?void 0:t.import)===!1};if(p(u))return;let{version:h}=d,g=l==null?void 0:l[h],v=await Ce(t,n.shareConfig,l,h,g,u,d.registered),y=v==null?void 0:v.selection,b=v==null?void 0:v.provider,C=v==null?void 0:v.resolved;if(!y||p(b)||C===void 0||(n.treeShaking?F(c.share,a,f):_(c.share,a))!==void 0||y.registered&&(l==null?void 0:l[y.version])!==b)return;let w=s(C);if(n.treeShaking){let e=n.treeShaking.providedExports??n.treeShaking.usedExports??[];M(c.share,a,e,w),I(c.share,a,f,w)}else A(c.share,a,w,y.from)},He=[],Ue=new Set;for(let e of Le){let t=B[e],n=Z.get(e);if($(e))try{var We;t.treeShaking?await Be(e,t):((We=t.shareConfig)==null?void 0:We.import)===!1&&await Ve(e,t)}catch(t){console.error(`[Module Federation] Failed to resolve runtime-only shared module "${e}"`,t)}$(e)&&Ue.add(n)}Pe(Ue),He.push(...Le.filter(e=>!Ue.has(Z.get(e)))),await Me(He);let Ge=new Map;return a.loadLazyShares=async t=>{let n=new Set(t);for(let t of p)await Promise.all(t.filter(e=>n.has(e)).map(t=>{let n=B[t];if(!n||!n.lazy||!$(t))return;let r=Ge.get(t);return r||(r=Ee(t,n,e[t],z[t],void 0).then(()=>$(t)?Ve(t,n):void 0),r.catch(()=>Ge.delete(t)),Ge.set(t,r)),r}))},o(q),q}async function A(e){let t=await O();if(!(e in t))throw Error(`[Module Federation] Module ${e} does not exist in container.`);return h&&await h(),c.pendingShareLoads&&await Promise.all(c.pendingShareLoads),t[e]().then(e=>()=>e)}export{A as get,k as init};
2
2
  if (typeof document !== 'undefined' && document.head) {
3
3
  try {
4
- for (const __mfWarmupPath of ["assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-BnL93BgK.js","assets/vite-preload-helper-CaC3yEL3.js","assets/dist-D4uJqRBO.js"]) {
4
+ for (const __mfWarmupPath of ["assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-Ceh8EDcF.js","assets/vite-preload-helper-DjNwdemH.js","assets/dist-CzitsFi7.js","assets/utils-DUKzLJUz.js"]) {
5
5
  const __mfWarmupLink = document.createElement('link');
6
6
  __mfWarmupLink.rel = 'modulepreload';
7
7
  __mfWarmupLink.crossOrigin = '';
package/admin/tab.html CHANGED
@@ -27,9 +27,9 @@
27
27
 
28
28
  <script type="text/javascript" onerror="setTimeout(function(){window.location.reload()}, 5000)" src="./../../lib/js/socket.io.js"></script>
29
29
  <title>Scripts</title>
30
- <script type="module" crossorigin src="./assets/mf-entry-bootstrap-0-0deef484.js"></script>
30
+ <script type="module" crossorigin src="./assets/mf-entry-bootstrap-0-d055f05d.js"></script>
31
31
  <link rel="stylesheet" crossorigin href="./assets/index-BHhhebRG.css">
32
- <link rel="modulepreload" crossorigin href="./assets/hostInit-2h2Cbsaw.js"><link rel="modulepreload" crossorigin href="./assets/index-CbQlIKB_.js"><link rel="modulepreload" crossorigin href="./remoteEntry.js"><link rel="modulepreload" crossorigin href="./assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-BnL93BgK.js"><link rel="modulepreload" crossorigin href="./assets/vite-preload-helper-CaC3yEL3.js"><link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-C0FnF6B9.js"><link rel="modulepreload" crossorigin href="./assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__180366418666083__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-NI-3Uv4e.js"><link rel="modulepreload" crossorigin href="./assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__180366418666083__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-DVaMIZyC.js"><link rel="modulepreload" crossorigin href="./assets/dist-D4uJqRBO.js"></head>
32
+ <link rel="modulepreload" crossorigin href="./assets/hostInit-CrHjJGJJ.js"><link rel="modulepreload" crossorigin href="./assets/index-DzAQnPTD.js"><link rel="modulepreload" crossorigin href="./remoteEntry.js"><link rel="modulepreload" crossorigin href="./assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-Ceh8EDcF.js"><link rel="modulepreload" crossorigin href="./assets/vite-preload-helper-DjNwdemH.js"><link rel="modulepreload" crossorigin href="./assets/helpers-BZgjFQNf.js"><link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-C0FnF6B9.js"><link rel="modulepreload" crossorigin href="./assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__234968779812303__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BRdHvuuG.js"><link rel="modulepreload" crossorigin href="./assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__234968779812303__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-DLWT3PGo.js"><link rel="modulepreload" crossorigin href="./assets/dist-CzitsFi7.js"><link rel="modulepreload" crossorigin href="./assets/utils-DUKzLJUz.js"></head>
33
33
  <body>
34
34
  <noscript> You need to enable JavaScript to run this app. </noscript>
35
35
  <script>
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JS_AI_ALIASES = exports.JS_AI_FIELDS = void 0;
4
+ exports.jsAiSettings = jsAiSettings;
5
+ /**
6
+ * Where this adapter keeps its AI settings. Everything else - providers, keys, the credential store,
7
+ * the push of long answers - is `@iobroker/ai-core`.
8
+ *
9
+ * Keys are stored as `encryptedNative` + `protectedNative` in io-package.json and never leave the
10
+ * adapter; the editor names a provider and the adapter adds the key.
11
+ */
12
+ const ai_core_1 = require("@iobroker/ai-core");
13
+ /** The `native` fields of the javascript adapter that hold its AI settings */
14
+ exports.JS_AI_FIELDS = {
15
+ credentialType: 'credentialType',
16
+ keys: {
17
+ openai: 'gptKey',
18
+ anthropic: 'claudeKey',
19
+ gemini: 'geminiKey',
20
+ deepseek: 'deepseekKey',
21
+ // the custom endpoint has a key of its own - it used to borrow the OpenAI one (#2369)
22
+ custom: 'gptBaseUrlKey',
23
+ },
24
+ credentialIds: {
25
+ openai: 'credentialIdGptKey',
26
+ anthropic: 'credentialIdClaudeKey',
27
+ gemini: 'credentialIdGeminiKey',
28
+ deepseek: 'credentialIdDeepseekKey',
29
+ custom: 'credentialIdGptBaseUrlKey',
30
+ },
31
+ customBaseUrl: 'gptBaseUrl',
32
+ allowSelfSignedCerts: 'allowSelfSignedCerts',
33
+ maxTokens: 'aiMaxTokens',
34
+ reasoningEffort: 'aiReasoningEffort',
35
+ };
36
+ /**
37
+ * The command names the editor and the settings dialog of this adapter used before `ai-core`. The
38
+ * Test button of `jsonConfig.json` and scripts that ask the adapter directly still send them
39
+ */
40
+ exports.JS_AI_ALIASES = {
41
+ chatCompletion: 'ai:chat',
42
+ testApiConnection: 'ai:models',
43
+ getAvailableAiProviders: 'ai:providers',
44
+ };
45
+ /**
46
+ * The AI settings of this instance
47
+ *
48
+ * @param config the configuration of the instance (`this.config`)
49
+ */
50
+ function jsAiSettings(config) {
51
+ return (0, ai_core_1.readAiSettings)(config, exports.JS_AI_FIELDS);
52
+ }
53
+ //# sourceMappingURL=ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/lib/ai.ts"],"names":[],"mappings":";;;AAgDA,oCAEC;AAlDD;;;;;;GAMG;AACH,+CAAyF;AAEzF,8EAA8E;AACjE,QAAA,YAAY,GAAmB;IACxC,cAAc,EAAE,gBAAgB;IAChC,IAAI,EAAE;QACF,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,WAAW;QACtB,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,aAAa;QACvB,sFAAsF;QACtF,MAAM,EAAE,eAAe;KAC1B;IACD,aAAa,EAAE;QACX,MAAM,EAAE,oBAAoB;QAC5B,SAAS,EAAE,uBAAuB;QAClC,MAAM,EAAE,uBAAuB;QAC/B,QAAQ,EAAE,yBAAyB;QACnC,MAAM,EAAE,2BAA2B;KACtC;IACD,aAAa,EAAE,YAAY;IAC3B,oBAAoB,EAAE,sBAAsB;IAC5C,SAAS,EAAE,aAAa;IACxB,eAAe,EAAE,mBAAmB;CACvC,CAAC;AAEF;;;GAGG;AACU,QAAA,aAAa,GAAG;IACzB,cAAc,EAAE,SAAS;IACzB,iBAAiB,EAAE,WAAW;IAC9B,uBAAuB,EAAE,cAAc;CACjC,CAAC;AAEX;;;;GAIG;AACH,SAAgB,YAAY,CAAC,MAAc;IACvC,OAAO,IAAA,wBAAc,EAAC,MAAM,EAAE,oBAAY,CAAC,CAAC;AAChD,CAAC","sourcesContent":["/**\n * Where this adapter keeps its AI settings. Everything else - providers, keys, the credential store,\n * the push of long answers - is `@iobroker/ai-core`.\n *\n * Keys are stored as `encryptedNative` + `protectedNative` in io-package.json and never leave the\n * adapter; the editor names a provider and the adapter adds the key.\n */\nimport { readAiSettings, type AiNativeFields, type AiSettings } from '@iobroker/ai-core';\n\n/** The `native` fields of the javascript adapter that hold its AI settings */\nexport const JS_AI_FIELDS: AiNativeFields = {\n credentialType: 'credentialType',\n keys: {\n openai: 'gptKey',\n anthropic: 'claudeKey',\n gemini: 'geminiKey',\n deepseek: 'deepseekKey',\n // the custom endpoint has a key of its own - it used to borrow the OpenAI one (#2369)\n custom: 'gptBaseUrlKey',\n },\n credentialIds: {\n openai: 'credentialIdGptKey',\n anthropic: 'credentialIdClaudeKey',\n gemini: 'credentialIdGeminiKey',\n deepseek: 'credentialIdDeepseekKey',\n custom: 'credentialIdGptBaseUrlKey',\n },\n customBaseUrl: 'gptBaseUrl',\n allowSelfSignedCerts: 'allowSelfSignedCerts',\n maxTokens: 'aiMaxTokens',\n reasoningEffort: 'aiReasoningEffort',\n};\n\n/**\n * The command names the editor and the settings dialog of this adapter used before `ai-core`. The\n * Test button of `jsonConfig.json` and scripts that ask the adapter directly still send them\n */\nexport const JS_AI_ALIASES = {\n chatCompletion: 'ai:chat',\n testApiConnection: 'ai:models',\n getAvailableAiProviders: 'ai:providers',\n} as const;\n\n/**\n * The AI settings of this instance\n *\n * @param config the configuration of the instance (`this.config`)\n */\nexport function jsAiSettings(config: object): AiSettings {\n return readAiSettings(config, JS_AI_FIELDS);\n}\n"]}
@@ -59,6 +59,26 @@ let inspector;
59
59
  let scriptToDebug = '';
60
60
  /** Main file of the debugged adapter */
61
61
  let instanceToDebug = '';
62
+ /** The inspector is on its way out, so every further request to end it is ignored */
63
+ let ending = false;
64
+ /**
65
+ * End this process, but stop the debugged process first and give it the time to shut down.
66
+ * Its output goes through the pipes of this process, so they must stay open till it is gone (see `stopChild`).
67
+ */
68
+ async function endInspector(exitCode) {
69
+ if (ending) {
70
+ return;
71
+ }
72
+ ending = true;
73
+ try {
74
+ await inspector?.stopChild();
75
+ }
76
+ catch (e) {
77
+ debuglog(`Cannot stop the debugged process: ${e}`);
78
+ }
79
+ // Give the last messages to the host the chance to leave
80
+ setTimeout(() => process.exit(exitCode), 200);
81
+ }
62
82
  function sendToHost(data) {
63
83
  if (data.cmd === 'error') {
64
84
  console.error(`[DEBUGGER] ${data.error}`);
@@ -217,6 +237,7 @@ class NodeInspector {
217
237
  this.Runtime.runIfWaitingForDebugger(),
218
238
  ]);
219
239
  }
240
+ /** Kill the debugged process without waiting for it. Only for the exit handler, where nothing can be awaited */
220
241
  killChild() {
221
242
  this.client.reset();
222
243
  if (this.child) {
@@ -224,6 +245,33 @@ class NodeInspector {
224
245
  this.child = null;
225
246
  }
226
247
  }
248
+ /**
249
+ * Stop the debugged process and wait till it is really gone.
250
+ *
251
+ * The debugged process is started with `--debug`, so it writes its whole log to the stdout of this process, and it
252
+ * logs while it is shutting down. If this process would end first, these pipes would be closed under it and every
253
+ * further log line would fail with `EPIPE` - which the adapter reports as an uncaught exception and dies (#2382).
254
+ */
255
+ async stopChild(timeoutMs = 3_000) {
256
+ this.client.reset();
257
+ const child = this.child;
258
+ this.child = null;
259
+ if (!child || child.exitCode !== null || child.signalCode !== null) {
260
+ return;
261
+ }
262
+ await new Promise(resolve => {
263
+ const timeout = setTimeout(() => {
264
+ // It does not want to end - take the hard way
265
+ child.kill('SIGKILL');
266
+ resolve();
267
+ }, timeoutMs);
268
+ child.once('exit', () => {
269
+ clearTimeout(timeout);
270
+ resolve();
271
+ });
272
+ child.kill();
273
+ });
274
+ }
227
275
  finish(reason) {
228
276
  if (this.finished) {
229
277
  return;
@@ -231,8 +279,7 @@ class NodeInspector {
231
279
  this.finished = true;
232
280
  debuglog(reason);
233
281
  sendToHost({ cmd: 'finished', text: reason });
234
- this.killChild();
235
- setTimeout(() => process.exit(0), 200);
282
+ void endInspector(0);
236
283
  }
237
284
  childPrint(text, isError) {
238
285
  if (isError) {
@@ -449,8 +496,7 @@ function startDebugging(data) {
449
496
  reportError(e instanceof StartupError
450
497
  ? e.message
451
498
  : `Internal error in inspector: ${e instanceof Error ? e.stack : errorToString(e)}`);
452
- inspector?.killChild();
453
- setTimeout(() => process.exit(1), 200);
499
+ void endInspector(1);
454
500
  });
455
501
  }
456
502
  async function processCommand(data) {
@@ -460,7 +506,8 @@ async function processCommand(data) {
460
506
  return;
461
507
  }
462
508
  if (data.cmd === 'end') {
463
- process.exit(0);
509
+ await endInspector(0);
510
+ return;
464
511
  }
465
512
  if (!inspector) {
466
513
  reportError(`Cannot process "${data.cmd}": the debugger is not started`);
@@ -629,15 +676,24 @@ process.on('message', (message) => {
629
676
  }
630
677
  processCommand(command).catch(e => reportError(`Cannot process "${command?.cmd}"`, e));
631
678
  });
679
+ // A closed pipe of the own output (the host can be gone already) must not end the inspector with an EPIPE
680
+ process.stdout.on('error', () => { });
681
+ process.stderr.on('error', () => { });
632
682
  // Handle all possible exits and never leave the debugged process behind
633
683
  process.on('exit', () => inspector?.killChild());
634
- process.on('disconnect', () => process.exit(0));
635
- process.once('SIGTERM', () => process.exit(0));
636
- process.once('SIGHUP', () => process.exit(0));
684
+ process.on('disconnect', () => void endInspector(0));
685
+ process.once('SIGTERM', () => void endInspector(0));
686
+ process.once('SIGHUP', () => void endInspector(0));
637
687
  process.on('uncaughtException', (e) => {
688
+ // The connection to the debugged process is reset as soon as it ends (node-inspect's client does not listen for
689
+ // that), and while the inspector is on its way out, there is nothing worth reporting anymore
690
+ if (ending || e?.code === 'ECONNRESET' || e?.code === 'EPIPE') {
691
+ debuglog(`Ignored error in the inspector: ${e?.stack || e?.message}`);
692
+ void endInspector(0);
693
+ return;
694
+ }
638
695
  reportError(`Internal error in inspector: ${e.stack || e.message}`);
639
- inspector?.killChild();
640
- process.exit(1);
696
+ void endInspector(1);
641
697
  });
642
698
  sendToHost({ cmd: 'ready' });
643
699
  //# sourceMappingURL=inspect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/lib/inspect.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright Node.js contributors. All rights reserved.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/*\n * The inspector process. It is forked by the adapter (see `debugStart` in main.ts) and starts the process to debug -\n * the javascript adapter itself with `--debugScript <scriptId>` or another adapter - with an enabled inspector.\n * It connects to it via the DevTools protocol and translates the commands of the GUI into protocol calls and back.\n *\n * The communication with the host happens via IPC with JSON strings:\n * - host -> inspector: `DebugCommand`\n * - inspector -> host: `CommandToHost`\n */\nimport { spawn, type ChildProcessWithoutNullStreams } from 'node:child_process';\nimport { existsSync, readFileSync } from 'node:fs';\nimport type { Debugger, Runtime } from 'node:inspector';\nimport { join, normalize } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { debuglog as utilDebugLog } from 'node:util';\n\n// @ts-expect-error no types available\nimport InspectClient from 'node-inspect/lib/internal/inspect_client';\n\nconst debuglog = utilDebugLog('inspect');\n\n/** Stay paused on the first line of the debugged process (used for the debugging of adapter instances) */\nconst breakOnStart = process.argv.includes('--breakOnStart');\n\n/**\n * By debugging of a script, stepping and \"stop on exception\" should not stop in the node internals,\n * in 3rd party modules and in the adapter itself (e.g., in sandbox.js)\n */\nconst SCRIPT_BLACKBOX_PATTERNS = ['^node:', '/node_modules/', '[iI]o[bB]roker\\\\.javascript/build/'];\n\ninterface InspectClientType {\n connect(port: number, host: string): Promise<void>;\n callMethod(method: string, params?: Record<string, unknown>): Promise<any>;\n reset(): void;\n on(event: 'debugEvent', listener: (method: string, params: DebugEventParams | undefined) => void): void;\n}\n\ntype ProtocolDomain = Record<string, (params?: Record<string, unknown>) => Promise<any>>;\n\n/** Parameters of the protocol events, which are processed here */\ninterface DebugEventParams {\n /** Debugger.scriptParsed */\n scriptId?: Runtime.ScriptId;\n url?: string;\n /** Debugger.paused */\n reason?: string;\n callFrames?: Debugger.CallFrame[];\n /** Runtime.consoleAPICalled */\n type?: string;\n args?: Runtime.RemoteObject[];\n /** Runtime.executionContextDestroyed */\n executionContextId?: number;\n /** Runtime.executionContextCreated */\n context?: { id: number; name: string };\n}\n\ninterface CommandToHost {\n cmd:\n | 'ready'\n | 'readyToDebug'\n | 'paused'\n | 'resumed'\n | 'script'\n | 'log'\n | 'error'\n | 'finished'\n | 'sb'\n | 'cb'\n | 'scope'\n | 'setValue'\n | 'expressions'\n | 'getPossibleBreakpoints';\n [attr: string]: unknown;\n}\n\ninterface DebugCommand {\n cmd:\n | 'start'\n | 'end'\n | 'source'\n | 'sb'\n | 'cb'\n | 'pause'\n | 'cont'\n | 'next'\n | 'step'\n | 'out'\n | 'scope'\n | 'setValue'\n | 'expressions'\n | 'stopOnException'\n | 'getPossibleBreakpoints';\n /** start: ID of the script to debug, like `script.js.myScript` */\n scriptName?: string;\n /** start: instance number of the javascript adapter */\n instance?: number;\n /** start: adapter instance to debug, like `hm-rpc.0`, if no script name is given */\n adapterInstance?: string;\n /** source */\n scriptId?: Runtime.ScriptId;\n /** sb: locations, cb: breakpoint IDs */\n breakpoints?: (Debugger.Location | Debugger.BreakpointId)[];\n /** scope: scopes of the current call frame with their index in the scope chain */\n scopes?: (Debugger.Scope & { index?: number })[];\n /** setValue */\n variableName?: string;\n scopeNumber?: number;\n newValue?: { value?: unknown };\n /** setValue, expressions */\n callFrameId?: Debugger.CallFrameId;\n /** expressions */\n expressions?: { name: string }[];\n /** stopOnException */\n state?: boolean;\n /** getPossibleBreakpoints */\n start?: Debugger.Location;\n end?: Debugger.Location;\n}\n\nclass StartupError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'StartupError';\n }\n}\n\nlet inspector: NodeInspector | undefined;\n/** ID of the debugged script, like `script.js.myScript` */\nlet scriptToDebug = '';\n/** Main file of the debugged adapter */\nlet instanceToDebug = '';\n\nfunction sendToHost(data: CommandToHost): void {\n if (data.cmd === 'error') {\n console.error(`[DEBUGGER] ${data.error as string}`);\n }\n try {\n process.send?.(JSON.stringify(data));\n } catch (e) {\n // The host is not reachable anymore\n console.error(`[DEBUGGER] Cannot send to host: ${e as Error}`);\n }\n}\n\nfunction errorToString(e: unknown): string {\n if (e instanceof Error) {\n return e.message;\n }\n return typeof e === 'string' ? e : JSON.stringify(e);\n}\n\nfunction reportError(text: string, e?: unknown): void {\n sendToHost({ cmd: 'error', error: e === undefined ? text : `${text}: ${errorToString(e)}` });\n}\n\nfunction remoteObjectToString(obj: Runtime.RemoteObject | undefined): string {\n if (!obj) {\n return '';\n }\n if (obj.value !== undefined) {\n return typeof obj.value === 'string' ? obj.value : JSON.stringify(obj.value);\n }\n return obj.unserializableValue || obj.description || obj.type;\n}\n\nfunction consoleTypeToSeverity(type: string | undefined): ioBroker.LogLevel {\n switch (type) {\n case 'warning':\n return 'warn';\n case 'error':\n case 'assert':\n return 'error';\n case 'debug':\n return 'debug';\n default:\n return 'info';\n }\n}\n\n/** Values like NaN, Infinity, -0 or BigInt cannot be transferred as JSON value */\nfunction toCallArgument(value: unknown): Runtime.CallArgument {\n if (typeof value === 'number' && (!Number.isFinite(value) || Object.is(value, -0))) {\n return { unserializableValue: Object.is(value, -0) ? '-0' : String(value) };\n }\n if (typeof value === 'bigint') {\n return { unserializableValue: `${value}n` };\n }\n return value === undefined ? {} : { value };\n}\n\nfunction isUrlOfFile(url: string, file: string): boolean {\n let path = url;\n if (url.startsWith('file://')) {\n try {\n path = fileURLToPath(url);\n } catch {\n return false;\n }\n }\n path = normalize(path);\n file = normalize(file);\n return process.platform === 'win32' ? path.toLowerCase() === file.toLowerCase() : path === file;\n}\n\nfunction createDomain(domain: string, client: InspectClientType): ProtocolDomain {\n return new Proxy<ProtocolDomain>(\n {},\n {\n get: (_target, method: string | symbol) =>\n // the object must not look like a promise\n typeof method === 'string' && method !== 'then'\n ? (params?: Record<string, unknown>): Promise<any> =>\n client.callMethod(`${domain}.${method}`, params)\n : undefined,\n },\n );\n}\n\nfunction runScript(\n script: string,\n scriptArgs: string[],\n childPrint: (text: string, isError?: boolean) => void,\n): Promise<[ChildProcessWithoutNullStreams, number, string]> {\n return new Promise((resolve, reject) => {\n // Always break on start: the process must not run before the debugger is connected, else it could\n // execute the `debugger;` statement of the script before. Port 0 means any free port.\n const child = spawn(process.execPath, ['--inspect-brk=127.0.0.1:0', normalize(script), ...scriptArgs]);\n child.stdout.setEncoding('utf8');\n child.stderr.setEncoding('utf8');\n child.stdout.on('data', (text: string) => childPrint(text));\n child.stderr.on('data', (text: string) => childPrint(text, true));\n\n let output = '';\n const timeout = setTimeout(() => {\n child.stderr.removeListener('data', waitForListenHint);\n child.kill();\n reject(new StartupError('Timeout by starting of the process to debug'));\n }, 10_000);\n\n function waitForListenHint(text: string): void {\n output += text;\n const res = /Debugger listening on ws:\\/\\/\\[?(.+?)]?:(\\d+)\\//.exec(output);\n if (res) {\n clearTimeout(timeout);\n child.stderr.removeListener('data', waitForListenHint);\n resolve([child, parseInt(res[2], 10), res[1]]);\n }\n }\n\n child.stderr.on('data', waitForListenHint);\n child.on('error', error => {\n clearTimeout(timeout);\n reject(new StartupError(`Cannot start the process to debug: ${error.message}`));\n });\n });\n}\n\nclass NodeInspector {\n readonly Debugger: ProtocolDomain;\n readonly Runtime: ProtocolDomain;\n\n private readonly client: InspectClientType = new InspectClient();\n private readonly file: string;\n private readonly args: string[];\n private child: ChildProcessWithoutNullStreams | null = null;\n /** The protocol does not deliver the URLs in the call frames anymore, so remember them */\n private readonly scriptUrls: Record<Runtime.ScriptId, string> = {};\n private mainScriptId: Runtime.ScriptId | undefined;\n private mainFile = '';\n private mainScriptSource: Promise<string> | null = null;\n /** Sometimes the first pause comes before the main script is parsed */\n private delayedContext: DebugEventParams | null = null;\n private pausedOnFirstLine = false;\n /** Execution context of the debugged script */\n private scriptContextId: number | undefined;\n private finished = false;\n\n constructor(file: string, args: string[]) {\n this.file = file;\n this.args = args;\n this.Debugger = createDomain('Debugger', this.client);\n this.Runtime = createDomain('Runtime', this.client);\n this.client.on('debugEvent', (fullName, params) => this.handleDebugEvent(fullName, params || {}));\n }\n\n async start(): Promise<void> {\n const [child, port, host] = await runScript(this.file, this.args, (text, isError) =>\n this.childPrint(text, isError),\n );\n this.child = child;\n child.on('exit', code => this.finish(`Process exited with code ${code}`));\n\n for (let attempt = 1; ; attempt++) {\n try {\n await this.client.connect(port, host);\n break;\n } catch (e) {\n debuglog(`Connection attempt #${attempt} failed: ${e as Error}`);\n if (attempt >= 10) {\n throw new StartupError(`Cannot connect to the debugger on ${host}:${port}`);\n }\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n }\n\n await Promise.all([\n this.Runtime.enable(),\n this.Debugger.enable(),\n this.Debugger.setPauseOnExceptions({ state: 'none' }),\n this.Debugger.setAsyncCallStackDepth({ maxDepth: 1 }),\n this.Debugger.setBlackboxPatterns({ patterns: scriptToDebug ? SCRIPT_BLACKBOX_PATTERNS : [] }),\n this.Runtime.runIfWaitingForDebugger(),\n ]);\n }\n\n killChild(): void {\n this.client.reset();\n if (this.child) {\n this.child.kill();\n this.child = null;\n }\n }\n\n private finish(reason: string): void {\n if (this.finished) {\n return;\n }\n this.finished = true;\n debuglog(reason);\n sendToHost({ cmd: 'finished', text: reason });\n this.killChild();\n setTimeout(() => process.exit(0), 200);\n }\n\n private childPrint(text: string, isError?: boolean): void {\n if (isError) {\n const lines = text\n .split(/\\r\\n|\\r|\\n/g)\n .filter(line => !!line)\n .map(line => `< ${line}`);\n lines.length && process.stdout.write(`${lines.join('\\n')}\\n`);\n }\n // The debugged process ended, but it waits till the debugger disconnects\n if (text.includes('Waiting for the debugger to disconnect')) {\n this.finish('Process finished');\n }\n }\n\n private handleDebugEvent(fullName: string, params: DebugEventParams): void {\n switch (fullName) {\n case 'Debugger.scriptParsed':\n this.onScriptParsed(params);\n break;\n\n case 'Debugger.paused':\n this.onPaused(params);\n break;\n\n case 'Debugger.resumed':\n sendToHost({ cmd: 'resumed', context: params });\n break;\n\n case 'Runtime.consoleAPICalled':\n this.onConsoleApiCalled(params);\n break;\n\n case 'Runtime.executionContextCreated':\n // main.ts gives the context of a script the name of the script\n if (scriptToDebug && params.context?.name === scriptToDebug) {\n this.scriptContextId = params.context.id;\n }\n break;\n\n case 'Runtime.executionContextDestroyed':\n if (params.executionContextId === 1) {\n // the main context of the debugged process is gone\n this.finish('Process finished');\n } else if (this.scriptContextId !== undefined && params.executionContextId === this.scriptContextId) {\n // the script was stopped, but the process is still running\n sendToHost({ cmd: 'finished', context: params });\n }\n break;\n\n default:\n debuglog(`${fullName}: ${JSON.stringify(params)}`);\n break;\n }\n }\n\n private onScriptParsed(params: DebugEventParams): void {\n const { scriptId, url } = params;\n if (!scriptId || !url) {\n return;\n }\n this.scriptUrls[scriptId] = url;\n\n const isMain = scriptToDebug ? url === scriptToDebug : !!instanceToDebug && isUrlOfFile(url, instanceToDebug);\n if (!isMain) {\n return;\n }\n debuglog(`Script to debug parsed: ${scriptId}`);\n this.mainScriptId = scriptId;\n this.mainFile = url.replace('file:///', '');\n this.mainScriptSource = this.Debugger.getScriptSource({ scriptId }).then(\n (result: Debugger.GetScriptSourceReturnType) => result.scriptSource,\n );\n\n if (this.delayedContext) {\n const context = this.delayedContext;\n this.delayedContext = null;\n void this.sendReadyToDebug(context);\n }\n }\n\n private onPaused(params: DebugEventParams): void {\n if (!this.pausedOnFirstLine) {\n if (params.reason === 'Break on start' && !breakOnStart) {\n // the process was started with --inspect-brk only to have time to set up the debugger\n this.Debugger.resume().catch(e => reportError('Cannot resume', e));\n return;\n }\n if (params.reason === 'exception') {\n // ignore all exceptions till the start of the script\n this.Debugger.resume().catch(e => reportError('Cannot resume', e));\n return;\n }\n }\n\n this.enrichCallFrames(params);\n\n if (\n this.pausedOnFirstLine &&\n scriptToDebug &&\n params.reason === 'step' &&\n !params.callFrames?.[0]?.url?.startsWith('script.js.')\n ) {\n // Stepping left the script, e.g., at the end of a callback. The blackbox patterns do not cover\n // all internals of node.js, so continue the execution instead of stopping there\n this.Debugger.resume().catch(e => reportError('Cannot resume', e));\n return;\n }\n\n if (this.pausedOnFirstLine) {\n sendToHost({ cmd: 'paused', context: params });\n } else {\n this.pausedOnFirstLine = true;\n if (this.mainScriptSource) {\n void this.sendReadyToDebug(params);\n } else {\n // store the context to send it, when the main script is parsed\n this.delayedContext = params;\n }\n }\n }\n\n private async sendReadyToDebug(context: DebugEventParams): Promise<void> {\n try {\n const script = await this.mainScriptSource;\n this.enrichCallFrames(context);\n sendToHost({\n cmd: 'readyToDebug',\n scriptId: this.mainScriptId,\n script,\n context,\n url: this.mainFile,\n });\n } catch (e) {\n reportError('Cannot read the source of the script to debug', e);\n }\n }\n\n private enrichCallFrames(context: DebugEventParams): void {\n context.callFrames?.forEach(frame => {\n if (!frame.url) {\n frame.url = this.scriptUrls[frame.location.scriptId] || '';\n }\n });\n }\n\n private onConsoleApiCalled(params: DebugEventParams): void {\n const args = params.args || [];\n if (instanceToDebug) {\n sendToHost({\n cmd: 'log',\n severity: consoleTypeToSeverity(params.type),\n text: args.map(arg => remoteObjectToString(arg)).join(' '),\n ts: Date.now(),\n });\n return;\n }\n\n // The sandbox logs in debug mode as `console.log(`${severity}$$${scriptName}$$${message}`, Date.now())`\n const text = remoteObjectToString(args[0]);\n const marker = `$$${scriptToDebug}$$`;\n const pos = text.indexOf(marker);\n if (pos !== -1) {\n sendToHost({\n cmd: 'log',\n severity: text.substring(0, pos),\n text: text.substring(pos + marker.length),\n ts: typeof args[1]?.value === 'number' ? args[1].value : Date.now(),\n });\n } else if (params.type === 'warning' || params.type === 'error') {\n sendToHost({\n cmd: 'log',\n severity: consoleTypeToSeverity(params.type),\n text: args.map(arg => remoteObjectToString(arg)).join(' '),\n ts: Date.now(),\n });\n }\n }\n}\n\nfunction resolveAdapterMainFile(adapter: string): string | undefined {\n try {\n return require.resolve(`iobroker.${adapter}`);\n } catch {\n // try to locate it in the same node_modules directory as this adapter\n const dir = normalize(join(__dirname, '..', '..', '..', `iobroker.${adapter}`));\n if (existsSync(join(dir, 'package.json'))) {\n try {\n const pack = JSON.parse(readFileSync(join(dir, 'package.json'), 'utf8'));\n const main = join(dir, pack.main || `${adapter}.js`);\n if (existsSync(main)) {\n return main;\n }\n } catch {\n // ignore\n }\n }\n }\n return undefined;\n}\n\nfunction startDebugging(data: DebugCommand): void {\n if (inspector) {\n reportError('The debugger is already started');\n return;\n }\n\n if (data.scriptName) {\n scriptToDebug = data.scriptName;\n inspector = new NodeInspector(join(__dirname, '..', 'main.js'), [\n (data.instance || 0).toString(),\n '--debug',\n '--debugScript',\n scriptToDebug,\n ]);\n } else {\n const [adapter, instance] = (data.adapterInstance || '').split('.');\n const file = resolveAdapterMainFile(adapter);\n if (!file) {\n reportError(`Cannot locate iobroker.${adapter}`);\n setTimeout(() => {\n sendToHost({ cmd: 'finished', context: `Cannot locate iobroker.${adapter}` });\n setTimeout(() => process.exit(0), 500);\n }, 200);\n return;\n }\n instanceToDebug = file;\n inspector = new NodeInspector(file, [instance || '0', '--debug']);\n }\n\n inspector.start().catch((e: unknown) => {\n reportError(\n e instanceof StartupError\n ? e.message\n : `Internal error in inspector: ${e instanceof Error ? e.stack : errorToString(e)}`,\n );\n inspector?.killChild();\n setTimeout(() => process.exit(1), 200);\n });\n}\n\nasync function processCommand(data: DebugCommand): Promise<void> {\n debuglog(`processCommand: ${JSON.stringify(data)}`);\n\n if (data.cmd === 'start') {\n startDebugging(data);\n return;\n }\n if (data.cmd === 'end') {\n process.exit(0);\n }\n if (!inspector) {\n reportError(`Cannot process \"${data.cmd}\": the debugger is not started`);\n return;\n }\n const { Debugger, Runtime } = inspector;\n\n switch (data.cmd) {\n case 'source':\n try {\n const { scriptSource } = (await Debugger.getScriptSource({\n scriptId: data.scriptId,\n })) as Debugger.GetScriptSourceReturnType;\n sendToHost({ cmd: 'script', scriptId: data.scriptId, text: scriptSource });\n } catch (e) {\n reportError(`Cannot read the source of script ${data.scriptId}`, e);\n }\n break;\n\n case 'cont':\n case 'next':\n case 'step':\n case 'out':\n case 'pause': {\n const method = { cont: 'resume', next: 'stepOver', step: 'stepInto', out: 'stepOut', pause: 'pause' }[\n data.cmd\n ];\n try {\n await Debugger[method]();\n } catch (e) {\n reportError(`Cannot execute \"${data.cmd}\"`, e);\n }\n break;\n }\n\n case 'sb': {\n const breakpoints = await Promise.all(\n ((data.breakpoints || []) as Debugger.Location[]).map(async bp => {\n try {\n const result = (await Debugger.setBreakpoint({\n location: {\n scriptId: bp.scriptId,\n lineNumber: bp.lineNumber,\n columnNumber: bp.columnNumber,\n },\n })) as Debugger.SetBreakpointReturnType;\n return { id: result.breakpointId, location: result.actualLocation };\n } catch (e) {\n reportError(`Cannot set breakpoint on line ${bp.lineNumber + 1}`, e);\n return null;\n }\n }),\n );\n sendToHost({ cmd: 'sb', breakpoints: breakpoints.filter(bp => bp) });\n break;\n }\n\n case 'cb': {\n const breakpointIds = await Promise.all(\n ((data.breakpoints || []) as Debugger.BreakpointId[]).map(async breakpointId => {\n try {\n await Debugger.removeBreakpoint({ breakpointId });\n } catch (e) {\n // The breakpoint does not exist (anymore), so it is removed anyway\n debuglog(`Cannot clear breakpoint ${breakpointId}: ${e as Error}`);\n }\n return breakpointId;\n }),\n );\n sendToHost({ cmd: 'cb', breakpoints: breakpointIds });\n break;\n }\n\n case 'scope': {\n const scopes = await Promise.all(\n (data.scopes || [])\n .filter(scope => scope?.object?.objectId)\n .map(async scope => {\n try {\n const properties = (await Runtime.getProperties({\n objectId: scope.object.objectId,\n generatePreview: true,\n })) as Runtime.GetPropertiesReturnType;\n return { type: scope.type, name: scope.name, index: scope.index, properties };\n } catch (e) {\n // e.g., the execution was resumed in the meantime\n debuglog(`Cannot read scope: ${e as Error}`);\n return null;\n }\n }),\n );\n sendToHost({ cmd: 'scope', scopes: scopes.filter(scope => scope) });\n break;\n }\n\n case 'setValue':\n try {\n await Debugger.setVariableValue({\n variableName: data.variableName,\n scopeNumber: data.scopeNumber,\n newValue: toCallArgument(data.newValue?.value),\n callFrameId: data.callFrameId,\n });\n sendToHost({\n cmd: 'setValue',\n variableName: data.variableName,\n scopeNumber: data.scopeNumber,\n newValue: data.newValue,\n callFrameId: data.callFrameId,\n });\n } catch (e) {\n reportError(`Cannot set value of \"${data.variableName}\"`, e);\n }\n break;\n\n case 'expressions': {\n const expressions = await Promise.all(\n (data.expressions || []).map(async item => {\n try {\n const { result } = (await Debugger.evaluateOnCallFrame({\n callFrameId: data.callFrameId,\n expression: item.name,\n objectGroup: 'node-inspect',\n generatePreview: true,\n })) as Debugger.EvaluateOnCallFrameReturnType;\n return { name: item.name, result };\n } catch (e) {\n return {\n name: item.name,\n result: {\n type: 'object',\n subtype: 'error',\n className: 'Error',\n description: errorToString(e),\n },\n };\n }\n }),\n );\n sendToHost({ cmd: 'expressions', expressions });\n break;\n }\n\n case 'stopOnException':\n try {\n await Debugger.setPauseOnExceptions({ state: data.state ? 'all' : 'none' });\n } catch (e) {\n reportError('Cannot change \"stop on exception\"', e);\n }\n break;\n\n case 'getPossibleBreakpoints':\n try {\n const { locations } = (await Debugger.getPossibleBreakpoints({\n start: data.start,\n end: data.end,\n })) as Debugger.GetPossibleBreakpointsReturnType;\n sendToHost({ cmd: 'getPossibleBreakpoints', breakpoints: locations });\n } catch (e) {\n reportError('Cannot get possible breakpoints', e);\n }\n break;\n\n default:\n console.error(`[DEBUGGER] Unknown command: ${JSON.stringify(data)}`);\n break;\n }\n}\n\nprocess.on('message', (message: unknown): void => {\n let command: DebugCommand;\n try {\n command = typeof message === 'string' ? (JSON.parse(message) as DebugCommand) : (message as DebugCommand);\n } catch {\n console.error(`[DEBUGGER] Cannot parse: ${JSON.stringify(message)}`);\n return;\n }\n processCommand(command).catch(e => reportError(`Cannot process \"${command?.cmd}\"`, e));\n});\n\n// Handle all possible exits and never leave the debugged process behind\nprocess.on('exit', () => inspector?.killChild());\nprocess.on('disconnect', () => process.exit(0));\nprocess.once('SIGTERM', () => process.exit(0));\nprocess.once('SIGHUP', () => process.exit(0));\nprocess.on('uncaughtException', (e: Error) => {\n reportError(`Internal error in inspector: ${e.stack || e.message}`);\n inspector?.killChild();\n process.exit(1);\n});\n\nsendToHost({ cmd: 'ready' });\n"]}
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/lib/inspect.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright Node.js contributors. All rights reserved.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/*\n * The inspector process. It is forked by the adapter (see `debugStart` in main.ts) and starts the process to debug -\n * the javascript adapter itself with `--debugScript <scriptId>` or another adapter - with an enabled inspector.\n * It connects to it via the DevTools protocol and translates the commands of the GUI into protocol calls and back.\n *\n * The communication with the host happens via IPC with JSON strings:\n * - host -> inspector: `DebugCommand`\n * - inspector -> host: `CommandToHost`\n */\nimport { spawn, type ChildProcessWithoutNullStreams } from 'node:child_process';\nimport { existsSync, readFileSync } from 'node:fs';\nimport type { Debugger, Runtime } from 'node:inspector';\nimport { join, normalize } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { debuglog as utilDebugLog } from 'node:util';\n\n// @ts-expect-error no types available\nimport InspectClient from 'node-inspect/lib/internal/inspect_client';\n\nconst debuglog = utilDebugLog('inspect');\n\n/** Stay paused on the first line of the debugged process (used for the debugging of adapter instances) */\nconst breakOnStart = process.argv.includes('--breakOnStart');\n\n/**\n * By debugging of a script, stepping and \"stop on exception\" should not stop in the node internals,\n * in 3rd party modules and in the adapter itself (e.g., in sandbox.js)\n */\nconst SCRIPT_BLACKBOX_PATTERNS = ['^node:', '/node_modules/', '[iI]o[bB]roker\\\\.javascript/build/'];\n\ninterface InspectClientType {\n connect(port: number, host: string): Promise<void>;\n callMethod(method: string, params?: Record<string, unknown>): Promise<any>;\n reset(): void;\n on(event: 'debugEvent', listener: (method: string, params: DebugEventParams | undefined) => void): void;\n}\n\ntype ProtocolDomain = Record<string, (params?: Record<string, unknown>) => Promise<any>>;\n\n/** Parameters of the protocol events, which are processed here */\ninterface DebugEventParams {\n /** Debugger.scriptParsed */\n scriptId?: Runtime.ScriptId;\n url?: string;\n /** Debugger.paused */\n reason?: string;\n callFrames?: Debugger.CallFrame[];\n /** Runtime.consoleAPICalled */\n type?: string;\n args?: Runtime.RemoteObject[];\n /** Runtime.executionContextDestroyed */\n executionContextId?: number;\n /** Runtime.executionContextCreated */\n context?: { id: number; name: string };\n}\n\ninterface CommandToHost {\n cmd:\n | 'ready'\n | 'readyToDebug'\n | 'paused'\n | 'resumed'\n | 'script'\n | 'log'\n | 'error'\n | 'finished'\n | 'sb'\n | 'cb'\n | 'scope'\n | 'setValue'\n | 'expressions'\n | 'getPossibleBreakpoints';\n [attr: string]: unknown;\n}\n\ninterface DebugCommand {\n cmd:\n | 'start'\n | 'end'\n | 'source'\n | 'sb'\n | 'cb'\n | 'pause'\n | 'cont'\n | 'next'\n | 'step'\n | 'out'\n | 'scope'\n | 'setValue'\n | 'expressions'\n | 'stopOnException'\n | 'getPossibleBreakpoints';\n /** start: ID of the script to debug, like `script.js.myScript` */\n scriptName?: string;\n /** start: instance number of the javascript adapter */\n instance?: number;\n /** start: adapter instance to debug, like `hm-rpc.0`, if no script name is given */\n adapterInstance?: string;\n /** source */\n scriptId?: Runtime.ScriptId;\n /** sb: locations, cb: breakpoint IDs */\n breakpoints?: (Debugger.Location | Debugger.BreakpointId)[];\n /** scope: scopes of the current call frame with their index in the scope chain */\n scopes?: (Debugger.Scope & { index?: number })[];\n /** setValue */\n variableName?: string;\n scopeNumber?: number;\n newValue?: { value?: unknown };\n /** setValue, expressions */\n callFrameId?: Debugger.CallFrameId;\n /** expressions */\n expressions?: { name: string }[];\n /** stopOnException */\n state?: boolean;\n /** getPossibleBreakpoints */\n start?: Debugger.Location;\n end?: Debugger.Location;\n}\n\nclass StartupError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'StartupError';\n }\n}\n\nlet inspector: NodeInspector | undefined;\n/** ID of the debugged script, like `script.js.myScript` */\nlet scriptToDebug = '';\n/** Main file of the debugged adapter */\nlet instanceToDebug = '';\n/** The inspector is on its way out, so every further request to end it is ignored */\nlet ending = false;\n\n/**\n * End this process, but stop the debugged process first and give it the time to shut down.\n * Its output goes through the pipes of this process, so they must stay open till it is gone (see `stopChild`).\n */\nasync function endInspector(exitCode: number): Promise<void> {\n if (ending) {\n return;\n }\n ending = true;\n try {\n await inspector?.stopChild();\n } catch (e) {\n debuglog(`Cannot stop the debugged process: ${e as Error}`);\n }\n // Give the last messages to the host the chance to leave\n setTimeout(() => process.exit(exitCode), 200);\n}\n\nfunction sendToHost(data: CommandToHost): void {\n if (data.cmd === 'error') {\n console.error(`[DEBUGGER] ${data.error as string}`);\n }\n try {\n process.send?.(JSON.stringify(data));\n } catch (e) {\n // The host is not reachable anymore\n console.error(`[DEBUGGER] Cannot send to host: ${e as Error}`);\n }\n}\n\nfunction errorToString(e: unknown): string {\n if (e instanceof Error) {\n return e.message;\n }\n return typeof e === 'string' ? e : JSON.stringify(e);\n}\n\nfunction reportError(text: string, e?: unknown): void {\n sendToHost({ cmd: 'error', error: e === undefined ? text : `${text}: ${errorToString(e)}` });\n}\n\nfunction remoteObjectToString(obj: Runtime.RemoteObject | undefined): string {\n if (!obj) {\n return '';\n }\n if (obj.value !== undefined) {\n return typeof obj.value === 'string' ? obj.value : JSON.stringify(obj.value);\n }\n return obj.unserializableValue || obj.description || obj.type;\n}\n\nfunction consoleTypeToSeverity(type: string | undefined): ioBroker.LogLevel {\n switch (type) {\n case 'warning':\n return 'warn';\n case 'error':\n case 'assert':\n return 'error';\n case 'debug':\n return 'debug';\n default:\n return 'info';\n }\n}\n\n/** Values like NaN, Infinity, -0 or BigInt cannot be transferred as JSON value */\nfunction toCallArgument(value: unknown): Runtime.CallArgument {\n if (typeof value === 'number' && (!Number.isFinite(value) || Object.is(value, -0))) {\n return { unserializableValue: Object.is(value, -0) ? '-0' : String(value) };\n }\n if (typeof value === 'bigint') {\n return { unserializableValue: `${value}n` };\n }\n return value === undefined ? {} : { value };\n}\n\nfunction isUrlOfFile(url: string, file: string): boolean {\n let path = url;\n if (url.startsWith('file://')) {\n try {\n path = fileURLToPath(url);\n } catch {\n return false;\n }\n }\n path = normalize(path);\n file = normalize(file);\n return process.platform === 'win32' ? path.toLowerCase() === file.toLowerCase() : path === file;\n}\n\nfunction createDomain(domain: string, client: InspectClientType): ProtocolDomain {\n return new Proxy<ProtocolDomain>(\n {},\n {\n get: (_target, method: string | symbol) =>\n // the object must not look like a promise\n typeof method === 'string' && method !== 'then'\n ? (params?: Record<string, unknown>): Promise<any> =>\n client.callMethod(`${domain}.${method}`, params)\n : undefined,\n },\n );\n}\n\nfunction runScript(\n script: string,\n scriptArgs: string[],\n childPrint: (text: string, isError?: boolean) => void,\n): Promise<[ChildProcessWithoutNullStreams, number, string]> {\n return new Promise((resolve, reject) => {\n // Always break on start: the process must not run before the debugger is connected, else it could\n // execute the `debugger;` statement of the script before. Port 0 means any free port.\n const child = spawn(process.execPath, ['--inspect-brk=127.0.0.1:0', normalize(script), ...scriptArgs]);\n child.stdout.setEncoding('utf8');\n child.stderr.setEncoding('utf8');\n child.stdout.on('data', (text: string) => childPrint(text));\n child.stderr.on('data', (text: string) => childPrint(text, true));\n\n let output = '';\n const timeout = setTimeout(() => {\n child.stderr.removeListener('data', waitForListenHint);\n child.kill();\n reject(new StartupError('Timeout by starting of the process to debug'));\n }, 10_000);\n\n function waitForListenHint(text: string): void {\n output += text;\n const res = /Debugger listening on ws:\\/\\/\\[?(.+?)]?:(\\d+)\\//.exec(output);\n if (res) {\n clearTimeout(timeout);\n child.stderr.removeListener('data', waitForListenHint);\n resolve([child, parseInt(res[2], 10), res[1]]);\n }\n }\n\n child.stderr.on('data', waitForListenHint);\n child.on('error', error => {\n clearTimeout(timeout);\n reject(new StartupError(`Cannot start the process to debug: ${error.message}`));\n });\n });\n}\n\nclass NodeInspector {\n readonly Debugger: ProtocolDomain;\n readonly Runtime: ProtocolDomain;\n\n private readonly client: InspectClientType = new InspectClient();\n private readonly file: string;\n private readonly args: string[];\n private child: ChildProcessWithoutNullStreams | null = null;\n /** The protocol does not deliver the URLs in the call frames anymore, so remember them */\n private readonly scriptUrls: Record<Runtime.ScriptId, string> = {};\n private mainScriptId: Runtime.ScriptId | undefined;\n private mainFile = '';\n private mainScriptSource: Promise<string> | null = null;\n /** Sometimes the first pause comes before the main script is parsed */\n private delayedContext: DebugEventParams | null = null;\n private pausedOnFirstLine = false;\n /** Execution context of the debugged script */\n private scriptContextId: number | undefined;\n private finished = false;\n\n constructor(file: string, args: string[]) {\n this.file = file;\n this.args = args;\n this.Debugger = createDomain('Debugger', this.client);\n this.Runtime = createDomain('Runtime', this.client);\n this.client.on('debugEvent', (fullName, params) => this.handleDebugEvent(fullName, params || {}));\n }\n\n async start(): Promise<void> {\n const [child, port, host] = await runScript(this.file, this.args, (text, isError) =>\n this.childPrint(text, isError),\n );\n this.child = child;\n child.on('exit', code => this.finish(`Process exited with code ${code}`));\n\n for (let attempt = 1; ; attempt++) {\n try {\n await this.client.connect(port, host);\n break;\n } catch (e) {\n debuglog(`Connection attempt #${attempt} failed: ${e as Error}`);\n if (attempt >= 10) {\n throw new StartupError(`Cannot connect to the debugger on ${host}:${port}`);\n }\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n }\n\n await Promise.all([\n this.Runtime.enable(),\n this.Debugger.enable(),\n this.Debugger.setPauseOnExceptions({ state: 'none' }),\n this.Debugger.setAsyncCallStackDepth({ maxDepth: 1 }),\n this.Debugger.setBlackboxPatterns({ patterns: scriptToDebug ? SCRIPT_BLACKBOX_PATTERNS : [] }),\n this.Runtime.runIfWaitingForDebugger(),\n ]);\n }\n\n /** Kill the debugged process without waiting for it. Only for the exit handler, where nothing can be awaited */\n killChild(): void {\n this.client.reset();\n if (this.child) {\n this.child.kill();\n this.child = null;\n }\n }\n\n /**\n * Stop the debugged process and wait till it is really gone.\n *\n * The debugged process is started with `--debug`, so it writes its whole log to the stdout of this process, and it\n * logs while it is shutting down. If this process would end first, these pipes would be closed under it and every\n * further log line would fail with `EPIPE` - which the adapter reports as an uncaught exception and dies (#2382).\n */\n async stopChild(timeoutMs = 3_000): Promise<void> {\n this.client.reset();\n const child = this.child;\n this.child = null;\n if (!child || child.exitCode !== null || child.signalCode !== null) {\n return;\n }\n await new Promise<void>(resolve => {\n const timeout = setTimeout(() => {\n // It does not want to end - take the hard way\n child.kill('SIGKILL');\n resolve();\n }, timeoutMs);\n\n child.once('exit', () => {\n clearTimeout(timeout);\n resolve();\n });\n\n child.kill();\n });\n }\n\n private finish(reason: string): void {\n if (this.finished) {\n return;\n }\n this.finished = true;\n debuglog(reason);\n sendToHost({ cmd: 'finished', text: reason });\n void endInspector(0);\n }\n\n private childPrint(text: string, isError?: boolean): void {\n if (isError) {\n const lines = text\n .split(/\\r\\n|\\r|\\n/g)\n .filter(line => !!line)\n .map(line => `< ${line}`);\n lines.length && process.stdout.write(`${lines.join('\\n')}\\n`);\n }\n // The debugged process ended, but it waits till the debugger disconnects\n if (text.includes('Waiting for the debugger to disconnect')) {\n this.finish('Process finished');\n }\n }\n\n private handleDebugEvent(fullName: string, params: DebugEventParams): void {\n switch (fullName) {\n case 'Debugger.scriptParsed':\n this.onScriptParsed(params);\n break;\n\n case 'Debugger.paused':\n this.onPaused(params);\n break;\n\n case 'Debugger.resumed':\n sendToHost({ cmd: 'resumed', context: params });\n break;\n\n case 'Runtime.consoleAPICalled':\n this.onConsoleApiCalled(params);\n break;\n\n case 'Runtime.executionContextCreated':\n // main.ts gives the context of a script the name of the script\n if (scriptToDebug && params.context?.name === scriptToDebug) {\n this.scriptContextId = params.context.id;\n }\n break;\n\n case 'Runtime.executionContextDestroyed':\n if (params.executionContextId === 1) {\n // the main context of the debugged process is gone\n this.finish('Process finished');\n } else if (this.scriptContextId !== undefined && params.executionContextId === this.scriptContextId) {\n // the script was stopped, but the process is still running\n sendToHost({ cmd: 'finished', context: params });\n }\n break;\n\n default:\n debuglog(`${fullName}: ${JSON.stringify(params)}`);\n break;\n }\n }\n\n private onScriptParsed(params: DebugEventParams): void {\n const { scriptId, url } = params;\n if (!scriptId || !url) {\n return;\n }\n this.scriptUrls[scriptId] = url;\n\n const isMain = scriptToDebug ? url === scriptToDebug : !!instanceToDebug && isUrlOfFile(url, instanceToDebug);\n if (!isMain) {\n return;\n }\n debuglog(`Script to debug parsed: ${scriptId}`);\n this.mainScriptId = scriptId;\n this.mainFile = url.replace('file:///', '');\n this.mainScriptSource = this.Debugger.getScriptSource({ scriptId }).then(\n (result: Debugger.GetScriptSourceReturnType) => result.scriptSource,\n );\n\n if (this.delayedContext) {\n const context = this.delayedContext;\n this.delayedContext = null;\n void this.sendReadyToDebug(context);\n }\n }\n\n private onPaused(params: DebugEventParams): void {\n if (!this.pausedOnFirstLine) {\n if (params.reason === 'Break on start' && !breakOnStart) {\n // the process was started with --inspect-brk only to have time to set up the debugger\n this.Debugger.resume().catch(e => reportError('Cannot resume', e));\n return;\n }\n if (params.reason === 'exception') {\n // ignore all exceptions till the start of the script\n this.Debugger.resume().catch(e => reportError('Cannot resume', e));\n return;\n }\n }\n\n this.enrichCallFrames(params);\n\n if (\n this.pausedOnFirstLine &&\n scriptToDebug &&\n params.reason === 'step' &&\n !params.callFrames?.[0]?.url?.startsWith('script.js.')\n ) {\n // Stepping left the script, e.g., at the end of a callback. The blackbox patterns do not cover\n // all internals of node.js, so continue the execution instead of stopping there\n this.Debugger.resume().catch(e => reportError('Cannot resume', e));\n return;\n }\n\n if (this.pausedOnFirstLine) {\n sendToHost({ cmd: 'paused', context: params });\n } else {\n this.pausedOnFirstLine = true;\n if (this.mainScriptSource) {\n void this.sendReadyToDebug(params);\n } else {\n // store the context to send it, when the main script is parsed\n this.delayedContext = params;\n }\n }\n }\n\n private async sendReadyToDebug(context: DebugEventParams): Promise<void> {\n try {\n const script = await this.mainScriptSource;\n this.enrichCallFrames(context);\n sendToHost({\n cmd: 'readyToDebug',\n scriptId: this.mainScriptId,\n script,\n context,\n url: this.mainFile,\n });\n } catch (e) {\n reportError('Cannot read the source of the script to debug', e);\n }\n }\n\n private enrichCallFrames(context: DebugEventParams): void {\n context.callFrames?.forEach(frame => {\n if (!frame.url) {\n frame.url = this.scriptUrls[frame.location.scriptId] || '';\n }\n });\n }\n\n private onConsoleApiCalled(params: DebugEventParams): void {\n const args = params.args || [];\n if (instanceToDebug) {\n sendToHost({\n cmd: 'log',\n severity: consoleTypeToSeverity(params.type),\n text: args.map(arg => remoteObjectToString(arg)).join(' '),\n ts: Date.now(),\n });\n return;\n }\n\n // The sandbox logs in debug mode as `console.log(`${severity}$$${scriptName}$$${message}`, Date.now())`\n const text = remoteObjectToString(args[0]);\n const marker = `$$${scriptToDebug}$$`;\n const pos = text.indexOf(marker);\n if (pos !== -1) {\n sendToHost({\n cmd: 'log',\n severity: text.substring(0, pos),\n text: text.substring(pos + marker.length),\n ts: typeof args[1]?.value === 'number' ? args[1].value : Date.now(),\n });\n } else if (params.type === 'warning' || params.type === 'error') {\n sendToHost({\n cmd: 'log',\n severity: consoleTypeToSeverity(params.type),\n text: args.map(arg => remoteObjectToString(arg)).join(' '),\n ts: Date.now(),\n });\n }\n }\n}\n\nfunction resolveAdapterMainFile(adapter: string): string | undefined {\n try {\n return require.resolve(`iobroker.${adapter}`);\n } catch {\n // try to locate it in the same node_modules directory as this adapter\n const dir = normalize(join(__dirname, '..', '..', '..', `iobroker.${adapter}`));\n if (existsSync(join(dir, 'package.json'))) {\n try {\n const pack = JSON.parse(readFileSync(join(dir, 'package.json'), 'utf8'));\n const main = join(dir, pack.main || `${adapter}.js`);\n if (existsSync(main)) {\n return main;\n }\n } catch {\n // ignore\n }\n }\n }\n return undefined;\n}\n\nfunction startDebugging(data: DebugCommand): void {\n if (inspector) {\n reportError('The debugger is already started');\n return;\n }\n\n if (data.scriptName) {\n scriptToDebug = data.scriptName;\n inspector = new NodeInspector(join(__dirname, '..', 'main.js'), [\n (data.instance || 0).toString(),\n '--debug',\n '--debugScript',\n scriptToDebug,\n ]);\n } else {\n const [adapter, instance] = (data.adapterInstance || '').split('.');\n const file = resolveAdapterMainFile(adapter);\n if (!file) {\n reportError(`Cannot locate iobroker.${adapter}`);\n setTimeout(() => {\n sendToHost({ cmd: 'finished', context: `Cannot locate iobroker.${adapter}` });\n setTimeout(() => process.exit(0), 500);\n }, 200);\n return;\n }\n instanceToDebug = file;\n inspector = new NodeInspector(file, [instance || '0', '--debug']);\n }\n\n inspector.start().catch((e: unknown) => {\n reportError(\n e instanceof StartupError\n ? e.message\n : `Internal error in inspector: ${e instanceof Error ? e.stack : errorToString(e)}`,\n );\n void endInspector(1);\n });\n}\n\nasync function processCommand(data: DebugCommand): Promise<void> {\n debuglog(`processCommand: ${JSON.stringify(data)}`);\n\n if (data.cmd === 'start') {\n startDebugging(data);\n return;\n }\n if (data.cmd === 'end') {\n await endInspector(0);\n return;\n }\n if (!inspector) {\n reportError(`Cannot process \"${data.cmd}\": the debugger is not started`);\n return;\n }\n const { Debugger, Runtime } = inspector;\n\n switch (data.cmd) {\n case 'source':\n try {\n const { scriptSource } = (await Debugger.getScriptSource({\n scriptId: data.scriptId,\n })) as Debugger.GetScriptSourceReturnType;\n sendToHost({ cmd: 'script', scriptId: data.scriptId, text: scriptSource });\n } catch (e) {\n reportError(`Cannot read the source of script ${data.scriptId}`, e);\n }\n break;\n\n case 'cont':\n case 'next':\n case 'step':\n case 'out':\n case 'pause': {\n const method = { cont: 'resume', next: 'stepOver', step: 'stepInto', out: 'stepOut', pause: 'pause' }[\n data.cmd\n ];\n try {\n await Debugger[method]();\n } catch (e) {\n reportError(`Cannot execute \"${data.cmd}\"`, e);\n }\n break;\n }\n\n case 'sb': {\n const breakpoints = await Promise.all(\n ((data.breakpoints || []) as Debugger.Location[]).map(async bp => {\n try {\n const result = (await Debugger.setBreakpoint({\n location: {\n scriptId: bp.scriptId,\n lineNumber: bp.lineNumber,\n columnNumber: bp.columnNumber,\n },\n })) as Debugger.SetBreakpointReturnType;\n return { id: result.breakpointId, location: result.actualLocation };\n } catch (e) {\n reportError(`Cannot set breakpoint on line ${bp.lineNumber + 1}`, e);\n return null;\n }\n }),\n );\n sendToHost({ cmd: 'sb', breakpoints: breakpoints.filter(bp => bp) });\n break;\n }\n\n case 'cb': {\n const breakpointIds = await Promise.all(\n ((data.breakpoints || []) as Debugger.BreakpointId[]).map(async breakpointId => {\n try {\n await Debugger.removeBreakpoint({ breakpointId });\n } catch (e) {\n // The breakpoint does not exist (anymore), so it is removed anyway\n debuglog(`Cannot clear breakpoint ${breakpointId}: ${e as Error}`);\n }\n return breakpointId;\n }),\n );\n sendToHost({ cmd: 'cb', breakpoints: breakpointIds });\n break;\n }\n\n case 'scope': {\n const scopes = await Promise.all(\n (data.scopes || [])\n .filter(scope => scope?.object?.objectId)\n .map(async scope => {\n try {\n const properties = (await Runtime.getProperties({\n objectId: scope.object.objectId,\n generatePreview: true,\n })) as Runtime.GetPropertiesReturnType;\n return { type: scope.type, name: scope.name, index: scope.index, properties };\n } catch (e) {\n // e.g., the execution was resumed in the meantime\n debuglog(`Cannot read scope: ${e as Error}`);\n return null;\n }\n }),\n );\n sendToHost({ cmd: 'scope', scopes: scopes.filter(scope => scope) });\n break;\n }\n\n case 'setValue':\n try {\n await Debugger.setVariableValue({\n variableName: data.variableName,\n scopeNumber: data.scopeNumber,\n newValue: toCallArgument(data.newValue?.value),\n callFrameId: data.callFrameId,\n });\n sendToHost({\n cmd: 'setValue',\n variableName: data.variableName,\n scopeNumber: data.scopeNumber,\n newValue: data.newValue,\n callFrameId: data.callFrameId,\n });\n } catch (e) {\n reportError(`Cannot set value of \"${data.variableName}\"`, e);\n }\n break;\n\n case 'expressions': {\n const expressions = await Promise.all(\n (data.expressions || []).map(async item => {\n try {\n const { result } = (await Debugger.evaluateOnCallFrame({\n callFrameId: data.callFrameId,\n expression: item.name,\n objectGroup: 'node-inspect',\n generatePreview: true,\n })) as Debugger.EvaluateOnCallFrameReturnType;\n return { name: item.name, result };\n } catch (e) {\n return {\n name: item.name,\n result: {\n type: 'object',\n subtype: 'error',\n className: 'Error',\n description: errorToString(e),\n },\n };\n }\n }),\n );\n sendToHost({ cmd: 'expressions', expressions });\n break;\n }\n\n case 'stopOnException':\n try {\n await Debugger.setPauseOnExceptions({ state: data.state ? 'all' : 'none' });\n } catch (e) {\n reportError('Cannot change \"stop on exception\"', e);\n }\n break;\n\n case 'getPossibleBreakpoints':\n try {\n const { locations } = (await Debugger.getPossibleBreakpoints({\n start: data.start,\n end: data.end,\n })) as Debugger.GetPossibleBreakpointsReturnType;\n sendToHost({ cmd: 'getPossibleBreakpoints', breakpoints: locations });\n } catch (e) {\n reportError('Cannot get possible breakpoints', e);\n }\n break;\n\n default:\n console.error(`[DEBUGGER] Unknown command: ${JSON.stringify(data)}`);\n break;\n }\n}\n\nprocess.on('message', (message: unknown): void => {\n let command: DebugCommand;\n try {\n command = typeof message === 'string' ? (JSON.parse(message) as DebugCommand) : (message as DebugCommand);\n } catch {\n console.error(`[DEBUGGER] Cannot parse: ${JSON.stringify(message)}`);\n return;\n }\n processCommand(command).catch(e => reportError(`Cannot process \"${command?.cmd}\"`, e));\n});\n\n// A closed pipe of the own output (the host can be gone already) must not end the inspector with an EPIPE\nprocess.stdout.on('error', () => {});\nprocess.stderr.on('error', () => {});\n\n// Handle all possible exits and never leave the debugged process behind\nprocess.on('exit', () => inspector?.killChild());\nprocess.on('disconnect', () => void endInspector(0));\nprocess.once('SIGTERM', () => void endInspector(0));\nprocess.once('SIGHUP', () => void endInspector(0));\nprocess.on('uncaughtException', (e: NodeJS.ErrnoException) => {\n // The connection to the debugged process is reset as soon as it ends (node-inspect's client does not listen for\n // that), and while the inspector is on its way out, there is nothing worth reporting anymore\n if (ending || e?.code === 'ECONNRESET' || e?.code === 'EPIPE') {\n debuglog(`Ignored error in the inspector: ${e?.stack || e?.message}`);\n void endInspector(0);\n return;\n }\n reportError(`Internal error in inspector: ${e.stack || e.message}`);\n void endInspector(1);\n});\n\nsendToHost({ cmd: 'ready' });\n"]}