iobroker.eos-admin 7.9.79 → 7.9.83
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.
- package/adminWww/assets/{Adapters-B5_jQ7DE-v79.js → Adapters-B5_jQ7DE-v82.js} +1 -1
- package/adminWww/assets/{CustomTab-B0wqoazH-v79.js → CustomTab-B0wqoazH-v82.js} +1 -1
- package/adminWww/assets/{DeviceManager-BFmQeYQ1-v79.js → DeviceManager-BFmQeYQ1-v82.js} +1 -1
- package/adminWww/assets/{EasyMode-B1d9Vdc4-v79.js → EasyMode-B1d9Vdc4-v82.js} +1 -1
- package/adminWww/assets/{Enums-DbWYxKOo-v79.js → Enums-DbWYxKOo-v82.js} +1 -1
- package/adminWww/assets/{Files-Cd2HOzIE-v79.js → Files-Cd2HOzIE-v82.js} +1 -1
- package/adminWww/assets/{Hosts-Bg8QzW5i-v79.js → Hosts-Bg8QzW5i-v82.js} +1 -1
- package/adminWww/assets/{Instances-YdaGnS5a-v79.js → Instances-YdaGnS5a-v82.js} +1 -1
- package/adminWww/assets/{Intro-DkwRiz1n-v79.js → Intro-DkwRiz1n-v82.js} +1 -1
- package/adminWww/assets/{Logs-CsVPSLJH-v79.js → Logs-CsVPSLJH-v82.js} +1 -1
- package/adminWww/assets/{Objects-DPan0bzw-v79.js → Objects-DPan0bzw-v82.js} +1 -1
- package/adminWww/assets/{Users-BgnBRgwU-v79.js → Users-BgnBRgwU-v82.js} +1 -1
- package/adminWww/assets/{bootstrap-COulQZax-v79.js → bootstrap-COulQZax-v82.js} +3 -3
- package/adminWww/assets/{hostInit-v79.js → hostInit-v82.js} +2 -2
- package/adminWww/assets/{index-CQZugZ1z-v79.js → index-CQZugZ1z-v82.js} +2 -2
- package/adminWww/css/nexowatt-native-shell.css +471 -0
- package/adminWww/index.html +10 -11
- package/adminWww/js/eos-assistant.js +104 -3
- package/adminWww/js/eos-manual-write-policy.js +1 -1
- package/adminWww/js/eos-native-security.js +45 -0
- package/adminWww/js/eos-policy-client.js +1 -1
- package/adminWww/js/eos-role-ui.js +1 -1
- package/adminWww/js/nexowatt-native-shell.js +196 -0
- package/adminWww/mf-manifest.json +1 -1
- package/adminWww/{remoteEntry-v79.js → remoteEntry-v82.js} +2 -2
- package/adminWww/remoteEntry.js +1 -1
- package/io-package.json +10 -5
- package/package.json +11 -5
- package/tools/nexowatt-clean-legacy-runtime.cjs +147 -0
- package/tools/nexowatt-runtime-cleanup-selftest.cjs +47 -0
- package/tools/nexowatt-validate-package.cjs +119 -44
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v54.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v55.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v56.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v57.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v58.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v59.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v60.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v61.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v62.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v63.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v64.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v65.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v66.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v67.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v68.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v69.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v70.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v71.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v72.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v73.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v74.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v75.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v76.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v77.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v78.js +0 -1
- package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v79.js +0 -2
- package/adminWww/assets/Adapters-B5_jQ7DE-v54.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v55.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v56.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v57.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v58.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v59.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v60.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v61.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v62.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v63.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v64.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v65.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v66.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v67.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v68.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v69.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v70.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v71.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v72.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v73.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v74.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v75.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v76.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v77.js +0 -1
- package/adminWww/assets/Adapters-B5_jQ7DE-v78.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v54.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v55.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v56.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v57.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v58.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v59.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v60.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v61.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v62.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v63.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v64.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v65.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v66.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v67.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v68.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v69.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v70.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v71.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v72.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v73.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v74.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v75.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v76.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v77.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v78.js +0 -1
- package/adminWww/assets/Config-hHK2UzGP-v79.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v54.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v55.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v56.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v57.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v58.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v59.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v60.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v61.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v62.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v63.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v64.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v65.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v66.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v67.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v68.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v69.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v70.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v71.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v72.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v73.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v74.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v75.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v76.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v77.js +0 -1
- package/adminWww/assets/CustomTab-B0wqoazH-v78.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v54.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v55.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v56.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v57.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v58.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v59.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v60.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v61.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v62.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v63.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v64.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v65.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v66.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v67.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v68.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v69.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v70.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v71.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v72.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v73.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v74.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v75.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v76.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v77.js +0 -1
- package/adminWww/assets/DeviceManager-BFmQeYQ1-v78.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v54.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v55.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v56.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v57.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v58.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v59.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v60.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v61.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v62.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v63.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v64.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v65.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v66.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v67.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v68.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v69.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v70.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v71.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v72.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v73.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v74.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v75.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v76.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v77.js +0 -1
- package/adminWww/assets/EasyMode-B1d9Vdc4-v78.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v54.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v55.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v56.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v57.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v58.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v59.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v60.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v61.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v62.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v63.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v64.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v65.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v66.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v67.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v68.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v69.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v70.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v71.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v72.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v73.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v74.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v75.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v76.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v77.js +0 -1
- package/adminWww/assets/Enums-DbWYxKOo-v78.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v54.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v55.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v56.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v57.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v58.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v59.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v60.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v61.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v62.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v63.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v64.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v65.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v66.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v67.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v68.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v69.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v70.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v71.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v72.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v73.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v74.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v75.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v76.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v77.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v78.js +0 -1
- package/adminWww/assets/Fields-CX3rKuWb-v79.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v54.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v55.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v56.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v57.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v58.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v59.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v60.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v61.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v62.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v63.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v64.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v65.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v66.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v67.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v68.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v69.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v70.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v71.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v72.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v73.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v74.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v75.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v76.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v77.js +0 -1
- package/adminWww/assets/Files-Cd2HOzIE-v78.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v54.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v55.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v56.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v57.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v58.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v59.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v60.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v61.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v62.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v63.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v64.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v65.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v66.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v67.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v68.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v69.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v70.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v71.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v72.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v73.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v74.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v75.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v76.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v77.js +0 -1
- package/adminWww/assets/Hosts-Bg8QzW5i-v78.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v54.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v55.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v56.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v57.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v58.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v59.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v60.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v61.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v62.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v63.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v64.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v65.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v66.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v67.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v68.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v69.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v70.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v71.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v72.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v73.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v74.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v75.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v76.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v77.js +0 -1
- package/adminWww/assets/Instances-YdaGnS5a-v78.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v54.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v55.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v56.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v57.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v58.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v59.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v60.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v61.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v62.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v63.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v64.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v65.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v66.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v67.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v68.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v69.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v70.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v71.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v72.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v73.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v74.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v75.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v76.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v77.js +0 -1
- package/adminWww/assets/Intro-DkwRiz1n-v78.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v54.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v55.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v56.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v57.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v58.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v59.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v60.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v61.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v62.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v63.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v64.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v65.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v66.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v67.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v68.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v69.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v70.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v71.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v72.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v73.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v74.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v75.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v76.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v77.js +0 -1
- package/adminWww/assets/Logs-CsVPSLJH-v78.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v54.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v55.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v56.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v57.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v58.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v59.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v60.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v61.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v62.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v63.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v64.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v65.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v66.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v67.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v68.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v69.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v70.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v71.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v72.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v73.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v74.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v75.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v76.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v77.js +0 -1
- package/adminWww/assets/Objects-DPan0bzw-v78.js +0 -1
- package/adminWww/assets/Objects-DPw50Write.js +0 -878
- package/adminWww/assets/Objects-DPw51NoLock.js +0 -878
- package/adminWww/assets/Objects-DPw52Fast.js +0 -878
- package/adminWww/assets/Objects-DPw53Native.js +0 -878
- package/adminWww/assets/Users-BgnBRgwU-v54.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v55.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v56.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v57.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v58.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v59.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v60.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v61.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v62.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v63.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v64.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v65.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v66.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v67.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v68.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v69.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v70.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v71.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v72.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v73.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v74.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v75.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v76.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v77.js +0 -1
- package/adminWww/assets/Users-BgnBRgwU-v78.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v54.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v55.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v56.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v57.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v58.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v59.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v60.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v61.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v62.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v63.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v64.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v65.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v66.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v67.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v68.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v69.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v70.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v71.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v72.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v73.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v74.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v75.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v76.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v77.js +0 -1
- package/adminWww/assets/bootstrap-COulQZax-v78.js +0 -1
- package/adminWww/assets/bootstrap-DPWrite50.js +0 -317
- package/adminWww/assets/bootstrap-DPWrite51.js +0 -317
- package/adminWww/assets/bootstrap-DPWrite52.js +0 -317
- package/adminWww/assets/bootstrap-DPWrite53.js +0 -317
- package/adminWww/assets/hostInit-DPWrite50.js +0 -2
- package/adminWww/assets/hostInit-DPWrite51.js +0 -2
- package/adminWww/assets/hostInit-DPWrite52.js +0 -2
- package/adminWww/assets/hostInit-DPWrite53.js +0 -2
- package/adminWww/assets/hostInit-v54.js +0 -1
- package/adminWww/assets/hostInit-v55.js +0 -1
- package/adminWww/assets/hostInit-v56.js +0 -1
- package/adminWww/assets/hostInit-v57.js +0 -1
- package/adminWww/assets/hostInit-v58.js +0 -1
- package/adminWww/assets/hostInit-v59.js +0 -1
- package/adminWww/assets/hostInit-v60.js +0 -1
- package/adminWww/assets/hostInit-v61.js +0 -1
- package/adminWww/assets/hostInit-v62.js +0 -1
- package/adminWww/assets/hostInit-v63.js +0 -1
- package/adminWww/assets/hostInit-v64.js +0 -1
- package/adminWww/assets/hostInit-v65.js +0 -1
- package/adminWww/assets/hostInit-v66.js +0 -1
- package/adminWww/assets/hostInit-v67.js +0 -1
- package/adminWww/assets/hostInit-v68.js +0 -1
- package/adminWww/assets/hostInit-v69.js +0 -1
- package/adminWww/assets/hostInit-v70.js +0 -1
- package/adminWww/assets/hostInit-v71.js +0 -1
- package/adminWww/assets/hostInit-v72.js +0 -1
- package/adminWww/assets/hostInit-v73.js +0 -1
- package/adminWww/assets/hostInit-v74.js +0 -1
- package/adminWww/assets/hostInit-v75.js +0 -1
- package/adminWww/assets/hostInit-v76.js +0 -1
- package/adminWww/assets/hostInit-v77.js +0 -1
- package/adminWww/assets/hostInit-v78.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v54.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v55.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v56.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v57.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v58.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v59.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v60.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v61.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v62.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v63.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v64.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v65.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v66.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v67.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v68.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v69.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v70.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v71.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v72.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v73.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v74.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v75.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v76.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v77.js +0 -1
- package/adminWww/assets/index-CQZugZ1z-v78.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v54.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v55.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v56.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v57.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v58.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v59.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v60.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v61.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v62.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v63.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v64.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v65.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v66.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v67.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v68.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v69.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v70.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v71.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v72.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v73.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v74.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v75.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v76.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v77.js +0 -1
- package/adminWww/assets/index-D2ymscJA-v78.js +0 -1
- package/adminWww/assets/index-DPAdapter50.js +0 -950
- package/adminWww/assets/index-DPAdapter51.js +0 -950
- package/adminWww/assets/index-DPAdapter52.js +0 -950
- package/adminWww/assets/index-DPAdapter53.js +0 -950
- package/adminWww/assets/index-DPWrite50.js +0 -2
- package/adminWww/assets/index-DPWrite51.js +0 -2
- package/adminWww/assets/index-DPWrite52.js +0 -2
- package/adminWww/assets/index-DPWrite53.js +0 -2
- package/adminWww/assets/sentry-B7YeoTAx-v54.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v55.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v56.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v57.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v58.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v59.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v60.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v61.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v62.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v63.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v64.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v65.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v66.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v67.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v68.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v69.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v70.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v71.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v72.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v73.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v74.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v75.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v76.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v77.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v78.js +0 -1
- package/adminWww/assets/sentry-B7YeoTAx-v79.js +0 -1
- package/adminWww/css/eos-branding.css +0 -3844
- package/adminWww/js/eos-branding.js +0 -1547
- package/adminWww/js/eos-console-quiet.js +0 -7
- package/adminWww/js/eos-hard-logout.js +0 -18
- package/adminWww/js/eos-objects-state-tools.js +0 -15
- package/adminWww/js/eos-performance-guard.js +0 -7
- package/adminWww/js/eos-runtime-fixes.js +0 -146
- package/adminWww/js/eos-security-ui.js +0 -347
- package/adminWww/remoteEntry-DPWrite50.js +0 -2
- package/adminWww/remoteEntry-DPWrite51.js +0 -2
- package/adminWww/remoteEntry-DPWrite52.js +0 -2
- package/adminWww/remoteEntry-DPWrite53.js +0 -2
- package/adminWww/remoteEntry-v54.js +0 -1
- package/adminWww/remoteEntry-v55.js +0 -1
- package/adminWww/remoteEntry-v56.js +0 -1
- package/adminWww/remoteEntry-v57.js +0 -1
- package/adminWww/remoteEntry-v58.js +0 -1
- package/adminWww/remoteEntry-v59.js +0 -1
- package/adminWww/remoteEntry-v60.js +0 -1
- package/adminWww/remoteEntry-v61.js +0 -1
- package/adminWww/remoteEntry-v62.js +0 -1
- package/adminWww/remoteEntry-v63.js +0 -1
- package/adminWww/remoteEntry-v64.js +0 -1
- package/adminWww/remoteEntry-v65.js +0 -1
- package/adminWww/remoteEntry-v66.js +0 -1
- package/adminWww/remoteEntry-v67.js +0 -1
- package/adminWww/remoteEntry-v68.js +0 -1
- package/adminWww/remoteEntry-v69.js +0 -1
- package/adminWww/remoteEntry-v70.js +0 -1
- package/adminWww/remoteEntry-v71.js +0 -1
- package/adminWww/remoteEntry-v72.js +0 -1
- package/adminWww/remoteEntry-v73.js +0 -1
- package/adminWww/remoteEntry-v74.js +0 -1
- package/adminWww/remoteEntry-v75.js +0 -1
- package/adminWww/remoteEntry-v76.js +0 -1
- package/adminWww/remoteEntry-v77.js +0 -1
- package/adminWww/remoteEntry-v78.js +0 -1
- /package/adminWww/assets/{index-D2ymscJA-v79.js → index-D2ymscJA-v82.js} +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
(() => {
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const VERSION = 'v83-nexowatt-native-shell-cleanup';
|
|
5
|
+
const protectedAdapters = new Set([
|
|
6
|
+
'admin', 'eos-admin', 'backitup', 'nexowatt-devices', 'nexowatt-device', 'nexowatt-dev', 'nexowatt-ui',
|
|
7
|
+
]);
|
|
8
|
+
|
|
9
|
+
const normalizeTarget = value => {
|
|
10
|
+
let raw = String(value || '').trim().toLowerCase();
|
|
11
|
+
raw = raw
|
|
12
|
+
.replace(/^system\.adapter\./, '')
|
|
13
|
+
.replace(/^iobroker\./, '')
|
|
14
|
+
.replace(/^@nexowatt\/iobroker\./, '')
|
|
15
|
+
.replace(/^@nexowatt\//, '');
|
|
16
|
+
const match = raw.match(/^([a-z0-9_-]+)(?:\.(\d+))?$/);
|
|
17
|
+
return match ? { adapter: match[1], instance: match[2] } : { adapter: raw.replace(/\.\d+$/, ''), instance: undefined };
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const policy = () => window.NEXOWATT_EOS_POLICY_CLIENT?.getPolicy?.() || null;
|
|
21
|
+
const isAdmin = () => {
|
|
22
|
+
const value = policy();
|
|
23
|
+
return !!(value?.isAdmin || value?.isEosAdminGroup || value?.isAdministrator || /^(?:admin|administrator)$/.test(String(value?.role || '').toLowerCase()));
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
window.NEXOWATT_EOS_SECURITY = Object.freeze({
|
|
27
|
+
version: VERSION,
|
|
28
|
+
getPolicy: policy,
|
|
29
|
+
isAdminUser: isAdmin,
|
|
30
|
+
isProtectedAdapter(value) {
|
|
31
|
+
const { adapter } = normalizeTarget(value);
|
|
32
|
+
return protectedAdapters.has(adapter);
|
|
33
|
+
},
|
|
34
|
+
shouldBlockAdapterDelete(value) {
|
|
35
|
+
const { adapter } = normalizeTarget(value);
|
|
36
|
+
return protectedAdapters.has(adapter);
|
|
37
|
+
},
|
|
38
|
+
shouldBlockInstanceDelete(value) {
|
|
39
|
+
const { adapter, instance } = normalizeTarget(value);
|
|
40
|
+
if (!protectedAdapters.has(adapter)) return false;
|
|
41
|
+
if (adapter === 'admin' || adapter === 'eos-admin') return instance === undefined || instance === '0';
|
|
42
|
+
return true;
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
})();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
(() => {
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
window.NEXOWATT_EOS_ROLE_UI_VERSION = '
|
|
4
|
+
window.NEXOWATT_EOS_ROLE_UI_VERSION = 'v83-nexowatt-native-shell-cleanup';
|
|
5
5
|
|
|
6
6
|
const ASSET_BASE = (() => {
|
|
7
7
|
const script = document.currentScript?.src || document.querySelector('script[src*="eos-role-ui.js"]')?.src || window.location.href;
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
(() => {
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const VERSION = 'v83-nexowatt-native-shell-cleanup';
|
|
5
|
+
const previous = window.NEXOWATT_NATIVE_SHELL;
|
|
6
|
+
if (previous?.version === VERSION) return;
|
|
7
|
+
previous?.destroy?.();
|
|
8
|
+
|
|
9
|
+
window.NEXOWATT_EOS_UI_VERSION = VERSION;
|
|
10
|
+
|
|
11
|
+
const scriptUrl = document.currentScript?.src ||
|
|
12
|
+
document.querySelector('script[src*="nexowatt-native-shell.js"]')?.src || window.location.href;
|
|
13
|
+
const baseUrl = new URL('../', scriptUrl);
|
|
14
|
+
const logoUrl = new URL('img/eos/nexowatt-192.png', baseUrl).href;
|
|
15
|
+
const abort = new AbortController();
|
|
16
|
+
let unsubscribeDom = null;
|
|
17
|
+
let retryTimer = 0;
|
|
18
|
+
let scheduled = false;
|
|
19
|
+
let destroyed = false;
|
|
20
|
+
|
|
21
|
+
const routeClasses = [
|
|
22
|
+
'intro', 'adapters', 'instances', 'objects', 'enums', 'logs', 'users', 'hosts', 'files', 'scripts', 'other',
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
const safe = fn => {
|
|
26
|
+
try { return fn(); } catch (_) { return undefined; }
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
// Navigation labels and icons are rendered natively by Drawer.tsx.
|
|
31
|
+
// This runtime only positions the shell and never rewrites React content.
|
|
32
|
+
|
|
33
|
+
const currentTab = () => {
|
|
34
|
+
const match = String(window.location.hash || '').match(/tab-[a-z0-9_-]+/i);
|
|
35
|
+
return match ? match[0].toLowerCase() : 'tab-intro';
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const routeKey = tab => {
|
|
39
|
+
if (tab === 'tab-intro') return 'intro';
|
|
40
|
+
if (tab === 'tab-adapters') return 'adapters';
|
|
41
|
+
if (tab === 'tab-instances') return 'instances';
|
|
42
|
+
if (tab === 'tab-objects') return 'objects';
|
|
43
|
+
if (tab === 'tab-enums') return 'enums';
|
|
44
|
+
if (tab === 'tab-logs') return 'logs';
|
|
45
|
+
if (tab === 'tab-users') return 'users';
|
|
46
|
+
if (tab === 'tab-hosts') return 'hosts';
|
|
47
|
+
if (tab === 'tab-files') return 'files';
|
|
48
|
+
if (tab === 'tab-javascript') return 'scripts';
|
|
49
|
+
return 'other';
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const isLogin = () => /(?:^|[?&])login(?:[=&]|$)/i.test(window.location.search || '') ||
|
|
53
|
+
!!document.querySelector('#login, .login-form, input#username, input#password');
|
|
54
|
+
|
|
55
|
+
const setShellClasses = () => {
|
|
56
|
+
const root = document.documentElement;
|
|
57
|
+
const login = isLogin();
|
|
58
|
+
const hasApp = !!document.getElementById('app-paper');
|
|
59
|
+
root.classList.add('eos-native-shell');
|
|
60
|
+
root.classList.toggle('eos-login', login);
|
|
61
|
+
root.classList.toggle('eos-app', !login && hasApp);
|
|
62
|
+
routeClasses.forEach(name => root.classList.remove(`eos-route-${name}`));
|
|
63
|
+
if (!login && hasApp) {
|
|
64
|
+
root.classList.add(`eos-route-${routeKey(currentTab())}`);
|
|
65
|
+
root.classList.toggle('eos-objects-surface', currentTab() === 'tab-objects');
|
|
66
|
+
} else {
|
|
67
|
+
root.classList.remove('eos-objects-surface');
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const ensureBrand = () => {
|
|
72
|
+
const toolbar = document.querySelector('#root > .MuiPaper-root > .MuiAppBar-root .MuiToolbar-root, .MuiAppBar-root .MuiToolbar-root');
|
|
73
|
+
if (!toolbar) return;
|
|
74
|
+
toolbar.classList.add('eos-top-toolbar');
|
|
75
|
+
let badge = toolbar.querySelector(':scope > .eos-brand-badge');
|
|
76
|
+
if (!badge) {
|
|
77
|
+
badge = document.createElement('span');
|
|
78
|
+
badge.className = 'eos-brand-badge eos-system-brand';
|
|
79
|
+
badge.innerHTML = `<span class="eos-brand-badge-mark"><img class="eos-brand-badge-logo" alt="NexoWatt EOS"></span><span class="eos-brand-badge-copy"><strong>NexoWatt EOS</strong><small>Energy Operation System</small></span><span class="eos-brand-led" aria-hidden="true"></span>`;
|
|
80
|
+
toolbar.insertBefore(badge, toolbar.firstChild || null);
|
|
81
|
+
}
|
|
82
|
+
const image = badge.querySelector('img');
|
|
83
|
+
if (image && image.src !== logoUrl) image.src = logoUrl;
|
|
84
|
+
|
|
85
|
+
// Only the compact upstream identity is hidden. Navigation labels and
|
|
86
|
+
// icons are rendered natively by Drawer.tsx and are never rewritten here.
|
|
87
|
+
toolbar.querySelectorAll('a[href="/#easy"], a[href="#easy"]').forEach(link => {
|
|
88
|
+
if (link.closest('.eos-brand-badge')) return;
|
|
89
|
+
const wrapper = link.closest('.MuiGrid2-root, .MuiBox-root') || link;
|
|
90
|
+
wrapper.classList.add('eos-native-toolbar-identity-hidden');
|
|
91
|
+
wrapper.setAttribute('aria-hidden', 'true');
|
|
92
|
+
});
|
|
93
|
+
if (window.innerWidth > 700) {
|
|
94
|
+
toolbar.querySelectorAll('button').forEach(button => {
|
|
95
|
+
if (button.closest('.eos-brand-badge')) return;
|
|
96
|
+
if (button.querySelector('svg[data-testid="MenuIcon"]')) {
|
|
97
|
+
button.classList.add('eos-native-toolbar-menu-hidden');
|
|
98
|
+
button.setAttribute('aria-hidden', 'true');
|
|
99
|
+
button.tabIndex = -1;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
const ensureNavigationContainer = () => {
|
|
106
|
+
const drawer = document.querySelector('.MuiDrawer-paper');
|
|
107
|
+
if (!drawer) return;
|
|
108
|
+
drawer.classList.add('eos-drawer');
|
|
109
|
+
|
|
110
|
+
const nativeHeader = drawer.querySelector(':scope > div:first-child:not(.MuiList-root)');
|
|
111
|
+
if (nativeHeader && nativeHeader.querySelector('button, a, img, .MuiAvatar-root')) {
|
|
112
|
+
nativeHeader.classList.add('eos-native-drawer-header');
|
|
113
|
+
nativeHeader.setAttribute('aria-hidden', 'true');
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
const list = drawer.querySelector('.MuiList-root');
|
|
117
|
+
if (list) {
|
|
118
|
+
list.classList.add('eos-scroll-nav');
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
let toggle = drawer.querySelector(':scope > .eos-standalone-nav-toggle');
|
|
122
|
+
if (!toggle) {
|
|
123
|
+
toggle = document.createElement('button');
|
|
124
|
+
toggle.type = 'button';
|
|
125
|
+
toggle.className = 'eos-standalone-nav-toggle';
|
|
126
|
+
toggle.innerHTML = '<svg viewBox="0 0 24 24"><path d="m14.8 5.4-6.6 6.6 6.6 6.6"/></svg>';
|
|
127
|
+
toggle.setAttribute('aria-label', 'Navigation kompakt oder vollständig anzeigen');
|
|
128
|
+
toggle.addEventListener('click', event => {
|
|
129
|
+
event.preventDefault();
|
|
130
|
+
const compact = !document.documentElement.classList.contains('eos-nav-compact');
|
|
131
|
+
document.documentElement.classList.toggle('eos-nav-compact', compact);
|
|
132
|
+
safe(() => localStorage.setItem('nexowatt:eosNavCompact', compact ? '1' : '0'));
|
|
133
|
+
toggle.setAttribute('aria-pressed', compact ? 'true' : 'false');
|
|
134
|
+
}, { signal: abort.signal });
|
|
135
|
+
drawer.insertBefore(toggle, list || drawer.firstChild || null);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const compact = safe(() => localStorage.getItem('nexowatt:eosNavCompact') === '1') || false;
|
|
139
|
+
document.documentElement.classList.toggle('eos-nav-compact', compact);
|
|
140
|
+
toggle.setAttribute('aria-pressed', compact ? 'true' : 'false');
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
const apply = () => {
|
|
144
|
+
if (destroyed) return;
|
|
145
|
+
setShellClasses();
|
|
146
|
+
if (!isLogin()) {
|
|
147
|
+
ensureBrand();
|
|
148
|
+
ensureNavigationContainer();
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
const schedule = () => {
|
|
153
|
+
if (scheduled || destroyed) return;
|
|
154
|
+
scheduled = true;
|
|
155
|
+
const run = () => {
|
|
156
|
+
scheduled = false;
|
|
157
|
+
apply();
|
|
158
|
+
};
|
|
159
|
+
if ('requestAnimationFrame' in window) requestAnimationFrame(run);
|
|
160
|
+
else setTimeout(run, 16);
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
const connectCoordinator = () => {
|
|
164
|
+
const coordinator = window.NEXOWATT_EOS_DOM_COORDINATOR;
|
|
165
|
+
if (!coordinator?.subscribe) {
|
|
166
|
+
retryTimer = window.setTimeout(connectCoordinator, 200);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
unsubscribeDom = coordinator.subscribe(schedule);
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
window.addEventListener('hashchange', schedule, { signal: abort.signal });
|
|
173
|
+
window.addEventListener('resize', schedule, { signal: abort.signal });
|
|
174
|
+
window.addEventListener('pageshow', schedule, { signal: abort.signal });
|
|
175
|
+
|
|
176
|
+
if (document.readyState === 'loading') {
|
|
177
|
+
document.addEventListener('DOMContentLoaded', schedule, { once: true, signal: abort.signal });
|
|
178
|
+
} else {
|
|
179
|
+
schedule();
|
|
180
|
+
}
|
|
181
|
+
connectCoordinator();
|
|
182
|
+
[250, 750, 1500].forEach(delay => window.setTimeout(schedule, delay));
|
|
183
|
+
|
|
184
|
+
window.NEXOWATT_NATIVE_SHELL = {
|
|
185
|
+
version: VERSION,
|
|
186
|
+
refresh: schedule,
|
|
187
|
+
destroy() {
|
|
188
|
+
destroyed = true;
|
|
189
|
+
abort.abort();
|
|
190
|
+
unsubscribeDom?.();
|
|
191
|
+
unsubscribeDom = null;
|
|
192
|
+
if (retryTimer) clearTimeout(retryTimer);
|
|
193
|
+
retryTimer = 0;
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"iobroker_admin","name":"iobroker_admin","metaData":{"name":"iobroker_admin","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"iobroker_admin"},"remoteEntry":{"name":"remoteEntry-
|
|
1
|
+
{"id":"iobroker_admin","name":"iobroker_admin","metaData":{"name":"iobroker_admin","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"iobroker_admin"},"remoteEntry":{"name":"remoteEntry-v82.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"remoteEntry-v82.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"iobroker_admin","pluginVersion":"0.2.5","publicPath":"./"},"shared":[{"id":"iobroker_admin:@emotion/react","name":"@emotion/react","version":"11.14.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/emotion-react.browser.esm-DrKG52pD.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@emotion/styled","name":"@emotion/styled","version":"11.14.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/emotion-styled.browser.esm-DOdpWCne.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@iobroker/adapter-react-v5","name":"@iobroker/adapter-react-v5","version":"8.2.9","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-D2ymscJA-v82.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@iobroker/json-config","name":"@iobroker/json-config","version":"8.4.7","requiredVersion":"*","assets":{"js":{"async":["assets/index-D9Ej0pc9.js"],"sync":["assets/index-mSK_krgD.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@iobroker/dm-gui-components","name":"@iobroker/dm-gui-components","version":"9.1.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-bCuipom1.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:date-fns","name":"date-fns","version":"4.1.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-Cqq5gIUF.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:date-fns/locale","name":"date-fns/locale","version":"4.1.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/locale-CLe3aX4T.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:leaflet","name":"leaflet","version":"1.9.4","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/leaflet-src-B651YTWC.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:leaflet-geosearch","name":"leaflet-geosearch","version":"4.2.2","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/geosearch.module-BA4ww39P.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:react-ace","name":"react-ace","version":"13.0.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-C_anklzA.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:react-dropzone","name":"react-dropzone","version":"15.0.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-CXZCHHB6.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:semver","name":"semver","version":"7.7.4","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-CkI9667U.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@mui/x-date-pickers","name":"@mui/x-date-pickers","version":"7.29.4","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-uASdmaE6.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:react","name":"react","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-4wMOc304.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:react-dom","name":"react-dom","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-D2Em8S_O.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@mui/material","name":"@mui/material","version":"6.5.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-8JYjTPhv.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@mui/icons-material","name":"@mui/icons-material","version":"6.5.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-jy_3EbfW.js"]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./assets/emotion-react.browser.esm-DrKG52pD.js","./assets/iobroker_admin__loadShare__react__loadShare__-LM7uyL45.js","./assets/_commonjsHelpers-CE1G-McA.js","./assets/iobroker_admin__mf_v__runtimeInit__mf_v__-g2X2zhAf.js","./assets/emotion-cache.browser.esm-BgJfNZJN.js","./assets/extends-CF3RwP-h.js","./assets/emotion-use-insertion-effect-with-fallbacks.browser.esm-D9zECpgL.js","./assets/emotion-serialize.esm-Q4o_CgeF.js","./assets/emotion-styled.browser.esm-DOdpWCne.js","./assets/iobroker_admin__loadShare___mf_0_emotion_mf_1_react__loadShare__-BywLg1Xe.js","./assets/index-D2ymscJA-
|
|
2
|
-
import{i as m,a as p}from"./assets/iobroker_admin__mf_v__runtimeInit__mf_v__-g2X2zhAf.js";import s from"./assets/virtualExposes-BIHI7g3E.js";import{_ as a}from"./assets/preload-helper-BDBacUwf.js";const n={"@emotion/react":async()=>await a(()=>import("./assets/emotion-react.browser.esm-DrKG52pD.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url),"@emotion/styled":async()=>await a(()=>import("./assets/emotion-styled.browser.esm-DOdpWCne.js"),__vite__mapDeps([8,5,9,3,7,6,1,2]),import.meta.url),"@iobroker/adapter-react-v5":async()=>await a(()=>import("./assets/index-D2ymscJA-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./assets/emotion-react.browser.esm-DrKG52pD.js","./assets/iobroker_admin__loadShare__react__loadShare__-LM7uyL45.js","./assets/_commonjsHelpers-CE1G-McA.js","./assets/iobroker_admin__mf_v__runtimeInit__mf_v__-g2X2zhAf.js","./assets/emotion-cache.browser.esm-BgJfNZJN.js","./assets/extends-CF3RwP-h.js","./assets/emotion-use-insertion-effect-with-fallbacks.browser.esm-D9zECpgL.js","./assets/emotion-serialize.esm-Q4o_CgeF.js","./assets/emotion-styled.browser.esm-DOdpWCne.js","./assets/iobroker_admin__loadShare___mf_0_emotion_mf_1_react__loadShare__-BywLg1Xe.js","./assets/index-D2ymscJA-v82.js","./assets/createTheme-DFX8CY6F.js","./assets/blue-CagzI6CQ.js","./assets/sdk-C-e-e2gd.js","./assets/iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__-CJO5yP3h.js","./assets/Google-Cq8JZDSn.js","./assets/index-DcK0RDrH.js","./assets/pl-Dib-_u5L.js","./assets/iobroker_admin__loadShare__react_mf_2_dropzone__loadShare__-CwjnV48g.js","./assets/useTheme-CUNq4tF-.js","./assets/defaultTheme-Cx_JJUAa.js","./assets/useTheme-Bl-M1DYp.js","./assets/index-bCuipom1.js","./assets/iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-LFZoiUTt.js","./assets/iobroker_admin__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__-CpA7pnS5.js","./assets/index-mSK_krgD.js","./assets/index-8HslT92O.js","./assets/_commonjs-dynamic-modules-TDtrdbi3.js","./assets/___vite-browser-external_commonjs-proxy-DMh1aSo_.js","./assets/iobroker_admin__loadShare__react_mf_2_dom__loadShare__-CVeAXnkk.js","./assets/ext-language_tools-ylAoucDh.js","./assets/preload-helper-BDBacUwf.js","./assets/index-jy_3EbfW.js","./assets/DefaultPropsProvider-BiXBMQYQ.js","./assets/createSvgIcon-CfRgdNUH.js","./assets/index-8JYjTPhv.js","./assets/amber-D7aVlNg3.js","./assets/TextField-CqVU6uzA.js","./assets/assertThisInitialized-B0aQ9eG_.js","./assets/ThemeProvider-BOFFjWAF.js","./assets/index-uASdmaE6.js","./assets/index-Cqq5gIUF.js","./assets/setYear-3ufv5yRD.js","./assets/en-US-DBFJNIH6.js","./assets/isSameWeek-DzRXk46v.js","./assets/locale-CLe3aX4T.js","./assets/leaflet-src-B651YTWC.js","./assets/geosearch.module-BA4ww39P.js","./assets/iobroker_admin__loadShare__leaflet__loadShare__-CNUAG3AH.js","./assets/index-4wMOc304.js","./assets/index-C_anklzA.js","./assets/ace-DEUjyTIn.js","./assets/index-D2Em8S_O.js","./assets/index-CXZCHHB6.js","./assets/index-CkI9667U.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as m,a as p}from"./assets/iobroker_admin__mf_v__runtimeInit__mf_v__-g2X2zhAf.js";import s from"./assets/virtualExposes-BIHI7g3E.js";import{_ as a}from"./assets/preload-helper-BDBacUwf.js";const n={"@emotion/react":async()=>await a(()=>import("./assets/emotion-react.browser.esm-DrKG52pD.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url),"@emotion/styled":async()=>await a(()=>import("./assets/emotion-styled.browser.esm-DOdpWCne.js"),__vite__mapDeps([8,5,9,3,7,6,1,2]),import.meta.url),"@iobroker/adapter-react-v5":async()=>await a(()=>import("./assets/index-D2ymscJA-v82.js"),__vite__mapDeps([10,11,12,1,2,3,13,14,15,16,17,18,19,20,21,9]),import.meta.url),"@iobroker/dm-gui-components":async()=>await a(()=>import("./assets/index-bCuipom1.js"),__vite__mapDeps([22,1,2,3,14,23,24]),import.meta.url),"@iobroker/json-config":async()=>await a(()=>import("./assets/index-mSK_krgD.js"),__vite__mapDeps([25,1,2,3,26,27,28,14,23,29,12,15,16,30,18,31]),import.meta.url),"@mui/icons-material":async()=>await a(()=>import("./assets/index-jy_3EbfW.js"),__vite__mapDeps([32,33,2,3,7,9,1,34,11,12,20]),import.meta.url),"@mui/material":async()=>await a(()=>import("./assets/index-8JYjTPhv.js"),__vite__mapDeps([35,11,12,1,2,3,36,34,33,7,9,20,37,21,38,19,5,29,16,39,4]),import.meta.url),"@mui/x-date-pickers":async()=>await a(()=>import("./assets/index-uASdmaE6.js"),__vite__mapDeps([40,1,2,3,33,7,9,34,11,12,20,5,37,21,38,19,29,16]),import.meta.url),"date-fns":async()=>await a(()=>import("./assets/index-Cqq5gIUF.js"),__vite__mapDeps([41,42,43,44]),import.meta.url),"date-fns/locale":async()=>await a(()=>import("./assets/locale-CLe3aX4T.js"),__vite__mapDeps([45,43,44]),import.meta.url),leaflet:async()=>await a(()=>import("./assets/leaflet-src-B651YTWC.js").then(t=>t.l),__vite__mapDeps([46,2]),import.meta.url),"leaflet-geosearch":async()=>await a(()=>import("./assets/geosearch.module-BA4ww39P.js"),__vite__mapDeps([47,48,3]),import.meta.url),react:async()=>await a(()=>import("./assets/index-4wMOc304.js").then(t=>t.i),__vite__mapDeps([49,2]),import.meta.url),"react-ace":async()=>await a(()=>import("./assets/index-C_anklzA.js").then(t=>t.i),__vite__mapDeps([50,51,16,2,1,3]),import.meta.url),"react-dom":async()=>await a(()=>import("./assets/index-D2Em8S_O.js").then(t=>t.i),__vite__mapDeps([52,2,1,3]),import.meta.url),"react-dropzone":async()=>await a(()=>import("./assets/index-CXZCHHB6.js"),__vite__mapDeps([53,1,2,3,16]),import.meta.url),semver:async()=>await a(()=>import("./assets/index-CkI9667U.js").then(t=>t.i),__vite__mapDeps([54,2]),import.meta.url)},o={"@emotion/react":{name:"@emotion/react",version:"11.14.0",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o["@emotion/react"].loaded=!0;const{"@emotion/react":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@emotion/styled":{name:"@emotion/styled",version:"11.14.1",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o["@emotion/styled"].loaded=!0;const{"@emotion/styled":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@iobroker/adapter-react-v5":{name:"@iobroker/adapter-react-v5",version:"8.2.9",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o["@iobroker/adapter-react-v5"].loaded=!0;const{"@iobroker/adapter-react-v5":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@iobroker/dm-gui-components":{name:"@iobroker/dm-gui-components",version:"9.1.0",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o["@iobroker/dm-gui-components"].loaded=!0;const{"@iobroker/dm-gui-components":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@iobroker/json-config":{name:"@iobroker/json-config",version:"8.4.7",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o["@iobroker/json-config"].loaded=!0;const{"@iobroker/json-config":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/icons-material":{name:"@mui/icons-material",version:"6.5.0",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o["@mui/icons-material"].loaded=!0;const{"@mui/icons-material":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/material":{name:"@mui/material",version:"6.5.0",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o["@mui/material"].loaded=!0;const{"@mui/material":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/x-date-pickers":{name:"@mui/x-date-pickers",version:"7.29.4",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o["@mui/x-date-pickers"].loaded=!0;const{"@mui/x-date-pickers":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"date-fns":{name:"date-fns",version:"4.1.0",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o["date-fns"].loaded=!0;const{"date-fns":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"date-fns/locale":{name:"date-fns/locale",version:"4.1.0",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o["date-fns/locale"].loaded=!0;const{"date-fns/locale":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},leaflet:{name:"leaflet",version:"1.9.4",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o.leaflet.loaded=!0;const{leaflet:e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"leaflet-geosearch":{name:"leaflet-geosearch",version:"4.2.2",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o["leaflet-geosearch"].loaded=!0;const{"leaflet-geosearch":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},react:{name:"react",version:"18.3.1",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o.react.loaded=!0;const{react:e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"react-ace":{name:"react-ace",version:"13.0.0",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o["react-ace"].loaded=!0;const{"react-ace":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"react-dom":{name:"react-dom",version:"18.3.1",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o["react-dom"].loaded=!0;const{"react-dom":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"react-dropzone":{name:"react-dropzone",version:"15.0.0",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o["react-dropzone"].loaded=!0;const{"react-dropzone":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},semver:{name:"semver",version:"7.7.4",scope:["default"],loaded:!1,from:"iobroker_admin",async get(){o.semver.loaded=!0;const{semver:e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}}},f=[],u={},l="default",d="iobroker_admin";async function y(e={},t=[]){const r=m({name:d,remotes:f,shared:o,plugins:[],shareStrategy:"version-first"});var i=u[l];if(i||(i=u[l]={from:d}),!(t.indexOf(i)>=0)){t.push(i),r.initShareScopeMap("default",e);try{await Promise.all(await r.initializeSharing("default",{strategy:"version-first",from:"build",initScope:t}))}catch(c){console.error(c)}return p.initResolve(r),r}}function b(e){if(!(e in s))throw new Error(`Module ${e} does not exist in container.`);return s[e]().then(t=>()=>t)}export{b as get,y as init};
|
package/adminWww/remoteEntry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "./remoteEntry-
|
|
1
|
+
export * from "./remoteEntry-v82.js";
|
package/io-package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "eos-admin",
|
|
4
|
-
"version": "7.9.
|
|
4
|
+
"version": "7.9.83",
|
|
5
5
|
"titleLang": {
|
|
6
6
|
"en": "NexoWatt EOS Admin",
|
|
7
7
|
"de": "NexoWatt EOS Admin",
|
|
@@ -242,6 +242,11 @@
|
|
|
242
242
|
"en": "Stability consolidation: one coherent frontend runtime, resilient role policy loading, reversible EOS ACL handling, native datapoint semantics and hardened update caching.",
|
|
243
243
|
"de": "Stabilitätskonsolidierung: eine einheitliche Frontend-Laufzeit, robuste Rollenabfrage, reversible EOS-ACLs, native Datenpunktlogik und abgesicherter Update-Cache.",
|
|
244
244
|
"nl": "Stabiliteitsconsolidatie: één consistente frontend-runtime, robuuste rolcontrole, herstelbare EOS-ACLs, native datapuntlogica en veiligere updatecache."
|
|
245
|
+
},
|
|
246
|
+
"7.9.81": {
|
|
247
|
+
"en": "Fixes release validation for the modern EOS navigation icon update: package, lockfile and src-admin versions are synchronized, branding cache versioning is separated from the stable v79 React runtime, and future package checks verify both values explicitly.",
|
|
248
|
+
"de": "Korrigiert die Release-Validierung des modernen EOS-Navigations-Icon-Updates: Paket-, Lockfile- und src-admin-Versionen sind synchron, die Branding-Cache-Version ist sauber von der stabilen v79-React-Runtime getrennt und zukünftige Paketprüfungen kontrollieren beide Werte ausdrücklich.",
|
|
249
|
+
"nl": "Herstelt de releasevalidatie van de moderne EOS-navigatie-iconen: pakket-, lockfile- en src-admin-versies zijn gesynchroniseerd, de branding-cacheversie is gescheiden van de stabiele v79 React-runtime en toekomstige pakketcontroles valideren beide waarden expliciet."
|
|
245
250
|
}
|
|
246
251
|
},
|
|
247
252
|
"desc": {
|
|
@@ -279,7 +284,7 @@
|
|
|
279
284
|
"icon": "admin.svg",
|
|
280
285
|
"messagebox": true,
|
|
281
286
|
"enabled": true,
|
|
282
|
-
"extIcon": "https://unpkg.com/iobroker.eos-admin@7.9.
|
|
287
|
+
"extIcon": "https://unpkg.com/iobroker.eos-admin@7.9.83/admin/admin.svg",
|
|
283
288
|
"keywords": [
|
|
284
289
|
"NexoWatt",
|
|
285
290
|
"EOS",
|
|
@@ -290,7 +295,7 @@
|
|
|
290
295
|
"licensed"
|
|
291
296
|
],
|
|
292
297
|
"compact": true,
|
|
293
|
-
"readme": "https://unpkg.com/iobroker.eos-admin@7.9.
|
|
298
|
+
"readme": "https://unpkg.com/iobroker.eos-admin@7.9.83/README.md",
|
|
294
299
|
"authors": [
|
|
295
300
|
"bluefox <bluefox@ccu.io>",
|
|
296
301
|
"hobbyquaker <hq@ccu.io>"
|
|
@@ -359,7 +364,7 @@
|
|
|
359
364
|
"nondeletable": false,
|
|
360
365
|
"allowAdapterUpdate": true,
|
|
361
366
|
"allowAdapterDelete": false,
|
|
362
|
-
"meta": "https://unpkg.com/iobroker.eos-admin@7.9.
|
|
367
|
+
"meta": "https://unpkg.com/iobroker.eos-admin@7.9.83/io-package.json",
|
|
363
368
|
"npmPackage": "iobroker.eos-admin",
|
|
364
369
|
"packetName": "iobroker.eos-admin"
|
|
365
370
|
},
|
|
@@ -1038,5 +1043,5 @@
|
|
|
1038
1043
|
}
|
|
1039
1044
|
}
|
|
1040
1045
|
},
|
|
1041
|
-
"version": "7.9.
|
|
1046
|
+
"version": "7.9.83"
|
|
1042
1047
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.eos-admin",
|
|
3
3
|
"description": "NexoWatt EOS Admin stable runtime with reliable module filter popups and native datapoint semantics",
|
|
4
|
-
"version": "7.9.
|
|
4
|
+
"version": "7.9.83",
|
|
5
5
|
"contributors": [
|
|
6
6
|
"bluefox <dogafox@gmail.com>",
|
|
7
7
|
"apollon77",
|
|
@@ -103,7 +103,9 @@
|
|
|
103
103
|
"tools/nexowatt-patch-repo.cjs",
|
|
104
104
|
"NEXOWATT_EOS_STANDALONE.md",
|
|
105
105
|
"tools/nexowatt-generate-eos-admin-repo-entry.cjs",
|
|
106
|
-
"tools/nexowatt-repair-eos-admin-update.cjs"
|
|
106
|
+
"tools/nexowatt-repair-eos-admin-update.cjs",
|
|
107
|
+
"tools/nexowatt-clean-legacy-runtime.cjs",
|
|
108
|
+
"tools/nexowatt-runtime-cleanup-selftest.cjs"
|
|
107
109
|
],
|
|
108
110
|
"scripts": {
|
|
109
111
|
"npm": "npm i -f && cd src-admin && npm i -f",
|
|
@@ -115,7 +117,7 @@
|
|
|
115
117
|
"test:rule": "mocha test/rule --exit",
|
|
116
118
|
"test:gui": "mocha test/*.gui.js --exit",
|
|
117
119
|
"prepublishOnly": "npm run check:eos-package && npm run check:eos-stability",
|
|
118
|
-
"build": "npm run build:frontend && npm run build:backend",
|
|
120
|
+
"build": "npm run build:frontend && npm run build:backend && npm run clean:eos-runtime",
|
|
119
121
|
"build:backend": "tsc -p tsconfig.build.json && tsx tasks.mts --backend-i18n",
|
|
120
122
|
"build:frontend": "tsx tasks.mts",
|
|
121
123
|
"clean": "rimraf src-admin/build",
|
|
@@ -138,8 +140,12 @@
|
|
|
138
140
|
"nexowatt:repo-entry": "node tools/nexowatt-generate-repo-entry.cjs",
|
|
139
141
|
"nexowatt:patch-repo": "node tools/nexowatt-patch-repo.cjs",
|
|
140
142
|
"nexowatt:repair-update": "node tools/nexowatt-repair-eos-admin-update.cjs",
|
|
141
|
-
"check:eos-stability": "node tools/nexowatt-stability-check.cjs && node tools/nexowatt-frontend-graph-check.cjs && node tools/nexowatt-policy-selftest.cjs && node tools/nexowatt-module-popup-selftest.cjs && node tools/nexowatt-datapoint-selftest.cjs && node tools/nexowatt-update-selftest.cjs && node tools/nexowatt-datapoint-interaction-selftest.cjs && node tools/nexowatt-manual-write-policy-selftest.cjs && node tools/nexowatt-value-column-selftest.cjs",
|
|
142
|
-
"nexowatt:patch-built-frontend": "node tools/nexowatt-patch-built-frontend.cjs"
|
|
143
|
+
"check:eos-stability": "node tools/nexowatt-stability-check.cjs && node tools/nexowatt-frontend-graph-check.cjs && node tools/nexowatt-policy-selftest.cjs && node tools/nexowatt-module-popup-selftest.cjs && node tools/nexowatt-datapoint-selftest.cjs && node tools/nexowatt-update-selftest.cjs && node tools/nexowatt-datapoint-interaction-selftest.cjs && node tools/nexowatt-manual-write-policy-selftest.cjs && node tools/nexowatt-value-column-selftest.cjs && node tools/nexowatt-native-shell-selftest.cjs && node tools/nexowatt-runtime-cleanup-selftest.cjs",
|
|
144
|
+
"nexowatt:patch-built-frontend": "node tools/nexowatt-patch-built-frontend.cjs",
|
|
145
|
+
"clean:eos-runtime": "node tools/nexowatt-clean-legacy-runtime.cjs",
|
|
146
|
+
"precheck:eos-package": "npm run clean:eos-runtime",
|
|
147
|
+
"precheck:eos-stability": "npm run clean:eos-runtime",
|
|
148
|
+
"prepack": "node tools/nexowatt-clean-legacy-runtime.cjs --quiet"
|
|
143
149
|
},
|
|
144
150
|
"author": "NexoWatt",
|
|
145
151
|
"private": false,
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
const os = require('os');
|
|
6
|
+
const path = require('path');
|
|
7
|
+
|
|
8
|
+
const DEFAULT_ROOT = path.resolve(__dirname, '..');
|
|
9
|
+
const LEGACY_OVERLAYS = [
|
|
10
|
+
'adminWww/js/eos-branding.js',
|
|
11
|
+
'adminWww/js/eos-security-ui.js',
|
|
12
|
+
'adminWww/js/eos-console-quiet.js',
|
|
13
|
+
'adminWww/js/eos-objects-state-tools.js',
|
|
14
|
+
'adminWww/js/eos-performance-guard.js',
|
|
15
|
+
'adminWww/js/eos-runtime-fixes.js',
|
|
16
|
+
'adminWww/js/eos-hard-logout.js',
|
|
17
|
+
'adminWww/css/eos-branding.css',
|
|
18
|
+
'src-admin/public/js/eos-branding.js',
|
|
19
|
+
'src-admin/public/js/eos-security-ui.js',
|
|
20
|
+
'src-admin/public/js/eos-console-quiet.js',
|
|
21
|
+
'src-admin/public/js/eos-objects-state-tools.js',
|
|
22
|
+
'src-admin/public/js/eos-performance-guard.js',
|
|
23
|
+
'src-admin/public/js/eos-runtime-fixes.js',
|
|
24
|
+
'src-admin/public/js/eos-hard-logout.js',
|
|
25
|
+
'src-admin/public/css/eos-branding.css',
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const readJson = file => JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
29
|
+
|
|
30
|
+
function runtimeNumber(root) {
|
|
31
|
+
const info = readJson(path.join(root, 'NEXOWATT_EOS_BUILD_INFO.json'));
|
|
32
|
+
const value = Number(String(info.runtimeEntry || '').replace(/^v/, ''));
|
|
33
|
+
if (!Number.isFinite(value)) {
|
|
34
|
+
throw new Error(`Invalid runtimeEntry in NEXOWATT_EOS_BUILD_INFO.json: ${info.runtimeEntry}`);
|
|
35
|
+
}
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function walkFiles(dir) {
|
|
40
|
+
if (!fs.existsSync(dir)) return [];
|
|
41
|
+
const result = [];
|
|
42
|
+
const stack = [dir];
|
|
43
|
+
while (stack.length) {
|
|
44
|
+
const current = stack.pop();
|
|
45
|
+
for (const entry of fs.readdirSync(current, { withFileTypes: true })) {
|
|
46
|
+
const absolute = path.join(current, entry.name);
|
|
47
|
+
if (entry.isDirectory()) stack.push(absolute);
|
|
48
|
+
else if (entry.isFile()) result.push(absolute);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function isLegacyVersionedRuntime(file, activeRuntime) {
|
|
55
|
+
const name = path.basename(file);
|
|
56
|
+
const versionMatch = name.match(/-v(\d+)\.(?:js|js\.map|css|css\.map)$/i);
|
|
57
|
+
if (versionMatch) return Number(versionMatch[1]) !== activeRuntime;
|
|
58
|
+
const remoteMatch = name.match(/^remoteEntry-v(\d+)\.(?:js|js\.map)$/i);
|
|
59
|
+
if (remoteMatch) return Number(remoteMatch[1]) !== activeRuntime;
|
|
60
|
+
|
|
61
|
+
// Remove historical emergency bundles which predate the consolidated runtime
|
|
62
|
+
// naming and must never survive in a current EOS Admin source tree.
|
|
63
|
+
return /(?:DPWrite|DPAdapter|DPw\d+|NoLock|Unrestricted|force-version|delete-services-hardfix)/i.test(name) && /\.(?:js|js\.map)$/i.test(name);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function collectLegacyRuntimeFiles(root = DEFAULT_ROOT) {
|
|
67
|
+
const activeRuntime = runtimeNumber(root);
|
|
68
|
+
const scanRoots = [
|
|
69
|
+
path.join(root, 'adminWww', 'assets'),
|
|
70
|
+
path.join(root, 'adminWww'),
|
|
71
|
+
path.join(root, 'src-admin', 'build', 'assets'),
|
|
72
|
+
path.join(root, 'src-admin', 'build'),
|
|
73
|
+
];
|
|
74
|
+
const files = new Set();
|
|
75
|
+
for (const scanRoot of scanRoots) {
|
|
76
|
+
for (const file of walkFiles(scanRoot)) {
|
|
77
|
+
if (isLegacyVersionedRuntime(file, activeRuntime)) files.add(file);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
for (const rel of LEGACY_OVERLAYS) {
|
|
81
|
+
const file = path.join(root, rel);
|
|
82
|
+
if (fs.existsSync(file)) files.add(file);
|
|
83
|
+
}
|
|
84
|
+
return { activeRuntime, files: [...files].sort() };
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function cleanLegacyRuntime(options = {}) {
|
|
88
|
+
const root = path.resolve(options.root || DEFAULT_ROOT);
|
|
89
|
+
const dryRun = options.dryRun === true;
|
|
90
|
+
const quiet = options.quiet === true;
|
|
91
|
+
const silent = options.silent === true;
|
|
92
|
+
const { activeRuntime, files } = collectLegacyRuntimeFiles(root);
|
|
93
|
+
const removed = [];
|
|
94
|
+
const failed = [];
|
|
95
|
+
|
|
96
|
+
for (const file of files) {
|
|
97
|
+
if (dryRun) {
|
|
98
|
+
removed.push(file);
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
try {
|
|
103
|
+
fs.rmSync(file, { force: true });
|
|
104
|
+
} catch (firstError) {
|
|
105
|
+
// ZIP extraction tools on Windows may preserve a read-only bit. Make a
|
|
106
|
+
// single controlled retry before reporting a real cleanup failure.
|
|
107
|
+
try { fs.chmodSync(file, 0o666); } catch (_) { /* best effort */ }
|
|
108
|
+
fs.rmSync(file, { force: true });
|
|
109
|
+
}
|
|
110
|
+
if (!fs.existsSync(file)) removed.push(file);
|
|
111
|
+
else failed.push({ file, error: 'file still exists after removal' });
|
|
112
|
+
} catch (error) {
|
|
113
|
+
failed.push({ file, error: error?.message || String(error) });
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (failed.length) {
|
|
118
|
+
const details = failed.map(item => `${path.relative(root, item.file)}: ${item.error}`).join(os.EOL);
|
|
119
|
+
throw new Error(`Could not remove ${failed.length} legacy runtime file(s):${os.EOL}${details}`);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (!silent) {
|
|
123
|
+
if (!quiet) {
|
|
124
|
+
console.log(`[NexoWatt EOS runtime cleanup] OK (runtime v${activeRuntime}, removed ${removed.length} legacy file${removed.length === 1 ? '' : 's'})`);
|
|
125
|
+
} else if (removed.length) {
|
|
126
|
+
console.log(`[NexoWatt EOS runtime cleanup] removed ${removed.length} legacy runtime files before validation`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return { activeRuntime, removed };
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if (require.main === module) {
|
|
134
|
+
try {
|
|
135
|
+
cleanLegacyRuntime({ dryRun: process.argv.includes('--dry-run'), quiet: process.argv.includes('--quiet') });
|
|
136
|
+
} catch (error) {
|
|
137
|
+
console.error(`[NexoWatt EOS runtime cleanup] ERROR: ${error?.stack || error}`);
|
|
138
|
+
process.exit(1);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
module.exports = {
|
|
143
|
+
LEGACY_OVERLAYS,
|
|
144
|
+
collectLegacyRuntimeFiles,
|
|
145
|
+
cleanLegacyRuntime,
|
|
146
|
+
isLegacyVersionedRuntime,
|
|
147
|
+
};
|