myio-js-library 0.1.545 → 0.1.546

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/dist/index.cjs CHANGED
@@ -894,7 +894,7 @@ module.exports = __toCommonJS(src_exports);
894
894
  // package.json
895
895
  var package_default = {
896
896
  name: "myio-js-library",
897
- version: "0.1.545",
897
+ version: "0.1.546",
898
898
  description: "A clean, standalone JS SDK for MYIO projects",
899
899
  license: "MIT",
900
900
  repository: "github:gh-myio/myio-js-library",
@@ -166220,26 +166220,26 @@ var ENTRIES = [
166220
166220
  // GCDR reconciled it to the hydrometer device type. The decodable name
166221
166221
  // prefix is HIDR — `switch` survives only as the byte's legacy/internal
166222
166222
  // label (GCDR's own generator UI shows it as "12 · switch/HIDR").
166223
+ // Thermostats and tank-level sensors are manufactured on this same switch
166224
+ // hardware, so they are also 12 — they have no type byte of their own
166225
+ // (the former 16=TEMP / 17=TANK drafts were a misreading; removed 2026-10-01).
166223
166226
  { byte: 12, prefix: "HIDR", status: "ratified", legacyLabel: "switch" },
166224
166227
  { byte: 14, prefix: "REM", status: "ratified" },
166225
166228
  { byte: 15, prefix: "3F", status: "ratified" },
166226
- // Proposed, not ratified — DEVICE-PRODUCT-CODE-NUMBERING.md.
166227
- { byte: 16, prefix: "TEMP", status: "draft" },
166228
- { byte: 17, prefix: "TANK", status: "draft" },
166229
- // Ratified 2026-08-25 (GCDR PR #39, DEVICE-NAME-SPEC.md §3a). Type-byte
166230
- // entry only — the BOX device *profile*'s own fields/parsing stay out of
166231
- // scope (RFC-0230 Non-goals). Registered here so a code with B4=18
166232
- // decodes as BOX instead of falling through to the unknown-type
166229
+ // 16, 17 and 18 are intentionally not registered (see above for 16/17; 18
166230
+ // was BOX until it moved to 50). 19 is reserved in GCDR for BOX_GROUP
166231
+ // (RFC-0058, optional). All of them fall through to the `T{B4}` fallback.
166232
+ // Central (gateway). Ratified by the owner on 2026-10-01. Type-byte entry
166233
+ // only — a code with B4=20 decodes as CENTRAL instead of the unknown-type
166233
166234
  // (`T{B4}`) fallback.
166234
- { byte: 18, prefix: "BOX", status: "ratified" },
166235
- // 19 is reserved in GCDR for BOX_GROUP (RFC-0058, optional) — intentionally
166236
- // not registered here.
166237
- // Central (gateway). Added 2026-10-01 at the owner's request; not yet in
166238
- // GCDR's DEVICE-NAME-SPEC.md / DEVICE-PRODUCT-CODE-NUMBERING.md, so it is
166239
- // carried as draft until ratified there. Type-byte entry only — a code
166240
- // with B4=20 decodes as CENTRAL instead of the unknown-type (`T{B4}`)
166241
- // fallback.
166242
- { byte: 20, prefix: "CENTRAL", status: "draft" }
166235
+ { byte: 20, prefix: "CENTRAL", status: "ratified" },
166236
+ // BOX (device enclosure, GCDR RFC-0058). Ratified by the owner on 2026-10-01
166237
+ // as byte 50; GCDR's docs had only ever *proposed* 18. Type-byte entry only
166238
+ // — the BOX device *profile*'s own fields/parsing stay out of scope
166239
+ // (RFC-0230 Non-goals).
166240
+ // GCDR's specs are being updated to match (see
166241
+ // gcdr.git/docs/specs/rules-devices-code/v2/DEVICE-NAME-SPEC-updates-draft.md).
166242
+ { byte: 50, prefix: "BOX", status: "ratified" }
166243
166243
  ];
166244
166244
  var BY_BYTE = new Map(ENTRIES.map((e) => [e.byte, e]));
166245
166245
  var BY_PREFIX = new Map(ENTRIES.map((e) => [e.prefix, e]));
@@ -166359,11 +166359,9 @@ var PRESENTATION = {
166359
166359
  // REM: no dedicated art and no confirmed friendly name yet — label stays the prefix.
166360
166360
  14: { label: "REM", icon: null },
166361
166361
  15: { label: "Medidor 3F", icon: DeviceIconType.MEDIDOR_3F },
166362
- 16: { label: "Termostato", icon: DeviceIconType.TERMOSTATO },
166363
- 17: { label: "Caixa d'\xC1gua", icon: DeviceIconType.CAIXA_DAGUA },
166364
- 18: { label: "Box", icon: DeviceIconType.BOX },
166365
166362
  // Central (gateway hardware) reuses the existing GATEWAY art.
166366
- 20: { label: "Central", icon: DeviceIconType.GATEWAY }
166363
+ 20: { label: "Central", icon: DeviceIconType.GATEWAY },
166364
+ 50: { label: "Box", icon: DeviceIconType.BOX }
166367
166365
  };
166368
166366
  function iconFor(byte) {
166369
166367
  const key = PRESENTATION[byte]?.icon;
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ import {
10
10
  // package.json
11
11
  var package_default = {
12
12
  name: "myio-js-library",
13
- version: "0.1.545",
13
+ version: "0.1.546",
14
14
  description: "A clean, standalone JS SDK for MYIO projects",
15
15
  license: "MIT",
16
16
  repository: "github:gh-myio/myio-js-library",
@@ -163412,26 +163412,26 @@ var ENTRIES = [
163412
163412
  // GCDR reconciled it to the hydrometer device type. The decodable name
163413
163413
  // prefix is HIDR — `switch` survives only as the byte's legacy/internal
163414
163414
  // label (GCDR's own generator UI shows it as "12 · switch/HIDR").
163415
+ // Thermostats and tank-level sensors are manufactured on this same switch
163416
+ // hardware, so they are also 12 — they have no type byte of their own
163417
+ // (the former 16=TEMP / 17=TANK drafts were a misreading; removed 2026-10-01).
163415
163418
  { byte: 12, prefix: "HIDR", status: "ratified", legacyLabel: "switch" },
163416
163419
  { byte: 14, prefix: "REM", status: "ratified" },
163417
163420
  { byte: 15, prefix: "3F", status: "ratified" },
163418
- // Proposed, not ratified — DEVICE-PRODUCT-CODE-NUMBERING.md.
163419
- { byte: 16, prefix: "TEMP", status: "draft" },
163420
- { byte: 17, prefix: "TANK", status: "draft" },
163421
- // Ratified 2026-08-25 (GCDR PR #39, DEVICE-NAME-SPEC.md §3a). Type-byte
163422
- // entry only — the BOX device *profile*'s own fields/parsing stay out of
163423
- // scope (RFC-0230 Non-goals). Registered here so a code with B4=18
163424
- // decodes as BOX instead of falling through to the unknown-type
163421
+ // 16, 17 and 18 are intentionally not registered (see above for 16/17; 18
163422
+ // was BOX until it moved to 50). 19 is reserved in GCDR for BOX_GROUP
163423
+ // (RFC-0058, optional). All of them fall through to the `T{B4}` fallback.
163424
+ // Central (gateway). Ratified by the owner on 2026-10-01. Type-byte entry
163425
+ // only — a code with B4=20 decodes as CENTRAL instead of the unknown-type
163425
163426
  // (`T{B4}`) fallback.
163426
- { byte: 18, prefix: "BOX", status: "ratified" },
163427
- // 19 is reserved in GCDR for BOX_GROUP (RFC-0058, optional) — intentionally
163428
- // not registered here.
163429
- // Central (gateway). Added 2026-10-01 at the owner's request; not yet in
163430
- // GCDR's DEVICE-NAME-SPEC.md / DEVICE-PRODUCT-CODE-NUMBERING.md, so it is
163431
- // carried as draft until ratified there. Type-byte entry only — a code
163432
- // with B4=20 decodes as CENTRAL instead of the unknown-type (`T{B4}`)
163433
- // fallback.
163434
- { byte: 20, prefix: "CENTRAL", status: "draft" }
163427
+ { byte: 20, prefix: "CENTRAL", status: "ratified" },
163428
+ // BOX (device enclosure, GCDR RFC-0058). Ratified by the owner on 2026-10-01
163429
+ // as byte 50; GCDR's docs had only ever *proposed* 18. Type-byte entry only
163430
+ // — the BOX device *profile*'s own fields/parsing stay out of scope
163431
+ // (RFC-0230 Non-goals).
163432
+ // GCDR's specs are being updated to match (see
163433
+ // gcdr.git/docs/specs/rules-devices-code/v2/DEVICE-NAME-SPEC-updates-draft.md).
163434
+ { byte: 50, prefix: "BOX", status: "ratified" }
163435
163435
  ];
163436
163436
  var BY_BYTE = new Map(ENTRIES.map((e) => [e.byte, e]));
163437
163437
  var BY_PREFIX = new Map(ENTRIES.map((e) => [e.prefix, e]));
@@ -163551,11 +163551,9 @@ var PRESENTATION = {
163551
163551
  // REM: no dedicated art and no confirmed friendly name yet — label stays the prefix.
163552
163552
  14: { label: "REM", icon: null },
163553
163553
  15: { label: "Medidor 3F", icon: DeviceIconType.MEDIDOR_3F },
163554
- 16: { label: "Termostato", icon: DeviceIconType.TERMOSTATO },
163555
- 17: { label: "Caixa d'\xC1gua", icon: DeviceIconType.CAIXA_DAGUA },
163556
- 18: { label: "Box", icon: DeviceIconType.BOX },
163557
163554
  // Central (gateway hardware) reuses the existing GATEWAY art.
163558
- 20: { label: "Central", icon: DeviceIconType.GATEWAY }
163555
+ 20: { label: "Central", icon: DeviceIconType.GATEWAY },
163556
+ 50: { label: "Box", icon: DeviceIconType.BOX }
163559
163557
  };
163560
163558
  function iconFor(byte) {
163561
163559
  const key = PRESENTATION[byte]?.icon;
@@ -5455,7 +5455,7 @@
5455
5455
 
5456
5456
  // package.json
5457
5457
  var package_default = {
5458
- version: "0.1.545"};
5458
+ version: "0.1.546"};
5459
5459
 
5460
5460
  // src/utils/format/energy.ts
5461
5461
  function formatPower(value, decimals = 2) {
@@ -168533,26 +168533,26 @@ ${this._renderToolbar(filteredCount, totalAllUnfiltered)}
168533
168533
  // GCDR reconciled it to the hydrometer device type. The decodable name
168534
168534
  // prefix is HIDR — `switch` survives only as the byte's legacy/internal
168535
168535
  // label (GCDR's own generator UI shows it as "12 · switch/HIDR").
168536
+ // Thermostats and tank-level sensors are manufactured on this same switch
168537
+ // hardware, so they are also 12 — they have no type byte of their own
168538
+ // (the former 16=TEMP / 17=TANK drafts were a misreading; removed 2026-10-01).
168536
168539
  { byte: 12, prefix: "HIDR", status: "ratified", legacyLabel: "switch" },
168537
168540
  { byte: 14, prefix: "REM", status: "ratified" },
168538
168541
  { byte: 15, prefix: "3F", status: "ratified" },
168539
- // Proposed, not ratified — DEVICE-PRODUCT-CODE-NUMBERING.md.
168540
- { byte: 16, prefix: "TEMP", status: "draft" },
168541
- { byte: 17, prefix: "TANK", status: "draft" },
168542
- // Ratified 2026-08-25 (GCDR PR #39, DEVICE-NAME-SPEC.md §3a). Type-byte
168543
- // entry only — the BOX device *profile*'s own fields/parsing stay out of
168544
- // scope (RFC-0230 Non-goals). Registered here so a code with B4=18
168545
- // decodes as BOX instead of falling through to the unknown-type
168542
+ // 16, 17 and 18 are intentionally not registered (see above for 16/17; 18
168543
+ // was BOX until it moved to 50). 19 is reserved in GCDR for BOX_GROUP
168544
+ // (RFC-0058, optional). All of them fall through to the `T{B4}` fallback.
168545
+ // Central (gateway). Ratified by the owner on 2026-10-01. Type-byte entry
168546
+ // only — a code with B4=20 decodes as CENTRAL instead of the unknown-type
168546
168547
  // (`T{B4}`) fallback.
168547
- { byte: 18, prefix: "BOX", status: "ratified" },
168548
- // 19 is reserved in GCDR for BOX_GROUP (RFC-0058, optional) — intentionally
168549
- // not registered here.
168550
- // Central (gateway). Added 2026-10-01 at the owner's request; not yet in
168551
- // GCDR's DEVICE-NAME-SPEC.md / DEVICE-PRODUCT-CODE-NUMBERING.md, so it is
168552
- // carried as draft until ratified there. Type-byte entry only — a code
168553
- // with B4=20 decodes as CENTRAL instead of the unknown-type (`T{B4}`)
168554
- // fallback.
168555
- { byte: 20, prefix: "CENTRAL", status: "draft" }
168548
+ { byte: 20, prefix: "CENTRAL", status: "ratified" },
168549
+ // BOX (device enclosure, GCDR RFC-0058). Ratified by the owner on 2026-10-01
168550
+ // as byte 50; GCDR's docs had only ever *proposed* 18. Type-byte entry only
168551
+ // — the BOX device *profile*'s own fields/parsing stay out of scope
168552
+ // (RFC-0230 Non-goals).
168553
+ // GCDR's specs are being updated to match (see
168554
+ // gcdr.git/docs/specs/rules-devices-code/v2/DEVICE-NAME-SPEC-updates-draft.md).
168555
+ { byte: 50, prefix: "BOX", status: "ratified" }
168556
168556
  ];
168557
168557
  var BY_BYTE = new Map(ENTRIES$1.map((e) => [e.byte, e]));
168558
168558
  var BY_PREFIX = new Map(ENTRIES$1.map((e) => [e.prefix, e]));
@@ -168672,11 +168672,9 @@ ${this._renderToolbar(filteredCount, totalAllUnfiltered)}
168672
168672
  // REM: no dedicated art and no confirmed friendly name yet — label stays the prefix.
168673
168673
  14: { label: "REM", icon: null },
168674
168674
  15: { label: "Medidor 3F", icon: DeviceIconType.MEDIDOR_3F },
168675
- 16: { label: "Termostato", icon: DeviceIconType.TERMOSTATO },
168676
- 17: { label: "Caixa d'\xC1gua", icon: DeviceIconType.CAIXA_DAGUA },
168677
- 18: { label: "Box", icon: DeviceIconType.BOX },
168678
168675
  // Central (gateway hardware) reuses the existing GATEWAY art.
168679
- 20: { label: "Central", icon: DeviceIconType.GATEWAY }
168676
+ 20: { label: "Central", icon: DeviceIconType.GATEWAY },
168677
+ 50: { label: "Box", icon: DeviceIconType.BOX }
168680
168678
  };
168681
168679
  function iconFor(byte) {
168682
168680
  const key = PRESENTATION[byte]?.icon;