@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
|
@@ -18,15 +18,15 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var NodeSession_exports = {};
|
|
20
20
|
__export(NodeSession_exports, {
|
|
21
|
-
NoAssociatedFabricError: () => NoAssociatedFabricError,
|
|
22
|
-
NoChannelError: () => NoChannelError,
|
|
23
21
|
NodeSession: () => NodeSession
|
|
24
22
|
});
|
|
25
23
|
module.exports = __toCommonJS(NodeSession_exports);
|
|
26
24
|
var import_Subject = require("#action/server/Subject.js");
|
|
27
25
|
var import_MessageCodec = require("#codec/MessageCodec.js");
|
|
26
|
+
var import_Mark = require("#common/Mark.js");
|
|
28
27
|
var import_general = require("#general");
|
|
29
28
|
var import_PeerAddress = require("#peer/PeerAddress.js");
|
|
29
|
+
var import_errors = require("#protocol/errors.js");
|
|
30
30
|
var import_MessageCounter = require("#protocol/MessageCounter.js");
|
|
31
31
|
var import_MessageReceptionState = require("#protocol/MessageReceptionState.js");
|
|
32
32
|
var import_types = require("#types");
|
|
@@ -40,18 +40,8 @@ var import_Session = require("./Session.js");
|
|
|
40
40
|
const logger = import_general.Logger.get("SecureSession");
|
|
41
41
|
const SESSION_KEYS_INFO = import_general.Bytes.fromString("SessionKeys");
|
|
42
42
|
const SESSION_RESUMPTION_KEYS_INFO = import_general.Bytes.fromString("SessionResumptionKeys");
|
|
43
|
-
class NoChannelError extends import_general.MatterError {
|
|
44
|
-
}
|
|
45
|
-
class NoAssociatedFabricError extends import_types.StatusResponseError {
|
|
46
|
-
constructor(message) {
|
|
47
|
-
super(message, import_types.StatusCode.UnsupportedAccess);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
43
|
class NodeSession extends import_SecureSession.SecureSession {
|
|
51
44
|
#crypto;
|
|
52
|
-
#subscriptions = new import_general.BasicSet();
|
|
53
|
-
#closingAfterExchangeFinished = false;
|
|
54
|
-
#sendCloseMessageWhenClosing = true;
|
|
55
45
|
#id;
|
|
56
46
|
#isInitiator;
|
|
57
47
|
#fabric;
|
|
@@ -61,26 +51,19 @@ class NodeSession extends import_SecureSession.SecureSession {
|
|
|
61
51
|
#encryptKey;
|
|
62
52
|
#attestationKey;
|
|
63
53
|
#caseAuthenticatedTags;
|
|
64
|
-
#isClosing = false;
|
|
65
54
|
supportsMRP = true;
|
|
66
55
|
type = import_MessageCodec.SessionType.Unicast;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
salt,
|
|
77
|
-
isInitiator,
|
|
78
|
-
isResumption,
|
|
79
|
-
peerSessionParameters,
|
|
80
|
-
caseAuthenticatedTags
|
|
81
|
-
} = args;
|
|
56
|
+
#closedByPeer = (0, import_general.AsyncObservableValue)();
|
|
57
|
+
#isPeerLost = false;
|
|
58
|
+
// TODO - remove this; subscriptions should be owned by the peer, not the session
|
|
59
|
+
#subscriptions = new import_general.BasicSet();
|
|
60
|
+
static async create(config) {
|
|
61
|
+
const { manager, sharedSecret, salt, isResumption, peerSessionParameters, isInitiator } = config;
|
|
62
|
+
if (manager) {
|
|
63
|
+
await manager.construction;
|
|
64
|
+
}
|
|
82
65
|
const keys = import_general.Bytes.of(
|
|
83
|
-
await
|
|
66
|
+
await config.crypto.createHkdfKey(
|
|
84
67
|
sharedSecret,
|
|
85
68
|
salt,
|
|
86
69
|
isResumption ? SESSION_RESUMPTION_KEYS_INFO : SESSION_KEYS_INFO,
|
|
@@ -90,22 +73,15 @@ class NodeSession extends import_SecureSession.SecureSession {
|
|
|
90
73
|
const decryptKey = isInitiator ? keys.slice(16, 32) : keys.slice(0, 16);
|
|
91
74
|
const encryptKey = isInitiator ? keys.slice(0, 16) : keys.slice(16, 32);
|
|
92
75
|
const attestationKey = keys.slice(32, 48);
|
|
93
|
-
return new
|
|
94
|
-
|
|
95
|
-
manager,
|
|
96
|
-
id,
|
|
97
|
-
fabric,
|
|
98
|
-
peerNodeId,
|
|
99
|
-
peerSessionId,
|
|
76
|
+
return new this({
|
|
77
|
+
...config,
|
|
100
78
|
decryptKey,
|
|
101
79
|
encryptKey,
|
|
102
80
|
attestationKey,
|
|
103
|
-
sessionParameters: peerSessionParameters
|
|
104
|
-
isInitiator,
|
|
105
|
-
caseAuthenticatedTags
|
|
81
|
+
sessionParameters: peerSessionParameters
|
|
106
82
|
});
|
|
107
83
|
}
|
|
108
|
-
constructor(
|
|
84
|
+
constructor(config) {
|
|
109
85
|
const {
|
|
110
86
|
crypto,
|
|
111
87
|
manager,
|
|
@@ -118,14 +94,16 @@ class NodeSession extends import_SecureSession.SecureSession {
|
|
|
118
94
|
attestationKey,
|
|
119
95
|
caseAuthenticatedTags,
|
|
120
96
|
isInitiator
|
|
121
|
-
} =
|
|
97
|
+
} = config;
|
|
122
98
|
super({
|
|
123
|
-
...
|
|
99
|
+
...config,
|
|
124
100
|
setActiveTimestamp: true,
|
|
125
101
|
// We always set the active timestamp for Secure sessions
|
|
126
102
|
// Can be changed to a PersistedMessageCounter if we implement session storage
|
|
127
|
-
messageCounter: new import_MessageCounter.MessageCounter(crypto, () => {
|
|
128
|
-
this.
|
|
103
|
+
messageCounter: new import_MessageCounter.MessageCounter(crypto, async () => {
|
|
104
|
+
await this.initiateClose(async () => {
|
|
105
|
+
await this.closeSubscriptions(true);
|
|
106
|
+
});
|
|
129
107
|
}),
|
|
130
108
|
messageReceptionState: new import_MessageReceptionState.MessageReceptionStateEncryptedWithoutRollover()
|
|
131
109
|
});
|
|
@@ -143,7 +121,7 @@ class NodeSession extends import_SecureSession.SecureSession {
|
|
|
143
121
|
fabric?.addSession(this);
|
|
144
122
|
logger.debug(
|
|
145
123
|
`Created secure ${this.isPase ? "PASE" : "CASE"} session for fabric index ${fabric?.fabricIndex}`,
|
|
146
|
-
this.
|
|
124
|
+
this.via,
|
|
147
125
|
this.parameterDiagnostics
|
|
148
126
|
);
|
|
149
127
|
}
|
|
@@ -165,12 +143,6 @@ class NodeSession extends import_SecureSession.SecureSession {
|
|
|
165
143
|
get caseAuthenticatedTags() {
|
|
166
144
|
return this.#caseAuthenticatedTags;
|
|
167
145
|
}
|
|
168
|
-
get closingAfterExchangeFinished() {
|
|
169
|
-
return this.#closingAfterExchangeFinished;
|
|
170
|
-
}
|
|
171
|
-
get sendCloseMessageWhenClosing() {
|
|
172
|
-
return this.#sendCloseMessageWhenClosing;
|
|
173
|
-
}
|
|
174
146
|
get isPase() {
|
|
175
147
|
return this.#peerNodeId === import_types.NodeId.UNSPECIFIED_NODE_ID;
|
|
176
148
|
}
|
|
@@ -180,21 +152,12 @@ class NodeSession extends import_SecureSession.SecureSession {
|
|
|
180
152
|
get isInitiator() {
|
|
181
153
|
return this.#isInitiator;
|
|
182
154
|
}
|
|
183
|
-
get isClosing() {
|
|
184
|
-
return this.#isClosing;
|
|
185
|
-
}
|
|
186
155
|
subjectFor(_message) {
|
|
187
156
|
return import_Subject.Subject.Node({
|
|
188
157
|
id: this.peerNodeId,
|
|
189
158
|
catSubjects: this.#caseAuthenticatedTags.map((cat) => import_types.NodeId.fromCaseAuthenticatedTag(cat))
|
|
190
159
|
});
|
|
191
160
|
}
|
|
192
|
-
async close(closeAfterExchangeFinished) {
|
|
193
|
-
if (closeAfterExchangeFinished === void 0) {
|
|
194
|
-
closeAfterExchangeFinished = this.isPeerActive();
|
|
195
|
-
}
|
|
196
|
-
await this.end(true, closeAfterExchangeFinished);
|
|
197
|
-
}
|
|
198
161
|
decode({ header, applicationPayload, messageExtension }, aad) {
|
|
199
162
|
if (header.hasMessageExtensions) {
|
|
200
163
|
logger.info(
|
|
@@ -231,17 +194,18 @@ class NodeSession extends import_SecureSession.SecureSession {
|
|
|
231
194
|
get fabric() {
|
|
232
195
|
return this.#fabric;
|
|
233
196
|
}
|
|
234
|
-
|
|
235
|
-
if (this.#fabric !== void 0) {
|
|
236
|
-
throw new import_general.
|
|
197
|
+
set fabric(fabric) {
|
|
198
|
+
if (this.#fabric !== void 0 && this.#fabric !== fabric) {
|
|
199
|
+
throw new import_general.InternalError("Cannot change session fabric");
|
|
237
200
|
}
|
|
238
201
|
this.#fabric = fabric;
|
|
202
|
+
fabric.addSession(this);
|
|
239
203
|
}
|
|
240
204
|
get id() {
|
|
241
205
|
return this.#id;
|
|
242
206
|
}
|
|
243
|
-
get
|
|
244
|
-
return
|
|
207
|
+
get via() {
|
|
208
|
+
return import_general.Diagnostic.via(`${this.peerAddress.toString()}${import_Mark.Mark.SESSION}${import_general.hex.word(this.id)}`);
|
|
245
209
|
}
|
|
246
210
|
get peerSessionId() {
|
|
247
211
|
return this.#peerSessionId;
|
|
@@ -257,54 +221,82 @@ class NodeSession extends import_SecureSession.SecureSession {
|
|
|
257
221
|
}
|
|
258
222
|
get associatedFabric() {
|
|
259
223
|
if (this.#fabric === void 0) {
|
|
260
|
-
throw new NoAssociatedFabricError(
|
|
224
|
+
throw new import_errors.NoAssociatedFabricError(
|
|
261
225
|
`${this.isPase ? "PASE " : ""}Session needs to have an associated Fabric for fabric sensitive data handling.`
|
|
262
226
|
);
|
|
263
227
|
}
|
|
264
228
|
return this.#fabric;
|
|
265
229
|
}
|
|
266
|
-
async
|
|
230
|
+
async closeSubscriptions(flush = false) {
|
|
267
231
|
const subscriptions = [...this.#subscriptions];
|
|
268
232
|
for (const subscription of subscriptions) {
|
|
269
|
-
await subscription.close(
|
|
233
|
+
await subscription.close(flush ? this : void 0);
|
|
270
234
|
}
|
|
271
235
|
return subscriptions.length;
|
|
272
236
|
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
await this.
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
237
|
+
get closedByPeer() {
|
|
238
|
+
return this.#closedByPeer;
|
|
239
|
+
}
|
|
240
|
+
async handlePeerClose() {
|
|
241
|
+
this.#isPeerLost = true;
|
|
242
|
+
await this.#closedByPeer.emit(true);
|
|
243
|
+
await this.handlePeerLoss();
|
|
244
|
+
}
|
|
245
|
+
async handlePeerLoss(currentExchange) {
|
|
246
|
+
this.#isPeerLost = true;
|
|
247
|
+
await this.initiateForceClose(currentExchange);
|
|
248
|
+
}
|
|
249
|
+
get isPeerLost() {
|
|
250
|
+
return this.#isPeerLost;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Close the session.
|
|
254
|
+
*
|
|
255
|
+
* If there are open subscriptions they are closed without flushing. To flush, use {@link closeSubscriptions}
|
|
256
|
+
* before invoking.
|
|
257
|
+
*
|
|
258
|
+
* TODO - subscription handling is only relevant for server; needs to move to server-specific component
|
|
259
|
+
*
|
|
260
|
+
* If there are active exchanges the close is deferred until the final exchange closes. To close sooner, use
|
|
261
|
+
* {@link initiateForceClose}.
|
|
262
|
+
*
|
|
263
|
+
* A final exchange will be opened to notify the peer of closure unless the peer is marked as lost.
|
|
264
|
+
*/
|
|
265
|
+
async initiateClose(shutdownLogic) {
|
|
266
|
+
await super.initiateClose(async () => {
|
|
267
|
+
await shutdownLogic?.();
|
|
268
|
+
if (this.hasActiveExchanges) {
|
|
269
|
+
logger.debug(this.via, "Session ends when exchanges end");
|
|
270
|
+
this.deferredClose = true;
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
async initiateForceClose(currentExchange) {
|
|
275
|
+
this.#isPeerLost = true;
|
|
276
|
+
await super.initiateForceClose(currentExchange);
|
|
277
|
+
}
|
|
278
|
+
addExchange(exchange) {
|
|
279
|
+
super.addExchange(exchange);
|
|
280
|
+
exchange.closed.on(async () => {
|
|
281
|
+
this.exchanges.delete(exchange);
|
|
282
|
+
if (this.deferredClose && !this.exchanges.size) {
|
|
283
|
+
this.deferredClose = false;
|
|
284
|
+
await this.close();
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
async close() {
|
|
289
|
+
if (!this.#isPeerLost) {
|
|
290
|
+
try {
|
|
291
|
+
await this.gracefulClose.emit();
|
|
292
|
+
} catch (e) {
|
|
293
|
+
logger.error(`Unhandled error in ${this.via} graceful close handler:`, e);
|
|
305
294
|
}
|
|
306
|
-
await this.destroyed.emit();
|
|
307
295
|
}
|
|
296
|
+
await this.closeSubscriptions();
|
|
297
|
+
this.#fabric?.deleteSession(this);
|
|
298
|
+
await super.close();
|
|
299
|
+
this.manager?.sessions.delete(this);
|
|
308
300
|
}
|
|
309
301
|
/**
|
|
310
302
|
* The peer node's address.
|
|
@@ -325,7 +317,7 @@ class NodeSession extends import_SecureSession.SecureSession {
|
|
|
325
317
|
((NodeSession2) => {
|
|
326
318
|
function assert(session, errorText) {
|
|
327
319
|
if (!is(session)) {
|
|
328
|
-
throw new import_general.MatterFlowError(errorText ?? "
|
|
320
|
+
throw new import_general.MatterFlowError(errorText ?? "Unsecured session in secure context");
|
|
329
321
|
}
|
|
330
322
|
}
|
|
331
323
|
NodeSession2.assert = assert;
|
|
@@ -335,10 +327,10 @@ class NodeSession extends import_SecureSession.SecureSession {
|
|
|
335
327
|
NodeSession2.is = is;
|
|
336
328
|
function logNew(logger2, operation, session, messenger, fabric, peerNodeId) {
|
|
337
329
|
logger2.info(
|
|
330
|
+
session.via,
|
|
338
331
|
`${operation} session with`,
|
|
339
332
|
import_general.Diagnostic.strong((0, import_PeerAddress.PeerAddress)({ fabricIndex: fabric.fabricIndex, nodeId: peerNodeId }).toString()),
|
|
340
333
|
import_general.Diagnostic.dict({
|
|
341
|
-
id: session.id,
|
|
342
334
|
address: messenger.channelName,
|
|
343
335
|
fabric: `${import_types.NodeId.toHexString(fabric.nodeId)} (#${fabric.fabricIndex})`,
|
|
344
336
|
...session.parameterDiagnostics
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/session/NodeSession.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": "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",
|
|
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"}
|
|
@@ -34,7 +34,7 @@ class SecureSession extends import_Session.Session {
|
|
|
34
34
|
((SecureSession2) => {
|
|
35
35
|
function assert(session, errorText) {
|
|
36
36
|
if (!session?.isSecure) {
|
|
37
|
-
throw new import_general.MatterFlowError(errorText ?? "
|
|
37
|
+
throw new import_general.MatterFlowError(errorText ?? "Unsecured session in secure context");
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
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,qBAAgC;AAEhC,qBAAwB;AAXxB;AAAA;AAAA;AAAA;AAAA;AAaO,MAAe,sBAAsB,uBAAQ;AAAA,EACvC,WAAW;AAIxB;AAAA,CAEO,CAAUA,mBAAV;AACI,WAAS,OAAO,SAAmB,WAAsD;AAC5F,QAAI,CAAC,SAAS,UAAU;AACpB,YAAM,IAAI,+BAAgB,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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"}
|