@matter/protocol 0.12.6-alpha.0-20250304-03716637c → 0.13.0-alpha.0-20250307-ebf84a05a

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 (87) hide show
  1. package/dist/cjs/common/Scanner.d.ts +25 -1
  2. package/dist/cjs/common/Scanner.d.ts.map +1 -1
  3. package/dist/cjs/common/Scanner.js +18 -1
  4. package/dist/cjs/common/Scanner.js.map +1 -1
  5. package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
  6. package/dist/cjs/fabric/Fabric.js +0 -1
  7. package/dist/cjs/fabric/Fabric.js.map +1 -1
  8. package/dist/cjs/mdns/MdnsBroadcaster.js +3 -3
  9. package/dist/cjs/mdns/MdnsConsts.d.ts.map +1 -1
  10. package/dist/cjs/mdns/MdnsScanner.d.ts.map +1 -1
  11. package/dist/cjs/mdns/MdnsScanner.js +1 -1
  12. package/dist/cjs/mdns/MdnsScanner.js.map +1 -1
  13. package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  14. package/dist/cjs/peer/ControllerCommissioningFlow.js +55 -55
  15. package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
  16. package/dist/cjs/session/Session.d.ts +33 -1
  17. package/dist/cjs/session/Session.d.ts.map +1 -1
  18. package/dist/cjs/session/Session.js +16 -3
  19. package/dist/cjs/session/Session.js.map +1 -1
  20. package/dist/cjs/session/SessionManager.d.ts.map +1 -1
  21. package/dist/cjs/session/SessionManager.js +14 -4
  22. package/dist/cjs/session/SessionManager.js.map +1 -1
  23. package/dist/cjs/session/case/CaseMessages.d.ts +15 -0
  24. package/dist/cjs/session/case/CaseMessages.d.ts.map +1 -1
  25. package/dist/cjs/session/case/CaseMessenger.d.ts +15 -0
  26. package/dist/cjs/session/case/CaseMessenger.d.ts.map +1 -1
  27. package/dist/cjs/session/pase/PaseClient.d.ts.map +1 -1
  28. package/dist/cjs/session/pase/PaseClient.js +7 -1
  29. package/dist/cjs/session/pase/PaseClient.js.map +1 -1
  30. package/dist/cjs/session/pase/PaseMessages.d.ts +21 -0
  31. package/dist/cjs/session/pase/PaseMessages.d.ts.map +1 -1
  32. package/dist/cjs/session/pase/PaseMessages.js +6 -1
  33. package/dist/cjs/session/pase/PaseMessages.js.map +1 -1
  34. package/dist/cjs/session/pase/PaseMessenger.d.ts +10 -0
  35. package/dist/cjs/session/pase/PaseMessenger.d.ts.map +1 -1
  36. package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -1
  37. package/dist/cjs/session/pase/PaseServer.js +8 -2
  38. package/dist/cjs/session/pase/PaseServer.js.map +1 -1
  39. package/dist/esm/common/Scanner.d.ts +25 -1
  40. package/dist/esm/common/Scanner.d.ts.map +1 -1
  41. package/dist/esm/common/Scanner.js +18 -1
  42. package/dist/esm/common/Scanner.js.map +1 -1
  43. package/dist/esm/fabric/Fabric.d.ts.map +1 -1
  44. package/dist/esm/fabric/Fabric.js +0 -1
  45. package/dist/esm/fabric/Fabric.js.map +1 -1
  46. package/dist/esm/mdns/MdnsBroadcaster.js +3 -3
  47. package/dist/esm/mdns/MdnsConsts.d.ts.map +1 -1
  48. package/dist/esm/mdns/MdnsScanner.d.ts.map +1 -1
  49. package/dist/esm/mdns/MdnsScanner.js +1 -1
  50. package/dist/esm/mdns/MdnsScanner.js.map +1 -1
  51. package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  52. package/dist/esm/peer/ControllerCommissioningFlow.js +55 -55
  53. package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
  54. package/dist/esm/session/Session.d.ts +33 -1
  55. package/dist/esm/session/Session.d.ts.map +1 -1
  56. package/dist/esm/session/Session.js +16 -3
  57. package/dist/esm/session/Session.js.map +1 -1
  58. package/dist/esm/session/SessionManager.d.ts.map +1 -1
  59. package/dist/esm/session/SessionManager.js +15 -4
  60. package/dist/esm/session/SessionManager.js.map +1 -1
  61. package/dist/esm/session/case/CaseMessages.d.ts +15 -0
  62. package/dist/esm/session/case/CaseMessages.d.ts.map +1 -1
  63. package/dist/esm/session/case/CaseMessenger.d.ts +15 -0
  64. package/dist/esm/session/case/CaseMessenger.d.ts.map +1 -1
  65. package/dist/esm/session/pase/PaseClient.d.ts.map +1 -1
  66. package/dist/esm/session/pase/PaseClient.js +7 -1
  67. package/dist/esm/session/pase/PaseClient.js.map +1 -1
  68. package/dist/esm/session/pase/PaseMessages.d.ts +21 -0
  69. package/dist/esm/session/pase/PaseMessages.d.ts.map +1 -1
  70. package/dist/esm/session/pase/PaseMessages.js +16 -2
  71. package/dist/esm/session/pase/PaseMessages.js.map +1 -1
  72. package/dist/esm/session/pase/PaseMessenger.d.ts +10 -0
  73. package/dist/esm/session/pase/PaseMessenger.d.ts.map +1 -1
  74. package/dist/esm/session/pase/PaseServer.d.ts.map +1 -1
  75. package/dist/esm/session/pase/PaseServer.js +8 -2
  76. package/dist/esm/session/pase/PaseServer.js.map +1 -1
  77. package/package.json +6 -6
  78. package/src/common/Scanner.ts +18 -2
  79. package/src/fabric/Fabric.ts +0 -1
  80. package/src/mdns/MdnsBroadcaster.ts +3 -3
  81. package/src/mdns/MdnsScanner.ts +3 -2
  82. package/src/peer/ControllerCommissioningFlow.ts +55 -52
  83. package/src/session/Session.ts +50 -1
  84. package/src/session/SessionManager.ts +20 -2
  85. package/src/session/pase/PaseClient.ts +10 -1
  86. package/src/session/pase/PaseMessages.ts +17 -1
  87. package/src/session/pase/PaseServer.ts +11 -1
@@ -20,6 +20,11 @@ export declare const TlvCaseSigma1: import("#types").ObjectSchema<{
20
20
  interactionModelRevision: import("#types").OptionalFieldType<number>;
21
21
  specificationVersion: import("#types").OptionalFieldType<number>;
22
22
  maxPathsPerInvoke: import("#types").OptionalFieldType<number>;
23
+ supportedTransports: import("#types").OptionalFieldType<import("#types").TypeFromPartialBitSchema<{
24
+ tcpClient: import("#types").BitFlag;
25
+ tcpServer: import("#types").BitFlag;
26
+ }>>;
27
+ maxTcpMessageSize: import("#types").OptionalFieldType<number>;
23
28
  }>>;
24
29
  resumptionId: import("#types").OptionalFieldType<Uint8Array<ArrayBufferLike>>;
25
30
  initiatorResumeMic: import("#types").OptionalFieldType<Uint8Array<ArrayBufferLike>>;
@@ -38,6 +43,11 @@ export declare const TlvCaseSigma2: import("#types").ObjectSchema<{
38
43
  interactionModelRevision: import("#types").OptionalFieldType<number>;
39
44
  specificationVersion: import("#types").OptionalFieldType<number>;
40
45
  maxPathsPerInvoke: import("#types").OptionalFieldType<number>;
46
+ supportedTransports: import("#types").OptionalFieldType<import("#types").TypeFromPartialBitSchema<{
47
+ tcpClient: import("#types").BitFlag;
48
+ tcpServer: import("#types").BitFlag;
49
+ }>>;
50
+ maxTcpMessageSize: import("#types").OptionalFieldType<number>;
41
51
  }>>;
42
52
  }>;
43
53
  /** @see {@link MatterSpecification.v13.Core} § 4.14.2.3 */
@@ -53,6 +63,11 @@ export declare const TlvCaseSigma2Resume: import("#types").ObjectSchema<{
53
63
  interactionModelRevision: import("#types").OptionalFieldType<number>;
54
64
  specificationVersion: import("#types").OptionalFieldType<number>;
55
65
  maxPathsPerInvoke: import("#types").OptionalFieldType<number>;
66
+ supportedTransports: import("#types").OptionalFieldType<import("#types").TypeFromPartialBitSchema<{
67
+ tcpClient: import("#types").BitFlag;
68
+ tcpServer: import("#types").BitFlag;
69
+ }>>;
70
+ maxTcpMessageSize: import("#types").OptionalFieldType<number>;
56
71
  }>>;
57
72
  }>;
58
73
  /** @see {@link MatterSpecification.v13.Core} § 4.14.2.3 */
@@ -1 +1 @@
1
- {"version":3,"file":"CaseMessages.d.ts","sourceRoot":"","sources":["../../../../src/session/case/CaseMessages.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,eAAe,6BAAoC,CAAC;AACjE,eAAO,MAAM,eAAe,6BAAoC,CAAC;AACjE,eAAO,MAAM,iBAAiB,6BAAoC,CAAC;AACnE,eAAO,MAAM,iBAAiB,6BAAoC,CAAC;AACnE,eAAO,MAAM,WAAW,6BAA6B,CAAC;AACtD,eAAO,MAAM,WAAW,6BAA6B,CAAC;AACtD,eAAO,MAAM,eAAe,6BAAoC,CAAC;AACjE,eAAO,MAAM,eAAe,6BAAoC,CAAC;AAEjE,2DAA2D;AAC3D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;EAQxB,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;EAMxB,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;EAK9B,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,aAAa;;EAExB,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,aAAa;;;;;EAKxB,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB;;;;;EAKjC,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB;;;;EAIjC,CAAC"}
1
+ {"version":3,"file":"CaseMessages.d.ts","sourceRoot":"","sources":["../../../../src/session/case/CaseMessages.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,eAAe,6BAAoC,CAAC;AACjE,eAAO,MAAM,eAAe,6BAAoC,CAAC;AACjE,eAAO,MAAM,iBAAiB,6BAAoC,CAAC;AACnE,eAAO,MAAM,iBAAiB,6BAAoC,CAAC;AACnE,eAAO,MAAM,WAAW,6BAA6B,CAAC;AACtD,eAAO,MAAM,WAAW,6BAA6B,CAAC;AACtD,eAAO,MAAM,eAAe,6BAAoC,CAAC;AACjE,eAAO,MAAM,eAAe,6BAAoC,CAAC;AAEjE,2DAA2D;AAC3D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;EAQxB,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;EAMxB,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAK9B,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,aAAa;;EAExB,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,aAAa;;;;;EAKxB,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB;;;;;EAKjC,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB;;;;EAIjC,CAAC"}
@@ -22,6 +22,11 @@ export declare class CaseServerMessenger extends SecureChannelMessenger {
22
22
  interactionModelRevision: import("#types").OptionalFieldType<number>;
23
23
  specificationVersion: import("#types").OptionalFieldType<number>;
24
24
  maxPathsPerInvoke: import("#types").OptionalFieldType<number>;
25
+ supportedTransports: import("#types").OptionalFieldType<import("#types").TypeFromPartialBitSchema<{
26
+ tcpClient: import("#types").BitFlag;
27
+ tcpServer: import("#types").BitFlag;
28
+ }>>;
29
+ maxTcpMessageSize: import("#types").OptionalFieldType<number>;
25
30
  }>>;
26
31
  resumptionId: import("#types").OptionalFieldType<Uint8Array<ArrayBufferLike>>;
27
32
  initiatorResumeMic: import("#types").OptionalFieldType<Uint8Array<ArrayBufferLike>>;
@@ -53,6 +58,11 @@ export declare class CaseClientMessenger extends SecureChannelMessenger {
53
58
  interactionModelRevision: import("#types").OptionalFieldType<number>;
54
59
  specificationVersion: import("#types").OptionalFieldType<number>;
55
60
  maxPathsPerInvoke: import("#types").OptionalFieldType<number>;
61
+ supportedTransports: import("#types").OptionalFieldType<import("#types").TypeFromPartialBitSchema<{
62
+ tcpClient: import("#types").BitFlag;
63
+ tcpServer: import("#types").BitFlag;
64
+ }>>;
65
+ maxTcpMessageSize: import("#types").OptionalFieldType<number>;
56
66
  }>>;
57
67
  }>;
58
68
  sigma2Resume?: undefined;
@@ -69,6 +79,11 @@ export declare class CaseClientMessenger extends SecureChannelMessenger {
69
79
  interactionModelRevision: import("#types").OptionalFieldType<number>;
70
80
  specificationVersion: import("#types").OptionalFieldType<number>;
71
81
  maxPathsPerInvoke: import("#types").OptionalFieldType<number>;
82
+ supportedTransports: import("#types").OptionalFieldType<import("#types").TypeFromPartialBitSchema<{
83
+ tcpClient: import("#types").BitFlag;
84
+ tcpServer: import("#types").BitFlag;
85
+ }>>;
86
+ maxTcpMessageSize: import("#types").OptionalFieldType<number>;
72
87
  }>>;
73
88
  }>;
74
89
  sigma2Bytes?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"CaseMessenger.d.ts","sourceRoot":"","sources":["../../../../src/session/case/CaseMessenger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAqB,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAErG,qBAAa,mBAAoB,SAAQ,sBAAsB;IACrD,UAAU;;;;;;;;;;;;;;;;;;;;IAKhB,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC;IAIvD,gBAAgB,CAAC,YAAY,EAAE,cAAc,CAAC,OAAO,mBAAmB,CAAC;IAInE,UAAU;;;;;;CAInB;AAED,qBAAa,mBAAoB,SAAQ,sBAAsB;IAC3D,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC;IAIjD,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiBhB,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC;CAG1D"}
1
+ {"version":3,"file":"CaseMessenger.d.ts","sourceRoot":"","sources":["../../../../src/session/case/CaseMessenger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAqB,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAErG,qBAAa,mBAAoB,SAAQ,sBAAsB;IACrD,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;IAKhB,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC;IAIvD,gBAAgB,CAAC,YAAY,EAAE,cAAc,CAAC,OAAO,mBAAmB,CAAC;IAInE,UAAU;;;;;;CAInB;AAED,qBAAa,mBAAoB,SAAQ,sBAAsB;IAC3D,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC;IAIjD,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiBhB,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC;CAG1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaseClient.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA6B,eAAe,EAAgC,MAAM,UAAU,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOlD,qBAAa,UAAU;;gBAGP,QAAQ,EAAE,cAAc;WAIvB,4BAA4B,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe;IAKhG,MAAM,CAAC,sBAAsB;IAS7B,MAAM,CAAC,2BAA2B;IAI5B,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM;CAyD/F"}
1
+ {"version":3,"file":"PaseClient.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA6B,eAAe,EAAgC,MAAM,UAAU,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOlD,qBAAa,UAAU;;gBAGP,QAAQ,EAAE,cAAc;WAIvB,4BAA4B,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe;IAKhG,MAAM,CAAC,sBAAsB;IAS7B,MAAM,CAAC,2BAA2B;IAI5B,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM;CAkE/F"}
@@ -32,12 +32,18 @@ class PaseClient {
32
32
  const messenger = new PaseClientMessenger(exchange);
33
33
  const initiatorRandom = Crypto.getRandom();
34
34
  const initiatorSessionId = await this.#sessions.getNextAvailableSessionId();
35
+ const tcpSupported = sessionParameters.supportedTransports?.tcpClient || sessionParameters.supportedTransports?.tcpServer || false;
35
36
  const requestPayload = await messenger.sendPbkdfParamRequest({
36
37
  initiatorRandom,
37
38
  initiatorSessionId,
38
39
  passcodeId: DEFAULT_PASSCODE_ID,
39
40
  hasPbkdfParameters: false,
40
- initiatorSessionParams: sessionParameters
41
+ initiatorSessionParams: {
42
+ ...sessionParameters,
43
+ // The MAX_TCP_MESSAGE_SIZE field SHALL only be present if the SUPPORTED_TRANSPORTS field
44
+ // indicates that TCP is supported.
45
+ maxTcpMessageSize: tcpSupported ? sessionParameters.maxTcpMessageSize : void 0
46
+ }
41
47
  });
42
48
  const {
43
49
  responsePayload,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/session/pase/PaseClient.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,QAAQ,IAAI,QAAyB,SAAS,2BAA2B;AAEzF,SAAS,sBAAsB,cAAc;AAG7C,SAAS,qBAAqB,qBAAqB,qBAAqB;AAExE,MAAM,EAAE,gBAAgB,IAAI;AAE5B,MAAM,SAAS,OAAO,IAAI,YAAY;AAE/B,MAAM,WAAW;AAAA,EACpB;AAAA,EAEA,YAAY,UAA0B;AAClC,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,aAAa,6BAA6B,cAAsB,iBAAkC;AAC9F,UAAM,EAAE,IAAI,EAAE,IAAI,MAAM,QAAQ,WAAW,iBAAiB,YAAY;AACxE,WAAO,MAAM,OAAO,gBAAgB,IAAI,EAAE,GAAG,CAAC;AAAA,EAClD;AAAA,EAEA,OAAO,yBAAyB;AAC5B,QAAI;AACJ,eAAY,OAAO,gBAAgB,IAAI,WAAY;AACnD,QAAI,qBAAqB,oBAAoB,SAAS,QAAQ,GAAG;AAC7D,kBAAY;AAAA,IAChB;AACA,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,8BAA8B;AACjC,WAAO,OAAO,gBAAgB,IAAI;AAAA,EACtC;AAAA,EAEA,MAAM,KAAK,mBAAsC,UAA2B,UAAkB;AAC1F,UAAM,YAAY,IAAI,oBAAoB,QAAQ;AAClD,UAAM,kBAAkB,OAAO,UAAU;AACzC,UAAM,qBAAqB,MAAM,KAAK,UAAU,0BAA0B;AAG1E,UAAM,iBAAiB,MAAM,UAAU,sBAAsB;AAAA,MACzD;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,oBAAoB;AAAA,MACpB,wBAAwB;AAAA,IAC5B,CAAC;AACD,UAAM;AAAA,MACF;AAAA,MACA,UAAU,EAAE,iBAAiB,oBAAoB,uBAAuB;AAAA,IAC5E,IAAI,MAAM,UAAU,uBAAuB;AAC3C,QAAI,oBAAoB;AACpB,YAAM,IAAI,oBAAoB,oDAAoD;AAGtF,wBAAoB;AAAA,MAChB,GAAG,SAAS,QAAQ;AAAA,MACpB,GAAI,0BAA0B,CAAC;AAAA,IACnC;AAGA,UAAM,EAAE,IAAI,GAAG,IAAI,MAAM,QAAQ,YAAY,iBAAiB,QAAQ;AACtE,UAAM,UAAU,QAAQ,OAAO,OAAO,KAAK,CAAC,eAAe,gBAAgB,eAAe,CAAC,GAAG,EAAE;AAChG,UAAM,IAAI,QAAQ,SAAS;AAC3B,UAAM,UAAU,cAAc,EAAE,GAAG,EAAE,CAAC;AAGtC,UAAM,EAAE,GAAG,GAAG,SAAS,IAAI,MAAM,UAAU,cAAc;AACzD,UAAM,EAAE,IAAI,KAAK,IAAI,IAAI,MAAM,QAAQ,+BAA+B,IAAI,GAAG,CAAC;AAC9E,QAAI,CAAC,MAAM,SAAS,UAAU,GAAG;AAC7B,YAAM,IAAI,oBAAoB,wDAAwD;AAC1F,UAAM,UAAU,cAAc,EAAE,UAAU,IAAI,CAAC;AAG/C,UAAM,UAAU,eAAe,mBAAmB;AAClD,UAAM,gBAAgB,MAAM,KAAK,UAAU,oBAAoB;AAAA,MAC3D,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,eAAe;AAAA,MACf,cAAc;AAAA,MACd,MAAM,IAAI,WAAW,CAAC;AAAA,MACtB,aAAa;AAAA,MACb,cAAc;AAAA,MACd,uBAAuB;AAAA,IAC3B,CAAC;AACD,UAAM,UAAU,MAAM;AACtB,WAAO,KAAK,yCAAyC,UAAU,eAAe,CAAC,GAAG;AAElF,WAAO;AAAA,EACX;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,QAAQ,IAAI,QAAyB,SAAS,2BAA2B;AAEzF,SAAS,sBAAsB,cAAc;AAG7C,SAAS,qBAAqB,qBAAqB,qBAAqB;AAExE,MAAM,EAAE,gBAAgB,IAAI;AAE5B,MAAM,SAAS,OAAO,IAAI,YAAY;AAE/B,MAAM,WAAW;AAAA,EACpB;AAAA,EAEA,YAAY,UAA0B;AAClC,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,aAAa,6BAA6B,cAAsB,iBAAkC;AAC9F,UAAM,EAAE,IAAI,EAAE,IAAI,MAAM,QAAQ,WAAW,iBAAiB,YAAY;AACxE,WAAO,MAAM,OAAO,gBAAgB,IAAI,EAAE,GAAG,CAAC;AAAA,EAClD;AAAA,EAEA,OAAO,yBAAyB;AAC5B,QAAI;AACJ,eAAY,OAAO,gBAAgB,IAAI,WAAY;AACnD,QAAI,qBAAqB,oBAAoB,SAAS,QAAQ,GAAG;AAC7D,kBAAY;AAAA,IAChB;AACA,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,8BAA8B;AACjC,WAAO,OAAO,gBAAgB,IAAI;AAAA,EACtC;AAAA,EAEA,MAAM,KAAK,mBAAsC,UAA2B,UAAkB;AAC1F,UAAM,YAAY,IAAI,oBAAoB,QAAQ;AAClD,UAAM,kBAAkB,OAAO,UAAU;AACzC,UAAM,qBAAqB,MAAM,KAAK,UAAU,0BAA0B;AAG1E,UAAM,eACF,kBAAkB,qBAAqB,aACvC,kBAAkB,qBAAqB,aACvC;AACJ,UAAM,iBAAiB,MAAM,UAAU,sBAAsB;AAAA,MACzD;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,oBAAoB;AAAA,MACpB,wBAAwB;AAAA,QACpB,GAAG;AAAA;AAAA;AAAA,QAGH,mBAAmB,eAAe,kBAAkB,oBAAoB;AAAA,MAC5E;AAAA,IACJ,CAAC;AACD,UAAM;AAAA,MACF;AAAA,MACA,UAAU,EAAE,iBAAiB,oBAAoB,uBAAuB;AAAA,IAC5E,IAAI,MAAM,UAAU,uBAAuB;AAC3C,QAAI,oBAAoB;AACpB,YAAM,IAAI,oBAAoB,oDAAoD;AAGtF,wBAAoB;AAAA,MAChB,GAAG,SAAS,QAAQ;AAAA,MACpB,GAAI,0BAA0B,CAAC;AAAA,IACnC;AAGA,UAAM,EAAE,IAAI,GAAG,IAAI,MAAM,QAAQ,YAAY,iBAAiB,QAAQ;AACtE,UAAM,UAAU,QAAQ,OAAO,OAAO,KAAK,CAAC,eAAe,gBAAgB,eAAe,CAAC,GAAG,EAAE;AAChG,UAAM,IAAI,QAAQ,SAAS;AAC3B,UAAM,UAAU,cAAc,EAAE,GAAG,EAAE,CAAC;AAGtC,UAAM,EAAE,GAAG,GAAG,SAAS,IAAI,MAAM,UAAU,cAAc;AACzD,UAAM,EAAE,IAAI,KAAK,IAAI,IAAI,MAAM,QAAQ,+BAA+B,IAAI,GAAG,CAAC;AAC9E,QAAI,CAAC,MAAM,SAAS,UAAU,GAAG;AAC7B,YAAM,IAAI,oBAAoB,wDAAwD;AAC1F,UAAM,UAAU,cAAc,EAAE,UAAU,IAAI,CAAC;AAG/C,UAAM,UAAU,eAAe,mBAAmB;AAClD,UAAM,gBAAgB,MAAM,KAAK,UAAU,oBAAoB;AAAA,MAC3D,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,eAAe;AAAA,MACf,cAAc;AAAA,MACd,MAAM,IAAI,WAAW,CAAC;AAAA,MACtB,aAAa;AAAA,MACb,cAAc;AAAA,MACd,uBAAuB;AAAA,IAC3B,CAAC;AACD,UAAM,UAAU,MAAM;AACtB,WAAO,KAAK,yCAAyC,UAAU,eAAe,CAAC,GAAG;AAElF,WAAO;AAAA,EACX;AACJ;",
5
5
  "names": []
6
6
  }
@@ -19,6 +19,13 @@ export declare const TlvSessionParameters: import("#types").ObjectSchema<{
19
19
  specificationVersion: import("#types").OptionalFieldType<number>;
20
20
  /** Maximum Paths pert Invoke */
21
21
  maxPathsPerInvoke: import("#types").OptionalFieldType<number>;
22
+ /** Supported transport protocols in addition to MRP.*/
23
+ supportedTransports: import("#types").OptionalFieldType<import("#types").TypeFromPartialBitSchema<{
24
+ tcpClient: import("#types").BitFlag;
25
+ tcpServer: import("#types").BitFlag;
26
+ }>>;
27
+ /** Maximum size of the message carried over TCP in bytes */
28
+ maxTcpMessageSize: import("#types").OptionalFieldType<number>;
22
29
  }>;
23
30
  /** @see {@link MatterSpecification.v13.Core} § 4.14.1.2 */
24
31
  export declare const TlvPbkdfParamRequest: import("#types").ObjectSchema<{
@@ -41,6 +48,13 @@ export declare const TlvPbkdfParamRequest: import("#types").ObjectSchema<{
41
48
  specificationVersion: import("#types").OptionalFieldType<number>;
42
49
  /** Maximum Paths pert Invoke */
43
50
  maxPathsPerInvoke: import("#types").OptionalFieldType<number>;
51
+ /** Supported transport protocols in addition to MRP.*/
52
+ supportedTransports: import("#types").OptionalFieldType<import("#types").TypeFromPartialBitSchema<{
53
+ tcpClient: import("#types").BitFlag;
54
+ tcpServer: import("#types").BitFlag;
55
+ }>>;
56
+ /** Maximum size of the message carried over TCP in bytes */
57
+ maxTcpMessageSize: import("#types").OptionalFieldType<number>;
44
58
  }>>;
45
59
  }>;
46
60
  /** @see {@link MatterSpecification.v13.Core} § 4.14.1.2 */
@@ -67,6 +81,13 @@ export declare const TlvPbkdfParamResponse: import("#types").ObjectSchema<{
67
81
  specificationVersion: import("#types").OptionalFieldType<number>;
68
82
  /** Maximum Paths pert Invoke */
69
83
  maxPathsPerInvoke: import("#types").OptionalFieldType<number>;
84
+ /** Supported transport protocols in addition to MRP.*/
85
+ supportedTransports: import("#types").OptionalFieldType<import("#types").TypeFromPartialBitSchema<{
86
+ tcpClient: import("#types").BitFlag;
87
+ tcpServer: import("#types").BitFlag;
88
+ }>>;
89
+ /** Maximum size of the message carried over TCP in bytes */
90
+ maxTcpMessageSize: import("#types").OptionalFieldType<number>;
70
91
  }>>;
71
92
  }>;
72
93
  /** @see {@link MatterSpecification.v13.Core} § 4.14.1.2 */
@@ -1 +1 @@
1
- {"version":3,"file":"PaseMessages.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseMessages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,yDAAyD;AACzD,eAAO,MAAM,oBAAoB;IAC7B,wDAAwD;;IAGxD,0DAA0D;;IAG1D,iFAAiF;;IAGjF,2BAA2B;;IAG3B,kCAAkC;;IAGlC,6BAA6B;;IAG7B,gCAAgC;;EAElC,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB;;;;;;QAvB7B,wDAAwD;;QAGxD,0DAA0D;;QAG1D,iFAAiF;;QAGjF,2BAA2B;;QAG3B,kCAAkC;;QAGlC,6BAA6B;;QAG7B,gCAAgC;;;EAWlC,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB;;;;;;;;;QAhC9B,wDAAwD;;QAGxD,0DAA0D;;QAG1D,iFAAiF;;QAGjF,2BAA2B;;QAG3B,kCAAkC;;QAGlC,6BAA6B;;QAG7B,gCAAgC;;;EA0BlC,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,YAAY;;EAEvB,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,YAAY;;;EAGvB,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,YAAY;;EAEvB,CAAC"}
1
+ {"version":3,"file":"PaseMessages.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseMessages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,yDAAyD;AACzD,eAAO,MAAM,oBAAoB;IAC7B,wDAAwD;;IAGxD,0DAA0D;;IAG1D,iFAAiF;;IAGjF,2BAA2B;;IAG3B,kCAAkC;;IAGlC,6BAA6B;;IAG7B,gCAAgC;;IAGhC,uDAAuD;;;;;IAGvD,4DAA4D;;EAE9D,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB;;;;;;QA7B7B,wDAAwD;;QAGxD,0DAA0D;;QAG1D,iFAAiF;;QAGjF,2BAA2B;;QAG3B,kCAAkC;;QAGlC,6BAA6B;;QAG7B,gCAAgC;;QAGhC,uDAAuD;;;;;QAGvD,4DAA4D;;;EAW9D,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB;;;;;;;;;QAtC9B,wDAAwD;;QAGxD,0DAA0D;;QAG1D,iFAAiF;;QAGjF,2BAA2B;;QAG3B,kCAAkC;;QAGlC,6BAA6B;;QAG7B,gCAAgC;;QAGhC,uDAAuD;;;;;QAGvD,4DAA4D;;;EA0B9D,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,YAAY;;EAEvB,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,YAAY;;;EAGvB,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,YAAY;;EAEvB,CAAC"}
@@ -3,8 +3,18 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { SupportedTransportsBitmap } from "#common/index.js";
6
7
  import { CRYPTO_HASH_LEN_BYTES, CRYPTO_PUBLIC_KEY_SIZE_BYTES } from "#general";
7
- import { TlvBoolean, TlvByteString, TlvField, TlvObject, TlvOptionalField, TlvUInt16, TlvUInt32 } from "#types";
8
+ import {
9
+ TlvBitmap,
10
+ TlvBoolean,
11
+ TlvByteString,
12
+ TlvField,
13
+ TlvObject,
14
+ TlvOptionalField,
15
+ TlvUInt16,
16
+ TlvUInt32
17
+ } from "#types";
8
18
  const TlvSessionParameters = TlvObject({
9
19
  /** Maximum sleep interval of node when in idle mode. */
10
20
  idleIntervalMs: TlvOptionalField(1, TlvUInt32),
@@ -19,7 +29,11 @@ const TlvSessionParameters = TlvObject({
19
29
  /** Specification version. */
20
30
  specificationVersion: TlvOptionalField(6, TlvUInt32),
21
31
  /** Maximum Paths pert Invoke */
22
- maxPathsPerInvoke: TlvOptionalField(7, TlvUInt16)
32
+ maxPathsPerInvoke: TlvOptionalField(7, TlvUInt16),
33
+ /** Supported transport protocols in addition to MRP.*/
34
+ supportedTransports: TlvOptionalField(8, TlvBitmap(TlvUInt16, SupportedTransportsBitmap)),
35
+ /** Maximum size of the message carried over TCP in bytes */
36
+ maxTcpMessageSize: TlvOptionalField(9, TlvUInt32)
23
37
  });
24
38
  const TlvPbkdfParamRequest = TlvObject({
25
39
  initiatorRandom: TlvField(1, TlvByteString.bound({ length: 32 })),
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/session/pase/PaseMessages.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,uBAAuB,oCAAoC;AACpE,SAAS,YAAY,eAAe,UAAU,WAAW,kBAAkB,WAAW,iBAAiB;AAGhG,MAAM,uBAAuB,UAAU;AAAA;AAAA,EAE1C,gBAAgB,iBAAiB,GAAG,SAAS;AAAA;AAAA,EAG7C,kBAAkB,iBAAiB,GAAG,SAAS;AAAA;AAAA,EAG/C,mBAAmB,iBAAiB,GAAG,SAAS;AAAA;AAAA,EAGhD,mBAAmB,iBAAiB,GAAG,SAAS;AAAA;AAAA,EAGhD,0BAA0B,iBAAiB,GAAG,SAAS;AAAA;AAAA,EAGvD,sBAAsB,iBAAiB,GAAG,SAAS;AAAA;AAAA,EAGnD,mBAAmB,iBAAiB,GAAG,SAAS;AACpD,CAAC;AAGM,MAAM,uBAAuB,UAAU;AAAA,EAC1C,iBAAiB,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC;AAAA,EAChE,oBAAoB,SAAS,GAAG,SAAS;AAAA;AAAA,EACzC,YAAY,SAAS,GAAG,SAAS;AAAA;AAAA,EACjC,oBAAoB,SAAS,GAAG,UAAU;AAAA,EAC1C,wBAAwB,iBAAiB,GAAG,oBAAoB;AACpE,CAAC;AAGM,MAAM,wBAAwB,UAAU;AAAA,EAC3C,iBAAiB,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC;AAAA,EAChE,iBAAiB,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC;AAAA,EAChE,oBAAoB,SAAS,GAAG,SAAS;AAAA,EACzC,iBAAiB;AAAA,IACb;AAAA,IACA,UAAU;AAAA,MACN,YAAY,SAAS,GAAG,SAAS;AAAA,MACjC,MAAM,SAAS,GAAG,cAAc,MAAM,EAAE,WAAW,IAAI,WAAW,GAAG,CAAC,CAAC;AAAA,IAC3E,CAAC;AAAA,EACL;AAAA,EACA,wBAAwB,iBAAiB,GAAG,oBAAoB;AACpE,CAAC;AAGM,MAAM,eAAe,UAAU;AAAA,EAClC,GAAG,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,6BAA6B,CAAC,CAAC;AAAA;AAChF,CAAC;AAGM,MAAM,eAAe,UAAU;AAAA,EAClC,GAAG,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,6BAA6B,CAAC,CAAC;AAAA;AAAA,EAC5E,UAAU,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,sBAAsB,CAAC,CAAC;AAAA;AAChF,CAAC;AAGM,MAAM,eAAe,UAAU;AAAA,EAClC,UAAU,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,sBAAsB,CAAC,CAAC;AAAA;AAChF,CAAC;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,iCAAiC;AAC1C,SAAS,uBAAuB,oCAAoC;AACpE;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAGA,MAAM,uBAAuB,UAAU;AAAA;AAAA,EAE1C,gBAAgB,iBAAiB,GAAG,SAAS;AAAA;AAAA,EAG7C,kBAAkB,iBAAiB,GAAG,SAAS;AAAA;AAAA,EAG/C,mBAAmB,iBAAiB,GAAG,SAAS;AAAA;AAAA,EAGhD,mBAAmB,iBAAiB,GAAG,SAAS;AAAA;AAAA,EAGhD,0BAA0B,iBAAiB,GAAG,SAAS;AAAA;AAAA,EAGvD,sBAAsB,iBAAiB,GAAG,SAAS;AAAA;AAAA,EAGnD,mBAAmB,iBAAiB,GAAG,SAAS;AAAA;AAAA,EAGhD,qBAAqB,iBAAiB,GAAG,UAAU,WAAW,yBAAyB,CAAC;AAAA;AAAA,EAGxF,mBAAmB,iBAAiB,GAAG,SAAS;AACpD,CAAC;AAGM,MAAM,uBAAuB,UAAU;AAAA,EAC1C,iBAAiB,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC;AAAA,EAChE,oBAAoB,SAAS,GAAG,SAAS;AAAA;AAAA,EACzC,YAAY,SAAS,GAAG,SAAS;AAAA;AAAA,EACjC,oBAAoB,SAAS,GAAG,UAAU;AAAA,EAC1C,wBAAwB,iBAAiB,GAAG,oBAAoB;AACpE,CAAC;AAGM,MAAM,wBAAwB,UAAU;AAAA,EAC3C,iBAAiB,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC;AAAA,EAChE,iBAAiB,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC;AAAA,EAChE,oBAAoB,SAAS,GAAG,SAAS;AAAA,EACzC,iBAAiB;AAAA,IACb;AAAA,IACA,UAAU;AAAA,MACN,YAAY,SAAS,GAAG,SAAS;AAAA,MACjC,MAAM,SAAS,GAAG,cAAc,MAAM,EAAE,WAAW,IAAI,WAAW,GAAG,CAAC,CAAC;AAAA,IAC3E,CAAC;AAAA,EACL;AAAA,EACA,wBAAwB,iBAAiB,GAAG,oBAAoB;AACpE,CAAC;AAGM,MAAM,eAAe,UAAU;AAAA,EAClC,GAAG,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,6BAA6B,CAAC,CAAC;AAAA;AAChF,CAAC;AAGM,MAAM,eAAe,UAAU;AAAA,EAClC,GAAG,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,6BAA6B,CAAC,CAAC;AAAA;AAAA,EAC5E,UAAU,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,sBAAsB,CAAC,CAAC;AAAA;AAChF,CAAC;AAGM,MAAM,eAAe,UAAU;AAAA,EAClC,UAAU,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,sBAAsB,CAAC,CAAC;AAAA;AAChF,CAAC;",
5
5
  "names": []
6
6
  }
@@ -29,6 +29,11 @@ export declare class PaseServerMessenger extends SecureChannelMessenger {
29
29
  interactionModelRevision: import("#types").OptionalFieldType<number>;
30
30
  specificationVersion: import("#types").OptionalFieldType<number>;
31
31
  maxPathsPerInvoke: import("#types").OptionalFieldType<number>;
32
+ supportedTransports: import("#types").OptionalFieldType<import("#types").TypeFromPartialBitSchema<{
33
+ tcpClient: import("#types").BitFlag;
34
+ tcpServer: import("#types").BitFlag;
35
+ }>>;
36
+ maxTcpMessageSize: import("#types").OptionalFieldType<number>;
32
37
  }>>;
33
38
  }>;
34
39
  }>;
@@ -61,6 +66,11 @@ export declare class PaseClientMessenger extends SecureChannelMessenger {
61
66
  interactionModelRevision: import("#types").OptionalFieldType<number>;
62
67
  specificationVersion: import("#types").OptionalFieldType<number>;
63
68
  maxPathsPerInvoke: import("#types").OptionalFieldType<number>;
69
+ supportedTransports: import("#types").OptionalFieldType<import("#types").TypeFromPartialBitSchema<{
70
+ tcpClient: import("#types").BitFlag;
71
+ tcpServer: import("#types").BitFlag;
72
+ }>>;
73
+ maxTcpMessageSize: import("#types").OptionalFieldType<number>;
64
74
  }>>;
65
75
  }>;
66
76
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"PaseMessenger.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseMessenger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAqB,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC3D,OAAO,EAEH,sBAAsB,EACzB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,aAAa,6BAAiD,CAAC;AAE5E,KAAK,iBAAiB,GAAG,cAAc,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACrE,KAAK,kBAAkB,GAAG,cAAc,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACvE,KAAK,SAAS,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC;AACrD,KAAK,SAAS,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC;AACrD,KAAK,SAAS,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC;AAErD,qBAAa,mBAAoB,SAAQ,sBAAsB;IACrD,qBAAqB;;;;;;;;;;;;;;;;;;IAQrB,sBAAsB,CAAC,QAAQ,EAAE,kBAAkB;IAMzD,aAAa;;;IAIb,aAAa,CAAC,SAAS,EAAE,SAAS;IAIlC,aAAa;;;CAGhB;AAED,qBAAa,mBAAoB,SAAQ,sBAAsB;IAC3D,qBAAqB,CAAC,OAAO,EAAE,iBAAiB;IAM1C,sBAAsB;;;;;;;;;;;;;;;;;;;;;IAQ5B,aAAa,CAAC,SAAS,EAAE,SAAS;IAIlC,aAAa;;;;IAIb,aAAa,CAAC,SAAS,EAAE,SAAS;CAGrC"}
1
+ {"version":3,"file":"PaseMessenger.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseMessenger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAqB,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC3D,OAAO,EAEH,sBAAsB,EACzB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,aAAa,6BAAiD,CAAC;AAE5E,KAAK,iBAAiB,GAAG,cAAc,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACrE,KAAK,kBAAkB,GAAG,cAAc,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACvE,KAAK,SAAS,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC;AACrD,KAAK,SAAS,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC;AACrD,KAAK,SAAS,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC;AAErD,qBAAa,mBAAoB,SAAQ,sBAAsB;IACrD,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;IAQrB,sBAAsB,CAAC,QAAQ,EAAE,kBAAkB;IAMzD,aAAa;;;IAIb,aAAa,CAAC,SAAS,EAAE,SAAS;IAIlC,aAAa;;;CAGhB;AAED,qBAAa,mBAAoB,SAAQ,sBAAsB;IAC3D,qBAAqB,CAAC,OAAO,EAAE,iBAAiB;IAM1C,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;IAQ5B,aAAa,CAAC,SAAS,EAAE,SAAS;IAIlC,aAAa;;;;IAIb,aAAa,CAAC,SAAS,EAAE,SAAS;CAGrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaseServer.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAKH,eAAe,EACf,eAAe,EAKlB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAuB,mBAAmB,EAAiB,MAAM,oBAAoB,CAAC;AAS7F,qBAAa,oCAAqC,SAAQ,eAAe;CAAG;AAE5E,qBAAa,UAAW,YAAW,eAAe;;IAsB1C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IAxBrC,QAAQ,CAAC,EAAE,KAA8B;WAK5B,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe;IAKrG,MAAM,CAAC,qBAAqB,CACxB,QAAQ,EAAE,cAAc,EACxB,iBAAiB,EAAE,UAAU,EAC7B,eAAe,CAAC,EAAE,eAAe;gBAQzB,QAAQ,EAAE,cAAc,EACf,EAAE,EAAE,MAAM,EACV,CAAC,EAAE,UAAU,EACb,eAAe,CAAC,EAAE,eAAe,YAAA;IAGhD,aAAa,CAAC,QAAQ,EAAE,eAAe;YA0B/B,oBAAoB;IAmF5B,aAAa,CAAC,SAAS,EAAE,mBAAmB,EAAE,SAAS,UAAO;IAU9D,KAAK;CAGd"}
1
+ {"version":3,"file":"PaseServer.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAKH,eAAe,EACf,eAAe,EAKlB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAuB,mBAAmB,EAAiB,MAAM,oBAAoB,CAAC;AAS7F,qBAAa,oCAAqC,SAAQ,eAAe;CAAG;AAE5E,qBAAa,UAAW,YAAW,eAAe;;IAsB1C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IAxBrC,QAAQ,CAAC,EAAE,KAA8B;WAK5B,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe;IAKrG,MAAM,CAAC,qBAAqB,CACxB,QAAQ,EAAE,cAAc,EACxB,iBAAiB,EAAE,UAAU,EAC7B,eAAe,CAAC,EAAE,eAAe;gBAQzB,QAAQ,EAAE,cAAc,EACf,EAAE,EAAE,MAAM,EACV,CAAC,EAAE,UAAU,EACb,eAAe,CAAC,EAAE,eAAe,YAAA;IAGhD,aAAa,CAAC,QAAQ,EAAE,eAAe;YA0B/B,oBAAoB;IA6F5B,aAAa,CAAC,SAAS,EAAE,mBAAmB,EAAE,SAAS,UAAO;IAU9D,KAAK;CAGd"}
@@ -94,13 +94,19 @@ class PaseServer {
94
94
  }
95
95
  const responderSessionId = await this.sessions.getNextAvailableSessionId();
96
96
  const responderRandom = Crypto.getRandom();
97
+ const responderSessionParams = this.sessions.sessionParameters;
98
+ const tcpSupported = responderSessionParams.supportedTransports?.tcpClient || responderSessionParams.supportedTransports?.tcpServer || false;
97
99
  const responsePayload = await messenger.sendPbkdfParamResponse({
98
100
  initiatorRandom,
99
101
  responderRandom,
100
102
  responderSessionId,
101
103
  pbkdfParameters: hasPbkdfParameters ? void 0 : this.pbkdfParameters,
102
- responderSessionParams: this.sessions.sessionParameters
103
- // responder session parameters
104
+ responderSessionParams: {
105
+ ...responderSessionParams,
106
+ // The MAX_TCP_MESSAGE_SIZE field SHALL only be present if the SUPPORTED_TRANSPORTS field
107
+ // indicates that TCP is supported.
108
+ maxTcpMessageSize: tcpSupported ? responderSessionParams.maxTcpMessageSize : void 0
109
+ }
104
110
  });
105
111
  const spake2p = Spake2p.create(Crypto.hash([SPAKE_CONTEXT, requestPayload, responsePayload]), this.w0);
106
112
  const { x: X } = await messenger.readPasePake1();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/session/pase/PaseServer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/protocol",
3
- "version": "0.12.6-alpha.0-20250304-03716637c",
3
+ "version": "0.13.0-alpha.0-20250307-ebf84a05a",
4
4
  "description": "Low-level APIs for Matter interaction",
5
5
  "keywords": [
6
6
  "iot",
@@ -40,14 +40,14 @@
40
40
  "#*": "./src/*"
41
41
  },
42
42
  "dependencies": {
43
- "@matter/general": "0.12.6-alpha.0-20250304-03716637c",
44
- "@matter/model": "0.12.6-alpha.0-20250304-03716637c",
45
- "@matter/types": "0.12.6-alpha.0-20250304-03716637c",
43
+ "@matter/general": "0.13.0-alpha.0-20250307-ebf84a05a",
44
+ "@matter/model": "0.13.0-alpha.0-20250307-ebf84a05a",
45
+ "@matter/types": "0.13.0-alpha.0-20250307-ebf84a05a",
46
46
  "@noble/curves": "^1.8.1"
47
47
  },
48
48
  "devDependencies": {
49
- "@matter/tools": "0.12.6-alpha.0-20250304-03716637c",
50
- "@matter/testing": "0.12.6-alpha.0-20250304-03716637c"
49
+ "@matter/tools": "0.13.0-alpha.0-20250307-ebf84a05a",
50
+ "@matter/testing": "0.13.0-alpha.0-20250307-ebf84a05a"
51
51
  },
52
52
  "files": [
53
53
  "dist/**/*",
@@ -5,9 +5,25 @@
5
5
  */
6
6
 
7
7
  import { BasicSet, ChannelType, Environment, Environmental, Lifespan, ServerAddress, ServerAddressIp } from "#general";
8
- import { DiscoveryCapabilitiesBitmap, NodeId, TypeFromPartialBitSchema, VendorId } from "#types";
8
+ import { BitFlag, BitmapSchema, DiscoveryCapabilitiesBitmap, NodeId, TypeFromPartialBitSchema, VendorId } from "#types";
9
9
  import { Fabric } from "../fabric/Fabric.js";
10
10
 
11
+ export const SupportedTransportsBitmap = {
12
+ // Bit 0 is reserved
13
+ /**
14
+ * TCP Client
15
+ * The advertising Node implements the TCP Client mode and MAY connect to a peer Node that is a TCP Server.
16
+ */
17
+ tcpClient: BitFlag(1),
18
+
19
+ /**
20
+ * TCP Server
21
+ * The advertising Node implements the TCP Server mode and SHALL listen for incoming TCP connections.
22
+ */
23
+ tcpServer: BitFlag(2),
24
+ };
25
+ export const SupportedTransportsSchema = BitmapSchema(SupportedTransportsBitmap);
26
+
11
27
  /**
12
28
  * All information exposed by a commissionable device via announcements.
13
29
  * The properties are named identical as in the Matter specification.
@@ -41,7 +57,7 @@ export type DiscoveryData = {
41
57
  SAT?: number;
42
58
 
43
59
  /** TCP supported */
44
- T?: number;
60
+ T?: number; // SupportedTransportsBitmap but comes in as number, so converted on usage
45
61
 
46
62
  /** ICD Long Idle Time operating mode supported */
47
63
  ICD?: number;
@@ -364,7 +364,6 @@ export class FabricBuilder {
364
364
  return this;
365
365
  }
366
366
 
367
- // TODO Remove when legacy API gets removed because then no longer needed
368
367
  get rootCert() {
369
368
  return this.#rootCert;
370
369
  }
@@ -231,7 +231,7 @@ export class MdnsBroadcaster {
231
231
  `SII=${sessionIdleInterval}` /* Session Idle Interval */,
232
232
  `SAI=${sessionActiveInterval}` /* Session Active Interval */,
233
233
  `SAT=${sessionActiveThreshold}` /* Session Active Threshold */,
234
- //`T=${TCP_SUPPORTED}` /* TCP not supported */,
234
+ //`T=${TCP_SUPPORTED}` /* TODO TCP not supported */,
235
235
  `D=${discriminator}` /* Discriminator */,
236
236
  `CM=${mode}` /* Commission Mode */,
237
237
  `PH=${PairingHintBitmapSchema.encode(pairingHint)}` /* Pairing Hint */,
@@ -324,7 +324,7 @@ export class MdnsBroadcaster {
324
324
  `SII=${sessionIdleInterval}` /* Session Idle Interval */,
325
325
  `SAI=${sessionActiveInterval}` /* Session Active Interval */,
326
326
  `SAT=${sessionActiveThreshold}` /* Session Active Threshold */,
327
- //`T=${TCP_SUPPORTED}` /* TCP not supported */,
327
+ //`T=${TCP_SUPPORTED}` /* TODO TCP not supported */,
328
328
  //`ICD=${ICD_SUPPORTED}` /* ICD not supported */,
329
329
  ],
330
330
  deviceMatterQname,
@@ -387,7 +387,7 @@ export class MdnsBroadcaster {
387
387
  `SII=${sessionIdleInterval}` /* Session Idle Interval */,
388
388
  `SAI=${sessionActiveInterval}` /* Session Active Interval */,
389
389
  `SAT=${sessionActiveThreshold}` /* Session Active Threshold */,
390
- //`T=${TCP_SUPPORTED}` /* TCP not supported */,
390
+ //`T=${TCP_SUPPORTED}` /* TODO TCP not supported */,
391
391
  //`ICD=${ICD_SUPPORTED}` /* ICD not supported */,
392
392
  ]),
393
393
  ];
@@ -1316,8 +1316,9 @@ export class MdnsScanner implements Scanner {
1316
1316
  // Fill in some defaults for convenience
1317
1317
  if (result.T === undefined) {
1318
1318
  result.T = 0; // TCP not supported
1319
- } else if (result.T === 1) {
1320
- // Value 1 is reserved and should be handled as 0 according to Matter spec
1319
+ } else if (!(result.T & ~1 & 6)) {
1320
+ // Value 1 is reserved and should be handled as 0 according to Matter spec,
1321
+ // else check if tcpClient (Bit 1) or tcpServer (Bit 2) or both are supported, all other values are invalid
1321
1322
  result.T = 0; // TCP not supported
1322
1323
  }
1323
1324
  if (result.ICD === undefined) {