@matter/node 0.16.0-alpha.0-20251027-17770fb28 → 0.16.0-alpha.0-20251030-e9ca79f93
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/cjs/behavior/Behavior.d.ts +1 -0
- package/dist/cjs/behavior/Behavior.d.ts.map +1 -1
- package/dist/cjs/behavior/Behavior.js +5 -0
- package/dist/cjs/behavior/Behavior.js.map +1 -1
- package/dist/cjs/behavior/internal/BehaviorBacking.js +1 -1
- package/dist/cjs/behavior/internal/BehaviorBacking.js.map +1 -1
- package/dist/cjs/behavior/state/managed/Datasource.d.ts +4 -5
- package/dist/cjs/behavior/state/managed/Datasource.d.ts.map +1 -1
- package/dist/cjs/behavior/state/managed/Datasource.js +6 -2
- package/dist/cjs/behavior/state/managed/Datasource.js.map +1 -1
- package/dist/cjs/behavior/state/managed/ManagedReference.d.ts +3 -2
- package/dist/cjs/behavior/state/managed/ManagedReference.d.ts.map +1 -1
- package/dist/cjs/behavior/state/managed/ManagedReference.js +65 -20
- package/dist/cjs/behavior/state/managed/ManagedReference.js.map +1 -1
- package/dist/cjs/behavior/state/managed/values/ListManager.js +2 -1
- package/dist/cjs/behavior/state/managed/values/ListManager.js.map +1 -1
- package/dist/cjs/behavior/state/managed/values/StructManager.js +9 -1
- package/dist/cjs/behavior/state/managed/values/StructManager.js.map +1 -1
- package/dist/cjs/behaviors/access-control/AccessControlServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/access-control/AccessControlServer.js +3 -3
- package/dist/cjs/behaviors/access-control/AccessControlServer.js.map +1 -1
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +3 -9
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
- package/dist/cjs/behaviors/service-area/ServiceAreaServer.js +2 -2
- package/dist/cjs/behaviors/service-area/ServiceAreaServer.js.map +1 -1
- package/dist/cjs/behaviors/thermostat/AtomicWriteHandler.d.ts +58 -0
- package/dist/cjs/behaviors/thermostat/AtomicWriteHandler.d.ts.map +1 -0
- package/dist/cjs/behaviors/thermostat/AtomicWriteHandler.js +306 -0
- package/dist/cjs/behaviors/thermostat/AtomicWriteHandler.js.map +6 -0
- package/dist/cjs/behaviors/thermostat/AtomicWriteState.d.ts +33 -0
- package/dist/cjs/behaviors/thermostat/AtomicWriteState.d.ts.map +1 -0
- package/dist/cjs/behaviors/thermostat/AtomicWriteState.js +86 -0
- package/dist/cjs/behaviors/thermostat/AtomicWriteState.js.map +6 -0
- package/dist/cjs/behaviors/thermostat/ThermostatBehavior.d.ts +12 -0
- package/dist/cjs/behaviors/thermostat/ThermostatBehavior.d.ts.map +1 -1
- package/dist/cjs/behaviors/thermostat/ThermostatInterface.d.ts +1 -0
- package/dist/cjs/behaviors/thermostat/ThermostatInterface.d.ts.map +1 -1
- package/dist/cjs/behaviors/thermostat/ThermostatServer.d.ts +894 -3
- package/dist/cjs/behaviors/thermostat/ThermostatServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/thermostat/ThermostatServer.js +1216 -1
- package/dist/cjs/behaviors/thermostat/ThermostatServer.js.map +2 -2
- package/dist/cjs/devices/water-heater.d.ts +24 -0
- package/dist/cjs/devices/water-heater.d.ts.map +1 -1
- package/dist/cjs/endpoint/Endpoint.d.ts +36 -2
- package/dist/cjs/endpoint/Endpoint.d.ts.map +1 -1
- package/dist/cjs/endpoint/Endpoint.js +17 -14
- package/dist/cjs/endpoint/Endpoint.js.map +1 -1
- package/dist/cjs/endpoint/properties/EndpointContainer.d.ts +1 -0
- package/dist/cjs/endpoint/properties/EndpointContainer.d.ts.map +1 -1
- package/dist/cjs/endpoint/properties/EndpointContainer.js +3 -0
- package/dist/cjs/endpoint/properties/EndpointContainer.js.map +1 -1
- package/dist/esm/behavior/Behavior.d.ts +1 -0
- package/dist/esm/behavior/Behavior.d.ts.map +1 -1
- package/dist/esm/behavior/Behavior.js +5 -0
- package/dist/esm/behavior/Behavior.js.map +1 -1
- package/dist/esm/behavior/internal/BehaviorBacking.js +2 -2
- package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
- package/dist/esm/behavior/state/managed/Datasource.d.ts +4 -5
- package/dist/esm/behavior/state/managed/Datasource.d.ts.map +1 -1
- package/dist/esm/behavior/state/managed/Datasource.js +7 -3
- package/dist/esm/behavior/state/managed/Datasource.js.map +1 -1
- package/dist/esm/behavior/state/managed/ManagedReference.d.ts +3 -2
- package/dist/esm/behavior/state/managed/ManagedReference.d.ts.map +1 -1
- package/dist/esm/behavior/state/managed/ManagedReference.js +66 -21
- package/dist/esm/behavior/state/managed/ManagedReference.js.map +1 -1
- package/dist/esm/behavior/state/managed/values/ListManager.js +2 -1
- package/dist/esm/behavior/state/managed/values/ListManager.js.map +1 -1
- package/dist/esm/behavior/state/managed/values/StructManager.js +9 -1
- package/dist/esm/behavior/state/managed/values/StructManager.js.map +1 -1
- package/dist/esm/behaviors/access-control/AccessControlServer.d.ts.map +1 -1
- package/dist/esm/behaviors/access-control/AccessControlServer.js +3 -3
- package/dist/esm/behaviors/access-control/AccessControlServer.js.map +1 -1
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +3 -9
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
- package/dist/esm/behaviors/service-area/ServiceAreaServer.js +2 -2
- package/dist/esm/behaviors/service-area/ServiceAreaServer.js.map +1 -1
- package/dist/esm/behaviors/thermostat/AtomicWriteHandler.d.ts +58 -0
- package/dist/esm/behaviors/thermostat/AtomicWriteHandler.d.ts.map +1 -0
- package/dist/esm/behaviors/thermostat/AtomicWriteHandler.js +293 -0
- package/dist/esm/behaviors/thermostat/AtomicWriteHandler.js.map +6 -0
- package/dist/esm/behaviors/thermostat/AtomicWriteState.d.ts +33 -0
- package/dist/esm/behaviors/thermostat/AtomicWriteState.d.ts.map +1 -0
- package/dist/esm/behaviors/thermostat/AtomicWriteState.js +66 -0
- package/dist/esm/behaviors/thermostat/AtomicWriteState.js.map +6 -0
- package/dist/esm/behaviors/thermostat/ThermostatBehavior.d.ts +12 -0
- package/dist/esm/behaviors/thermostat/ThermostatBehavior.d.ts.map +1 -1
- package/dist/esm/behaviors/thermostat/ThermostatInterface.d.ts +1 -0
- package/dist/esm/behaviors/thermostat/ThermostatInterface.d.ts.map +1 -1
- package/dist/esm/behaviors/thermostat/ThermostatServer.d.ts +894 -3
- package/dist/esm/behaviors/thermostat/ThermostatServer.d.ts.map +1 -1
- package/dist/esm/behaviors/thermostat/ThermostatServer.js +1225 -1
- package/dist/esm/behaviors/thermostat/ThermostatServer.js.map +2 -2
- package/dist/esm/devices/water-heater.d.ts +24 -0
- package/dist/esm/devices/water-heater.d.ts.map +1 -1
- package/dist/esm/endpoint/Endpoint.d.ts +36 -2
- package/dist/esm/endpoint/Endpoint.d.ts.map +1 -1
- package/dist/esm/endpoint/Endpoint.js +17 -14
- package/dist/esm/endpoint/Endpoint.js.map +1 -1
- package/dist/esm/endpoint/properties/EndpointContainer.d.ts +1 -0
- package/dist/esm/endpoint/properties/EndpointContainer.d.ts.map +1 -1
- package/dist/esm/endpoint/properties/EndpointContainer.js +3 -0
- package/dist/esm/endpoint/properties/EndpointContainer.js.map +1 -1
- package/package.json +7 -7
- package/src/behavior/Behavior.ts +10 -0
- package/src/behavior/internal/BehaviorBacking.ts +2 -2
- package/src/behavior/state/managed/Datasource.ts +14 -7
- package/src/behavior/state/managed/ManagedReference.ts +67 -19
- package/src/behavior/state/managed/values/ListManager.ts +1 -0
- package/src/behavior/state/managed/values/StructManager.ts +13 -3
- package/src/behaviors/access-control/AccessControlServer.ts +3 -7
- package/src/behaviors/general-diagnostics/GeneralDiagnosticsServer.ts +5 -9
- package/src/behaviors/service-area/ServiceAreaServer.ts +2 -2
- package/src/behaviors/thermostat/AtomicWriteHandler.ts +412 -0
- package/src/behaviors/thermostat/AtomicWriteState.ts +91 -0
- package/src/behaviors/thermostat/ThermostatInterface.ts +2 -0
- package/src/behaviors/thermostat/ThermostatServer.ts +1487 -3
- package/src/endpoint/Endpoint.ts +61 -5
- package/src/endpoint/properties/EndpointContainer.ts +4 -0
package/src/endpoint/Endpoint.ts
CHANGED
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
Lifecycle,
|
|
19
19
|
Logger,
|
|
20
20
|
MaybePromise,
|
|
21
|
+
Observable,
|
|
21
22
|
toHex,
|
|
22
23
|
UninitializedDependencyError,
|
|
23
24
|
} from "#general";
|
|
@@ -174,11 +175,18 @@ export class Endpoint<T extends EndpointType = EndpointType.Empty> {
|
|
|
174
175
|
|
|
175
176
|
/**
|
|
176
177
|
* Current state for a specific behavior ID.
|
|
178
|
+
*
|
|
179
|
+
* Be aware that using a string type does not provide type checking and does not enforce the correctness of the used
|
|
180
|
+
* Behavior type including all enabled features. Because of this the returned state is typed as a plain string
|
|
181
|
+
* indexed record (Val.Struct). Please ensure to have proper checks in place when using this method with string type.
|
|
177
182
|
*/
|
|
178
183
|
stateOf(type: string): Immutable<Val.Struct>;
|
|
179
184
|
|
|
180
185
|
/**
|
|
181
186
|
* Current state for a specific behavior.
|
|
187
|
+
*
|
|
188
|
+
* This is the recommended way to access state for a specific behavior because it provides proper type checking
|
|
189
|
+
* and enforces the correctness of the used Behavior type including all enabled features.
|
|
182
190
|
*/
|
|
183
191
|
stateOf<T extends Behavior.Type>(type: T): Immutable<Behavior.StateOf<T>>;
|
|
184
192
|
|
|
@@ -256,10 +264,37 @@ export class Endpoint<T extends EndpointType = EndpointType.Empty> {
|
|
|
256
264
|
*
|
|
257
265
|
* The patch semantics used here are identical to {@link set}.
|
|
258
266
|
*
|
|
267
|
+
* This is the recommended way to set state for a single behavior because it provides proper type checking and
|
|
268
|
+
* enforces the correctness of the used Behavior type including all enabled features.
|
|
269
|
+
*
|
|
259
270
|
* @param type the {@link Behavior} to patch
|
|
260
271
|
* @param values the values to change
|
|
261
272
|
*/
|
|
262
|
-
async setStateOf<T extends Behavior.Type>(type: T, values: Behavior.PatchStateOf<T>)
|
|
273
|
+
async setStateOf<T extends Behavior.Type>(type: T, values: Behavior.PatchStateOf<T>): Promise<void>;
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Update state values for a single behavior ID.
|
|
277
|
+
*
|
|
278
|
+
* The patch semantics used here are identical to {@link set}.
|
|
279
|
+
*
|
|
280
|
+
* Be aware that using a string type does not provide type checking and does not enforce the correctness of the used
|
|
281
|
+
* Behavior type including all enabled features. Expect runtime errors if the provided values are not compatible
|
|
282
|
+
* with the actual Behavior type.
|
|
283
|
+
*
|
|
284
|
+
* @param type the {@link Behavior} to patch
|
|
285
|
+
* @param values the values to change
|
|
286
|
+
*/
|
|
287
|
+
async setStateOf(type: string, values: Val.Struct): Promise<void>;
|
|
288
|
+
|
|
289
|
+
async setStateOf(type: Behavior.Type | string, values: Val.Struct) {
|
|
290
|
+
if (typeof type === "string") {
|
|
291
|
+
const typeName = type;
|
|
292
|
+
type = this.behaviors.supported[type];
|
|
293
|
+
if (type === undefined) {
|
|
294
|
+
throw new ImplementationError(`Behavior ${typeName} is not supported by ${this}`);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
|
|
263
298
|
await this.act(`setStateOf<${this}>`, async agent => {
|
|
264
299
|
const behavior = agent.get(type);
|
|
265
300
|
|
|
@@ -312,14 +347,35 @@ export class Endpoint<T extends EndpointType = EndpointType.Empty> {
|
|
|
312
347
|
return this.#events;
|
|
313
348
|
}
|
|
314
349
|
|
|
350
|
+
/**
|
|
351
|
+
* Events for a specific behavior ID.
|
|
352
|
+
*
|
|
353
|
+
* Be aware that using a string type does not provide type checking and does not enforce the correctness of the used
|
|
354
|
+
* Behavior type including all enabled features. Because of this each event is typed as Observable | undefined.
|
|
355
|
+
* Please ensure to have proper checks in place when using this method with string type.
|
|
356
|
+
*/
|
|
357
|
+
eventsOf(type: string): Immutable<Record<string, Observable | undefined>>;
|
|
358
|
+
|
|
315
359
|
/**
|
|
316
360
|
* Events for a specific behavior.
|
|
361
|
+
*
|
|
362
|
+
* This is the recommended way to access events for a specific behavior because it provides proper type checking
|
|
363
|
+
* and enforces the correctness of the used Behavior type including all enabled features.
|
|
317
364
|
*/
|
|
318
|
-
eventsOf<T extends Behavior.Type>(type: T)
|
|
319
|
-
|
|
320
|
-
|
|
365
|
+
eventsOf<T extends Behavior.Type>(type: T | string): Behavior.EventsOf<T>;
|
|
366
|
+
|
|
367
|
+
eventsOf(type: Behavior.Type | string): unknown {
|
|
368
|
+
if (typeof type === "string") {
|
|
369
|
+
if (!(type in this.#stateView)) {
|
|
370
|
+
throw new ImplementationError(`Behavior ${type} is not supported by ${this}`);
|
|
371
|
+
}
|
|
372
|
+
} else {
|
|
373
|
+
if (!this.behaviors.has(type)) {
|
|
374
|
+
throw new ImplementationError(`Behavior ${type.id} is not supported by this endpoint`);
|
|
375
|
+
}
|
|
376
|
+
type = type.id;
|
|
321
377
|
}
|
|
322
|
-
return this.#events[type
|
|
378
|
+
return this.#events[type];
|
|
323
379
|
}
|
|
324
380
|
|
|
325
381
|
get construction() {
|