@camstack/types 1.2.416 → 1.2.418

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/addon.js +1 -1
  2. package/dist/addon.mjs +1 -1
  3. package/dist/capabilities/air-quality-sensor.cap.d.ts +2 -8
  4. package/dist/capabilities/ambient-light-sensor.cap.d.ts +3 -14
  5. package/dist/capabilities/battery.cap.d.ts +9 -2
  6. package/dist/capabilities/binary.cap.d.ts +0 -5
  7. package/dist/capabilities/capability-definition.d.ts +11 -6
  8. package/dist/capabilities/composer.cap.d.ts +198 -0
  9. package/dist/capabilities/consumables.cap.d.ts +30 -41
  10. package/dist/capabilities/control.cap.d.ts +3 -25
  11. package/dist/capabilities/core-blocks.cap.d.ts +1421 -0
  12. package/dist/capabilities/customize-catalog.d.ts +0 -8
  13. package/dist/capabilities/customize-spec.d.ts +2 -3
  14. package/dist/capabilities/device-manager.cap.d.ts +79 -0
  15. package/dist/capabilities/device-provider.cap.d.ts +36 -0
  16. package/dist/capabilities/enum-sensor.cap.d.ts +5 -17
  17. package/dist/capabilities/group-status.cap.d.ts +46 -0
  18. package/dist/capabilities/humidity-sensor.cap.d.ts +3 -14
  19. package/dist/capabilities/index.d.ts +4 -2
  20. package/dist/capabilities/motion.cap.d.ts +13 -5
  21. package/dist/capabilities/numeric-sensor.cap.d.ts +8 -16
  22. package/dist/capabilities/pet-feeder.cap.d.ts +1 -1
  23. package/dist/capabilities/power-meter.cap.d.ts +0 -11
  24. package/dist/capabilities/pressure-sensor.cap.d.ts +3 -9
  25. package/dist/capabilities/running-state.cap.d.ts +1 -2
  26. package/dist/capabilities/runtime-field-unit.d.ts +1 -0
  27. package/dist/capabilities/runtime-field-units.d.ts +8 -0
  28. package/dist/capabilities/switch.cap.d.ts +0 -5
  29. package/dist/capabilities/temperature-sensor.cap.d.ts +5 -20
  30. package/dist/capabilities/weather.cap.d.ts +4 -13
  31. package/dist/client.d.ts +2 -1
  32. package/dist/client.js +57 -5
  33. package/dist/client.mjs +55 -6
  34. package/dist/composition/composition-report.d.ts +80 -3
  35. package/dist/composition/composition.d.ts +285 -5
  36. package/dist/composition/helpers/aggregate.d.ts +41 -0
  37. package/dist/composition/helpers/catalog.d.ts +42 -0
  38. package/dist/composition/helpers/compile.d.ts +22 -0
  39. package/dist/composition/helpers/index.d.ts +6 -0
  40. package/dist/composition/helpers/save.d.ts +18 -0
  41. package/dist/composition/helpers/source-pick.d.ts +40 -0
  42. package/dist/composition/helpers/spec.d.ts +38 -0
  43. package/dist/composition/index.d.ts +1 -0
  44. package/dist/composition/source-ref.d.ts +11 -0
  45. package/dist/composition/state-fields.d.ts +1 -1
  46. package/dist/composition/validate-composition.d.ts +8 -2
  47. package/dist/{composition-kEl9mevu.mjs → composition-B85l9j1M.mjs} +114 -8
  48. package/dist/{composition-DsmkwP9-.js → composition-OJKOJJD-.js} +179 -7
  49. package/dist/device/cap-vocabulary/entries/sensors.d.ts +1 -1
  50. package/dist/device/cap-vocabulary/types.d.ts +2 -2
  51. package/dist/device/schema-fields.d.ts +3 -0
  52. package/dist/device/source-info.d.ts +12 -6
  53. package/dist/generated/addon-api.d.ts +14 -0
  54. package/dist/generated/addon-cap-facts.d.ts +1 -1
  55. package/dist/generated/cap-status-types.d.ts +3 -1
  56. package/dist/generated/capability-router-map.d.ts +5 -2
  57. package/dist/generated/customize-catalog.d.ts +11 -87
  58. package/dist/generated/device-local-state.d.ts +3 -0
  59. package/dist/generated/device-proxy.d.ts +3 -0
  60. package/dist/generated/history-catalog.d.ts +1 -1
  61. package/dist/generated/method-access-map.d.ts +1 -1
  62. package/dist/generated/method-device-selectors.d.ts +1 -1
  63. package/dist/generated/runtime-state-durability.d.ts +1 -1
  64. package/dist/index.d.ts +3 -1
  65. package/dist/index.js +1458 -499
  66. package/dist/index.mjs +1420 -499
  67. package/dist/node.js +1 -1
  68. package/dist/node.mjs +1 -1
  69. package/dist/{sleep-BPQ2ZyaI.js → sleep-7Gw3GJ4n.js} +232 -127
  70. package/dist/{sleep-BErAxhul.mjs → sleep-B81gwQuR.mjs} +179 -128
  71. package/dist/units/convert.d.ts +5 -0
  72. package/dist/units/format-reading.d.ts +15 -0
  73. package/dist/units/index.d.ts +8 -1
  74. package/dist/units/ingest-reading.d.ts +21 -0
  75. package/dist/units/quantity.d.ts +47 -0
  76. package/dist/units/threshold.d.ts +6 -0
  77. package/dist/units/unit-table.d.ts +2 -228
  78. package/package.json +1 -1
  79. package/dist/capabilities/advanced-parameters.d.ts +0 -17
package/dist/node.js CHANGED
@@ -21,7 +21,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
21
21
  enumerable: true
22
22
  }) : target, mod));
23
23
  //#endregion
24
- const require_composition = require("./composition-DsmkwP9-.js");
24
+ const require_composition = require("./composition-OJKOJJD-.js");
25
25
  const require_err_msg = require("./err-msg-BhVbr0NX.js");
26
26
  let node_crypto = require("node:crypto");
27
27
  let node_fs = require("node:fs");
package/dist/node.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { At as Fmp4BoxSplitter, Ct as FFMPEG_PATH_ENV, Dt as getFfmpegArtifact, Et as FFMPEG_RELEASE, Ot as getFfmpegDownloadUrl, P as compositionSourceKey, Pt as buildFfmpegArgs, Rt as isSoftwareDecode, Tt as ffmpegBinaryName, a as CUSTOMIZATION_BLOCK_NAME_PREFIX, kt as canonicalHash, wt as chooseFfmpegBinary } from "./composition-kEl9mevu.mjs";
1
+ import { Bt as canonicalHash, Ft as chooseFfmpegBinary, Gt as buildFfmpegArgs, It as ffmpegBinaryName, Lt as FFMPEG_RELEASE, P as compositionSourceKey, Pt as FFMPEG_PATH_ENV, Rt as getFfmpegArtifact, Vt as Fmp4BoxSplitter, Yt as isSoftwareDecode, a as CUSTOMIZATION_BLOCK_NAME_PREFIX, zt as getFfmpegDownloadUrl } from "./composition-B85l9j1M.mjs";
2
2
  import { t as errMsg } from "./err-msg-BXKzRBwg.mjs";
3
3
  import { createHash, createHmac, randomUUID, timingSafeEqual } from "node:crypto";
4
4
  import * as fs from "node:fs";
@@ -5112,6 +5112,134 @@ function makeInMemoryRecords(owner = "spec", options = {}) {
5112
5112
  }
5113
5113
  };
5114
5114
  }
5115
+ var READING_QUANTITIES = [
5116
+ "temperature",
5117
+ "pressure",
5118
+ "speed",
5119
+ "precipitation",
5120
+ "precipitation-rate",
5121
+ "length",
5122
+ "area",
5123
+ "illuminance",
5124
+ "irradiance",
5125
+ "power",
5126
+ "energy",
5127
+ "voltage",
5128
+ "current",
5129
+ "apparent-power",
5130
+ "humidity",
5131
+ "percentage",
5132
+ "concentration-volume",
5133
+ "concentration-mass",
5134
+ "concentration-ppb",
5135
+ "volume",
5136
+ "duration",
5137
+ "duration-ms",
5138
+ "information",
5139
+ "sound-level",
5140
+ "signal-level",
5141
+ "colour-temperature",
5142
+ "angle",
5143
+ "bitrate",
5144
+ "rate",
5145
+ "mass",
5146
+ "index",
5147
+ "ratio",
5148
+ "count",
5149
+ "none",
5150
+ "device"
5151
+ ];
5152
+ var ReadingQuantitySchema = zod.z.enum(READING_QUANTITIES);
5153
+ var QUANTITY_SET = new Set(READING_QUANTITIES);
5154
+ function isReadingQuantity(value) {
5155
+ return typeof value === "string" && QUANTITY_SET.has(value);
5156
+ }
5157
+ /**
5158
+ * Stored unit symbol for a quantity. `none` means the number is dimensionless
5159
+ * (or an index / ratio / count). `device` means the cap has no single unit.
5160
+ */
5161
+ var QUANTITY_BASE = {
5162
+ temperature: "°C",
5163
+ pressure: "hPa",
5164
+ speed: "m/s",
5165
+ precipitation: "mm",
5166
+ "precipitation-rate": "mm/h",
5167
+ length: "m",
5168
+ area: "m²",
5169
+ illuminance: "lx",
5170
+ irradiance: "W/m²",
5171
+ power: "W",
5172
+ energy: "kWh",
5173
+ voltage: "V",
5174
+ current: "A",
5175
+ "apparent-power": "VA",
5176
+ humidity: "%",
5177
+ percentage: "%",
5178
+ "concentration-volume": "ppm",
5179
+ "concentration-mass": "µg/m³",
5180
+ "concentration-ppb": "ppb",
5181
+ volume: "L",
5182
+ duration: "s",
5183
+ "duration-ms": "ms",
5184
+ information: "B",
5185
+ "sound-level": "dBFS",
5186
+ "signal-level": "dBm",
5187
+ "colour-temperature": "mired",
5188
+ angle: "°",
5189
+ bitrate: "kbps",
5190
+ rate: "fps",
5191
+ mass: "kg",
5192
+ index: "none",
5193
+ ratio: "none",
5194
+ count: "none",
5195
+ none: "none",
5196
+ device: "device"
5197
+ };
5198
+ /** The stored unit, or `undefined` when the quantity has no unit symbol. */
5199
+ function baseUnitOf(quantity) {
5200
+ const symbol = QUANTITY_BASE[quantity];
5201
+ if (symbol === "none" || symbol === "device") return void 0;
5202
+ return symbol;
5203
+ }
5204
+ /**
5205
+ * History catalog label for a quantity. Index and ratio keep the labels the
5206
+ * series already used (`count`, `ratio`). A polymorphic reading has no
5207
+ * single label.
5208
+ */
5209
+ function historyUnitFor(quantity) {
5210
+ if (quantity === "index" || quantity === "count") return "count";
5211
+ if (quantity === "ratio") return "ratio";
5212
+ return baseUnitOf(quantity);
5213
+ }
5214
+ function readingMeta(quantity, extras) {
5215
+ return {
5216
+ quantity,
5217
+ ...extras?.precision !== void 0 ? { precision: extras.precision } : {},
5218
+ ...extras?.label !== void 0 ? { label: extras.label } : {}
5219
+ };
5220
+ }
5221
+ /** Imperial display symbol when it differs from the stored base. */
5222
+ var IMPERIAL_DISPLAY = {
5223
+ temperature: "°F",
5224
+ pressure: "inHg",
5225
+ speed: "mph",
5226
+ precipitation: "in",
5227
+ "precipitation-rate": "in/h",
5228
+ length: "ft",
5229
+ volume: "gal"
5230
+ };
5231
+ var DISPLAY_PREFERENCES = ["metric", "imperial"];
5232
+ var DEFAULT_DISPLAY_PREFERENCE = "metric";
5233
+ /** Display symbol for a preference. Duration and information are scaled by the formatter. */
5234
+ function displayUnitFor(quantity, preference) {
5235
+ const base = baseUnitOf(quantity);
5236
+ if (base === void 0) return void 0;
5237
+ if (preference === "imperial") {
5238
+ const imperial = IMPERIAL_DISPLAY[quantity];
5239
+ if (imperial !== void 0) return imperial;
5240
+ }
5241
+ return base;
5242
+ }
5115
5243
  //#endregion
5116
5244
  //#region src/capabilities/schemas/streaming-shared.ts
5117
5245
  /** Shared Zod schemas used across streaming capabilities. */
@@ -5147,8 +5275,8 @@ var CamStreamKindSchema = zod.z.enum([
5147
5275
  "derived"
5148
5276
  ]);
5149
5277
  var CamStreamResolutionSchema = zod.z.object({
5150
- width: zod.z.number().int().positive(),
5151
- height: zod.z.number().int().positive()
5278
+ width: zod.z.number().int().positive().meta(readingMeta("none")),
5279
+ height: zod.z.number().int().positive().meta(readingMeta("none"))
5152
5280
  });
5153
5281
  var CameraStreamSchema = zod.z.object({
5154
5282
  /** Stable, provider-assigned id unique within the (deviceId) scope. */
@@ -6003,7 +6131,7 @@ zod.z.object({
6003
6131
  });
6004
6132
  /** The default applied to a `runtimeState` cap that declares no `durability`. */
6005
6133
  var DEFAULT_RUNTIME_STATE_DURABILITY = "session";
6006
- /** Display label per {@link HistoryUnit} (only `'ug/m3'` differs from its id). */
6134
+ /** Display label per {@link HistoryUnit}. */
6007
6135
  var HISTORY_UNIT_LABELS = {
6008
6136
  "%": "%",
6009
6137
  dBFS: "dBFS",
@@ -6017,7 +6145,7 @@ var HISTORY_UNIT_LABELS = {
6017
6145
  lx: "lx",
6018
6146
  ppm: "ppm",
6019
6147
  ppb: "ppb",
6020
- "ug/m3": "µg/m³",
6148
+ "µg/m³": "µg/m³",
6021
6149
  hPa: "hPa",
6022
6150
  count: "count",
6023
6151
  ratio: "ratio",
@@ -6026,7 +6154,8 @@ var HISTORY_UNIT_LABELS = {
6026
6154
  days: "days",
6027
6155
  bytes: "bytes",
6028
6156
  kbps: "kbps",
6029
- fps: "fps"
6157
+ fps: "fps",
6158
+ "m/s": "m/s"
6030
6159
  };
6031
6160
  /** The catalog field path of an item field: `<itemsPath>[].<field>` (`items[].level`). */
6032
6161
  function historyItemFieldPath(itemsPath, field) {
@@ -6584,6 +6713,7 @@ var CAP_NAMES = Object.freeze([
6584
6713
  "filesystem-browse",
6585
6714
  "flood",
6586
6715
  "gas",
6716
+ "group-status",
6587
6717
  "heating-valve",
6588
6718
  "humidifier",
6589
6719
  "humidity-sensor",
@@ -6714,14 +6844,6 @@ var CAP_STATE_LEAVES = Object.freeze({
6714
6844
  {
6715
6845
  "path": "aqi",
6716
6846
  "valueType": "number"
6717
- },
6718
- {
6719
- "path": "unit",
6720
- "valueType": "string"
6721
- },
6722
- {
6723
- "path": "precision",
6724
- "valueType": "number"
6725
6847
  }
6726
6848
  ],
6727
6849
  "alarm-panel": [
@@ -6757,20 +6879,10 @@ var CAP_STATE_LEAVES = Object.freeze({
6757
6879
  "valueType": "boolean"
6758
6880
  }
6759
6881
  ],
6760
- "ambient-light-sensor": [
6761
- {
6762
- "path": "lux",
6763
- "valueType": "number"
6764
- },
6765
- {
6766
- "path": "unit",
6767
- "valueType": "string"
6768
- },
6769
- {
6770
- "path": "precision",
6771
- "valueType": "number"
6772
- }
6773
- ],
6882
+ "ambient-light-sensor": [{
6883
+ "path": "lux",
6884
+ "valueType": "number"
6885
+ }],
6774
6886
  "audio-metrics": [
6775
6887
  {
6776
6888
  "path": "ts",
@@ -6850,6 +6962,10 @@ var CAP_STATE_LEAVES = Object.freeze({
6850
6962
  "path": "lastUpdated",
6851
6963
  "valueType": "number"
6852
6964
  },
6965
+ {
6966
+ "path": "volts",
6967
+ "valueType": "number"
6968
+ },
6853
6969
  {
6854
6970
  "path": "lastContactAt",
6855
6971
  "valueType": "number"
@@ -7092,10 +7208,6 @@ var CAP_STATE_LEAVES = Object.freeze({
7092
7208
  "datetime"
7093
7209
  ]
7094
7210
  },
7095
- {
7096
- "path": "unit",
7097
- "valueType": "string"
7098
- },
7099
7211
  {
7100
7212
  "path": "min",
7101
7213
  "valueType": "number"
@@ -7107,19 +7219,6 @@ var CAP_STATE_LEAVES = Object.freeze({
7107
7219
  {
7108
7220
  "path": "step",
7109
7221
  "valueType": "number"
7110
- },
7111
- {
7112
- "path": "precision",
7113
- "valueType": "number"
7114
- },
7115
- {
7116
- "path": "format",
7117
- "valueType": "enum",
7118
- "enumValues": [
7119
- "date",
7120
- "time",
7121
- "datetime"
7122
- ]
7123
7222
  }
7124
7223
  ],
7125
7224
  "cover": [
@@ -7360,13 +7459,8 @@ var CAP_STATE_LEAVES = Object.freeze({
7360
7459
  "path": "value",
7361
7460
  "valueType": "string"
7362
7461
  }, {
7363
- "path": "format",
7364
- "valueType": "enum",
7365
- "enumValues": [
7366
- "date",
7367
- "time",
7368
- "datetime"
7369
- ]
7462
+ "path": "timestamp",
7463
+ "valueType": "boolean"
7370
7464
  }],
7371
7465
  "event-emitter": [
7372
7466
  {
@@ -7439,6 +7533,20 @@ var CAP_STATE_LEAVES = Object.freeze({
7439
7533
  "path": "detected",
7440
7534
  "valueType": "boolean"
7441
7535
  }],
7536
+ "group-status": [
7537
+ {
7538
+ "path": "included",
7539
+ "valueType": "number"
7540
+ },
7541
+ {
7542
+ "path": "excluded",
7543
+ "valueType": "number"
7544
+ },
7545
+ {
7546
+ "path": "total",
7547
+ "valueType": "number"
7548
+ }
7549
+ ],
7442
7550
  "heating-valve": [{
7443
7551
  "path": "position",
7444
7552
  "valueType": "number"
@@ -7473,20 +7581,10 @@ var CAP_STATE_LEAVES = Object.freeze({
7473
7581
  "valueType": "number"
7474
7582
  }
7475
7583
  ],
7476
- "humidity-sensor": [
7477
- {
7478
- "path": "percent",
7479
- "valueType": "number"
7480
- },
7481
- {
7482
- "path": "unit",
7483
- "valueType": "string"
7484
- },
7485
- {
7486
- "path": "precision",
7487
- "valueType": "number"
7488
- }
7489
- ],
7584
+ "humidity-sensor": [{
7585
+ "path": "percent",
7586
+ "valueType": "number"
7587
+ }],
7490
7588
  "image": [{
7491
7589
  "path": "url",
7492
7590
  "valueType": "string"
@@ -7825,20 +7923,10 @@ var CAP_STATE_LEAVES = Object.freeze({
7825
7923
  "valueType": "boolean"
7826
7924
  }
7827
7925
  ],
7828
- "numeric-sensor": [
7829
- {
7830
- "path": "value",
7831
- "valueType": "number"
7832
- },
7833
- {
7834
- "path": "unit",
7835
- "valueType": "string"
7836
- },
7837
- {
7838
- "path": "precision",
7839
- "valueType": "number"
7840
- }
7841
- ],
7926
+ "numeric-sensor": [{
7927
+ "path": "value",
7928
+ "valueType": "number"
7929
+ }],
7842
7930
  "pet-feeder": [
7843
7931
  {
7844
7932
  "path": "foodLevel",
@@ -7930,14 +8018,6 @@ var CAP_STATE_LEAVES = Object.freeze({
7930
8018
  {
7931
8019
  "path": "powerFactor",
7932
8020
  "valueType": "number"
7933
- },
7934
- {
7935
- "path": "unit",
7936
- "valueType": "string"
7937
- },
7938
- {
7939
- "path": "precision",
7940
- "valueType": "number"
7941
8021
  }
7942
8022
  ],
7943
8023
  "presence": [
@@ -7966,20 +8046,10 @@ var CAP_STATE_LEAVES = Object.freeze({
7966
8046
  "valueType": "number"
7967
8047
  }
7968
8048
  ],
7969
- "pressure-sensor": [
7970
- {
7971
- "path": "hpa",
7972
- "valueType": "number"
7973
- },
7974
- {
7975
- "path": "unit",
7976
- "valueType": "string"
7977
- },
7978
- {
7979
- "path": "precision",
7980
- "valueType": "number"
7981
- }
7982
- ],
8049
+ "pressure-sensor": [{
8050
+ "path": "hpa",
8051
+ "valueType": "number"
8052
+ }],
7983
8053
  "privacy-mask": [{
7984
8054
  "path": "enabled",
7985
8055
  "valueType": "boolean"
@@ -8290,20 +8360,10 @@ var CAP_STATE_LEAVES = Object.freeze({
8290
8360
  "path": "tampered",
8291
8361
  "valueType": "boolean"
8292
8362
  }],
8293
- "temperature-sensor": [
8294
- {
8295
- "path": "celsius",
8296
- "valueType": "number"
8297
- },
8298
- {
8299
- "path": "unit",
8300
- "valueType": "string"
8301
- },
8302
- {
8303
- "path": "precision",
8304
- "valueType": "number"
8305
- }
8306
- ],
8363
+ "temperature-sensor": [{
8364
+ "path": "celsius",
8365
+ "valueType": "number"
8366
+ }],
8307
8367
  "update": [
8308
8368
  {
8309
8369
  "path": "currentVersion",
@@ -8414,10 +8474,6 @@ var CAP_STATE_LEAVES = Object.freeze({
8414
8474
  "path": "temperature",
8415
8475
  "valueType": "number"
8416
8476
  },
8417
- {
8418
- "path": "temperatureUnit",
8419
- "valueType": "string"
8420
- },
8421
8477
  {
8422
8478
  "path": "humidity",
8423
8479
  "valueType": "number"
@@ -8426,18 +8482,10 @@ var CAP_STATE_LEAVES = Object.freeze({
8426
8482
  "path": "pressure",
8427
8483
  "valueType": "number"
8428
8484
  },
8429
- {
8430
- "path": "pressureUnit",
8431
- "valueType": "string"
8432
- },
8433
8485
  {
8434
8486
  "path": "windSpeed",
8435
8487
  "valueType": "number"
8436
8488
  },
8437
- {
8438
- "path": "windSpeedUnit",
8439
- "valueType": "string"
8440
- },
8441
8489
  {
8442
8490
  "path": "windBearing",
8443
8491
  "valueType": "number"
@@ -9053,6 +9101,7 @@ function createDeviceProxy(api, binding, opts) {
9053
9101
  const featureProbeInterface = { getStatus: (input) => dispatch("feature-probe", "featureProbe", "getStatus", "query", input) };
9054
9102
  const floodInterface = { getStatus: (input) => dispatch("flood", "flood", "getStatus", "query", input) };
9055
9103
  const gasInterface = { getStatus: (input) => dispatch("gas", "gas", "getStatus", "query", input) };
9104
+ const groupStatusInterface = { getStatus: (input) => dispatch("group-status", "groupStatus", "getStatus", "query", input) };
9056
9105
  const heatingValveInterface = { getStatus: (input) => dispatch("heating-valve", "heatingValve", "getStatus", "query", input) };
9057
9106
  const humidifierInterface = {
9058
9107
  setOn: (input) => dispatch("humidifier", "humidifier", "setOn", "mutation", input),
@@ -9607,6 +9656,7 @@ function createDeviceProxy(api, binding, opts) {
9607
9656
  featureProbe: createSliceHandle(stateSource, binding.deviceId, "feature-probe"),
9608
9657
  flood: createSliceHandle(stateSource, binding.deviceId, "flood"),
9609
9658
  gas: createSliceHandle(stateSource, binding.deviceId, "gas"),
9659
+ groupStatus: createSliceHandle(stateSource, binding.deviceId, "group-status"),
9610
9660
  heatingValve: createSliceHandle(stateSource, binding.deviceId, "heating-valve"),
9611
9661
  humidifier: createSliceHandle(stateSource, binding.deviceId, "humidifier"),
9612
9662
  humiditySensor: createSliceHandle(stateSource, binding.deviceId, "humidity-sensor"),
@@ -9690,6 +9740,7 @@ function createDeviceProxy(api, binding, opts) {
9690
9740
  ...bound("feature-probe") ? { featureProbe: featureProbeInterface } : {},
9691
9741
  ...bound("flood") ? { flood: floodInterface } : {},
9692
9742
  ...bound("gas") ? { gas: gasInterface } : {},
9743
+ ...bound("group-status") ? { groupStatus: groupStatusInterface } : {},
9693
9744
  ...bound("heating-valve") ? { heatingValve: heatingValveInterface } : {},
9694
9745
  ...bound("humidifier") ? { humidifier: humidifierInterface } : {},
9695
9746
  ...bound("humidity-sensor") ? { humiditySensor: humiditySensorInterface } : {},
@@ -10285,6 +10336,12 @@ Object.defineProperty(exports, "DATAPLANE_SECRET_HEADER", {
10285
10336
  return DATAPLANE_SECRET_HEADER;
10286
10337
  }
10287
10338
  });
10339
+ Object.defineProperty(exports, "DEFAULT_DISPLAY_PREFERENCE", {
10340
+ enumerable: true,
10341
+ get: function() {
10342
+ return DEFAULT_DISPLAY_PREFERENCE;
10343
+ }
10344
+ });
10288
10345
  Object.defineProperty(exports, "DEFAULT_RUNTIME_STATE_DURABILITY", {
10289
10346
  enumerable: true,
10290
10347
  get: function() {
@@ -10321,6 +10378,12 @@ Object.defineProperty(exports, "DEVICE_STATUS_METHOD", {
10321
10378
  return DEVICE_STATUS_METHOD;
10322
10379
  }
10323
10380
  });
10381
+ Object.defineProperty(exports, "DISPLAY_PREFERENCES", {
10382
+ enumerable: true,
10383
+ get: function() {
10384
+ return DISPLAY_PREFERENCES;
10385
+ }
10386
+ });
10324
10387
  Object.defineProperty(exports, "DeclarationRefusedError", {
10325
10388
  enumerable: true,
10326
10389
  get: function() {
@@ -10489,6 +10552,12 @@ Object.defineProperty(exports, "ProfileSlotStatusSchema", {
10489
10552
  return ProfileSlotStatusSchema;
10490
10553
  }
10491
10554
  });
10555
+ Object.defineProperty(exports, "QUANTITY_BASE", {
10556
+ enumerable: true,
10557
+ get: function() {
10558
+ return QUANTITY_BASE;
10559
+ }
10560
+ });
10492
10561
  Object.defineProperty(exports, "RECORDS_ERROR_CODES", {
10493
10562
  enumerable: true,
10494
10563
  get: function() {
@@ -10621,6 +10690,12 @@ Object.defineProperty(exports, "ReadinessTimeoutError", {
10621
10690
  return ReadinessTimeoutError;
10622
10691
  }
10623
10692
  });
10693
+ Object.defineProperty(exports, "ReadingQuantitySchema", {
10694
+ enumerable: true,
10695
+ get: function() {
10696
+ return ReadingQuantitySchema;
10697
+ }
10698
+ });
10624
10699
  Object.defineProperty(exports, "RecordFieldPathSchema", {
10625
10700
  enumerable: true,
10626
10701
  get: function() {
@@ -10843,6 +10918,12 @@ Object.defineProperty(exports, "audioChunkBytesPerSample", {
10843
10918
  return audioChunkBytesPerSample;
10844
10919
  }
10845
10920
  });
10921
+ Object.defineProperty(exports, "baseUnitOf", {
10922
+ enumerable: true,
10923
+ get: function() {
10924
+ return baseUnitOf;
10925
+ }
10926
+ });
10846
10927
  Object.defineProperty(exports, "buildSecretRef", {
10847
10928
  enumerable: true,
10848
10929
  get: function() {
@@ -11023,6 +11104,12 @@ Object.defineProperty(exports, "deviceOpsCapability", {
11023
11104
  return deviceOpsCapability;
11024
11105
  }
11025
11106
  });
11107
+ Object.defineProperty(exports, "displayUnitFor", {
11108
+ enumerable: true,
11109
+ get: function() {
11110
+ return displayUnitFor;
11111
+ }
11112
+ });
11026
11113
  Object.defineProperty(exports, "emitDownForOwnedCaps", {
11027
11114
  enumerable: true,
11028
11115
  get: function() {
@@ -11089,6 +11176,12 @@ Object.defineProperty(exports, "historyItemFieldPath", {
11089
11176
  return historyItemFieldPath;
11090
11177
  }
11091
11178
  });
11179
+ Object.defineProperty(exports, "historyUnitFor", {
11180
+ enumerable: true,
11181
+ get: function() {
11182
+ return historyUnitFor;
11183
+ }
11184
+ });
11092
11185
  Object.defineProperty(exports, "hydrateSchema", {
11093
11186
  enumerable: true,
11094
11187
  get: function() {
@@ -11131,6 +11224,12 @@ Object.defineProperty(exports, "isKeychainStoredField", {
11131
11224
  return isKeychainStoredField;
11132
11225
  }
11133
11226
  });
11227
+ Object.defineProperty(exports, "isReadingQuantity", {
11228
+ enumerable: true,
11229
+ get: function() {
11230
+ return isReadingQuantity;
11231
+ }
11232
+ });
11134
11233
  Object.defineProperty(exports, "isSecretClear", {
11135
11234
  enumerable: true,
11136
11235
  get: function() {
@@ -11329,6 +11428,12 @@ Object.defineProperty(exports, "readinessKey", {
11329
11428
  return readinessKey;
11330
11429
  }
11331
11430
  });
11431
+ Object.defineProperty(exports, "readingMeta", {
11432
+ enumerable: true,
11433
+ get: function() {
11434
+ return readingMeta;
11435
+ }
11436
+ });
11332
11437
  Object.defineProperty(exports, "recordArrayItemPath", {
11333
11438
  enumerable: true,
11334
11439
  get: function() {