iobroker.eos-admin 7.9.99 → 7.10.0
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/{INSTALL_TEST_V7.9.99.md → INSTALL_TEST_V7.10.0.md} +2 -2
- package/{MERGE_UPDATE_README_V7.9.99.md → MERGE_UPDATE_README_V7.10.0.md} +1 -1
- package/NEXOWATT_EOS_BUILD_INFO.json +21 -21
- package/{PUBLISH_STABLE_V7.9.99.md → PUBLISH_STABLE_V7.10.0.md} +2 -2
- package/README_STABILITY_V7.10.0.md +3 -0
- package/{RELEASE_ACCEPTANCE_V7.9.99.md → RELEASE_ACCEPTANCE_V7.10.0.md} +1 -1
- package/RELEASE_NOTES_V7.10.0.md +17 -0
- package/adminWww/assets/bootstrap-COulQZax-v84.js +1 -1
- package/adminWww/css/eos-auto-update.css +4 -0
- package/adminWww/css/eos-ems-overview.css +1 -1
- package/adminWww/css/nexowatt-native-shell.css +432 -2
- package/adminWww/index.html +21 -19
- package/adminWww/js/eos-account-management.js +1 -1
- package/adminWww/js/eos-assistant.js +1 -1
- package/adminWww/js/eos-auto-update.js +78 -0
- package/adminWww/js/eos-ems-overview.js +1 -1
- package/adminWww/js/eos-release-watch.js +1 -1
- package/adminWww/js/eos-role-bootstrap.js +69 -12
- package/adminWww/js/eos-role-ui.js +2 -2
- package/adminWww/js/nexowatt-native-shell.js +1 -1
- package/adminWww/static/js/nexowatt-stable-login.js +70 -43
- package/adminWww/static/js/nexowatt-stable-v7100.js +111 -0
- package/build/lib/eosAutoUpdate.js +43 -0
- package/build/lib/eosPassword.js +49 -39
- package/build/lib/web.js +142 -19
- package/build/main.js +1 -1
- package/io-package.json +7 -6
- package/package.json +20 -14
- package/src/lib/eosAutoUpdate.ts +320 -0
- package/tools/nexowatt-account-management-selftest.cjs +2 -2
- package/tools/nexowatt-auto-update-selftest.cjs +34 -0
- package/tools/nexowatt-cache-update-selftest.cjs +6 -5
- package/tools/nexowatt-login-layout-selftest.cjs +11 -10
- package/tools/nexowatt-merge-update-selftest.cjs +1 -1
- package/tools/nexowatt-modern-ui-selftest.cjs +1 -1
- package/tools/nexowatt-password-write-selftest.cjs +13 -41
- package/tools/nexowatt-runtime-cleanup-selftest.cjs +6 -4
- package/tools/nexowatt-stable-v7100-selftest.cjs +17 -0
- package/tools/nexowatt-sync-release-version.cjs +4 -1
- package/tools/nexowatt-ui-overview-runtime-selftest.cjs +1 -1
- package/tools/nexowatt-validate-package.cjs +11 -11
- package/README_STABILITY_V7.9.99.md +0 -18
- package/RELEASE_NOTES_V7.9.99.md +0 -9
- package/adminWww/static/js/nexowatt-stable-v99.js +0 -33
- package/tools/nexowatt-stable-v99-selftest.cjs +0 -25
|
@@ -41,7 +41,7 @@ if (pkg.scripts['test:eos-version-sync'] !== 'node tools/nexowatt-version-sync-s
|
|
|
41
41
|
if (pkg.scripts['verify:eos-merge'] !== 'node tools/nexowatt-merge-update-selftest.cjs') fail('merge update selftest script is missing or incorrect');
|
|
42
42
|
if (!pkg.scripts['check:eos-stability']?.includes('nexowatt-version-sync-selftest.cjs')) fail('version sync selftest is not part of check:eos-stability');
|
|
43
43
|
if (!pkg.scripts['check:eos-stability']?.includes('nexowatt-merge-update-selftest.cjs')) fail('merge update selftest is not part of check:eos-stability');
|
|
44
|
-
if (pkg.scripts['check:eos-stable-
|
|
44
|
+
if (pkg.scripts['check:eos-stable-v7100'] !== 'node tools/nexowatt-stable-v7100-selftest.cjs') fail('stable v7100 selftest script is missing or incorrect');
|
|
45
45
|
if (pkg.scripts['test:eos-password-write'] !== 'node tools/nexowatt-password-write-selftest.cjs') fail('password write selftest script is missing');
|
|
46
46
|
if (pkg.scripts['test:eos-request-security'] !== 'node tools/nexowatt-request-security-selftest.cjs') fail('request security selftest script is missing');
|
|
47
47
|
if (pkg.scripts['test:eos-cache-update'] !== 'node tools/nexowatt-cache-update-selftest.cjs') fail('cache update selftest script is missing');
|
|
@@ -115,14 +115,14 @@ for (const file of [
|
|
|
115
115
|
'LICENSE',
|
|
116
116
|
'NEXOWATT_PROPRIETARY_LICENSE.md',
|
|
117
117
|
'THIRD_PARTY_NOTICES.md',
|
|
118
|
-
'README_STABILITY_V7.
|
|
119
|
-
'RELEASE_NOTES_V7.
|
|
120
|
-
'PUBLISH_STABLE_V7.
|
|
121
|
-
'INSTALL_TEST_V7.
|
|
122
|
-
'RELEASE_ACCEPTANCE_V7.
|
|
118
|
+
'README_STABILITY_V7.10.0.md',
|
|
119
|
+
'RELEASE_NOTES_V7.10.0.md',
|
|
120
|
+
'PUBLISH_STABLE_V7.10.0.md',
|
|
121
|
+
'INSTALL_TEST_V7.10.0.md',
|
|
122
|
+
'RELEASE_ACCEPTANCE_V7.10.0.md',
|
|
123
123
|
'MERGE_UPDATE.ps1',
|
|
124
124
|
'MERGE_UPDATE.cmd',
|
|
125
|
-
'MERGE_UPDATE_README_V7.
|
|
125
|
+
'MERGE_UPDATE_README_V7.10.0.md',
|
|
126
126
|
'tools/nexowatt-patch-built-frontend.cjs',
|
|
127
127
|
'tools/nexowatt-native-shell-selftest.cjs',
|
|
128
128
|
'tools/nexowatt-clean-legacy-runtime.cjs',
|
|
@@ -143,12 +143,12 @@ for (const file of [
|
|
|
143
143
|
'tools/nexowatt-sync-release-version.cjs',
|
|
144
144
|
'tools/nexowatt-version-sync-selftest.cjs',
|
|
145
145
|
'tools/nexowatt-merge-update-selftest.cjs',
|
|
146
|
-
'tools/nexowatt-stable-
|
|
146
|
+
'tools/nexowatt-stable-v7100-selftest.cjs',
|
|
147
147
|
'tools/nexowatt-ems-overview-selftest.cjs',
|
|
148
148
|
'tools/nexowatt-ui-overview-runtime-selftest.cjs',
|
|
149
149
|
'adminWww/js/eos-ems-overview.js',
|
|
150
150
|
'adminWww/css/eos-ems-overview.css',
|
|
151
|
-
'adminWww/static/js/nexowatt-stable-
|
|
151
|
+
'adminWww/static/js/nexowatt-stable-v7100.js',
|
|
152
152
|
'src-admin/src/components/Intro/NexoWattEmsOverview.tsx',
|
|
153
153
|
'tools/nexowatt-publish-channel-guard.cjs',
|
|
154
154
|
'tools/nexowatt-publish-channel-selftest.cjs',
|
|
@@ -191,7 +191,7 @@ if (!index.includes(`eos-account-management.js?v=${shellTag}`)) fail('account ma
|
|
|
191
191
|
if (!index.includes(`eos-assistant.js?v=${shellTag}`)) fail('EOS Assist cache key mismatch');
|
|
192
192
|
if (!index.includes(`eos-ems-overview.js?v=${shellTag}`)) fail('EMS overview cache key mismatch');
|
|
193
193
|
if (!index.includes(`eos-ems-overview.css?v=${shellTag}`)) fail('EMS overview CSS cache key mismatch');
|
|
194
|
-
if (!index.includes(`nexowatt-stable-
|
|
194
|
+
if (!index.includes(`nexowatt-stable-v7100.js?v=${shellTag}`)) fail('stable v7100 cache key mismatch');
|
|
195
195
|
if (!index.includes(`eos-release-watch.js?v=${shellTag}`)) fail('release watcher cache key mismatch');
|
|
196
196
|
if (index.indexOf(`eos-manual-write-policy.js?v=${shellTag}`) > index.indexOf(`hostInit-${runtime}.js?v=${shellTag}`)) fail('manual-write policy must load before the React runtime');
|
|
197
197
|
if (!index.includes('class="eos-native-shell"')) fail('native NexoWatt shell class missing');
|
|
@@ -241,7 +241,7 @@ if (accountManagement.includes("launcher.className = 'eos-account-management-lau
|
|
|
241
241
|
if (accountManagement.includes('new MutationObserver')) fail('account-management runtime adds a second broad DOM observer');
|
|
242
242
|
if (read('src-admin/public/js/eos-account-management.js') !== accountManagement) fail('account-management source/build drift');
|
|
243
243
|
const roleBootstrap = read('adminWww/js/eos-role-bootstrap.js');
|
|
244
|
-
if (!roleBootstrap.includes('installIntegratedFirstLogin') || !roleBootstrap.includes('
|
|
244
|
+
if (!roleBootstrap.includes('installIntegratedFirstLogin') || !roleBootstrap.includes('v7100 normal-login first activation')) fail('compact integrated first-login is incomplete');
|
|
245
245
|
if (/data-eos-account=|selector\.innerHTML/.test(roleBootstrap)) fail('login role buttons must not enlarge the normal login card');
|
|
246
246
|
if (!roleBootstrap.includes('nexowatt/account/passwordless-status') || !roleBootstrap.includes('eligibility.allowed')) fail('server-checked first-login eligibility is incomplete');
|
|
247
247
|
if (roleBootstrap.includes('installPasswordlessFirstLoginLauncher')) fail('old first-login launcher remains active');
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# NexoWatt EOS Admin 7.9.99 – Stable
|
|
2
|
-
|
|
3
|
-
Diese Version behebt die sichtbaren Regressionen aus 7.9.96 und ist für den anschließenden Feldtest als Verkaufsfassung vorbereitet.
|
|
4
|
-
|
|
5
|
-
## Korrigiert
|
|
6
|
-
|
|
7
|
-
- Ordentliche NexoWatt-Anmeldekarte im bewährten Verhältnis, nur moderat größer.
|
|
8
|
-
- Keine innere horizontale oder vertikale Scrollleiste – auch nicht bei „Falsches Passwort“ oder der persönlichen Erstanmeldung.
|
|
9
|
-
- Keine doppelte Karten-Geometrie auf einem inneren Formular-/Grid-Container.
|
|
10
|
-
- Native Übersicht für Admin, Installateur und Endkunde.
|
|
11
|
-
- Read-only EMS-Live-Diagnose über die echte authentifizierte AdminConnection.
|
|
12
|
-
- Konkrete Hinweise bei fehlendem UI-Adapter, zu alter UI-Version, fehlendem Diagnosevertrag oder fehlender Leseberechtigung.
|
|
13
|
-
|
|
14
|
-
## Kompatibilität
|
|
15
|
-
|
|
16
|
-
Für vollständige EMS-Livedaten wird `iobroker.nexowatt-ui` ab `0.8.198` benötigt. Der Diagnosevertrag liegt unter `nexowatt-ui.*.info.adminOverview.*` und besitzt keine Schreibhoheit.
|
|
17
|
-
|
|
18
|
-
Erstkennwort `nexowatt`, verpflichtende persönliche Kennwortvergabe, Rollenmodell, geschützte EOS-Adapter, interne Notfallreserven und Standardport `8081` bleiben unverändert.
|
package/RELEASE_NOTES_V7.9.99.md
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# NexoWatt EOS Admin 7.9.99 – Stable Candidate
|
|
2
|
-
|
|
3
|
-
- Nicht vorhandenen Link „Vollständige EMS-Diagnose öffnen“ entfernt.
|
|
4
|
-
- Bearbeitungsstift in den untersten Intro-Kartenbereich verschoben.
|
|
5
|
-
- Passwortvergabe nach Erstanmeldung nutzt den kurzen ioBroker-Benutzernamen und prüft das neue Kennwort.
|
|
6
|
-
- Passwort-Metadaten werden nur über `native` erweitert; der neue Passwort-Hash wird nicht mit einem alten Benutzerobjekt überschrieben.
|
|
7
|
-
- Konto-Reset und sichtbare Kontoliste verwenden dieselbe Rollenfreigabe.
|
|
8
|
-
- EOS-Overlays und gepatchte Bundles werden mit `no-store` ausgeliefert.
|
|
9
|
-
- Release-Watcher erkennt zukünftige Versionswechsel und lädt die Oberfläche neu.
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
(() => {
|
|
2
|
-
'use strict';
|
|
3
|
-
const VERSION = 'v99-compact-login-ems-connection';
|
|
4
|
-
const MANAGED_USERS = new Set(['installer', 'guest', 'user']);
|
|
5
|
-
const normalizeUser = value => String(value || '').trim().toLowerCase().replace(/^system\.user\./, '');
|
|
6
|
-
const apply = () => {
|
|
7
|
-
document.documentElement.classList.add('eos-assist-disabled');
|
|
8
|
-
document.querySelectorAll('.eos-assist-root,.eos-assist-header-root,[data-eos-assist-root],.eos-passwordless-launcher')
|
|
9
|
-
.forEach(element => element.remove());
|
|
10
|
-
const username = document.querySelector('input#username,input[name="username"]');
|
|
11
|
-
const password = document.querySelector('input#password,input[name="password"]');
|
|
12
|
-
const submit = document.querySelector('button[type="submit"],input[type="submit"]');
|
|
13
|
-
if (submit && MANAGED_USERS.has(normalizeUser(username?.value)) && !String(password?.value || '')) {
|
|
14
|
-
submit.disabled = true;
|
|
15
|
-
submit.classList.add('Mui-disabled');
|
|
16
|
-
submit.setAttribute('aria-disabled', 'true');
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
let scheduled = false;
|
|
20
|
-
const schedule = () => {
|
|
21
|
-
if (scheduled) return;
|
|
22
|
-
scheduled = true;
|
|
23
|
-
queueMicrotask(() => { scheduled = false; apply(); });
|
|
24
|
-
};
|
|
25
|
-
const start = () => {
|
|
26
|
-
apply();
|
|
27
|
-
new MutationObserver(schedule).observe(document.documentElement, { subtree: true, childList: true });
|
|
28
|
-
document.addEventListener('input', schedule, true);
|
|
29
|
-
document.addEventListener('change', schedule, true);
|
|
30
|
-
};
|
|
31
|
-
document.readyState === 'loading' ? document.addEventListener('DOMContentLoaded', start, { once: true }) : start();
|
|
32
|
-
window.NEXOWATT_EOS_STABLE_V99 = Object.freeze({ version: VERSION, refresh: apply });
|
|
33
|
-
})();
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
'use strict';
|
|
3
|
-
const fs=require('node:fs');const path=require('node:path');const root=path.resolve(__dirname,'..');
|
|
4
|
-
const read=rel=>fs.readFileSync(path.join(root,rel),'utf8');const exists=rel=>fs.existsSync(path.join(root,rel));
|
|
5
|
-
const fail=m=>{console.error(`[NexoWatt EOS stable v99] ${m}`);process.exit(1)};const must=(c,m)=>{if(!c)fail(m)};
|
|
6
|
-
const pkg=JSON.parse(read('package.json')),io=JSON.parse(read('io-package.json')),info=JSON.parse(read('NEXOWATT_EOS_BUILD_INFO.json'));
|
|
7
|
-
const index=read('adminWww/index.html'),css=read('adminWww/css/nexowatt-native-shell.css'),stable=read('adminWww/static/js/nexowatt-stable-v99.js');
|
|
8
|
-
const ems=read('adminWww/js/eos-ems-overview.js'),emsSource=read('src-admin/src/components/Intro/NexoWattEmsOverview.tsx');
|
|
9
|
-
const intro=read('src-admin/src/tabs/Intro.tsx'),bundle=read('adminWww/assets/Intro-DkwRiz1n-v84.js');
|
|
10
|
-
const web=read('src/lib/web.ts'),built=read('build/lib/web.js'),password=read('src/lib/eosPassword.ts'),bootstrap=read('adminWww/js/eos-role-bootstrap.js');
|
|
11
|
-
must(pkg.version==='7.9.99'&&io.version==='7.9.99'&&io.common.version==='7.9.99'&&info.version==='7.9.99','version drift');
|
|
12
|
-
must(info.shellCacheVersion===99&&info.nativeShellVersion===99&&String(info.shellCacheTag)==='99','shell cache is not v99');
|
|
13
|
-
must(index.includes('nexowatt-stable-v99.js?v=99')&&index.includes('eos-release-watch.js?v=99'),'v99 runtime/watcher not loaded');
|
|
14
|
-
must(!exists('adminWww/static/js/nexowatt-stable-v97.js')&&!exists('src-admin/public/static/js/nexowatt-stable-v97.js'),'legacy v97 runtime remains');
|
|
15
|
-
must(!ems.includes('Vollständige EMS-Diagnose öffnen')&&!emsSource.includes('Vollständige EMS-Diagnose öffnen'),'unsupported EMS link remains');
|
|
16
|
-
must(intro.includes('className="eos-overview-edit-controls"')&&intro.includes('eos-native-intro-grid'),'source pencil is not in the card grid');
|
|
17
|
-
must(bundle.includes('className:"eos-overview-edit-controls"')&&bundle.includes('className:"eos-native-intro-grid"'),'productive pencil is not in the card grid');
|
|
18
|
-
must(css.includes('edit controls belong to the lowest Intro card grid')&&css.includes('.eos-overview-edit-controls .MuiFab-root'),'pencil placement CSS missing');
|
|
19
|
-
must(password.includes('setPasswordAsync(userName')&&password.includes('checkPasswordAsync(userName'),'password API does not use short name');
|
|
20
|
-
must(web.includes('passwordMetadataNotPersisted')&&built.includes('passwordMetadataNotPersisted'),'password metadata verification missing');
|
|
21
|
-
must(!web.includes('setForeignObjectAsync(access.userId, userObject)')&&!built.includes('setForeignObjectAsync(access.userId, userObject)'),'stale full-user password write remains');
|
|
22
|
-
must(bootstrap.includes("VERSION = 'v99-first-login-password-persisted'")&&bootstrap.includes('passwordVerificationFailed'),'v99 first-login UI missing');
|
|
23
|
-
must(stable.includes('NEXOWATT_EOS_STABLE_V99'),'stable v99 global marker missing');
|
|
24
|
-
for(const rel of ['tools/nexowatt-password-write-selftest.cjs','tools/nexowatt-request-security-selftest.cjs','tools/nexowatt-cache-update-selftest.cjs'])must(exists(rel),`${rel} missing`);
|
|
25
|
-
console.log('[NexoWatt EOS stable v99] OK');
|