@matter/protocol 0.16.0-alpha.0-20251016-b56cf5683 → 0.16.0-alpha.0-20251018-dd1ea6a8a

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 (155) hide show
  1. package/dist/cjs/action/client/ClientInteraction.d.ts +10 -5
  2. package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
  3. package/dist/cjs/action/client/ClientInteraction.js +129 -18
  4. package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
  5. package/dist/cjs/action/request/Invoke.d.ts +36 -8
  6. package/dist/cjs/action/request/Invoke.d.ts.map +1 -1
  7. package/dist/cjs/action/request/Invoke.js +80 -15
  8. package/dist/cjs/action/request/Invoke.js.map +1 -1
  9. package/dist/cjs/action/request/Read.d.ts +1 -1
  10. package/dist/cjs/action/request/Read.d.ts.map +1 -1
  11. package/dist/cjs/action/request/Read.js +10 -2
  12. package/dist/cjs/action/request/Read.js.map +1 -1
  13. package/dist/cjs/action/request/Specifier.d.ts +16 -1
  14. package/dist/cjs/action/request/Specifier.d.ts.map +1 -1
  15. package/dist/cjs/action/request/Specifier.js +56 -1
  16. package/dist/cjs/action/request/Specifier.js.map +1 -1
  17. package/dist/cjs/action/request/Write.d.ts +5 -3
  18. package/dist/cjs/action/request/Write.d.ts.map +1 -1
  19. package/dist/cjs/action/request/Write.js +52 -12
  20. package/dist/cjs/action/request/Write.js.map +1 -1
  21. package/dist/cjs/action/response/InvokeResult.d.ts +6 -0
  22. package/dist/cjs/action/response/InvokeResult.d.ts.map +1 -1
  23. package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
  24. package/dist/cjs/interaction/InteractionClient.js +91 -74
  25. package/dist/cjs/interaction/InteractionClient.js.map +1 -1
  26. package/dist/cjs/interaction/InteractionMessenger.d.ts +3 -2
  27. package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
  28. package/dist/cjs/interaction/InteractionMessenger.js +10 -3
  29. package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
  30. package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
  31. package/dist/cjs/protocol/ExchangeManager.js +20 -17
  32. package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
  33. package/dist/cjs/protocol/MessageChannel.d.ts.map +1 -1
  34. package/dist/cjs/protocol/MessageChannel.js +1 -1
  35. package/dist/cjs/protocol/MessageChannel.js.map +1 -1
  36. package/dist/cjs/protocol/MessageExchange.d.ts +1 -0
  37. package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
  38. package/dist/cjs/protocol/MessageExchange.js +14 -4
  39. package/dist/cjs/protocol/MessageExchange.js.map +1 -1
  40. package/dist/cjs/protocol/ProtocolHandler.d.ts +7 -2
  41. package/dist/cjs/protocol/ProtocolHandler.d.ts.map +1 -1
  42. package/dist/cjs/securechannel/SecureChannelProtocol.d.ts +1 -1
  43. package/dist/cjs/securechannel/SecureChannelProtocol.d.ts.map +1 -1
  44. package/dist/cjs/securechannel/SecureChannelProtocol.js +2 -1
  45. package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
  46. package/dist/cjs/session/GroupSession.d.ts +8 -1
  47. package/dist/cjs/session/GroupSession.d.ts.map +1 -1
  48. package/dist/cjs/session/GroupSession.js +10 -0
  49. package/dist/cjs/session/GroupSession.js.map +1 -1
  50. package/dist/cjs/session/NodeSession.d.ts +3 -1
  51. package/dist/cjs/session/NodeSession.d.ts.map +1 -1
  52. package/dist/cjs/session/NodeSession.js +13 -0
  53. package/dist/cjs/session/NodeSession.js.map +2 -2
  54. package/dist/cjs/session/SecureSession.d.ts +2 -0
  55. package/dist/cjs/session/SecureSession.d.ts.map +1 -1
  56. package/dist/cjs/session/SecureSession.js.map +1 -1
  57. package/dist/cjs/session/case/CaseClient.d.ts.map +1 -1
  58. package/dist/cjs/session/case/CaseClient.js +3 -15
  59. package/dist/cjs/session/case/CaseClient.js.map +1 -1
  60. package/dist/cjs/session/case/CaseServer.d.ts.map +1 -1
  61. package/dist/cjs/session/case/CaseServer.js +10 -18
  62. package/dist/cjs/session/case/CaseServer.js.map +1 -1
  63. package/dist/cjs/session/pase/PaseClient.js +1 -1
  64. package/dist/cjs/session/pase/PaseClient.js.map +1 -1
  65. package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -1
  66. package/dist/cjs/session/pase/PaseServer.js +2 -2
  67. package/dist/cjs/session/pase/PaseServer.js.map +1 -1
  68. package/dist/esm/action/client/ClientInteraction.d.ts +10 -5
  69. package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
  70. package/dist/esm/action/client/ClientInteraction.js +140 -20
  71. package/dist/esm/action/client/ClientInteraction.js.map +1 -1
  72. package/dist/esm/action/request/Invoke.d.ts +36 -8
  73. package/dist/esm/action/request/Invoke.d.ts.map +1 -1
  74. package/dist/esm/action/request/Invoke.js +81 -16
  75. package/dist/esm/action/request/Invoke.js.map +1 -1
  76. package/dist/esm/action/request/Read.d.ts +1 -1
  77. package/dist/esm/action/request/Read.d.ts.map +1 -1
  78. package/dist/esm/action/request/Read.js +12 -4
  79. package/dist/esm/action/request/Read.js.map +1 -1
  80. package/dist/esm/action/request/Specifier.d.ts +16 -1
  81. package/dist/esm/action/request/Specifier.d.ts.map +1 -1
  82. package/dist/esm/action/request/Specifier.js +56 -1
  83. package/dist/esm/action/request/Specifier.js.map +1 -1
  84. package/dist/esm/action/request/Write.d.ts +5 -3
  85. package/dist/esm/action/request/Write.d.ts.map +1 -1
  86. package/dist/esm/action/request/Write.js +53 -13
  87. package/dist/esm/action/request/Write.js.map +1 -1
  88. package/dist/esm/action/response/InvokeResult.d.ts +6 -0
  89. package/dist/esm/action/response/InvokeResult.d.ts.map +1 -1
  90. package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
  91. package/dist/esm/interaction/InteractionClient.js +92 -74
  92. package/dist/esm/interaction/InteractionClient.js.map +1 -1
  93. package/dist/esm/interaction/InteractionMessenger.d.ts +3 -2
  94. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
  95. package/dist/esm/interaction/InteractionMessenger.js +10 -3
  96. package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
  97. package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
  98. package/dist/esm/protocol/ExchangeManager.js +20 -17
  99. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  100. package/dist/esm/protocol/MessageChannel.d.ts.map +1 -1
  101. package/dist/esm/protocol/MessageChannel.js +2 -2
  102. package/dist/esm/protocol/MessageChannel.js.map +1 -1
  103. package/dist/esm/protocol/MessageExchange.d.ts +1 -0
  104. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
  105. package/dist/esm/protocol/MessageExchange.js +14 -4
  106. package/dist/esm/protocol/MessageExchange.js.map +1 -1
  107. package/dist/esm/protocol/ProtocolHandler.d.ts +7 -2
  108. package/dist/esm/protocol/ProtocolHandler.d.ts.map +1 -1
  109. package/dist/esm/securechannel/SecureChannelProtocol.d.ts +1 -1
  110. package/dist/esm/securechannel/SecureChannelProtocol.d.ts.map +1 -1
  111. package/dist/esm/securechannel/SecureChannelProtocol.js +2 -1
  112. package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
  113. package/dist/esm/session/GroupSession.d.ts +8 -1
  114. package/dist/esm/session/GroupSession.d.ts.map +1 -1
  115. package/dist/esm/session/GroupSession.js +11 -1
  116. package/dist/esm/session/GroupSession.js.map +1 -1
  117. package/dist/esm/session/NodeSession.d.ts +3 -1
  118. package/dist/esm/session/NodeSession.d.ts.map +1 -1
  119. package/dist/esm/session/NodeSession.js +13 -0
  120. package/dist/esm/session/NodeSession.js.map +2 -2
  121. package/dist/esm/session/SecureSession.d.ts +2 -0
  122. package/dist/esm/session/SecureSession.d.ts.map +1 -1
  123. package/dist/esm/session/SecureSession.js.map +1 -1
  124. package/dist/esm/session/case/CaseClient.d.ts.map +1 -1
  125. package/dist/esm/session/case/CaseClient.js +5 -17
  126. package/dist/esm/session/case/CaseClient.js.map +1 -1
  127. package/dist/esm/session/case/CaseServer.d.ts.map +1 -1
  128. package/dist/esm/session/case/CaseServer.js +12 -20
  129. package/dist/esm/session/case/CaseServer.js.map +1 -1
  130. package/dist/esm/session/pase/PaseClient.js +1 -1
  131. package/dist/esm/session/pase/PaseClient.js.map +1 -1
  132. package/dist/esm/session/pase/PaseServer.d.ts.map +1 -1
  133. package/dist/esm/session/pase/PaseServer.js +3 -2
  134. package/dist/esm/session/pase/PaseServer.js.map +1 -1
  135. package/package.json +6 -6
  136. package/src/action/client/ClientInteraction.ts +181 -27
  137. package/src/action/request/Invoke.ts +149 -27
  138. package/src/action/request/Read.ts +27 -7
  139. package/src/action/request/Specifier.ts +80 -1
  140. package/src/action/request/Write.ts +71 -19
  141. package/src/action/response/InvokeResult.ts +8 -0
  142. package/src/interaction/InteractionClient.ts +135 -96
  143. package/src/interaction/InteractionMessenger.ts +15 -3
  144. package/src/protocol/ExchangeManager.ts +27 -29
  145. package/src/protocol/MessageChannel.ts +2 -2
  146. package/src/protocol/MessageExchange.ts +18 -4
  147. package/src/protocol/ProtocolHandler.ts +7 -2
  148. package/src/securechannel/SecureChannelProtocol.ts +5 -1
  149. package/src/session/GroupSession.ts +12 -1
  150. package/src/session/NodeSession.ts +21 -0
  151. package/src/session/SecureSession.ts +2 -0
  152. package/src/session/case/CaseClient.ts +3 -23
  153. package/src/session/case/CaseServer.ts +15 -20
  154. package/src/session/pase/PaseClient.ts +1 -1
  155. package/src/session/pase/PaseServer.ts +3 -2
@@ -3,37 +3,65 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { Duration } from "#general";
6
7
  import { ClusterType, CommandData, InvokeRequest, TlvSchema, TypeFromSchema } from "#types";
7
8
  import { Specifier } from "./Specifier.js";
9
+ export interface InvokeCommandData extends CommandData {
10
+ timed?: boolean;
11
+ }
8
12
  export interface Invoke extends InvokeRequest {
9
13
  /** Timeout only relevant for Client Interactions */
10
- timeout?: number;
14
+ timeout?: Duration;
15
+ expectedProcessingTime?: Duration;
16
+ useExtendedFailSafeMessageResponseTimeout?: boolean;
17
+ }
18
+ export interface ClientInvoke extends Invoke {
19
+ commands: Map<number | undefined, Invoke.CommandRequest<any>>;
11
20
  }
12
21
  /**
13
22
  * Request invocation of one or more commands.
14
23
  */
15
- export declare function Invoke(options: Invoke.Definition): Invoke;
24
+ export declare function Invoke(options: Invoke.Definition): ClientInvoke;
16
25
  /**
17
26
  * Request invocation multiple commands with defined options
18
27
  */
19
- export declare function Invoke(options: Invoke.Definition, ...commands: CommandData[]): Invoke;
28
+ export declare function Invoke(options: Invoke.Definition, ...commands: Invoke.CommandRequest<any>[]): ClientInvoke;
20
29
  /**
21
30
  * Request invocation multiple commands as list of Commands with default options.
22
31
  */
23
- export declare function Invoke(...commands: CommandData[]): Invoke;
32
+ export declare function Invoke(...commands: Invoke.CommandRequest<any>[]): ClientInvoke;
24
33
  export declare namespace Invoke {
25
34
  interface Definition {
26
- commands: CommandData[];
35
+ /** List of commands to invoke */
36
+ commands: Invoke.CommandRequest<any>[];
37
+ /** Tell the server to not send a response */
27
38
  suppressResponse?: boolean;
39
+ /** Whether this is sent as a timed request, if no timeout is specified a default is used */
28
40
  timed?: boolean;
41
+ /** Timeout when sent as a timed request, if timed flag is not set it will be set automatically */
42
+ timeout?: Duration;
43
+ /** Interaction model revision to use, if not specified a default is used */
29
44
  interactionModelRevision?: number;
45
+ /** Processing time of the command of the server assumed for this invoke. If not set a default is used */
46
+ expectedProcessingTime?: Duration;
47
+ /** Whether to use extended timeout for fail-safe messages. Overwrites the expectedProcessingTime if both are set */
48
+ useExtendedFailSafeMessageResponseTimeout?: boolean;
49
+ /** Whether to skip validation of command fields against schema */
50
+ skipValidation?: boolean;
30
51
  }
31
- function Command<const C extends ClusterType>(request: Invoke.CommandRequest<C>): CommandData;
32
- type CommandRequest<C extends Specifier.Cluster = Specifier.Cluster, CMD extends Specifier.Command<Specifier.ClusterFor<C>> = Specifier.Command<Specifier.ClusterFor<C>>> = {
33
- endpoint?: Specifier.Endpoint;
52
+ function Command<const C extends ClusterType>(request: Invoke.CommandRequest<C>, skipValidation?: boolean): InvokeCommandData;
53
+ type CommandRequest<C extends Specifier.Cluster = Specifier.Cluster, CMD extends Specifier.Command<Specifier.ClusterFor<C>> = Specifier.Command<Specifier.ClusterFor<C>>> = ConcreteCommandRequest<C, CMD> | WildcardCommandRequest<C, CMD>;
54
+ type ConcreteCommandRequest<C extends Specifier.Cluster = Specifier.Cluster, CMD extends Specifier.Command<Specifier.ClusterFor<C>> = Specifier.Command<Specifier.ClusterFor<C>>> = WildcardCommandRequest<C, CMD> & {
55
+ endpoint: Specifier.Endpoint;
56
+ };
57
+ function ConcreteCommandRequest<const C extends ClusterType>(data: Invoke.ConcreteCommandRequest<C>): Invoke.ConcreteCommandRequest<any>;
58
+ type WildcardCommandRequest<C extends Specifier.Cluster = Specifier.Cluster, CMD extends Specifier.Command<Specifier.ClusterFor<C>> = Specifier.Command<Specifier.ClusterFor<C>>> = {
34
59
  cluster: C;
35
60
  command: CMD;
61
+ commandName?: string;
62
+ commandRef?: number;
36
63
  } & Fields<Specifier.CommandFor<Specifier.ClusterFor<C>, CMD>["requestSchema"]>;
64
+ function WildcardCommandRequest<const C extends ClusterType>(data: Invoke.WildcardCommandRequest<C>): Invoke.WildcardCommandRequest<any>;
37
65
  function commandOf<const R extends CommandRequest>(request: R): ClusterType.Command;
38
66
  type Fields<S extends TlvSchema<any>> = S extends TlvSchema<void> ? {} : S extends TlvSchema<null> ? {
39
67
  fields?: TypeFromSchema<S>;
@@ -1 +1 @@
1
- {"version":3,"file":"Invoke.d.ts","sourceRoot":"","sources":["../../../../src/action/request/Invoke.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAa,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEvG,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,MAAO,SAAQ,aAAa;IACzC,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC;AAE3D;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;AAEvF;;GAEG;AACH,wBAAgB,MAAM,CAAC,GAAG,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;AAwC3D,yBAAiB,MAAM,CAAC;IACpB,UAAiB,UAAU;QACvB,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACrC;IAED,SAAgB,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,WAAW,CAuBnG;IAED,KAAY,cAAc,CACtB,CAAC,SAAS,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,EAC/C,GAAG,SAAS,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IACnG;QACA,QAAQ,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC;QAC9B,OAAO,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,GAAG,CAAC;KAChB,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IAEhF,SAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,CAazF;IAED,KAAY,MAAM,CAAC,CAAC,SAAS,SAAS,CAAC,GAAG,CAAC,IACvC,CAAC,SAAS,SAAS,CAAC,IAAI,CAAC,GACnB,EAAE,GACF,CAAC,SAAS,SAAS,CAAC,IAAI,CAAC,GACvB;QAAE,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;KAAE,GAC9B;QAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;CAC7C"}
1
+ {"version":3,"file":"Invoke.d.ts","sourceRoot":"","sources":["../../../../src/action/request/Invoke.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,11 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { Diagnostic, isObject } from "#general";
6
7
  import { FALLBACK_INTERACTIONMODEL_REVISION } from "#session/Session.js";
8
+ import { FabricIndex, ObjectSchema } from "#types";
7
9
  import { MalformedRequestError } from "./MalformedRequestError.js";
8
- import { Specifier } from "./Specifier.js";
10
+ import { resolvePathForSpecifier, Specifier } from "./Specifier.js";
9
11
  function Invoke(optionsOrData, ...commands) {
10
12
  if (optionsOrData === void 0) {
11
13
  throw new MalformedRequestError(`Invocation requires at least one command`);
@@ -13,44 +15,93 @@ function Invoke(optionsOrData, ...commands) {
13
15
  let options;
14
16
  if ("commands" in optionsOrData) {
15
17
  options = optionsOrData;
18
+ commands = [...optionsOrData.commands, ...commands];
16
19
  } else {
17
20
  commands = [optionsOrData, ...commands];
18
21
  options = {};
19
22
  }
20
23
  const {
21
- commands: invokeRequests = [],
22
24
  interactionModelRevision = FALLBACK_INTERACTIONMODEL_REVISION,
23
25
  suppressResponse = false,
24
- timed: timedRequest = false
26
+ timeout,
27
+ expectedProcessingTime,
28
+ useExtendedFailSafeMessageResponseTimeout = false,
29
+ skipValidation = false
25
30
  } = options;
26
- if (commands.length) {
27
- for (const entry of commands) {
28
- invokeRequests.push(entry);
29
- }
30
- }
31
- if (!invokeRequests?.length) {
31
+ let timedRequest = !!options.timed || !!timeout;
32
+ if (!commands?.length) {
32
33
  throw new MalformedRequestError(`Invocation requires at least one command`);
33
34
  }
35
+ if (commands.length > 1) {
36
+ const commandRefs = /* @__PURE__ */ new Set();
37
+ for (const { commandRef } of commands) {
38
+ if (commandRef === void 0) {
39
+ throw new MalformedRequestError(`CommandRef required when invoking multiple commands`);
40
+ }
41
+ if (commandRefs.has(commandRef)) {
42
+ throw new MalformedRequestError(`Duplicate commandRef ${commandRef} in multiple command invoke`);
43
+ }
44
+ commandRefs.add(commandRef);
45
+ }
46
+ }
47
+ const commandMap = /* @__PURE__ */ new Map();
48
+ const invokeRequests = commands.map((cmd) => {
49
+ const cmdData = Invoke.Command(cmd, skipValidation);
50
+ timedRequest ||= !!cmdData.timed;
51
+ commandMap.set(cmdData.commandRef, cmd);
52
+ return cmdData;
53
+ });
34
54
  return {
55
+ timedRequest,
56
+ timeout,
35
57
  invokeRequests,
36
58
  interactionModelRevision,
37
59
  suppressResponse,
38
- timedRequest
60
+ expectedProcessingTime,
61
+ useExtendedFailSafeMessageResponseTimeout,
62
+ // Additional meta-data for client side processing
63
+ commands: commandMap,
64
+ [Diagnostic.value]: () => Diagnostic.list(
65
+ commands.map((cmd) => {
66
+ const { commandRef } = cmd;
67
+ const fields = "fields" in cmd ? cmd.fields : void 0;
68
+ return [
69
+ Diagnostic.strong(resolvePathForSpecifier(cmd)),
70
+ "with",
71
+ isObject(fields) ? Diagnostic.dict(fields) : "(no payload)",
72
+ commandRef !== void 0 ? `(ref ${commandRef})` : ""
73
+ ];
74
+ })
75
+ )
39
76
  };
40
77
  }
41
78
  ((Invoke2) => {
42
- function Command(request) {
79
+ function Command(request, skipValidation = false) {
43
80
  const command = Invoke2.commandOf(request);
44
- let commandFields;
45
- if ("fields" in request) {
46
- commandFields = command.requestSchema.encodeTlv(request.fields, { forWriteInteraction: true });
81
+ const { requestSchema, requestId, timed } = command;
82
+ const { commandRef } = request;
83
+ let fields = "fields" in request ? request.fields : void 0;
84
+ if (requestSchema instanceof ObjectSchema) {
85
+ if (fields === void 0) {
86
+ fields = {};
87
+ }
88
+ if (requestSchema.isFabricScoped && fields.fabricIndex === void 0) {
89
+ fields.fabricIndex = FabricIndex.NO_FABRIC;
90
+ }
91
+ }
92
+ if (!skipValidation) {
93
+ requestSchema.validate(fields);
47
94
  }
95
+ const commandFields = requestSchema.encodeTlv(fields);
48
96
  const result = {
49
97
  commandPath: {
98
+ // Endpoint id is added below if not wildcard
50
99
  clusterId: Specifier.clusterFor(request.cluster).id,
51
- commandId: command.requestId
100
+ commandId: requestId
52
101
  },
53
- commandFields
102
+ commandFields,
103
+ timed: timed ?? false,
104
+ commandRef
54
105
  };
55
106
  const endpointId = Specifier.endpointIdOf(request);
56
107
  if (endpointId !== void 0) {
@@ -59,6 +110,20 @@ function Invoke(optionsOrData, ...commands) {
59
110
  return result;
60
111
  }
61
112
  Invoke2.Command = Command;
113
+ function ConcreteCommandRequest(data) {
114
+ if (data.endpoint === void 0) {
115
+ throw new MalformedRequestError(`ConcreteCommandRequest requires an endpoint`);
116
+ }
117
+ return data;
118
+ }
119
+ Invoke2.ConcreteCommandRequest = ConcreteCommandRequest;
120
+ function WildcardCommandRequest(data) {
121
+ if ("endpoint" in data && data.endpoint !== void 0) {
122
+ throw new MalformedRequestError(`ConcreteCommandRequest must not have an endpoint`);
123
+ }
124
+ return data;
125
+ }
126
+ Invoke2.WildcardCommandRequest = WildcardCommandRequest;
62
127
  function commandOf(request) {
63
128
  if (typeof request.command === "string") {
64
129
  const cluster = Specifier.clusterFor(request.cluster);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/action/request/Invoke.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,0CAA0C;AAEnD,SAAS,6BAA6B;AACtC,SAAS,iBAAiB;AAsBnB,SAAS,OAAO,kBAAmD,UAAiC;AACvG,MAAI,kBAAkB,QAAW;AAC7B,UAAM,IAAI,sBAAsB,0CAA0C;AAAA,EAC9E;AAEA,MAAI;AACJ,MAAI,cAAc,eAAe;AAC7B,cAAU;AAAA,EACd,OAAO;AACH,eAAW,CAAC,eAAe,GAAG,QAAQ;AACtC,cAAU,CAAC;AAAA,EACf;AAEA,QAAM;AAAA,IACF,UAAU,iBAAiB,CAAC;AAAA,IAC5B,2BAA2B;AAAA,IAC3B,mBAAmB;AAAA,IACnB,OAAO,eAAe;AAAA,EAC1B,IAAI;AAEJ,MAAI,SAAS,QAAQ;AACjB,eAAW,SAAS,UAAU;AAC1B,qBAAe,KAAK,KAAK;AAAA,IAC7B;AAAA,EACJ;AAEA,MAAI,CAAC,gBAAgB,QAAQ;AACzB,UAAM,IAAI,sBAAsB,0CAA0C;AAAA,EAC9E;AAEA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAAA,CAEO,CAAUA,YAAV;AAQI,WAAS,QAAqC,SAAgD;AACjG,UAAM,UAAUA,QAAO,UAAU,OAAO;AAExC,QAAI;AAEJ,QAAI,YAAY,SAAS;AACrB,sBAAgB,QAAQ,cAAc,UAAU,QAAQ,QAAQ,EAAE,qBAAqB,KAAK,CAAC;AAAA,IACjG;AAEA,UAAM,SAAsB;AAAA,MACxB,aAAa;AAAA,QACT,WAAW,UAAU,WAAW,QAAQ,OAAO,EAAE;AAAA,QACjD,WAAW,QAAQ;AAAA,MACvB;AAAA,MACA;AAAA,IACJ;AAEA,UAAM,aAAa,UAAU,aAAa,OAAO;AACjD,QAAI,eAAe,QAAW;AAC1B,aAAO,YAAY,aAAa;AAAA,IACpC;AAEA,WAAO;AAAA,EACX;AAvBO,EAAAA,QAAS;AAkCT,WAAS,UAA0C,SAAiC;AACvF,QAAI,OAAO,QAAQ,YAAY,UAAU;AACrC,YAAM,UAAU,UAAU,WAAW,QAAQ,OAAO;AACpD,UAAI,YAAY,QAAW;AACvB,cAAM,IAAI,sBAAsB,6BAA6B,QAAQ,OAAO,mBAAmB;AAAA,MACnG;AACA,YAAM,UAAU,QAAQ,SAAS,QAAQ,OAAO;AAChD,UAAI,YAAY,QAAW;AACvB,cAAM,IAAI,sBAAsB,WAAW,QAAQ,IAAI,4BAA4B,QAAQ,OAAO,EAAE;AAAA,MACxG;AACA,aAAO;AAAA,IACX;AACA,WAAO,QAAQ;AAAA,EACnB;AAbO,EAAAA,QAAS;AAAA,GA1CH;",
4
+ "mappings": "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",
5
5
  "names": ["Invoke"]
6
6
  }
@@ -3,7 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import type { AttributePath, ClusterType, DataVersionFilter, EventFilter, EventPath, GlobalAttributes, ReadRequest } from "#types";
6
+ import { AttributePath, ClusterType, DataVersionFilter, EventFilter, EventPath, GlobalAttributes, ReadRequest } from "#types";
7
7
  import { Specifier } from "./Specifier.js";
8
8
  /**
9
9
  * A read request formulated using Matter protocol semantics.
@@ -1 +1 @@
1
- {"version":3,"file":"Read.d.ts","sourceRoot":"","sources":["../../../../src/action/request/Read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Read.d.ts","sourceRoot":"","sources":["../../../../src/action/request/Read.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { camelize } from "#general";
7
- import { FALLBACK_INTERACTIONMODEL_REVISION } from "#session/Session.js";
6
+ import { camelize, Diagnostic } from "#general";
7
+ import { Specification } from "#model";
8
8
  import { MalformedRequestError } from "./MalformedRequestError.js";
9
- import { Specifier } from "./Specifier.js";
9
+ import { resolvePathForSpecifier, Specifier } from "./Specifier.js";
10
10
  function Read(optionsOrSelector, ...selectors) {
11
11
  if (optionsOrSelector === void 0) {
12
12
  throw new MalformedRequestError(`Read action designates no attributes or events`);
@@ -21,7 +21,15 @@ function Read(optionsOrSelector, ...selectors) {
21
21
  let { attributes: attributeRequests, versionFilters, events: eventRequests, eventFilters } = options;
22
22
  const result = {
23
23
  isFabricFiltered: options.fabricFilter ?? true,
24
- interactionModelRevision: options.interactionModelRevision ?? FALLBACK_INTERACTIONMODEL_REVISION
24
+ interactionModelRevision: options.interactionModelRevision ?? Specification.INTERACTION_MODEL_REVISION,
25
+ [Diagnostic.value]: () => Diagnostic.dict({
26
+ attributes: attributeRequests?.length ? attributeRequests?.map((path) => resolvePathForSpecifier(path)).join(", ") : void 0,
27
+ events: eventRequests?.length ? eventRequests?.map((path) => resolvePathForSpecifier(path)).join(", ") : void 0,
28
+ dataVersionFilters: versionFilters?.length ? versionFilters.map(
29
+ ({ path: { endpointId, clusterId }, dataVersion }) => `${endpointId}/${clusterId}=${dataVersion}`
30
+ ).join(", ") : void 0,
31
+ eventFilters: eventFilters?.length ? eventFilters.map(({ nodeId, eventMin }) => `${nodeId}=${eventMin}`).join(", ") : void 0
32
+ })
25
33
  };
26
34
  for (const selector of selectors) {
27
35
  reifySelector(selector);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/action/request/Read.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,UAAU,kBAAkB;AACrC,SAAS,qBAAqB;AAU9B,SAAS,6BAA6B;AACtC,SAAS,yBAAyB,iBAAiB;AAiB5C,SAAS,KAAK,sBAAoD,WAAkC;AACvG,MAAI,sBAAsB,QAAW;AACjC,UAAM,IAAI,sBAAsB,gDAAgD;AAAA,EACpF;AAEA,MAAI;AACJ,MAAI,UAAU,mBAAmB;AAC7B,gBAAY,CAAC,mBAAmB,GAAG,SAAS;AAC5C,cAAU,CAAC;AAAA,EACf,OAAO;AACH,cAAU;AAAA,EACd;AACA,MAAI,EAAE,YAAY,mBAAmB,gBAAgB,QAAQ,eAAe,aAAa,IAAI;AAE7F,QAAM,SAAS;AAAA,IACX,kBAAkB,QAAQ,gBAAgB;AAAA,IAC1C,0BAA0B,QAAQ,4BAA4B,cAAc;AAAA,IAC5E,CAAC,WAAW,KAAK,GAAG,MAChB,WAAW,KAAK;AAAA,MACZ,YAAY,mBAAmB,SACzB,mBAAmB,IAAI,UAAQ,wBAAwB,IAAI,CAAC,EAAE,KAAK,IAAI,IACvE;AAAA,MACN,QAAQ,eAAe,SACjB,eAAe,IAAI,UAAQ,wBAAwB,IAAI,CAAC,EAAE,KAAK,IAAI,IACnE;AAAA,MACN,oBAAoB,gBAAgB,SAC9B,eACK;AAAA,QACG,CAAC,EAAE,MAAM,EAAE,YAAY,UAAU,GAAG,YAAY,MAC5C,GAAG,UAAU,IAAI,SAAS,IAAI,WAAW;AAAA,MACjD,EACC,KAAK,IAAI,IACd;AAAA,MACN,cAAc,cAAc,SACtB,aAAa,IAAI,CAAC,EAAE,QAAQ,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,EAAE,EAAE,KAAK,IAAI,IAC7E;AAAA,IACV,CAAC;AAAA,EACT;AAEA,aAAW,YAAY,WAAW;AAC9B,kBAAc,QAAQ;AAAA,EAC1B;AAEA,MAAI,CAAC,mBAAmB,UAAU,CAAC,eAAe,QAAQ;AACtD,UAAM,IAAI,sBAAsB,gDAAgD;AAAA,EACpF;AAEA,MAAI,mBAAmB;AACnB,WAAO,oBAAoB;AAAA,EAC/B;AAEA,MAAI,gBAAgB;AAChB,WAAO,qBAAqB;AAAA,EAChC;AAEA,MAAI,eAAe;AACf,WAAO,gBAAgB;AAAA,EAC3B;AAEA,MAAI,iBAAiB,QAAW;AAC5B,WAAO,eAAe;AAAA,EAC1B;AAEA,SAAO;AAEP,WAAS,cAAc,UAAyB;AAC5C,YAAQ,SAAS,MAAM;AAAA,MACnB,KAAK;AACD,+BAAuB,QAAQ;AAC/B;AAAA,MAEJ,KAAK;AACD,2BAAmB,QAAQ;AAC3B;AAAA,MAEJ;AACI,cAAM,IAAI,sBAAsB,0BAA2B,SAA2B,IAAI,GAAG;AAAA,IACrG;AAAA,EACJ;AAKA,WAAS,uBAAuB,UAAkC;AAC9D,UAAM,UAAU,UAAU,UAAU,QAAQ;AAC5C,UAAM,EAAE,SAAS,IAAI;AAGrB,QAAI,OAAO,aAAa,YAAY,UAAU,YAAY,OAAO,YAAY,YAAY,YAAY,MAAM;AACvG,YAAM,UAAU,SAAS,WAAW,SAAS,QAAQ,IAAI,CAAC;AAC1D,UAAI,YAAY,QAAW;AACvB,cAAM,SAAS;AAAA,UACX,MAAM,EAAE,YAAY,SAAS,QAAQ,WAAW,QAAQ,GAAG;AAAA,UAC3D,aAAa;AAAA,QACjB;AACA,YAAI,mBAAmB,QAAW;AAC9B,2BAAiB,CAAC,MAAM;AAAA,QAC5B,WACI,eAAe;AAAA,UACX,CAAC,EAAE,MAAM,EAAE,YAAY,UAAU,EAAE,MAC/B,eAAe,SAAS,UAAU,cAAc,QAAQ;AAAA,QAChE,MAAM,QACR;AACE,yBAAe,KAAK,MAAM;AAAA,QAC9B;AAAA,MACJ;AAAA,IACJ;AAGA,QAAI,sBAAsB,QAAW;AACjC,0BAAoB,CAAC;AAAA,IACzB;AACA,UAAM,YAA2B,CAAC;AAClC,QAAI,aAAa,QAAW;AACxB,gBAAU,aAAa,UAAU,aAAa,QAAQ;AAAA,IAC1D;AACA,QAAI,YAAY,QAAW;AACvB,gBAAU,YAAY,QAAQ;AAAA,IAClC;AAGA,QAAI,EAAE,WAAW,IAAI;AACrB,QAAI,eAAe,QAAW;AAC1B,wBAAkB,KAAK,SAAS;AAChC;AAAA,IACJ;AAGA,QAAI,CAAC,MAAM,QAAQ,UAAU,GAAG;AAC5B,mBAAa,CAAC,UAAU;AAAA,IAC5B;AACA,eAAW,aAAa,YAAY;AAChC,wBAAkB,KAAK,EAAE,GAAG,WAAW,aAAa,UAAU,aAAa,SAAS,SAAS,EAAE,GAAG,CAAC;AAAA,IACvG;AAAA,EACJ;AAKA,WAAS,mBAAmB,UAA8B;AACtD,UAAM,UAAU,UAAU,UAAU,QAAQ;AAC5C,UAAM,EAAE,SAAS,IAAI;AAGrB,QAAI,OAAO,aAAa,YAAY,SAAS,aAAa,QAAW;AACjE,UAAI,iBAAiB,QAAW;AAC5B,uBAAe,CAAC,EAAE,UAAU,SAAS,SAAS,CAAC;AAAA,MACnD;AAAA,IACJ;AAGA,QAAI,kBAAkB,QAAW;AAC7B,sBAAgB,CAAC;AAAA,IACrB;AACA,UAAM,YAAuB,CAAC;AAC9B,QAAI,aAAa,QAAW;AACxB,gBAAU,aAAa,UAAU,aAAa,QAAQ;AAAA,IAC1D;AACA,QAAI,YAAY,QAAW;AACvB,gBAAU,YAAY,QAAQ;AAAA,IAClC;AAGA,QAAI,EAAE,OAAO,IAAI;AACjB,QAAI,WAAW,QAAW;AACtB,oBAAc,KAAK,SAAS;AAC5B;AAAA,IACJ;AAGA,QAAI,CAAC,MAAM,QAAQ,MAAM,GAAG;AACxB,eAAS,CAAC,MAAM;AAAA,IACpB;AACA,eAAW,aAAa,QAAQ;AAC5B,oBAAc,KAAK,EAAE,GAAG,WAAW,SAAS,UAAU,SAAS,SAAS,SAAS,EAAE,GAAG,CAAC;AAAA,IAC3F;AAAA,EACJ;AACJ;AAAA,CAEO,CAAUA,UAAV;AAcI,WAAS,kBAAkB,SAAsC;AACpE,WAAO,CAAC,CAAC,QAAQ,mBAAmB;AAAA,EACxC;AAFO,EAAAA,MAAS;AAQT,WAAS,cAAc,SAAkC;AAC5D,WAAO,CAAC,CAAC,QAAQ,eAAe;AAAA,EACpC;AAFO,EAAAA,MAAS;AAgCT,WAAS,UACZ,UAC4C;AAC5C,WAAO;AAAA,MACH,MAAM;AAAA,MACN,GAAG;AAAA,IACP;AAAA,EACJ;AAPO,EAAAA,MAAS;AAST,WAAS,MAAqC,UAAoC;AACrF,WAAO;AAAA,MACH,MAAM;AAAA,MACN,GAAG;AAAA,IACP;AAAA,EACJ;AALO,EAAAA,MAAS;AAAA,GA/DH;",
5
5
  "names": ["Read"]
6
6
  }
@@ -33,7 +33,7 @@ export declare namespace Specifier {
33
33
  */
34
34
  type Command<C extends ClusterType = ClusterType> = ClusterType.Command | (string & keyof C["commands"]);
35
35
  /**
36
- * An event specifier may be the name of a cluser event or an event object.
36
+ * An event specifier may be the name of a cluster event or an event object.
37
37
  */
38
38
  type Event<C extends ClusterType = ClusterType> = ClusterType.Event | (string & keyof C["events"]);
39
39
  /**
@@ -54,6 +54,7 @@ export declare namespace Specifier {
54
54
  * Extract a command type from a cluster type and command specifier.
55
55
  */
56
56
  type CommandFor<C extends ClusterType, CMD extends Specifier.Command<C>> = CMD extends string ? C["commands"][CMD] : CMD extends ClusterType.Command ? CMD : never;
57
+ function commandFor<const C extends ClusterType, const CMD extends Specifier.Command<C>>(cluster: C | undefined, specifier: CMD): CommandFor<C, CMD>;
57
58
  /**
58
59
  * Extract an event object from a cluster and event specifier.
59
60
  */
@@ -79,4 +80,18 @@ export declare namespace Specifier {
79
80
  endpoint?: Endpoint;
80
81
  }>(request: T): EndpointNumber | undefined;
81
82
  }
83
+ export declare function toWildcardOrHexPath(name: string, value: number | bigint | undefined): string;
84
+ /**
85
+ * Resolve a path into a human readable textual form for logging
86
+ * TODO: Add a Diagnostic display formatter for this
87
+ */
88
+ export declare function resolvePathForSpecifier<const C extends ClusterType>(location: {
89
+ endpoint?: Specifier.Endpoint;
90
+ cluster?: Specifier.Cluster;
91
+ attribute?: Specifier.Attribute<Specifier.ClusterFor<C>>;
92
+ event?: Specifier.Event<Specifier.ClusterFor<C>>;
93
+ command?: Specifier.Command<Specifier.ClusterFor<C>>;
94
+ isUrgent?: boolean;
95
+ listIndex?: number | null;
96
+ }): string;
82
97
  //# sourceMappingURL=Specifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Specifier.d.ts","sourceRoot":"","sources":["../../../../src/action/request/Specifier.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAoB,MAAM,QAAQ,CAAC;AAK7F;;GAEG;AACH,yBAAiB,SAAS,CAAC;IACvB;;;OAGG;IACH,KAAY,OAAO,GAAG,WAAW,GAAG;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC;IAE7D;;;OAGG;IACH,KAAY,QAAQ,GACd,cAAc,GACd;QAAE,MAAM,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEvF;;OAEG;IACH,KAAY,SAAS,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IACnD,WAAW,CAAC,SAAS,GACrB,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,GAChC,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAEhC;;OAEG;IACH,KAAY,OAAO,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,WAAW,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAEhH;;OAEG;IACH,KAAY,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE1G;;OAEG;IACH,KAAY,UAAU,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,SAAS,WAAW,GAC3D,CAAC,GACD,CAAC,SAAS;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE,GAChC,CAAC,CAAC,SAAS,CAAC,GACZ,KAAK,CAAC;IAEd;;OAEG;IACH,SAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,CAAC,iBAK/D;IAED;;OAEG;IACH,SAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,yBAmB5F;IAED;;OAEG;IACH,KAAY,UAAU,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,SAAS,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,MAAM,GAC9F,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAClB,GAAG,SAAS,WAAW,CAAC,OAAO,GAC7B,GAAG,GACH,KAAK,CAAC;IAEd;;OAEG;IACH,SAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,qBAepF;IAED;;OAEG;IACH,KAAY,SAAS,CAAC,CAAC,SAAS;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAA;KAAE,GAC3F,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAClC,SAAS,CAAC;IAEhB;;OAEG;IACH,SAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAKzF;IAED;;OAEG;IACH,SAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,EAAE,OAAO,EAAE,CAAC,GAAG,cAAc,GAAG,SAAS,CAK5G;CACJ"}
1
+ {"version":3,"file":"Specifier.d.ts","sourceRoot":"","sources":["../../../../src/action/request/Specifier.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,20 @@ var Specifier;
33
33
  return attr;
34
34
  }
35
35
  Specifier2.attributeFor = attributeFor;
36
+ function commandFor(cluster, specifier) {
37
+ if (typeof specifier !== "string") {
38
+ return specifier;
39
+ }
40
+ if (cluster === void 0) {
41
+ throw new MalformedRequestError(`Cannot designate command "${specifier}" without a cluster`);
42
+ }
43
+ const command = cluster.commands?.[specifier];
44
+ if (command === void 0) {
45
+ throw new MalformedRequestError(`Cluster ${cluster.name} does not define command ${specifier}`);
46
+ }
47
+ return command;
48
+ }
49
+ Specifier2.commandFor = commandFor;
36
50
  function eventFor(cluster, specifier) {
37
51
  if (typeof specifier === "object") {
38
52
  return specifier;
@@ -62,7 +76,48 @@ var Specifier;
62
76
  }
63
77
  Specifier2.endpointIdOf = endpointIdOf;
64
78
  })(Specifier || (Specifier = {}));
79
+ function toWildcardOrHexPath(name, value) {
80
+ if (value === void 0) {
81
+ return "*";
82
+ }
83
+ return `${name ? `${name}:` : ""}0x${value.toString(16)}`;
84
+ }
85
+ function resolvePathForSpecifier(location) {
86
+ const endpointId = Specifier.endpointIdOf(location);
87
+ const cluster = location.cluster ? Specifier.clusterFor(location.cluster) : void 0;
88
+ const attribute = location.attribute && cluster ? Specifier.attributeFor(cluster, location.attribute) : void 0;
89
+ const event = location.event && cluster ? Specifier.eventFor(cluster, location.event) : void 0;
90
+ const command = location.command && cluster ? Specifier.commandFor(cluster, location.command) : void 0;
91
+ const isUrgentString = "isUrgent" in location && location.isUrgent ? "!" : "";
92
+ const listIndexString = "listIndex" in location && location.listIndex === null ? "[ADD]" : "";
93
+ const postString = `${listIndexString}${isUrgentString}`;
94
+ const clusterId = cluster?.id;
95
+ const elementId = attribute ? attribute.id : event ? event.id : command ? command.requestId : void 0;
96
+ if (endpointId === void 0) {
97
+ return `*.${toWildcardOrHexPath("", clusterId)}.${toWildcardOrHexPath("", elementId)}${postString}`;
98
+ }
99
+ const endpointName = toWildcardOrHexPath("", endpointId);
100
+ if (cluster === void 0 || clusterId === void 0) {
101
+ return `${endpointName}.*.${toWildcardOrHexPath("", elementId)}${postString}`;
102
+ }
103
+ const clusterName = toWildcardOrHexPath(cluster.name, clusterId);
104
+ if (elementId !== void 0) {
105
+ if (event) {
106
+ return `${endpointName}.${clusterName}.${toWildcardOrHexPath(typeof location.event === "string" ? location.event : "?", elementId)}${postString}`;
107
+ } else if (attribute) {
108
+ return `${endpointName}.${clusterName}.${toWildcardOrHexPath(typeof location.attribute === "string" ? location.attribute : "?", elementId)}${postString}`;
109
+ } else if (command) {
110
+ return `${endpointName}.${clusterName}.${toWildcardOrHexPath(typeof location.command === "string" ? location.command : "?", elementId)}${postString}`;
111
+ } else {
112
+ return "unknown";
113
+ }
114
+ } else {
115
+ return `${endpointName}.${clusterName}.*${postString}`;
116
+ }
117
+ }
65
118
  export {
66
- Specifier
119
+ Specifier,
120
+ resolvePathForSpecifier,
121
+ toWildcardOrHexPath
67
122
  };
68
123
  //# sourceMappingURL=Specifier.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/action/request/Specifier.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAA4D,wBAAwB;AACpF,SAAS,6BAA6B;AAEtC,MAAM,gBAAgB,iBAAiB,CAAC,CAAC;AAKlC,IAAU;AAAA,CAAV,CAAUA,eAAV;AA6CI,WAAS,WAAoC,WAAc;AAC9D,QAAI,aAAa,WAAW;AACxB,aAAO,UAAU,SAAS;AAAA,IAC9B;AACA,WAAO;AAAA,EACX;AALO,EAAAA,WAAS;AAUT,WAAS,aAAa,SAAkC,WAAgC;AAC3F,QAAI,OAAO,cAAc,UAAU;AAC/B,aAAO;AAAA,IACX;AAEA,QAAI,YAAY,QAAW;AACvB,YAAMC,QAAO,cAAc,SAAS;AACpC,UAAIA,UAAS,QAAW;AACpB,cAAM,IAAI,sBAAsB,2BAA2B,SAAS,qBAAqB;AAAA,MAC7F;AACA,aAAOA;AAAA,IACX;AAEA,UAAM,OAAO,QAAQ,aAAa,SAAS;AAC3C,QAAI,SAAS,QAAW;AACpB,YAAM,IAAI,sBAAsB,WAAW,QAAQ,IAAI,8BAA8B,SAAS,EAAE;AAAA,IACpG;AAEA,WAAO;AAAA,EACX;AAnBO,EAAAD,WAAS;AAiCT,WAAS,SAAS,SAAkC,WAA4B;AACnF,QAAI,OAAO,cAAc,UAAU;AAC/B,aAAO;AAAA,IACX;AAEA,QAAI,YAAY,QAAW;AACvB,YAAM,IAAI,sBAAsB,2BAA2B,SAAS,qBAAqB;AAAA,IAC7F;AAEA,UAAM,QAAQ,QAAQ,SAAS,SAAS;AACxC,QAAI,UAAU,QAAW;AACrB,YAAM,IAAI,sBAAsB,WAAW,QAAQ,IAAI,0BAA0B,SAAS,EAAE;AAAA,IAChG;AAEA,WAAO;AAAA,EACX;AAfO,EAAAA,WAAS;AA2BT,WAAS,UAAiD,SAA0B;AACvF,QAAI,QAAQ,SAAS;AACjB,aAAOA,WAAU,WAAW,QAAQ,OAAO;AAAA,IAC/C;AACA,WAAO;AAAA,EACX;AALO,EAAAA,WAAS;AAUT,WAAS,aAAsD,SAAwC;AAC1G,QAAI,OAAO,QAAQ,aAAa,UAAU;AACtC,aAAO,QAAQ;AAAA,IACnB;AACA,WAAO,QAAQ,UAAU;AAAA,EAC7B;AALO,EAAAA,WAAS;AAAA,GA7HH;",
4
+ "mappings": "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",
5
5
  "names": ["Specifier", "attr"]
6
6
  }
@@ -3,11 +3,12 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { Duration } from "#general";
6
7
  import { AttributeData, ClusterType, WriteRequest } from "#types";
7
8
  import { Specifier } from "./Specifier.js";
8
9
  export interface Write extends WriteRequest {
9
- /** Timeout only relevant for Client Interactions */
10
- timeout?: number;
10
+ /** Timeout only relevant for Client Interactions with a required TimedRequest flagging */
11
+ timeout?: Duration;
11
12
  }
12
13
  /**
13
14
  * Formulate a write-request using Matter numeric IDs.
@@ -25,8 +26,9 @@ export declare namespace Write {
25
26
  interface Options {
26
27
  writes?: AttributeData[];
27
28
  timed?: boolean;
28
- timeout?: number;
29
+ timeout?: Duration;
29
30
  interactionModelRevision?: number;
31
+ chunkLists?: boolean;
30
32
  }
31
33
  /**
32
34
  * Selects attributes to Write. Limits fields to legal permutations per the Matter specification.
@@ -1 +1 @@
1
- {"version":3,"file":"Write.d.ts","sourceRoot":"","sources":["../../../../src/action/request/Write.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,KAAM,SAAQ,YAAY;IACvC,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;AAErD;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;AAEjF;;GAEG;AACH,wBAAgB,KAAK,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;AAyEzD,yBAAiB,KAAK,CAAC;IACnB,UAAiB,OAAO;QACpB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACrC;IAED;;OAEG;IACH,KAAY,SAAS,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,CACnE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GACrB,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAClC,GAAG;QACA,IAAI,EAAE,WAAW,CAAC;QAClB,KAAK,EAAE,GAAG,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,SAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAKrG;IAED,UAAiB,SAAS,CAAC;QACvB,UAAiB,QAAQ,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO;YACjD,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC;YAC7B,OAAO,EAAE,CAAC,CAAC;YACX,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7G;QAED,UAAiB,gBAAgB,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO;YACzD,QAAQ,CAAC,EAAE,SAAS,CAAC;YACrB,OAAO,EAAE,CAAC,CAAC;YACX,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7G;KACJ;CACJ"}
1
+ {"version":3,"file":"Write.d.ts","sourceRoot":"","sources":["../../../../src/action/request/Write.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAc,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAe,aAAa,EAA0B,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEvG,OAAO,EAA2B,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAWpE,MAAM,WAAW,KAAM,SAAQ,YAAY;IACvC,0FAA0F;IAC1F,OAAO,CAAC,EAAE,QAAQ,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;AAErD;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;AAEjF;;GAEG;AACH,wBAAgB,KAAK,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;AAiHzD,yBAAiB,KAAK,CAAC;IACnB,UAAiB,OAAO;QACpB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,UAAU,CAAC,EAAE,OAAO,CAAC;KACxB;IAED;;OAEG;IACH,KAAY,SAAS,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,CACnE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GACrB,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAClC,GAAG;QACA,IAAI,EAAE,WAAW,CAAC;QAClB,KAAK,EAAE,GAAG,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,SAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAKrG;IAED,UAAiB,SAAS,CAAC;QACvB,UAAiB,QAAQ,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO;YACjD,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC;YAC7B,OAAO,EAAE,CAAC,CAAC;YACX,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7G;QAED,UAAiB,gBAAgB,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO;YACzD,QAAQ,CAAC,EAAE,SAAS,CAAC;YACrB,OAAO,EAAE,CAAC,CAAC;YACX,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7G;KACJ;CACJ"}
@@ -3,9 +3,19 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { FALLBACK_INTERACTIONMODEL_REVISION } from "#session/Session.js";
6
+ import { AccessControl } from "#clusters/access-control";
7
+ import { Diagnostic } from "#general";
8
+ import { Specification } from "#model";
9
+ import { ArraySchema } from "#types";
7
10
  import { MalformedRequestError } from "./MalformedRequestError.js";
8
- import { Specifier } from "./Specifier.js";
11
+ import { resolvePathForSpecifier, Specifier } from "./Specifier.js";
12
+ const AclClusterId = AccessControl.Complete.id;
13
+ const AclAttributeId = AccessControl.Complete.attributes.acl.id;
14
+ const AclExtensionAttributeId = AccessControl.Complete.attributes.extension.id;
15
+ function isAclOrExtensionPath(path) {
16
+ const { clusterId, attributeId } = path;
17
+ return clusterId === AclClusterId && (attributeId === AclAttributeId || attributeId === AclExtensionAttributeId);
18
+ }
9
19
  function Write(optionsOrData, ...data) {
10
20
  if (optionsOrData === void 0) {
11
21
  throw new MalformedRequestError(`Write action must have options or data`);
@@ -17,11 +27,21 @@ function Write(optionsOrData, ...data) {
17
27
  } else {
18
28
  options = optionsOrData;
19
29
  }
20
- const { writes: writeRequests = [] } = options;
30
+ const { writes: writeRequests = [], timed, timeout, chunkLists } = options;
21
31
  const result = {
22
- timedRequest: !!options.timed || !!options.timeout,
32
+ timedRequest: !!timed || !!timeout,
33
+ timeout,
23
34
  writeRequests,
24
- interactionModelRevision: options.interactionModelRevision ?? FALLBACK_INTERACTIONMODEL_REVISION
35
+ moreChunkedMessages: false,
36
+ interactionModelRevision: options.interactionModelRevision ?? Specification.INTERACTION_MODEL_REVISION,
37
+ [Diagnostic.value]: () => Diagnostic.list(
38
+ data.map((entry) => {
39
+ const { version, value } = entry;
40
+ return `${resolvePathForSpecifier(entry)} = ${Diagnostic.json(
41
+ value
42
+ )}${version !== void 0 ? `(version=${version})` : ""}`;
43
+ })
44
+ )
25
45
  };
26
46
  for (const entry of data) {
27
47
  reifyData(entry);
@@ -52,15 +72,35 @@ function Write(optionsOrData, ...data) {
52
72
  dataVersion
53
73
  };
54
74
  for (const specifier of attributes) {
75
+ const clusterId = cluster.id;
55
76
  const attribute = Specifier.attributeFor(cluster, specifier);
56
- writeRequests.push({
57
- ...prototype,
58
- path: {
59
- ...prototype.path,
60
- attributeId: attribute.id
61
- },
62
- data: attribute.schema.encodeTlv(value, { forWriteInteraction: true })
63
- });
77
+ const { schema, id: attributeId } = attribute;
78
+ if (chunkLists && Array.isArray(value) && schema instanceof ArraySchema && // As implemented for Matter 1.4.2 in https://github.com/project-chip/connectedhomeip/pull/38263
79
+ // Acl writes will no longer be chunked by default, all others still
80
+ // Will be streamlined later ... see https://github.com/project-chip/connectedhomeip/issues/38270
81
+ !isAclOrExtensionPath({ clusterId, attributeId })) {
82
+ writeRequests.push(
83
+ ...schema.encodeAsChunkedArray(value, { forWriteInteraction: true }).map(({ element: data3, listIndex }) => ({
84
+ path: {
85
+ ...prototype.path,
86
+ attributeId: attribute.id,
87
+ listIndex
88
+ },
89
+ data: data3,
90
+ dataVersion
91
+ }))
92
+ );
93
+ } else {
94
+ writeRequests.push({
95
+ ...prototype,
96
+ path: {
97
+ ...prototype.path,
98
+ attributeId: attribute.id
99
+ },
100
+ data: attribute.schema.encodeTlv(value, { forWriteInteraction: true })
101
+ });
102
+ }
103
+ result.timedRequest ||= attribute.timed;
64
104
  }
65
105
  }
66
106
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/action/request/Write.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,0CAA0C;AAEnD,SAAS,6BAA6B;AACtC,SAAS,iBAAiB;AAsBnB,SAAS,MAAM,kBAAmD,MAAgC;AACrG,MAAI,kBAAkB,QAAW;AAC7B,UAAM,IAAI,sBAAsB,wCAAwC;AAAA,EAC5E;AAEA,MAAI;AACJ,MAAI,UAAU,eAAe;AACzB,WAAO,CAAC,eAAe,GAAG,IAAI;AAC9B,cAAU,CAAC;AAAA,EACf,OAAO;AACH,cAAU;AAAA,EACd;AACA,QAAM,EAAE,QAAQ,gBAAgB,CAAC,EAAE,IAAI;AAEvC,QAAM,SAAgB;AAAA,IAClB,cAAc,CAAC,CAAC,QAAQ,SAAS,CAAC,CAAC,QAAQ;AAAA,IAC3C;AAAA,IACA,0BAA0B,QAAQ,4BAA4B;AAAA,EAClE;AAEA,aAAW,SAAS,MAAM;AACtB,cAAU,KAAK;AAAA,EACnB;AAEA,MAAI,CAAC,cAAc,QAAQ;AACvB,UAAM,IAAI,sBAAsB,8CAA8C;AAAA,EAClF;AAEA,SAAO;AAEP,WAAS,UAAUA,OAAuB;AACtC,UAAM,UAAU,UAAU,UAAUA,KAAI;AAExC,QAAI,YAAY,QAAW;AACvB,YAAM,IAAI,sBAAsB,qCAAqC;AAAA,IACzE;AAEA,QAAI,EAAE,WAAW,IAAIA;AACrB,QAAI,eAAe,QAAW;AAC1B,YAAM,IAAI,sBAAsB,wCAAwC;AAAA,IAC5E;AACA,QAAI,CAAC,MAAM,QAAQ,UAAU,GAAG;AAC5B,mBAAa,CAAC,UAAU;AAAA,IAC5B;AAEA,UAAM,EAAE,UAAU,OAAO,SAAS,YAAY,IAAIA;AAGlD,UAAM,YAAyC;AAAA,MAC3C,MAAM;AAAA,QACF,YAAY,aAAa,SAAY,UAAU,aAAaA,KAAI,IAAI;AAAA,QACpE,WAAW,QAAQ;AAAA,QACnB,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,IACJ;AAEA,eAAW,aAAa,YAAY;AAChC,YAAM,YAAY,UAAU,aAAa,SAAS,SAAS;AAC3D,oBAAc,KAAK;AAAA,QACf,GAAG;AAAA,QACH,MAAM;AAAA,UACF,GAAG,UAAU;AAAA,UACb,aAAa,UAAU;AAAA,QAC3B;AAAA,QACA,MAAM,UAAU,OAAO,UAAU,OAAO,EAAE,qBAAqB,KAAK,CAAC;AAAA,MACzE,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;AAAA,CAEO,CAAUC,WAAV;AAoBI,WAAS,UAAuC,MAAgD;AACnG,WAAO;AAAA,MACH,MAAM;AAAA,MACN,GAAG;AAAA,IACP;AAAA,EACJ;AALO,EAAAA,OAAS;AAAA,GApBH;",
4
+ "mappings": "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",
5
5
  "names": ["data", "Write"]
6
6
  }