@matter/protocol 0.16.0-alpha.0-20251205-dfb1e1556 → 0.16.0-alpha.0-20251209-d6072d23e
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/action/Val.js +1 -1
- package/dist/cjs/action/Val.js.map +1 -1
- package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/cjs/action/client/ClientInteraction.js +83 -35
- package/dist/cjs/action/client/ClientInteraction.js.map +2 -2
- package/dist/cjs/action/client/subscription/ClientSubscription.d.ts +10 -5
- package/dist/cjs/action/client/subscription/ClientSubscription.d.ts.map +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscription.js +21 -1
- package/dist/cjs/action/client/subscription/ClientSubscription.js.map +2 -2
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js +2 -3
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscriptions.d.ts +4 -2
- package/dist/cjs/action/client/subscription/ClientSubscriptions.d.ts.map +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscriptions.js +68 -8
- package/dist/cjs/action/client/subscription/ClientSubscriptions.js.map +1 -1
- package/dist/cjs/action/client/subscription/PeerSubscription.d.ts +0 -1
- package/dist/cjs/action/client/subscription/PeerSubscription.d.ts.map +1 -1
- package/dist/cjs/action/client/subscription/PeerSubscription.js +1 -2
- package/dist/cjs/action/client/subscription/PeerSubscription.js.map +1 -1
- package/dist/cjs/action/client/subscription/SustainedSubscription.d.ts +0 -2
- package/dist/cjs/action/client/subscription/SustainedSubscription.d.ts.map +1 -1
- package/dist/cjs/action/client/subscription/SustainedSubscription.js +2 -4
- package/dist/cjs/action/client/subscription/SustainedSubscription.js.map +1 -1
- package/dist/cjs/action/request/Invoke.js +2 -2
- package/dist/cjs/action/request/Invoke.js.map +1 -1
- package/dist/cjs/action/response/ReadResult.d.ts +1 -1
- package/dist/cjs/action/response/ReadResult.d.ts.map +1 -1
- package/dist/cjs/action/server/AttributeReadResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/AttributeReadResponse.js +78 -25
- package/dist/cjs/action/server/AttributeReadResponse.js.map +1 -1
- package/dist/cjs/action/server/AttributeWriteResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/AttributeWriteResponse.js +70 -17
- package/dist/cjs/action/server/AttributeWriteResponse.js.map +1 -1
- package/dist/cjs/action/server/CommandInvokeResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/CommandInvokeResponse.js +83 -30
- package/dist/cjs/action/server/CommandInvokeResponse.js.map +1 -1
- package/dist/cjs/action/server/DataResponse.d.ts +1 -0
- package/dist/cjs/action/server/DataResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/DataResponse.js +3 -0
- package/dist/cjs/action/server/DataResponse.js.map +1 -1
- package/dist/cjs/action/server/ServerInteraction.d.ts.map +1 -1
- package/dist/cjs/action/server/ServerInteraction.js +4 -4
- package/dist/cjs/action/server/ServerInteraction.js.map +1 -1
- package/dist/cjs/advertisement/Advertisement.d.ts.map +1 -1
- package/dist/cjs/advertisement/Advertisement.js +66 -14
- package/dist/cjs/advertisement/Advertisement.js.map +1 -1
- package/dist/cjs/advertisement/Advertiser.d.ts +4 -1
- package/dist/cjs/advertisement/Advertiser.d.ts.map +1 -1
- package/dist/cjs/advertisement/Advertiser.js +63 -2
- package/dist/cjs/advertisement/Advertiser.js.map +1 -1
- package/dist/cjs/advertisement/ble/BleAdvertiser.d.ts +6 -1
- package/dist/cjs/advertisement/ble/BleAdvertiser.d.ts.map +1 -1
- package/dist/cjs/advertisement/ble/BleAdvertiser.js +1 -1
- package/dist/cjs/advertisement/ble/BleAdvertiser.js.map +1 -1
- package/dist/cjs/advertisement/mdns/MdnsAdvertiser.d.ts +5 -1
- package/dist/cjs/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -1
- package/dist/cjs/advertisement/mdns/MdnsAdvertiser.js +1 -1
- package/dist/cjs/advertisement/mdns/MdnsAdvertiser.js.map +1 -1
- package/dist/cjs/certificate/kinds/Noc.d.ts.map +1 -1
- package/dist/cjs/certificate/kinds/Noc.js +8 -6
- package/dist/cjs/certificate/kinds/Noc.js.map +1 -1
- package/dist/cjs/certificate/kinds/definitions/asn.js +1 -1
- package/dist/cjs/certificate/kinds/definitions/asn.js.map +1 -1
- package/dist/cjs/certificate/kinds/definitions/attestation.d.ts.map +1 -1
- package/dist/cjs/cluster/client/AttributeClient.d.ts.map +1 -1
- package/dist/cjs/cluster/client/AttributeClient.js +2 -2
- package/dist/cjs/cluster/client/AttributeClient.js.map +1 -1
- package/dist/cjs/codec/MessageCodec.d.ts +8 -1
- package/dist/cjs/codec/MessageCodec.d.ts.map +1 -1
- package/dist/cjs/codec/MessageCodec.js +38 -28
- package/dist/cjs/codec/MessageCodec.js.map +2 -2
- package/dist/cjs/common/FailsafeContext.d.ts +8 -9
- package/dist/cjs/common/FailsafeContext.d.ts.map +1 -1
- package/dist/cjs/common/FailsafeContext.js +27 -33
- package/dist/cjs/common/FailsafeContext.js.map +1 -1
- package/dist/cjs/common/FailsafeTimer.d.ts +4 -3
- package/dist/cjs/common/FailsafeTimer.d.ts.map +1 -1
- package/dist/cjs/common/FailsafeTimer.js +4 -4
- package/dist/cjs/common/FailsafeTimer.js.map +1 -1
- package/dist/cjs/common/Mark.d.ts +17 -0
- package/dist/cjs/common/Mark.d.ts.map +1 -0
- package/dist/cjs/{peer/OperationalPeer.js → common/Mark.js} +19 -3
- package/dist/cjs/common/Mark.js.map +6 -0
- package/dist/cjs/common/index.d.ts +1 -0
- package/dist/cjs/common/index.d.ts.map +1 -1
- package/dist/cjs/common/index.js +1 -0
- package/dist/cjs/common/index.js.map +1 -1
- package/dist/cjs/fabric/Fabric.d.ts +16 -8
- package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
- package/dist/cjs/fabric/Fabric.js +35 -18
- package/dist/cjs/fabric/Fabric.js.map +1 -1
- package/dist/cjs/fabric/FabricAuthority.d.ts +2 -2
- package/dist/cjs/fabric/FabricAuthority.d.ts.map +1 -1
- package/dist/cjs/fabric/FabricAuthority.js +3 -3
- package/dist/cjs/fabric/FabricAuthority.js.map +1 -1
- package/dist/cjs/fabric/FabricManager.d.ts +10 -14
- package/dist/cjs/fabric/FabricManager.d.ts.map +1 -1
- package/dist/cjs/fabric/FabricManager.js +44 -40
- package/dist/cjs/fabric/FabricManager.js.map +2 -2
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interaction/AttributeDataEncoder.d.ts +1 -1
- package/dist/cjs/interaction/InteractionClient.d.ts +2 -2
- package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionClient.js +39 -22
- package/dist/cjs/interaction/InteractionClient.js.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.d.ts +2 -2
- package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.js +35 -27
- package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
- package/dist/cjs/interaction/Subscription.d.ts +16 -37
- package/dist/cjs/interaction/Subscription.d.ts.map +1 -1
- package/dist/cjs/interaction/Subscription.js +15 -68
- package/dist/cjs/interaction/Subscription.js.map +2 -2
- package/dist/cjs/interaction/SubscriptionClient.d.ts +2 -2
- package/dist/cjs/interaction/SubscriptionClient.d.ts.map +1 -1
- package/dist/cjs/interaction/SubscriptionClient.js +2 -2
- package/dist/cjs/interaction/SubscriptionClient.js.map +1 -1
- package/dist/cjs/mdns/MdnsClient.d.ts +10 -10
- package/dist/cjs/mdns/MdnsClient.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsClient.js +165 -80
- package/dist/cjs/mdns/MdnsClient.js.map +1 -1
- package/dist/cjs/mdns/MdnsServer.d.ts +2 -2
- package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsServer.js +173 -94
- package/dist/cjs/mdns/MdnsServer.js.map +2 -2
- package/dist/cjs/mdns/MdnsService.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsService.js +3 -2
- package/dist/cjs/mdns/MdnsService.js.map +1 -1
- package/dist/cjs/mdns/MdnsSocket.d.ts +3 -2
- package/dist/cjs/mdns/MdnsSocket.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsSocket.js +2 -1
- package/dist/cjs/mdns/MdnsSocket.js.map +1 -1
- package/dist/cjs/peer/ControllerCommissioner.d.ts +2 -2
- package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerCommissioner.js +26 -28
- package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
- package/dist/cjs/peer/ControllerDiscovery.d.ts +1 -1
- package/dist/cjs/peer/ControllerDiscovery.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerDiscovery.js +3 -3
- package/dist/cjs/peer/ControllerDiscovery.js.map +1 -1
- package/dist/cjs/peer/Peer.d.ts +57 -0
- package/dist/cjs/peer/Peer.d.ts.map +1 -0
- package/dist/cjs/peer/Peer.js +182 -0
- package/dist/cjs/peer/Peer.js.map +6 -0
- package/dist/cjs/peer/PeerAddress.d.ts.map +1 -1
- package/dist/cjs/peer/PeerAddress.js +6 -3
- package/dist/cjs/peer/PeerAddress.js.map +1 -1
- package/dist/cjs/peer/PeerAddressStore.d.ts +3 -3
- package/dist/cjs/peer/PeerAddressStore.d.ts.map +1 -1
- package/{src/peer/OperationalPeer.ts → dist/cjs/peer/PeerDescriptor.d.ts} +14 -12
- package/dist/cjs/peer/PeerDescriptor.d.ts.map +1 -0
- package/dist/cjs/peer/PeerDescriptor.js +71 -0
- package/dist/cjs/peer/PeerDescriptor.js.map +6 -0
- package/dist/cjs/peer/PeerSet.d.ts +23 -26
- package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
- package/dist/cjs/peer/PeerSet.js +173 -173
- package/dist/cjs/peer/PeerSet.js.map +2 -2
- package/dist/cjs/peer/index.d.ts +1 -1
- package/dist/cjs/peer/index.d.ts.map +1 -1
- package/dist/cjs/peer/index.js +1 -1
- package/dist/cjs/peer/index.js.map +1 -1
- package/dist/cjs/protocol/DeviceAdvertiser.js +4 -4
- package/dist/cjs/protocol/DeviceAdvertiser.js.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.d.ts +6 -9
- package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.js +301 -243
- package/dist/cjs/protocol/ExchangeManager.js.map +2 -2
- package/dist/cjs/protocol/ExchangeProvider.d.ts +9 -11
- package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeProvider.js +79 -32
- package/dist/cjs/protocol/ExchangeProvider.js.map +2 -2
- package/dist/cjs/protocol/MessageChannel.d.ts +6 -7
- package/dist/cjs/protocol/MessageChannel.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageChannel.js +14 -16
- package/dist/cjs/protocol/MessageChannel.js.map +1 -1
- package/dist/cjs/protocol/MessageCounter.d.ts +4 -4
- package/dist/cjs/protocol/MessageCounter.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageCounter.js +7 -7
- package/dist/cjs/protocol/MessageCounter.js.map +1 -1
- package/dist/cjs/protocol/MessageExchange.d.ts +31 -20
- package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageExchange.js +316 -231
- package/dist/cjs/protocol/MessageExchange.js.map +2 -2
- package/dist/cjs/protocol/ProtocolMocks.d.ts +100 -0
- package/dist/cjs/protocol/ProtocolMocks.d.ts.map +1 -0
- package/dist/cjs/protocol/ProtocolMocks.js +237 -0
- package/dist/cjs/protocol/ProtocolMocks.js.map +6 -0
- package/dist/cjs/protocol/errors.d.ts +35 -0
- package/dist/cjs/protocol/errors.d.ts.map +1 -0
- package/dist/cjs/protocol/errors.js +50 -0
- package/dist/cjs/protocol/errors.js.map +6 -0
- package/dist/cjs/protocol/index.d.ts +2 -1
- package/dist/cjs/protocol/index.d.ts.map +1 -1
- package/dist/cjs/protocol/index.js +2 -1
- package/dist/cjs/protocol/index.js.map +1 -1
- package/dist/cjs/securechannel/SecureChannelMessenger.d.ts +1 -0
- package/dist/cjs/securechannel/SecureChannelMessenger.d.ts.map +1 -1
- package/dist/cjs/securechannel/SecureChannelMessenger.js +3 -0
- package/dist/cjs/securechannel/SecureChannelMessenger.js.map +1 -1
- package/dist/cjs/securechannel/SecureChannelProtocol.js +2 -2
- package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
- package/dist/cjs/session/GroupSession.d.ts +21 -10
- package/dist/cjs/session/GroupSession.d.ts.map +1 -1
- package/dist/cjs/session/GroupSession.js +37 -12
- package/dist/cjs/session/GroupSession.js.map +1 -1
- package/dist/cjs/session/NodeSession.d.ts +56 -50
- package/dist/cjs/session/NodeSession.d.ts.map +1 -1
- package/dist/cjs/session/NodeSession.js +95 -103
- package/dist/cjs/session/NodeSession.js.map +1 -1
- package/dist/cjs/session/SecureSession.d.ts +4 -4
- package/dist/cjs/session/SecureSession.d.ts.map +1 -1
- package/dist/cjs/session/SecureSession.js +1 -1
- package/dist/cjs/session/SecureSession.js.map +1 -1
- package/dist/cjs/session/Session.d.ts +82 -66
- package/dist/cjs/session/Session.d.ts.map +1 -1
- package/dist/cjs/session/Session.js +218 -45
- package/dist/cjs/session/Session.js.map +1 -1
- package/dist/cjs/session/SessionManager.d.ts +33 -36
- package/dist/cjs/session/SessionManager.d.ts.map +1 -1
- package/dist/cjs/session/SessionManager.js +112 -150
- package/dist/cjs/session/SessionManager.js.map +1 -1
- package/dist/cjs/session/SessionParameters.d.ts +87 -0
- package/dist/cjs/session/SessionParameters.d.ts.map +1 -0
- package/dist/cjs/session/SessionParameters.js +81 -0
- package/dist/cjs/session/SessionParameters.js.map +6 -0
- package/dist/{esm/session/InsecureSession.d.ts → cjs/session/UnsecuredSession.d.ts} +18 -16
- package/dist/cjs/session/UnsecuredSession.d.ts.map +1 -0
- package/dist/cjs/session/{InsecureSession.js → UnsecuredSession.js} +21 -21
- package/dist/cjs/session/UnsecuredSession.js.map +6 -0
- package/dist/cjs/session/case/CaseClient.d.ts.map +1 -1
- package/dist/cjs/session/case/CaseClient.js +6 -4
- package/dist/cjs/session/case/CaseClient.js.map +1 -1
- package/dist/cjs/session/case/CaseServer.d.ts.map +1 -1
- package/dist/cjs/session/case/CaseServer.js +14 -10
- package/dist/cjs/session/case/CaseServer.js.map +1 -1
- package/dist/cjs/session/index.d.ts +2 -1
- package/dist/cjs/session/index.d.ts.map +1 -1
- package/dist/cjs/session/index.js +2 -1
- package/dist/cjs/session/index.js.map +1 -1
- package/dist/cjs/session/pase/PaseClient.d.ts +3 -3
- package/dist/cjs/session/pase/PaseClient.d.ts.map +1 -1
- package/dist/cjs/session/pase/PaseClient.js +5 -3
- package/dist/cjs/session/pase/PaseClient.js.map +1 -1
- package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -1
- package/dist/cjs/session/pase/PaseServer.js +13 -13
- package/dist/cjs/session/pase/PaseServer.js.map +1 -1
- package/dist/esm/action/Val.js +1 -1
- package/dist/esm/action/Val.js.map +1 -1
- package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/esm/action/client/ClientInteraction.js +83 -35
- package/dist/esm/action/client/ClientInteraction.js.map +2 -2
- package/dist/esm/action/client/subscription/ClientSubscription.d.ts +10 -5
- package/dist/esm/action/client/subscription/ClientSubscription.d.ts.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscription.js +22 -2
- package/dist/esm/action/client/subscription/ClientSubscription.js.map +2 -2
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js +2 -3
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscriptions.d.ts +4 -2
- package/dist/esm/action/client/subscription/ClientSubscriptions.d.ts.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscriptions.js +68 -8
- package/dist/esm/action/client/subscription/ClientSubscriptions.js.map +1 -1
- package/dist/esm/action/client/subscription/PeerSubscription.d.ts +0 -1
- package/dist/esm/action/client/subscription/PeerSubscription.d.ts.map +1 -1
- package/dist/esm/action/client/subscription/PeerSubscription.js +1 -2
- package/dist/esm/action/client/subscription/PeerSubscription.js.map +1 -1
- package/dist/esm/action/client/subscription/SustainedSubscription.d.ts +0 -2
- package/dist/esm/action/client/subscription/SustainedSubscription.d.ts.map +1 -1
- package/dist/esm/action/client/subscription/SustainedSubscription.js +2 -4
- package/dist/esm/action/client/subscription/SustainedSubscription.js.map +1 -1
- package/dist/esm/action/request/Invoke.js +2 -2
- package/dist/esm/action/request/Invoke.js.map +1 -1
- package/dist/esm/action/response/ReadResult.d.ts +1 -1
- package/dist/esm/action/response/ReadResult.d.ts.map +1 -1
- package/dist/esm/action/server/AttributeReadResponse.d.ts.map +1 -1
- package/dist/esm/action/server/AttributeReadResponse.js +78 -25
- package/dist/esm/action/server/AttributeReadResponse.js.map +1 -1
- package/dist/esm/action/server/AttributeWriteResponse.d.ts.map +1 -1
- package/dist/esm/action/server/AttributeWriteResponse.js +70 -17
- package/dist/esm/action/server/AttributeWriteResponse.js.map +1 -1
- package/dist/esm/action/server/CommandInvokeResponse.d.ts.map +1 -1
- package/dist/esm/action/server/CommandInvokeResponse.js +83 -30
- package/dist/esm/action/server/CommandInvokeResponse.js.map +1 -1
- package/dist/esm/action/server/DataResponse.d.ts +1 -0
- package/dist/esm/action/server/DataResponse.d.ts.map +1 -1
- package/dist/esm/action/server/DataResponse.js +3 -0
- package/dist/esm/action/server/DataResponse.js.map +1 -1
- package/dist/esm/action/server/ServerInteraction.d.ts.map +1 -1
- package/dist/esm/action/server/ServerInteraction.js +4 -4
- package/dist/esm/action/server/ServerInteraction.js.map +1 -1
- package/dist/esm/advertisement/Advertisement.d.ts.map +1 -1
- package/dist/esm/advertisement/Advertisement.js +66 -14
- package/dist/esm/advertisement/Advertisement.js.map +1 -1
- package/dist/esm/advertisement/Advertiser.d.ts +4 -1
- package/dist/esm/advertisement/Advertiser.d.ts.map +1 -1
- package/dist/esm/advertisement/Advertiser.js +63 -2
- package/dist/esm/advertisement/Advertiser.js.map +1 -1
- package/dist/esm/advertisement/ble/BleAdvertiser.d.ts +6 -1
- package/dist/esm/advertisement/ble/BleAdvertiser.d.ts.map +1 -1
- package/dist/esm/advertisement/ble/BleAdvertiser.js +1 -1
- package/dist/esm/advertisement/ble/BleAdvertiser.js.map +1 -1
- package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts +5 -1
- package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -1
- package/dist/esm/advertisement/mdns/MdnsAdvertiser.js +1 -1
- package/dist/esm/advertisement/mdns/MdnsAdvertiser.js.map +1 -1
- package/dist/esm/certificate/kinds/Noc.d.ts.map +1 -1
- package/dist/esm/certificate/kinds/Noc.js +8 -6
- package/dist/esm/certificate/kinds/Noc.js.map +1 -1
- package/dist/esm/certificate/kinds/definitions/asn.js +2 -2
- package/dist/esm/certificate/kinds/definitions/asn.js.map +1 -1
- package/dist/esm/certificate/kinds/definitions/attestation.d.ts.map +1 -1
- package/dist/esm/cluster/client/AttributeClient.d.ts.map +1 -1
- package/dist/esm/cluster/client/AttributeClient.js +1 -1
- package/dist/esm/cluster/client/AttributeClient.js.map +1 -1
- package/dist/esm/codec/MessageCodec.d.ts +8 -1
- package/dist/esm/codec/MessageCodec.d.ts.map +1 -1
- package/dist/esm/codec/MessageCodec.js +39 -28
- package/dist/esm/codec/MessageCodec.js.map +2 -2
- package/dist/esm/common/FailsafeContext.d.ts +8 -9
- package/dist/esm/common/FailsafeContext.d.ts.map +1 -1
- package/dist/esm/common/FailsafeContext.js +27 -33
- package/dist/esm/common/FailsafeContext.js.map +1 -1
- package/dist/esm/common/FailsafeTimer.d.ts +4 -3
- package/dist/esm/common/FailsafeTimer.d.ts.map +1 -1
- package/dist/esm/common/FailsafeTimer.js +4 -4
- package/dist/esm/common/FailsafeTimer.js.map +1 -1
- package/dist/esm/common/Mark.d.ts +17 -0
- package/dist/esm/common/Mark.d.ts.map +1 -0
- package/dist/esm/common/Mark.js +18 -0
- package/dist/esm/common/Mark.js.map +6 -0
- package/dist/esm/common/index.d.ts +1 -0
- package/dist/esm/common/index.d.ts.map +1 -1
- package/dist/esm/common/index.js +1 -0
- package/dist/esm/common/index.js.map +1 -1
- package/dist/esm/fabric/Fabric.d.ts +16 -8
- package/dist/esm/fabric/Fabric.d.ts.map +1 -1
- package/dist/esm/fabric/Fabric.js +36 -18
- package/dist/esm/fabric/Fabric.js.map +1 -1
- package/dist/esm/fabric/FabricAuthority.d.ts +2 -2
- package/dist/esm/fabric/FabricAuthority.d.ts.map +1 -1
- package/dist/esm/fabric/FabricAuthority.js +5 -5
- package/dist/esm/fabric/FabricAuthority.js.map +1 -1
- package/dist/esm/fabric/FabricManager.d.ts +10 -14
- package/dist/esm/fabric/FabricManager.d.ts.map +1 -1
- package/dist/esm/fabric/FabricManager.js +45 -40
- package/dist/esm/fabric/FabricManager.js.map +2 -2
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interaction/AttributeDataEncoder.d.ts +1 -1
- package/dist/esm/interaction/InteractionClient.d.ts +2 -2
- package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionClient.js +39 -22
- package/dist/esm/interaction/InteractionClient.js.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.d.ts +2 -2
- package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.js +33 -28
- package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
- package/dist/esm/interaction/Subscription.d.ts +16 -37
- package/dist/esm/interaction/Subscription.d.ts.map +1 -1
- package/dist/esm/interaction/Subscription.js +16 -69
- package/dist/esm/interaction/Subscription.js.map +2 -2
- package/dist/esm/interaction/SubscriptionClient.d.ts +2 -2
- package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -1
- package/dist/esm/interaction/SubscriptionClient.js +2 -2
- package/dist/esm/interaction/SubscriptionClient.js.map +1 -1
- package/dist/esm/mdns/MdnsClient.d.ts +10 -10
- package/dist/esm/mdns/MdnsClient.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsClient.js +166 -80
- package/dist/esm/mdns/MdnsClient.js.map +1 -1
- package/dist/esm/mdns/MdnsServer.d.ts +2 -2
- package/dist/esm/mdns/MdnsServer.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsServer.js +176 -94
- package/dist/esm/mdns/MdnsServer.js.map +2 -2
- package/dist/esm/mdns/MdnsService.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsService.js +3 -2
- package/dist/esm/mdns/MdnsService.js.map +1 -1
- package/dist/esm/mdns/MdnsSocket.d.ts +3 -2
- package/dist/esm/mdns/MdnsSocket.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsSocket.js +2 -1
- package/dist/esm/mdns/MdnsSocket.js.map +1 -1
- package/dist/esm/peer/ControllerCommissioner.d.ts +2 -2
- package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
- package/dist/esm/peer/ControllerCommissioner.js +26 -28
- package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
- package/dist/esm/peer/ControllerDiscovery.d.ts +1 -1
- package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -1
- package/dist/esm/peer/ControllerDiscovery.js +1 -1
- package/dist/esm/peer/ControllerDiscovery.js.map +1 -1
- package/dist/esm/peer/Peer.d.ts +57 -0
- package/dist/esm/peer/Peer.d.ts.map +1 -0
- package/dist/esm/peer/Peer.js +162 -0
- package/dist/esm/peer/Peer.js.map +6 -0
- package/dist/esm/peer/PeerAddress.d.ts.map +1 -1
- package/dist/esm/peer/PeerAddress.js +6 -3
- package/dist/esm/peer/PeerAddress.js.map +1 -1
- package/dist/esm/peer/PeerAddressStore.d.ts +3 -3
- package/dist/esm/peer/PeerAddressStore.d.ts.map +1 -1
- package/dist/{cjs/peer/OperationalPeer.d.ts → esm/peer/PeerDescriptor.d.ts} +14 -7
- package/dist/esm/peer/PeerDescriptor.d.ts.map +1 -0
- package/dist/esm/peer/PeerDescriptor.js +51 -0
- package/dist/esm/peer/PeerDescriptor.js.map +6 -0
- package/dist/esm/peer/PeerSet.d.ts +23 -26
- package/dist/esm/peer/PeerSet.d.ts.map +1 -1
- package/dist/esm/peer/PeerSet.js +173 -175
- package/dist/esm/peer/PeerSet.js.map +2 -2
- package/dist/esm/peer/index.d.ts +1 -1
- package/dist/esm/peer/index.d.ts.map +1 -1
- package/dist/esm/peer/index.js +1 -1
- package/dist/esm/protocol/DeviceAdvertiser.js +4 -4
- package/dist/esm/protocol/DeviceAdvertiser.js.map +1 -1
- package/dist/esm/protocol/ExchangeManager.d.ts +6 -9
- package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeManager.js +303 -248
- package/dist/esm/protocol/ExchangeManager.js.map +2 -2
- package/dist/esm/protocol/ExchangeProvider.d.ts +9 -11
- package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeProvider.js +81 -37
- package/dist/esm/protocol/ExchangeProvider.js.map +2 -2
- package/dist/esm/protocol/MessageChannel.d.ts +6 -7
- package/dist/esm/protocol/MessageChannel.d.ts.map +1 -1
- package/dist/esm/protocol/MessageChannel.js +22 -18
- package/dist/esm/protocol/MessageChannel.js.map +1 -1
- package/dist/esm/protocol/MessageCounter.d.ts +4 -4
- package/dist/esm/protocol/MessageCounter.d.ts.map +1 -1
- package/dist/esm/protocol/MessageCounter.js +7 -7
- package/dist/esm/protocol/MessageCounter.js.map +1 -1
- package/dist/esm/protocol/MessageExchange.d.ts +31 -20
- package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/esm/protocol/MessageExchange.js +318 -238
- package/dist/esm/protocol/MessageExchange.js.map +2 -2
- package/dist/esm/protocol/ProtocolMocks.d.ts +100 -0
- package/dist/esm/protocol/ProtocolMocks.d.ts.map +1 -0
- package/dist/esm/protocol/ProtocolMocks.js +230 -0
- package/dist/esm/protocol/ProtocolMocks.js.map +6 -0
- package/dist/esm/protocol/errors.d.ts +35 -0
- package/dist/esm/protocol/errors.d.ts.map +1 -0
- package/dist/esm/protocol/errors.js +30 -0
- package/dist/esm/protocol/errors.js.map +6 -0
- package/dist/esm/protocol/index.d.ts +2 -1
- package/dist/esm/protocol/index.d.ts.map +1 -1
- package/dist/esm/protocol/index.js +2 -1
- package/dist/esm/protocol/index.js.map +1 -1
- package/dist/esm/securechannel/SecureChannelMessenger.d.ts +1 -0
- package/dist/esm/securechannel/SecureChannelMessenger.d.ts.map +1 -1
- package/dist/esm/securechannel/SecureChannelMessenger.js +3 -0
- package/dist/esm/securechannel/SecureChannelMessenger.js.map +1 -1
- package/dist/esm/securechannel/SecureChannelProtocol.js +2 -2
- package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
- package/dist/esm/session/GroupSession.d.ts +21 -10
- package/dist/esm/session/GroupSession.d.ts.map +1 -1
- package/dist/esm/session/GroupSession.js +41 -12
- package/dist/esm/session/GroupSession.js.map +1 -1
- package/dist/esm/session/NodeSession.d.ts +56 -50
- package/dist/esm/session/NodeSession.d.ts.map +1 -1
- package/dist/esm/session/NodeSession.js +99 -105
- package/dist/esm/session/NodeSession.js.map +1 -1
- package/dist/esm/session/SecureSession.d.ts +4 -4
- package/dist/esm/session/SecureSession.d.ts.map +1 -1
- package/dist/esm/session/SecureSession.js +1 -1
- package/dist/esm/session/SecureSession.js.map +1 -1
- package/dist/esm/session/Session.d.ts +82 -66
- package/dist/esm/session/Session.d.ts.map +1 -1
- package/dist/esm/session/Session.js +223 -45
- package/dist/esm/session/Session.js.map +1 -1
- package/dist/esm/session/SessionManager.d.ts +33 -36
- package/dist/esm/session/SessionManager.d.ts.map +1 -1
- package/dist/esm/session/SessionManager.js +113 -157
- package/dist/esm/session/SessionManager.js.map +1 -1
- package/dist/esm/session/SessionParameters.d.ts +87 -0
- package/dist/esm/session/SessionParameters.d.ts.map +1 -0
- package/dist/esm/session/SessionParameters.js +61 -0
- package/dist/esm/session/SessionParameters.js.map +6 -0
- package/dist/{cjs/session/InsecureSession.d.ts → esm/session/UnsecuredSession.d.ts} +18 -16
- package/dist/esm/session/UnsecuredSession.d.ts.map +1 -0
- package/dist/esm/session/{InsecureSession.js → UnsecuredSession.js} +18 -18
- package/dist/esm/session/UnsecuredSession.js.map +6 -0
- package/dist/esm/session/case/CaseClient.d.ts.map +1 -1
- package/dist/esm/session/case/CaseClient.js +5 -3
- package/dist/esm/session/case/CaseClient.js.map +1 -1
- package/dist/esm/session/case/CaseServer.d.ts.map +1 -1
- package/dist/esm/session/case/CaseServer.js +14 -10
- package/dist/esm/session/case/CaseServer.js.map +1 -1
- package/dist/esm/session/index.d.ts +2 -1
- package/dist/esm/session/index.d.ts.map +1 -1
- package/dist/esm/session/index.js +2 -1
- package/dist/esm/session/index.js.map +1 -1
- package/dist/esm/session/pase/PaseClient.d.ts +3 -3
- package/dist/esm/session/pase/PaseClient.d.ts.map +1 -1
- package/dist/esm/session/pase/PaseClient.js +5 -3
- package/dist/esm/session/pase/PaseClient.js.map +1 -1
- package/dist/esm/session/pase/PaseServer.d.ts.map +1 -1
- package/dist/esm/session/pase/PaseServer.js +13 -13
- package/dist/esm/session/pase/PaseServer.js.map +1 -1
- package/package.json +6 -6
- package/src/action/client/ClientInteraction.ts +47 -13
- package/src/action/client/subscription/ClientSubscription.ts +30 -5
- package/src/action/client/subscription/ClientSubscriptionHandler.ts +2 -4
- package/src/action/client/subscription/ClientSubscriptions.ts +14 -3
- package/src/action/client/subscription/PeerSubscription.ts +2 -2
- package/src/action/client/subscription/SustainedSubscription.ts +2 -6
- package/src/action/request/Invoke.ts +2 -2
- package/src/action/response/ReadResult.ts +1 -1
- package/src/action/server/AttributeReadResponse.ts +2 -0
- package/src/action/server/AttributeWriteResponse.ts +2 -0
- package/src/action/server/CommandInvokeResponse.ts +1 -0
- package/src/action/server/DataResponse.ts +4 -0
- package/src/action/server/ServerInteraction.ts +4 -4
- package/src/advertisement/Advertisement.ts +6 -7
- package/src/advertisement/Advertiser.ts +12 -1
- package/src/advertisement/ble/BleAdvertiser.ts +7 -2
- package/src/advertisement/mdns/MdnsAdvertiser.ts +7 -1
- package/src/certificate/kinds/Noc.ts +12 -7
- package/src/certificate/kinds/definitions/asn.ts +2 -2
- package/src/certificate/kinds/definitions/attestation.ts +1 -0
- package/src/cluster/client/AttributeClient.ts +1 -1
- package/src/codec/MessageCodec.ts +39 -32
- package/src/common/FailsafeContext.ts +36 -39
- package/src/common/FailsafeTimer.ts +7 -6
- package/src/common/Mark.ts +17 -0
- package/src/common/index.ts +1 -0
- package/src/fabric/Fabric.ts +51 -23
- package/src/fabric/FabricAuthority.ts +4 -4
- package/src/fabric/FabricManager.ts +53 -40
- package/src/index.ts +3 -1
- package/src/interaction/InteractionClient.ts +40 -23
- package/src/interaction/InteractionMessenger.ts +38 -32
- package/src/interaction/Subscription.ts +20 -92
- package/src/interaction/SubscriptionClient.ts +3 -3
- package/src/mdns/MdnsClient.ts +20 -3
- package/src/mdns/MdnsServer.ts +13 -1
- package/src/mdns/MdnsService.ts +3 -2
- package/src/mdns/MdnsSocket.ts +9 -3
- package/src/peer/ControllerCommissioner.ts +35 -37
- package/src/peer/ControllerDiscovery.ts +1 -1
- package/src/peer/Peer.ts +161 -0
- package/src/peer/PeerAddress.ts +6 -2
- package/src/peer/PeerAddressStore.ts +3 -3
- package/src/peer/PeerDescriptor.ts +89 -0
- package/src/peer/PeerSet.ts +145 -213
- package/src/peer/index.ts +1 -1
- package/src/protocol/DeviceAdvertiser.ts +4 -4
- package/src/protocol/ExchangeManager.ts +149 -178
- package/src/protocol/ExchangeProvider.ts +31 -40
- package/src/protocol/MessageChannel.ts +29 -18
- package/src/protocol/MessageCounter.ts +8 -8
- package/src/protocol/MessageExchange.ts +181 -144
- package/src/protocol/ProtocolMocks.ts +302 -0
- package/src/protocol/errors.ts +44 -0
- package/src/protocol/index.ts +2 -1
- package/src/securechannel/SecureChannelMessenger.ts +4 -0
- package/src/securechannel/SecureChannelProtocol.ts +2 -2
- package/src/session/GroupSession.ts +67 -23
- package/src/session/NodeSession.ts +140 -136
- package/src/session/SecureSession.ts +6 -5
- package/src/session/Session.ts +234 -101
- package/src/session/SessionManager.ts +148 -187
- package/src/session/SessionParameters.ts +108 -0
- package/src/session/{InsecureSession.ts → UnsecuredSession.ts} +28 -26
- package/src/session/case/CaseClient.ts +6 -3
- package/src/session/case/CaseServer.ts +15 -11
- package/src/session/index.ts +2 -1
- package/src/session/pase/PaseClient.ts +12 -5
- package/src/session/pase/PaseServer.ts +14 -13
- package/dist/cjs/peer/OperationalPeer.d.ts.map +0 -1
- package/dist/cjs/peer/OperationalPeer.js.map +0 -6
- package/dist/cjs/protocol/ChannelManager.d.ts +0 -29
- package/dist/cjs/protocol/ChannelManager.d.ts.map +0 -1
- package/dist/cjs/protocol/ChannelManager.js +0 -178
- package/dist/cjs/protocol/ChannelManager.js.map +0 -6
- package/dist/cjs/session/InsecureSession.d.ts.map +0 -1
- package/dist/cjs/session/InsecureSession.js.map +0 -6
- package/dist/esm/peer/OperationalPeer.d.ts +0 -38
- package/dist/esm/peer/OperationalPeer.d.ts.map +0 -1
- package/dist/esm/peer/OperationalPeer.js +0 -6
- package/dist/esm/peer/OperationalPeer.js.map +0 -6
- package/dist/esm/protocol/ChannelManager.d.ts +0 -29
- package/dist/esm/protocol/ChannelManager.d.ts.map +0 -1
- package/dist/esm/protocol/ChannelManager.js +0 -158
- package/dist/esm/protocol/ChannelManager.js.map +0 -6
- package/dist/esm/session/InsecureSession.d.ts.map +0 -1
- package/dist/esm/session/InsecureSession.js.map +0 -6
- package/src/protocol/ChannelManager.ts +0 -180
|
@@ -5,37 +5,31 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Subject } from "#action/server/Subject.js";
|
|
7
7
|
import { MessageCodec, SessionType } from "#codec/MessageCodec.js";
|
|
8
|
+
import { Mark } from "#common/Mark.js";
|
|
8
9
|
import {
|
|
10
|
+
AsyncObservableValue,
|
|
9
11
|
BasicSet,
|
|
10
12
|
Bytes,
|
|
11
13
|
CRYPTO_SYMMETRIC_KEY_LENGTH,
|
|
12
14
|
Diagnostic,
|
|
13
15
|
Duration,
|
|
16
|
+
InternalError,
|
|
14
17
|
Logger,
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
MatterFlowError,
|
|
19
|
+
hex
|
|
17
20
|
} from "#general";
|
|
18
21
|
import { PeerAddress } from "#peer/PeerAddress.js";
|
|
22
|
+
import { NoAssociatedFabricError } from "#protocol/errors.js";
|
|
19
23
|
import { MessageCounter } from "#protocol/MessageCounter.js";
|
|
20
24
|
import { MessageReceptionStateEncryptedWithoutRollover } from "#protocol/MessageReceptionState.js";
|
|
21
|
-
import { FabricIndex, NodeId
|
|
25
|
+
import { FabricIndex, NodeId } from "#types";
|
|
22
26
|
import { SecureSession } from "./SecureSession.js";
|
|
23
27
|
import { Session } from "./Session.js";
|
|
24
28
|
const logger = Logger.get("SecureSession");
|
|
25
29
|
const SESSION_KEYS_INFO = Bytes.fromString("SessionKeys");
|
|
26
30
|
const SESSION_RESUMPTION_KEYS_INFO = Bytes.fromString("SessionResumptionKeys");
|
|
27
|
-
class NoChannelError extends MatterError {
|
|
28
|
-
}
|
|
29
|
-
class NoAssociatedFabricError extends StatusResponseError {
|
|
30
|
-
constructor(message) {
|
|
31
|
-
super(message, StatusCode.UnsupportedAccess);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
31
|
class NodeSession extends SecureSession {
|
|
35
32
|
#crypto;
|
|
36
|
-
#subscriptions = new BasicSet();
|
|
37
|
-
#closingAfterExchangeFinished = false;
|
|
38
|
-
#sendCloseMessageWhenClosing = true;
|
|
39
33
|
#id;
|
|
40
34
|
#isInitiator;
|
|
41
35
|
#fabric;
|
|
@@ -45,26 +39,19 @@ class NodeSession extends SecureSession {
|
|
|
45
39
|
#encryptKey;
|
|
46
40
|
#attestationKey;
|
|
47
41
|
#caseAuthenticatedTags;
|
|
48
|
-
#isClosing = false;
|
|
49
42
|
supportsMRP = true;
|
|
50
43
|
type = SessionType.Unicast;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
salt,
|
|
61
|
-
isInitiator,
|
|
62
|
-
isResumption,
|
|
63
|
-
peerSessionParameters,
|
|
64
|
-
caseAuthenticatedTags
|
|
65
|
-
} = args;
|
|
44
|
+
#closedByPeer = AsyncObservableValue();
|
|
45
|
+
#isPeerLost = false;
|
|
46
|
+
// TODO - remove this; subscriptions should be owned by the peer, not the session
|
|
47
|
+
#subscriptions = new BasicSet();
|
|
48
|
+
static async create(config) {
|
|
49
|
+
const { manager, sharedSecret, salt, isResumption, peerSessionParameters, isInitiator } = config;
|
|
50
|
+
if (manager) {
|
|
51
|
+
await manager.construction;
|
|
52
|
+
}
|
|
66
53
|
const keys = Bytes.of(
|
|
67
|
-
await
|
|
54
|
+
await config.crypto.createHkdfKey(
|
|
68
55
|
sharedSecret,
|
|
69
56
|
salt,
|
|
70
57
|
isResumption ? SESSION_RESUMPTION_KEYS_INFO : SESSION_KEYS_INFO,
|
|
@@ -74,22 +61,15 @@ class NodeSession extends SecureSession {
|
|
|
74
61
|
const decryptKey = isInitiator ? keys.slice(16, 32) : keys.slice(0, 16);
|
|
75
62
|
const encryptKey = isInitiator ? keys.slice(0, 16) : keys.slice(16, 32);
|
|
76
63
|
const attestationKey = keys.slice(32, 48);
|
|
77
|
-
return new
|
|
78
|
-
|
|
79
|
-
manager,
|
|
80
|
-
id,
|
|
81
|
-
fabric,
|
|
82
|
-
peerNodeId,
|
|
83
|
-
peerSessionId,
|
|
64
|
+
return new this({
|
|
65
|
+
...config,
|
|
84
66
|
decryptKey,
|
|
85
67
|
encryptKey,
|
|
86
68
|
attestationKey,
|
|
87
|
-
sessionParameters: peerSessionParameters
|
|
88
|
-
isInitiator,
|
|
89
|
-
caseAuthenticatedTags
|
|
69
|
+
sessionParameters: peerSessionParameters
|
|
90
70
|
});
|
|
91
71
|
}
|
|
92
|
-
constructor(
|
|
72
|
+
constructor(config) {
|
|
93
73
|
const {
|
|
94
74
|
crypto,
|
|
95
75
|
manager,
|
|
@@ -102,14 +82,16 @@ class NodeSession extends SecureSession {
|
|
|
102
82
|
attestationKey,
|
|
103
83
|
caseAuthenticatedTags,
|
|
104
84
|
isInitiator
|
|
105
|
-
} =
|
|
85
|
+
} = config;
|
|
106
86
|
super({
|
|
107
|
-
...
|
|
87
|
+
...config,
|
|
108
88
|
setActiveTimestamp: true,
|
|
109
89
|
// We always set the active timestamp for Secure sessions
|
|
110
90
|
// Can be changed to a PersistedMessageCounter if we implement session storage
|
|
111
|
-
messageCounter: new MessageCounter(crypto, () => {
|
|
112
|
-
this.
|
|
91
|
+
messageCounter: new MessageCounter(crypto, async () => {
|
|
92
|
+
await this.initiateClose(async () => {
|
|
93
|
+
await this.closeSubscriptions(true);
|
|
94
|
+
});
|
|
113
95
|
}),
|
|
114
96
|
messageReceptionState: new MessageReceptionStateEncryptedWithoutRollover()
|
|
115
97
|
});
|
|
@@ -127,7 +109,7 @@ class NodeSession extends SecureSession {
|
|
|
127
109
|
fabric?.addSession(this);
|
|
128
110
|
logger.debug(
|
|
129
111
|
`Created secure ${this.isPase ? "PASE" : "CASE"} session for fabric index ${fabric?.fabricIndex}`,
|
|
130
|
-
this.
|
|
112
|
+
this.via,
|
|
131
113
|
this.parameterDiagnostics
|
|
132
114
|
);
|
|
133
115
|
}
|
|
@@ -149,12 +131,6 @@ class NodeSession extends SecureSession {
|
|
|
149
131
|
get caseAuthenticatedTags() {
|
|
150
132
|
return this.#caseAuthenticatedTags;
|
|
151
133
|
}
|
|
152
|
-
get closingAfterExchangeFinished() {
|
|
153
|
-
return this.#closingAfterExchangeFinished;
|
|
154
|
-
}
|
|
155
|
-
get sendCloseMessageWhenClosing() {
|
|
156
|
-
return this.#sendCloseMessageWhenClosing;
|
|
157
|
-
}
|
|
158
134
|
get isPase() {
|
|
159
135
|
return this.#peerNodeId === NodeId.UNSPECIFIED_NODE_ID;
|
|
160
136
|
}
|
|
@@ -164,21 +140,12 @@ class NodeSession extends SecureSession {
|
|
|
164
140
|
get isInitiator() {
|
|
165
141
|
return this.#isInitiator;
|
|
166
142
|
}
|
|
167
|
-
get isClosing() {
|
|
168
|
-
return this.#isClosing;
|
|
169
|
-
}
|
|
170
143
|
subjectFor(_message) {
|
|
171
144
|
return Subject.Node({
|
|
172
145
|
id: this.peerNodeId,
|
|
173
146
|
catSubjects: this.#caseAuthenticatedTags.map((cat) => NodeId.fromCaseAuthenticatedTag(cat))
|
|
174
147
|
});
|
|
175
148
|
}
|
|
176
|
-
async close(closeAfterExchangeFinished) {
|
|
177
|
-
if (closeAfterExchangeFinished === void 0) {
|
|
178
|
-
closeAfterExchangeFinished = this.isPeerActive();
|
|
179
|
-
}
|
|
180
|
-
await this.end(true, closeAfterExchangeFinished);
|
|
181
|
-
}
|
|
182
149
|
decode({ header, applicationPayload, messageExtension }, aad) {
|
|
183
150
|
if (header.hasMessageExtensions) {
|
|
184
151
|
logger.info(
|
|
@@ -215,17 +182,18 @@ class NodeSession extends SecureSession {
|
|
|
215
182
|
get fabric() {
|
|
216
183
|
return this.#fabric;
|
|
217
184
|
}
|
|
218
|
-
|
|
219
|
-
if (this.#fabric !== void 0) {
|
|
220
|
-
throw new
|
|
185
|
+
set fabric(fabric) {
|
|
186
|
+
if (this.#fabric !== void 0 && this.#fabric !== fabric) {
|
|
187
|
+
throw new InternalError("Cannot change session fabric");
|
|
221
188
|
}
|
|
222
189
|
this.#fabric = fabric;
|
|
190
|
+
fabric.addSession(this);
|
|
223
191
|
}
|
|
224
192
|
get id() {
|
|
225
193
|
return this.#id;
|
|
226
194
|
}
|
|
227
|
-
get
|
|
228
|
-
return
|
|
195
|
+
get via() {
|
|
196
|
+
return Diagnostic.via(`${this.peerAddress.toString()}${Mark.SESSION}${hex.word(this.id)}`);
|
|
229
197
|
}
|
|
230
198
|
get peerSessionId() {
|
|
231
199
|
return this.#peerSessionId;
|
|
@@ -247,48 +215,76 @@ class NodeSession extends SecureSession {
|
|
|
247
215
|
}
|
|
248
216
|
return this.#fabric;
|
|
249
217
|
}
|
|
250
|
-
async
|
|
218
|
+
async closeSubscriptions(flush = false) {
|
|
251
219
|
const subscriptions = [...this.#subscriptions];
|
|
252
220
|
for (const subscription of subscriptions) {
|
|
253
|
-
await subscription.close(
|
|
221
|
+
await subscription.close(flush ? this : void 0);
|
|
254
222
|
}
|
|
255
223
|
return subscriptions.length;
|
|
256
224
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
await this.
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
225
|
+
get closedByPeer() {
|
|
226
|
+
return this.#closedByPeer;
|
|
227
|
+
}
|
|
228
|
+
async handlePeerClose() {
|
|
229
|
+
this.#isPeerLost = true;
|
|
230
|
+
await this.#closedByPeer.emit(true);
|
|
231
|
+
await this.handlePeerLoss();
|
|
232
|
+
}
|
|
233
|
+
async handlePeerLoss(currentExchange) {
|
|
234
|
+
this.#isPeerLost = true;
|
|
235
|
+
await this.initiateForceClose(currentExchange);
|
|
236
|
+
}
|
|
237
|
+
get isPeerLost() {
|
|
238
|
+
return this.#isPeerLost;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Close the session.
|
|
242
|
+
*
|
|
243
|
+
* If there are open subscriptions they are closed without flushing. To flush, use {@link closeSubscriptions}
|
|
244
|
+
* before invoking.
|
|
245
|
+
*
|
|
246
|
+
* TODO - subscription handling is only relevant for server; needs to move to server-specific component
|
|
247
|
+
*
|
|
248
|
+
* If there are active exchanges the close is deferred until the final exchange closes. To close sooner, use
|
|
249
|
+
* {@link initiateForceClose}.
|
|
250
|
+
*
|
|
251
|
+
* A final exchange will be opened to notify the peer of closure unless the peer is marked as lost.
|
|
252
|
+
*/
|
|
253
|
+
async initiateClose(shutdownLogic) {
|
|
254
|
+
await super.initiateClose(async () => {
|
|
255
|
+
await shutdownLogic?.();
|
|
256
|
+
if (this.hasActiveExchanges) {
|
|
257
|
+
logger.debug(this.via, "Session ends when exchanges end");
|
|
258
|
+
this.deferredClose = true;
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
async initiateForceClose(currentExchange) {
|
|
263
|
+
this.#isPeerLost = true;
|
|
264
|
+
await super.initiateForceClose(currentExchange);
|
|
265
|
+
}
|
|
266
|
+
addExchange(exchange) {
|
|
267
|
+
super.addExchange(exchange);
|
|
268
|
+
exchange.closed.on(async () => {
|
|
269
|
+
this.exchanges.delete(exchange);
|
|
270
|
+
if (this.deferredClose && !this.exchanges.size) {
|
|
271
|
+
this.deferredClose = false;
|
|
272
|
+
await this.close();
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
async close() {
|
|
277
|
+
if (!this.#isPeerLost) {
|
|
278
|
+
try {
|
|
279
|
+
await this.gracefulClose.emit();
|
|
280
|
+
} catch (e) {
|
|
281
|
+
logger.error(`Unhandled error in ${this.via} graceful close handler:`, e);
|
|
289
282
|
}
|
|
290
|
-
await this.destroyed.emit();
|
|
291
283
|
}
|
|
284
|
+
await this.closeSubscriptions();
|
|
285
|
+
this.#fabric?.deleteSession(this);
|
|
286
|
+
await super.close();
|
|
287
|
+
this.manager?.sessions.delete(this);
|
|
292
288
|
}
|
|
293
289
|
/**
|
|
294
290
|
* The peer node's address.
|
|
@@ -309,7 +305,7 @@ class NodeSession extends SecureSession {
|
|
|
309
305
|
((NodeSession2) => {
|
|
310
306
|
function assert(session, errorText) {
|
|
311
307
|
if (!is(session)) {
|
|
312
|
-
throw new MatterFlowError(errorText ?? "
|
|
308
|
+
throw new MatterFlowError(errorText ?? "Unsecured session in secure context");
|
|
313
309
|
}
|
|
314
310
|
}
|
|
315
311
|
NodeSession2.assert = assert;
|
|
@@ -319,10 +315,10 @@ class NodeSession extends SecureSession {
|
|
|
319
315
|
NodeSession2.is = is;
|
|
320
316
|
function logNew(logger2, operation, session, messenger, fabric, peerNodeId) {
|
|
321
317
|
logger2.info(
|
|
318
|
+
session.via,
|
|
322
319
|
`${operation} session with`,
|
|
323
320
|
Diagnostic.strong(PeerAddress({ fabricIndex: fabric.fabricIndex, nodeId: peerNodeId }).toString()),
|
|
324
321
|
Diagnostic.dict({
|
|
325
|
-
id: session.id,
|
|
326
322
|
address: messenger.channelName,
|
|
327
323
|
fabric: `${NodeId.toHexString(fabric.nodeId)} (#${fabric.fabricIndex})`,
|
|
328
324
|
...session.parameterDiagnostics
|
|
@@ -332,8 +328,6 @@ class NodeSession extends SecureSession {
|
|
|
332
328
|
NodeSession2.logNew = logNew;
|
|
333
329
|
})(NodeSession || (NodeSession = {}));
|
|
334
330
|
export {
|
|
335
|
-
NoAssociatedFabricError,
|
|
336
|
-
NoChannelError,
|
|
337
331
|
NodeSession
|
|
338
332
|
};
|
|
339
333
|
//# sourceMappingURL=NodeSession.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/session/NodeSession.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AACxB,SAAiD,cAAsB,mBAAmB;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AACxB,SAAiD,cAAsB,mBAAmB;AAC1F,SAAS,YAAY;AAErB;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,SAAS,mBAAmB;AAC5B,SAAS,+BAA+B;AACxC,SAAS,sBAAsB;AAE/B,SAAS,qDAAqD;AAE9D,SAA+B,aAAa,cAAc;AAC1D,SAAS,qBAAqB;AAC9B,SAAS,eAAe;AAGxB,MAAM,SAAS,OAAO,IAAI,eAAe;AAEzC,MAAM,oBAAoB,MAAM,WAAW,aAAa;AACxD,MAAM,+BAA+B,MAAM,WAAW,uBAAuB;AAEtE,MAAM,oBAAoB,cAAc;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACT;AAAA,EACS;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACT;AAAA,EACS,cAAc;AAAA,EACd,OAAO,YAAY;AAAA,EACnB,gBAAgB,qBAAqB;AAAA,EAC9C,cAAc;AAAA;AAAA,EAGL,iBAAiB,IAAI,SAAuB;AAAA,EAErD,aAAa,OAAO,QAAkC;AAClD,UAAM,EAAE,SAAS,cAAc,MAAM,cAAc,uBAAuB,YAAY,IAAI;AAE1F,QAAI,SAAS;AACT,YAAM,QAAQ;AAAA,IAClB;AAEA,UAAM,OAAO,MAAM;AAAA,MACf,MAAM,OAAO,OAAO;AAAA,QAChB;AAAA,QACA;AAAA,QACA,eAAe,+BAA+B;AAAA,QAC9C,8BAA8B;AAAA,MAClC;AAAA,IACJ;AACA,UAAM,aAAa,cAAc,KAAK,MAAM,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,EAAE;AACtE,UAAM,aAAa,cAAc,KAAK,MAAM,GAAG,EAAE,IAAI,KAAK,MAAM,IAAI,EAAE;AACtE,UAAM,iBAAiB,KAAK,MAAM,IAAI,EAAE;AAExC,WAAO,IAAI,KAAK;AAAA,MACZ,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmB;AAAA,IACvB,CAAC;AAAA,EACL;AAAA,EAEA,YAAY,QAA4B;AACpC,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI;AAEJ,UAAM;AAAA,MACF,GAAG;AAAA,MACH,oBAAoB;AAAA;AAAA;AAAA,MAEpB,gBAAgB,IAAI,eAAe,QAAQ,YAAY;AAGnD,cAAM,KAAK,cAAc,YAAY;AACjC,gBAAM,KAAK,mBAAmB,IAAI;AAAA,QACtC,CAAC;AAAA,MACL,CAAC;AAAA,MACD,uBAAuB,IAAI,8CAA8C;AAAA,IAC7E,CAAC;AAED,SAAK,UAAU;AACf,SAAK,MAAM;AACX,SAAK,UAAU;AACf,SAAK,cAAc;AACnB,SAAK,iBAAiB;AACtB,SAAK,cAAc;AACnB,SAAK,cAAc;AACnB,SAAK,kBAAkB;AACvB,SAAK,yBAAyB,yBAAyB,CAAC;AACxD,SAAK,eAAe;AAEpB,aAAS,SAAS,IAAI,IAAI;AAC1B,YAAQ,WAAW,IAAI;AAEvB,WAAO;AAAA,MACH,kBAAkB,KAAK,SAAS,SAAS,MAAM,6BAA6B,QAAQ,WAAW;AAAA,MAC/F,KAAK;AAAA,MACL,KAAK;AAAA,IACT;AAAA,EACJ;AAAA,EAEA,IAAI,uBAAuB;AACvB,WAAO,WAAW;AAAA,MACd;AAAA,QACI,KAAK,SAAS,OAAO,KAAK,YAAY;AAAA,QACtC,KAAK,SAAS,OAAO,KAAK,cAAc;AAAA,QACxC,KAAK,SAAS,OAAO,KAAK,eAAe;AAAA,QACzC,OAAO,KAAK;AAAA,QACZ,OAAO,KAAK;AAAA,QACZ,MAAM,WAAW,IAAI,KAAK,oBAAoB;AAAA,QAC9C,UAAU,KAAK;AAAA,QACf,MAAM,KAAK;AAAA,MACf;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,IAAI,wBAAwB;AACxB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,SAAkB;AAClB,WAAO,KAAK,gBAAgB,OAAO;AAAA,EACvC;AAAA,EAEA,IAAI,gBAAgB;AAChB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,WAAW,UAA6B;AACpC,WAAO,QAAQ,KAAK;AAAA,MAChB,IAAI,KAAK;AAAA,MACT,aAAa,KAAK,uBAAuB,IAAI,SAAO,OAAO,yBAAyB,GAAG,CAAC;AAAA,IAC5F,CAAC;AAAA,EACL;AAAA,EAEA,OAAO,EAAE,QAAQ,oBAAoB,iBAAiB,GAAkB,KAA4B;AAChG,QAAI,OAAO,sBAAsB;AAC7B,aAAO;AAAA,QACH,kDAAkD,mBAAmB,MAAM,MAAM,gBAAgB,IAAI,MAAS;AAAA,MAClH;AAAA,IACJ;AACA,UAAM,QAAQ,QAAQ,cAAc,OAAO,eAAe,OAAO,WAAW,KAAK,WAAW;AAC5F,UAAM,UAAU,aAAa,cAAc;AAAA,MACvC;AAAA,MACA,oBAAoB,KAAK,QAAQ,QAAQ,KAAK,aAAa,oBAAoB,OAAO,GAAG;AAAA,IAC7F,CAAC;AAED,QAAI,QAAQ,cAAc,qBAAqB;AAC3C,aAAO;AAAA,QACH,kDAAkD,QAAQ,oBAAoB,MAAM,MAAM,QAAQ,iBAAiB,IAAI,MAAS;AAAA,MACpI;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,SAA0B;AAC7B,YAAQ,aAAa,YAAY,KAAK;AACtC,UAAM,EAAE,QAAQ,mBAAmB,IAAI,aAAa,cAAc,OAAO;AACzE,UAAM,cAAc,aAAa,mBAAmB,QAAQ,YAAY;AACxE,UAAM,gBAAgB,YAAY,CAAC;AACnC,UAAM,gBAAgB,KAAK,SACrB,OAAO,sBACN,KAAK,SAAS,UAAU,OAAO;AACtC,UAAM,QAAQ,QAAQ,cAAc,eAAe,OAAO,WAAW,aAAa;AAClF,WAAO;AAAA,MACH;AAAA,MACA,oBAAoB,KAAK,QAAQ,QAAQ,KAAK,aAAa,oBAAoB,OAAO,WAAW;AAAA,IACrG;AAAA,EACJ;AAAA,EAEA,IAAI,0BAAiC;AACjC,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,SAA6B;AAC7B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,OAAO,QAAgB;AACvB,QAAI,KAAK,YAAY,UAAa,KAAK,YAAY,QAAQ;AACvD,YAAM,IAAI,cAAc,8BAA8B;AAAA,IAC1D;AACA,SAAK,UAAU;AACf,WAAO,WAAW,IAAI;AAAA,EAC1B;AAAA,EAEA,IAAI,KAAK;AACL,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,MAAM;AACN,WAAO,WAAW,IAAI,GAAG,KAAK,YAAY,SAAS,CAAC,GAAG,KAAK,OAAO,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC,EAAE;AAAA,EAC7F;AAAA,EAEA,IAAI,gBAAwB;AACxB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK,SAAS,UAAU,OAAO;AAAA,EAC1C;AAAA,EAEA,IAAI,aAAa;AACb,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,sBAAsB;AACtB,WAAO,KAAK,YAAY;AAAA,EAC5B;AAAA,EAEA,IAAI,mBAA2B;AAC3B,QAAI,KAAK,YAAY,QAAW;AAC5B,YAAM,IAAI;AAAA,QACN,GAAG,KAAK,SAAS,UAAU,EAAE;AAAA,MACjC;AAAA,IACJ;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAe,mBAAmB,QAAQ,OAAO;AAC7C,UAAM,gBAAgB,CAAC,GAAG,KAAK,cAAc;AAC7C,eAAW,gBAAgB,eAAe;AACtC,YAAM,aAAa,MAAM,QAAQ,OAAO,MAAS;AAAA,IACrD;AACA,WAAO,cAAc;AAAA,EACzB;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,kBAAkB;AACpB,SAAK,cAAc;AACnB,UAAM,KAAK,cAAc,KAAK,IAAI;AAClC,UAAM,KAAK,eAAe;AAAA,EAC9B;AAAA,EAEA,MAAM,eAAe,iBAAmC;AACpD,SAAK,cAAc;AACnB,UAAM,KAAK,mBAAmB,eAAe;AAAA,EACjD;AAAA,EAEA,IAAI,aAAa;AACb,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAe,cAAc,eAAqC;AAC9D,UAAM,MAAM,cAAc,YAAY;AAClC,YAAM,gBAAgB;AAGtB,UAAI,KAAK,oBAAoB;AACzB,eAAO,MAAM,KAAK,KAAK,iCAAiC;AACxD,aAAK,gBAAgB;AAAA,MACzB;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAe,mBAAmB,iBAAmC;AACjE,SAAK,cAAc;AACnB,UAAM,MAAM,mBAAmB,eAAe;AAAA,EAClD;AAAA,EAES,YAAY,UAA2B;AAC5C,UAAM,YAAY,QAAQ;AAC1B,aAAS,OAAO,GAAG,YAAY;AAC3B,WAAK,UAAU,OAAO,QAAQ;AAC9B,UAAI,KAAK,iBAAiB,CAAC,KAAK,UAAU,MAAM;AAC5C,aAAK,gBAAgB;AACrB,cAAM,KAAK,MAAM;AAAA,MACrB;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAyB,QAAQ;AAC7B,QAAI,CAAC,KAAK,aAAa;AACnB,UAAI;AACA,cAAM,KAAK,cAAc,KAAK;AAAA,MAClC,SAAS,GAAG;AACR,eAAO,MAAM,sBAAsB,KAAK,GAAG,4BAA4B,CAAC;AAAA,MAC5E;AAAA,IACJ;AAEA,UAAM,KAAK,mBAAmB;AAE9B,SAAK,SAAS,cAAc,IAAI;AAChC,UAAM,MAAM,MAAM;AAElB,SAAK,SAAS,SAAS,OAAO,IAAI;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAc;AACd,WAAO,YAAY;AAAA,MACf,aAAa,KAAK,SAAS,eAAe,YAAY;AAAA,MACtD,QAAQ,KAAK;AAAA,IACjB,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,SAAsB;AACzB,YACK,KAAK,SAAS,eAAe,YAAY,eAAe,QAAQ,eACjE,KAAK,gBAAgB,QAAQ;AAAA,EAErC;AACJ;AAAA,CAEO,CAAUA,iBAAV;AACI,WAAS,OAAO,SAAmB,WAAoD;AAC1F,QAAI,CAAC,GAAG,OAAO,GAAG;AACd,YAAM,IAAI,gBAAgB,aAAa,qCAAqC;AAAA,IAChF;AAAA,EACJ;AAJO,EAAAA,aAAS;AAMT,WAAS,GAAG,SAA2C;AAC1D,WAAO,SAAS,SAAS,YAAY;AAAA,EACzC;AAFO,EAAAA,aAAS;AAIT,WAAS,OACZC,SACA,WACA,SACA,WACA,QACA,YACF;AACE,IAAAA,QAAO;AAAA,MACH,QAAQ;AAAA,MACR,GAAG,SAAS;AAAA,MACZ,WAAW,OAAO,YAAY,EAAE,aAAa,OAAO,aAAa,QAAQ,WAAW,CAAC,EAAE,SAAS,CAAC;AAAA,MACjG,WAAW,KAAK;AAAA,QACZ,SAAS,UAAU;AAAA,QACnB,QAAQ,GAAG,OAAO,YAAY,OAAO,MAAM,CAAC,MAAM,OAAO,WAAW;AAAA,QACpE,GAAG,QAAQ;AAAA,MACf,CAAC;AAAA,IACL;AAAA,EACJ;AAlBO,EAAAD,aAAS;AAAA,GAXH;",
|
|
5
5
|
"names": ["NodeSession", "logger"]
|
|
6
6
|
}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Subject } from "#action/server/Subject.js";
|
|
7
|
-
import { Message } from "#codec/MessageCodec.js";
|
|
8
|
-
import { Fabric } from "#fabric/Fabric.js";
|
|
9
|
-
import { PeerAddress } from "#peer/PeerAddress.js";
|
|
6
|
+
import type { Subject } from "#action/server/Subject.js";
|
|
7
|
+
import type { Message } from "#codec/MessageCodec.js";
|
|
8
|
+
import type { Fabric } from "#fabric/Fabric.js";
|
|
9
|
+
import type { PeerAddress } from "#peer/PeerAddress.js";
|
|
10
10
|
import { Session } from "./Session.js";
|
|
11
11
|
export declare abstract class SecureSession extends Session {
|
|
12
12
|
readonly isSecure = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecureSession.d.ts","sourceRoot":"","sources":["../../../src/session/SecureSession.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"SecureSession.d.ts","sourceRoot":"","sources":["../../../src/session/SecureSession.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,8BAAsB,aAAc,SAAQ,OAAO;IAC/C,QAAQ,CAAC,QAAQ,QAAQ;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO;CAClD;AAED,yBAAiB,aAAa,CAAC;IAC3B,SAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,IAAI,aAAa,CAI9F;CACJ"}
|
|
@@ -11,7 +11,7 @@ class SecureSession extends Session {
|
|
|
11
11
|
((SecureSession2) => {
|
|
12
12
|
function assert(session, errorText) {
|
|
13
13
|
if (!session?.isSecure) {
|
|
14
|
-
throw new MatterFlowError(errorText ?? "
|
|
14
|
+
throw new MatterFlowError(errorText ?? "Unsecured session in secure context");
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
SecureSession2.assert = assert;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/session/SecureSession.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AASA,SAAS,uBAAuB;AAEhC,SAAS,eAAe;AAEjB,MAAe,sBAAsB,QAAQ;AAAA,EACvC,WAAW;AAIxB;AAAA,CAEO,CAAUA,mBAAV;AACI,WAAS,OAAO,SAAmB,WAAsD;AAC5F,QAAI,CAAC,SAAS,UAAU;AACpB,YAAM,IAAI,gBAAgB,aAAa,qCAAqC;AAAA,IAChF;AAAA,EACJ;AAJO,EAAAA,eAAS;AAAA,GADH;",
|
|
5
5
|
"names": ["SecureSession"]
|
|
6
6
|
}
|
|
@@ -3,57 +3,25 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { SupportedTransportsBitmap } from "#common/SupportedTransportsBitmap.js";
|
|
7
|
-
import { AsyncObservable, Bytes, Duration, Timestamp } from "#general";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
/** Fallback value for Interaction Model Revision when not provided in Session parameters. We use Matter 1.2 as assumption. */
|
|
18
|
-
export declare const FALLBACK_INTERACTIONMODEL_REVISION = 11;
|
|
19
|
-
/**
|
|
20
|
-
* Fallback value for Specification Version when not provided in Session parameters. We use 0 as assumption which is
|
|
21
|
-
* "before 1.3".
|
|
22
|
-
*/
|
|
23
|
-
export declare const FALLBACK_SPECIFICATION_VERSION = 0;
|
|
24
|
-
/**
|
|
25
|
-
* Fallback value for the maximum number of paths that can be included in a single invoke message when not provided in
|
|
26
|
-
* Session parameters.
|
|
27
|
-
*/
|
|
28
|
-
export declare const FALLBACK_MAX_PATHS_PER_INVOKE = 1;
|
|
29
|
-
export declare const FALLBACK_MAX_TCP_MESSAGE_SIZE = 64000;
|
|
30
|
-
export interface SessionParameters extends SessionIntervals {
|
|
31
|
-
/** Version of Data Model for the Session parameters side where it appears. */
|
|
32
|
-
dataModelRevision: number;
|
|
33
|
-
/** Version of Interaction Model for the Session parameters side where it appears. */
|
|
34
|
-
interactionModelRevision: number;
|
|
35
|
-
/** Version of Specification for the Session parameters side where it appears. */
|
|
36
|
-
specificationVersion: number;
|
|
37
|
-
/** The maximum number of elements in the InvokeRequests list that the Node is able to process. */
|
|
38
|
-
maxPathsPerInvoke: number;
|
|
39
|
-
/** A bitmap of the supported transport protocols in addition to MRP. */
|
|
40
|
-
supportedTransports: TypeFromPartialBitSchema<typeof SupportedTransportsBitmap>;
|
|
41
|
-
/**
|
|
42
|
-
* Maximum size of the message carried over TCP, excluding the framing message length
|
|
43
|
-
* field, that the node is capable of receiving from its peer.
|
|
44
|
-
* Default: 64000 bytes
|
|
45
|
-
*/
|
|
46
|
-
maxTcpMessageSize?: number;
|
|
47
|
-
}
|
|
48
|
-
export type SessionParameterOptions = Partial<SessionParameters>;
|
|
6
|
+
import type { SupportedTransportsBitmap } from "#common/SupportedTransportsBitmap.js";
|
|
7
|
+
import { AsyncObservable, Bytes, Channel, Duration, Lifetime, ObservableValue, Timestamp } from "#general";
|
|
8
|
+
import { MessageChannel } from "#protocol/MessageChannel.js";
|
|
9
|
+
import type { MessageExchange } from "#protocol/MessageExchange.js";
|
|
10
|
+
import type { NodeId, TypeFromPartialBitSchema } from "#types";
|
|
11
|
+
import type { DecodedMessage, DecodedPacket, Message, Packet, PacketHeader, SessionType } from "../codec/MessageCodec.js";
|
|
12
|
+
import type { Fabric } from "../fabric/Fabric.js";
|
|
13
|
+
import type { MessageCounter } from "../protocol/MessageCounter.js";
|
|
14
|
+
import type { MessageReceptionState } from "../protocol/MessageReceptionState.js";
|
|
15
|
+
import type { SessionManager } from "./SessionManager.js";
|
|
16
|
+
import { SessionParameters } from "./SessionParameters.js";
|
|
49
17
|
export declare abstract class Session {
|
|
50
18
|
#private;
|
|
51
|
-
abstract get
|
|
52
|
-
abstract get closingAfterExchangeFinished(): boolean;
|
|
19
|
+
abstract get via(): string;
|
|
53
20
|
timestamp: Timestamp;
|
|
54
21
|
readonly createdAt: Timestamp;
|
|
55
22
|
activeTimestamp: Timestamp;
|
|
56
23
|
abstract type: SessionType;
|
|
24
|
+
protected deferredClose: boolean;
|
|
57
25
|
protected readonly idleInterval: Duration;
|
|
58
26
|
protected readonly activeInterval: Duration;
|
|
59
27
|
protected readonly activeThreshold: Duration;
|
|
@@ -64,26 +32,26 @@ export declare abstract class Session {
|
|
|
64
32
|
protected readonly messageCounter: MessageCounter;
|
|
65
33
|
protected readonly messageReceptionState?: MessageReceptionState;
|
|
66
34
|
protected readonly supportedTransports: TypeFromPartialBitSchema<typeof SupportedTransportsBitmap>;
|
|
67
|
-
protected readonly maxTcpMessageSize
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
closer?: Promise<void>;
|
|
74
|
-
constructor(args: {
|
|
75
|
-
manager?: SessionManager;
|
|
76
|
-
messageCounter: MessageCounter;
|
|
77
|
-
messageReceptionState?: MessageReceptionState;
|
|
78
|
-
sessionParameters?: SessionParameterOptions;
|
|
79
|
-
setActiveTimestamp: boolean;
|
|
80
|
-
});
|
|
81
|
-
get destroyed(): AsyncObservable<[], void>;
|
|
82
|
-
get closedByPeer(): AsyncObservable<[], void>;
|
|
35
|
+
protected readonly maxTcpMessageSize?: number;
|
|
36
|
+
constructor(config: Session.Configuration);
|
|
37
|
+
get exchanges(): Set<MessageExchange>;
|
|
38
|
+
addExchange(exchange: MessageExchange): void;
|
|
39
|
+
deleteExchange(exchange: MessageExchange): void;
|
|
40
|
+
get closing(): ObservableValue<[any, ...any[]], void>;
|
|
83
41
|
notifyActivity(messageReceived: boolean): void;
|
|
84
|
-
isPeerActive(): boolean;
|
|
42
|
+
get isPeerActive(): boolean;
|
|
85
43
|
getIncrementedMessageCounter(): Promise<number>;
|
|
86
44
|
updateMessageCounter(messageCounter: number, _sourceNodeId?: NodeId, _operationalKey?: Bytes): void;
|
|
45
|
+
/**
|
|
46
|
+
* Emits on graceful close.
|
|
47
|
+
*
|
|
48
|
+
* During normal operation this should trigger a close message to notify the peer of closure.
|
|
49
|
+
*/
|
|
50
|
+
get gracefulClose(): AsyncObservable<[], void>;
|
|
51
|
+
/**
|
|
52
|
+
* Once set this flag prevents establishment of new exchanges.
|
|
53
|
+
*/
|
|
54
|
+
get isClosing(): boolean;
|
|
87
55
|
protected static generateNonce(securityFlags: number, messageId: number, nodeId: NodeId): Uint8Array<ArrayBufferLike>;
|
|
88
56
|
/**
|
|
89
57
|
* The peer's session parameters.
|
|
@@ -98,12 +66,60 @@ export declare abstract class Session {
|
|
|
98
66
|
abstract supportsMRP: boolean;
|
|
99
67
|
abstract decode(packet: DecodedPacket, aad?: Bytes): DecodedMessage;
|
|
100
68
|
abstract encode(message: Message): Packet;
|
|
101
|
-
|
|
102
|
-
|
|
69
|
+
static idStrOf(source: Packet | PacketHeader | number): string;
|
|
70
|
+
/**
|
|
71
|
+
* Close the session.
|
|
72
|
+
*
|
|
73
|
+
* This begins the close process. {@link shutdownLogic} is logic that should run once the session no longer accepts
|
|
74
|
+
* new exchanges. It may set {@link deferredClose} to prevent the close from proceeding until all exchanges are
|
|
75
|
+
* finished. Otherwise, the close will proceed immediately.
|
|
76
|
+
*/
|
|
77
|
+
initiateClose(shutdownLogic?: () => Promise<void>): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Force-close the session.
|
|
80
|
+
*
|
|
81
|
+
* This terminates subscriptions and exchanges without notifying peers. It places the session in a closing state
|
|
82
|
+
* so no further exchanges are accepted.
|
|
83
|
+
*
|
|
84
|
+
* @param except an exchange that should not be forced close; this allows the current exchange to remain open
|
|
85
|
+
*/
|
|
86
|
+
initiateForceClose(except?: MessageExchange): Promise<void>;
|
|
87
|
+
get isClosed(): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* The {@link MessageChannel} other components use for session communication.
|
|
90
|
+
*/
|
|
91
|
+
get channel(): MessageChannel;
|
|
92
|
+
get usesMrp(): boolean;
|
|
93
|
+
get supportsLargeMessages(): boolean;
|
|
94
|
+
get hasActiveExchanges(): boolean;
|
|
95
|
+
closeSubscriptions(_cancelledByPeer?: boolean): Promise<number>;
|
|
96
|
+
detachChannel(): MessageChannel | undefined;
|
|
97
|
+
protected close(): Promise<void>;
|
|
103
98
|
protected get manager(): SessionManager | undefined;
|
|
104
99
|
/**
|
|
105
|
-
*
|
|
100
|
+
* This is primarily intended for testing.
|
|
106
101
|
*/
|
|
107
|
-
|
|
102
|
+
protected set channel(channel: MessageChannel);
|
|
103
|
+
join(...name: unknown[]): Lifetime;
|
|
104
|
+
/**
|
|
105
|
+
* Invoked by manager when the session is "live".
|
|
106
|
+
*
|
|
107
|
+
* This is separate from construction because we sometimes discard sessions without installing in a manager or
|
|
108
|
+
* closing.
|
|
109
|
+
*/
|
|
110
|
+
activate(): Lifetime;
|
|
111
|
+
protected set lifetime(lifetime: Lifetime);
|
|
112
|
+
}
|
|
113
|
+
export declare namespace Session {
|
|
114
|
+
interface CommonConfig {
|
|
115
|
+
manager?: SessionManager;
|
|
116
|
+
channel?: Channel<Bytes>;
|
|
117
|
+
}
|
|
118
|
+
interface Configuration extends CommonConfig {
|
|
119
|
+
messageCounter: MessageCounter;
|
|
120
|
+
messageReceptionState?: MessageReceptionState;
|
|
121
|
+
sessionParameters?: SessionParameters.Config;
|
|
122
|
+
setActiveTimestamp: boolean;
|
|
123
|
+
}
|
|
108
124
|
}
|
|
109
125
|
//# sourceMappingURL=Session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../../src/session/Session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../../src/session/Session.ts"],"names":[],"mappings":"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"}
|