@matter/protocol 0.16.0-alpha.0-20251217-038f88085 → 0.16.0-alpha.0-20251221-21acf226d
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/client/ClientBdx.d.ts +17 -0
- package/dist/cjs/action/client/ClientBdx.d.ts.map +1 -0
- package/dist/cjs/action/client/ClientBdx.js +22 -0
- package/dist/cjs/action/client/ClientBdx.js.map +6 -0
- package/dist/cjs/action/client/ClientInteraction.d.ts +10 -1
- package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/cjs/action/client/ClientInteraction.js +25 -2
- package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
- package/dist/cjs/action/client/QueuedClientInteraction.d.ts +11 -3
- package/dist/cjs/action/client/QueuedClientInteraction.d.ts.map +1 -1
- package/dist/cjs/action/client/QueuedClientInteraction.js +6 -2
- package/dist/cjs/action/client/QueuedClientInteraction.js.map +1 -1
- package/dist/cjs/action/client/index.d.ts +1 -0
- package/dist/cjs/action/client/index.d.ts.map +1 -1
- package/dist/cjs/action/client/index.js +1 -0
- package/dist/cjs/action/client/index.js.map +1 -1
- package/dist/cjs/action/request/Read.d.ts.map +1 -1
- package/dist/cjs/action/request/Read.js +2 -2
- package/dist/cjs/action/request/Read.js.map +1 -1
- package/dist/cjs/action/request/Write.js +4 -3
- package/dist/cjs/action/request/Write.js.map +1 -1
- package/dist/cjs/advertisement/ble/BleAdvertisement.d.ts +1 -1
- package/dist/cjs/advertisement/ble/BleAdvertisement.d.ts.map +1 -1
- package/dist/cjs/advertisement/ble/BleAdvertisement.js +2 -2
- package/dist/cjs/advertisement/ble/BleAdvertisement.js.map +1 -1
- package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts +1 -1
- package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js +1 -1
- package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +1 -1
- package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.d.ts.map +1 -1
- package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.js +3 -5
- package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.js.map +1 -1
- package/dist/cjs/bdx/BdxClient.d.ts +2 -0
- package/dist/cjs/bdx/BdxClient.d.ts.map +1 -1
- package/dist/cjs/bdx/BdxClient.js +6 -0
- package/dist/cjs/bdx/BdxClient.js.map +1 -1
- package/dist/cjs/bdx/BdxError.d.ts +2 -0
- package/dist/cjs/bdx/BdxError.d.ts.map +1 -1
- package/dist/cjs/bdx/BdxError.js +2 -0
- package/dist/cjs/bdx/BdxError.js.map +1 -1
- package/dist/cjs/bdx/BdxMessenger.d.ts +5 -1
- package/dist/cjs/bdx/BdxMessenger.d.ts.map +1 -1
- package/dist/cjs/bdx/BdxMessenger.js +12 -4
- package/dist/cjs/bdx/BdxMessenger.js.map +1 -1
- package/dist/cjs/bdx/BdxProtocol.d.ts +14 -7
- package/dist/cjs/bdx/BdxProtocol.d.ts.map +1 -1
- package/dist/cjs/bdx/BdxProtocol.js +81 -19
- package/dist/cjs/bdx/BdxProtocol.js.map +1 -1
- package/dist/cjs/bdx/BdxSession.d.ts +10 -3
- package/dist/cjs/bdx/BdxSession.d.ts.map +1 -1
- package/dist/cjs/bdx/BdxSession.js +33 -8
- package/dist/cjs/bdx/BdxSession.js.map +1 -1
- package/dist/cjs/bdx/BdxSessionConfiguration.d.ts +16 -1
- package/dist/cjs/bdx/BdxSessionConfiguration.d.ts.map +1 -1
- package/dist/cjs/bdx/BdxSessionConfiguration.js +6 -1
- package/dist/cjs/bdx/BdxSessionConfiguration.js.map +1 -1
- package/dist/cjs/bdx/FileDesignator.d.ts +15 -1
- package/dist/cjs/bdx/FileDesignator.d.ts.map +1 -1
- package/dist/cjs/bdx/FileDesignator.js +28 -2
- package/dist/cjs/bdx/FileDesignator.js.map +1 -1
- package/dist/cjs/bdx/PersistedFileDesignator.d.ts +10 -2
- package/dist/cjs/bdx/PersistedFileDesignator.d.ts.map +1 -1
- package/dist/cjs/bdx/PersistedFileDesignator.js +23 -5
- package/dist/cjs/bdx/PersistedFileDesignator.js.map +1 -1
- package/dist/cjs/bdx/ScopedStorage.d.ts +18 -0
- package/dist/cjs/bdx/ScopedStorage.d.ts.map +1 -0
- package/dist/cjs/bdx/ScopedStorage.js +36 -0
- package/dist/cjs/bdx/ScopedStorage.js.map +6 -0
- package/dist/cjs/bdx/bdx-session-initiator.d.ts.map +1 -1
- package/dist/cjs/bdx/bdx-session-initiator.js +10 -2
- package/dist/cjs/bdx/bdx-session-initiator.js.map +1 -1
- package/dist/cjs/bdx/flow/DrivenSendingFlow.d.ts.map +1 -1
- package/dist/cjs/bdx/flow/DrivenSendingFlow.js +2 -0
- package/dist/cjs/bdx/flow/DrivenSendingFlow.js.map +1 -1
- package/dist/cjs/bdx/flow/DrivingReceivingFlow.d.ts.map +1 -1
- package/dist/cjs/bdx/flow/DrivingReceivingFlow.js +1 -0
- package/dist/cjs/bdx/flow/DrivingReceivingFlow.js.map +1 -1
- package/dist/cjs/bdx/flow/Flow.d.ts +7 -0
- package/dist/cjs/bdx/flow/Flow.d.ts.map +1 -1
- package/dist/cjs/bdx/flow/Flow.js +22 -1
- package/dist/cjs/bdx/flow/Flow.js.map +1 -1
- package/dist/cjs/bdx/flow/FollowingReceivingFlow.d.ts.map +1 -1
- package/dist/cjs/bdx/flow/FollowingReceivingFlow.js +3 -0
- package/dist/cjs/bdx/flow/FollowingReceivingFlow.js.map +1 -1
- package/dist/cjs/bdx/flow/FollowingSendingFlow.d.ts.map +1 -1
- package/dist/cjs/bdx/flow/FollowingSendingFlow.js +1 -0
- package/dist/cjs/bdx/flow/FollowingSendingFlow.js.map +1 -1
- package/dist/cjs/bdx/flow/OutboundFlow.d.ts.map +1 -1
- package/dist/cjs/bdx/flow/OutboundFlow.js +1 -0
- package/dist/cjs/bdx/flow/OutboundFlow.js.map +1 -1
- package/dist/cjs/bdx/index.d.ts +1 -0
- package/dist/cjs/bdx/index.d.ts.map +1 -1
- package/dist/cjs/bdx/index.js +1 -0
- package/dist/cjs/bdx/index.js.map +1 -1
- package/dist/cjs/certificate/kinds/Icac.d.ts.map +1 -1
- package/dist/cjs/certificate/kinds/Icac.js +1 -7
- package/dist/cjs/certificate/kinds/Icac.js.map +1 -1
- package/dist/cjs/certificate/kinds/Rcac.d.ts +1 -0
- package/dist/cjs/certificate/kinds/Rcac.d.ts.map +1 -1
- package/dist/cjs/certificate/kinds/Rcac.js +3 -0
- package/dist/cjs/certificate/kinds/Rcac.js.map +1 -1
- package/dist/cjs/certificate/kinds/definitions/operational.d.ts +1 -1
- package/dist/cjs/certificate/kinds/definitions/operational.js +1 -1
- package/dist/cjs/certificate/kinds/definitions/operational.js.map +1 -1
- package/dist/cjs/common/FailsafeContext.js +2 -2
- package/dist/cjs/common/FailsafeContext.js.map +1 -1
- package/dist/cjs/dcl/DclClient.d.ts.map +1 -1
- package/dist/cjs/dcl/DclClient.js +1 -2
- package/dist/cjs/dcl/DclClient.js.map +1 -1
- package/dist/cjs/dcl/DclOtaUpdateService.d.ts +30 -31
- package/dist/cjs/dcl/DclOtaUpdateService.d.ts.map +1 -1
- package/dist/cjs/dcl/DclOtaUpdateService.js +191 -92
- package/dist/cjs/dcl/DclOtaUpdateService.js.map +2 -2
- package/dist/cjs/dcl/index.d.ts +0 -3
- package/dist/cjs/dcl/index.d.ts.map +1 -1
- package/dist/cjs/dcl/index.js +0 -3
- package/dist/cjs/dcl/index.js.map +1 -1
- package/dist/cjs/fabric/Fabric.d.ts +53 -9
- package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
- package/dist/cjs/fabric/Fabric.js +59 -32
- package/dist/cjs/fabric/Fabric.js.map +1 -1
- package/dist/cjs/fabric/FabricAuthority.js +1 -1
- package/dist/cjs/fabric/FabricAuthority.js.map +1 -1
- package/dist/cjs/fabric/FabricManager.d.ts +14 -5
- package/dist/cjs/fabric/FabricManager.d.ts.map +1 -1
- package/dist/cjs/fabric/FabricManager.js +63 -42
- package/dist/cjs/fabric/FabricManager.js.map +1 -1
- package/dist/cjs/groups/FabricGroups.d.ts.map +1 -1
- package/dist/cjs/groups/FabricGroups.js +4 -8
- package/dist/cjs/groups/FabricGroups.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.d.ts +1 -106
- package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.js +2 -143
- package/dist/cjs/interaction/InteractionMessenger.js.map +2 -2
- package/dist/cjs/interaction/index.d.ts +0 -1
- package/dist/cjs/interaction/index.d.ts.map +1 -1
- package/dist/cjs/interaction/index.js +0 -1
- package/dist/cjs/interaction/index.js.map +1 -1
- package/dist/cjs/mdns/MdnsClient.d.ts +4 -4
- package/dist/cjs/mdns/MdnsClient.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsClient.js +12 -15
- package/dist/cjs/mdns/MdnsClient.js.map +1 -1
- package/dist/cjs/mdns/MdnsConsts.d.ts +3 -3
- package/dist/cjs/mdns/MdnsConsts.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsConsts.js +3 -2
- package/dist/cjs/mdns/MdnsConsts.js.map +1 -1
- package/dist/{esm/dcl → cjs/ota}/OtaImageHeader.d.ts.map +1 -1
- package/dist/cjs/{dcl → ota}/OtaImageHeader.js.map +1 -1
- package/dist/cjs/{dcl → ota}/OtaImageReader.d.ts.map +1 -1
- package/dist/cjs/{dcl → ota}/OtaImageReader.js +0 -2
- package/dist/cjs/ota/OtaImageReader.js.map +6 -0
- package/dist/{esm/dcl → cjs/ota}/OtaImageWriter.d.ts +1 -1
- package/dist/cjs/{dcl → ota}/OtaImageWriter.d.ts.map +1 -1
- package/dist/cjs/{dcl → ota}/OtaImageWriter.js.map +1 -1
- package/dist/cjs/ota/index.d.ts +9 -0
- package/dist/cjs/ota/index.d.ts.map +1 -0
- package/dist/cjs/ota/index.js +26 -0
- package/dist/cjs/ota/index.js.map +6 -0
- package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerCommissioner.js +5 -0
- package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts +11 -3
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.js +119 -40
- package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
- package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
- package/dist/cjs/peer/PeerSet.js +17 -10
- package/dist/cjs/peer/PeerSet.js.map +1 -1
- package/dist/cjs/protocol/DeviceAdvertiser.js +3 -3
- package/dist/cjs/protocol/DeviceAdvertiser.js.map +1 -1
- package/dist/cjs/protocol/ExchangeProvider.d.ts +2 -2
- package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeProvider.js +2 -2
- package/dist/cjs/protocol/ExchangeProvider.js.map +1 -1
- package/dist/cjs/protocol/MessageExchange.js +3 -3
- package/dist/cjs/protocol/MessageExchange.js.map +1 -1
- package/dist/cjs/protocol/ProtocolMocks.d.ts +2 -2
- package/dist/cjs/protocol/ProtocolMocks.d.ts.map +1 -1
- package/dist/cjs/protocol/ProtocolMocks.js +1 -1
- package/dist/cjs/protocol/ProtocolMocks.js.map +1 -1
- package/dist/cjs/session/NodeSession.d.ts.map +1 -1
- package/dist/cjs/session/NodeSession.js +2 -2
- package/dist/cjs/session/NodeSession.js.map +1 -1
- package/dist/cjs/session/Session.d.ts.map +1 -1
- package/dist/cjs/session/Session.js +1 -0
- package/dist/cjs/session/Session.js.map +1 -1
- package/dist/cjs/session/SessionManager.js +2 -2
- package/dist/cjs/session/SessionManager.js.map +1 -1
- package/dist/cjs/session/SessionParameters.d.ts.map +1 -1
- package/dist/cjs/session/SessionParameters.js +7 -1
- package/dist/cjs/session/SessionParameters.js.map +1 -1
- package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -1
- package/dist/cjs/session/pase/PaseServer.js +1 -0
- package/dist/cjs/session/pase/PaseServer.js.map +1 -1
- package/dist/esm/action/client/ClientBdx.d.ts +17 -0
- package/dist/esm/action/client/ClientBdx.d.ts.map +1 -0
- package/dist/esm/action/client/ClientBdx.js +6 -0
- package/dist/esm/action/client/ClientBdx.js.map +6 -0
- package/dist/esm/action/client/ClientInteraction.d.ts +10 -1
- package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/esm/action/client/ClientInteraction.js +24 -1
- package/dist/esm/action/client/ClientInteraction.js.map +1 -1
- package/dist/esm/action/client/QueuedClientInteraction.d.ts +11 -3
- package/dist/esm/action/client/QueuedClientInteraction.d.ts.map +1 -1
- package/dist/esm/action/client/QueuedClientInteraction.js +5 -1
- package/dist/esm/action/client/QueuedClientInteraction.js.map +1 -1
- package/dist/esm/action/client/index.d.ts +1 -0
- package/dist/esm/action/client/index.d.ts.map +1 -1
- package/dist/esm/action/client/index.js +1 -0
- package/dist/esm/action/client/index.js.map +1 -1
- package/dist/esm/action/request/Read.d.ts.map +1 -1
- package/dist/esm/action/request/Read.js +2 -2
- package/dist/esm/action/request/Read.js.map +1 -1
- package/dist/esm/action/request/Write.js +4 -3
- package/dist/esm/action/request/Write.js.map +1 -1
- package/dist/esm/advertisement/ble/BleAdvertisement.d.ts +1 -1
- package/dist/esm/advertisement/ble/BleAdvertisement.d.ts.map +1 -1
- package/dist/esm/advertisement/ble/BleAdvertisement.js +2 -2
- package/dist/esm/advertisement/ble/BleAdvertisement.js.map +1 -1
- package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts +1 -1
- package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js +1 -1
- package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +1 -1
- package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.d.ts.map +1 -1
- package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.js +4 -6
- package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.js.map +1 -1
- package/dist/esm/bdx/BdxClient.d.ts +2 -0
- package/dist/esm/bdx/BdxClient.d.ts.map +1 -1
- package/dist/esm/bdx/BdxClient.js +6 -0
- package/dist/esm/bdx/BdxClient.js.map +1 -1
- package/dist/esm/bdx/BdxError.d.ts +2 -0
- package/dist/esm/bdx/BdxError.d.ts.map +1 -1
- package/dist/esm/bdx/BdxError.js +2 -0
- package/dist/esm/bdx/BdxError.js.map +1 -1
- package/dist/esm/bdx/BdxMessenger.d.ts +5 -1
- package/dist/esm/bdx/BdxMessenger.d.ts.map +1 -1
- package/dist/esm/bdx/BdxMessenger.js +14 -5
- package/dist/esm/bdx/BdxMessenger.js.map +1 -1
- package/dist/esm/bdx/BdxProtocol.d.ts +14 -7
- package/dist/esm/bdx/BdxProtocol.d.ts.map +1 -1
- package/dist/esm/bdx/BdxProtocol.js +82 -20
- package/dist/esm/bdx/BdxProtocol.js.map +1 -1
- package/dist/esm/bdx/BdxSession.d.ts +10 -3
- package/dist/esm/bdx/BdxSession.d.ts.map +1 -1
- package/dist/esm/bdx/BdxSession.js +34 -9
- package/dist/esm/bdx/BdxSession.js.map +1 -1
- package/dist/esm/bdx/BdxSessionConfiguration.d.ts +16 -1
- package/dist/esm/bdx/BdxSessionConfiguration.d.ts.map +1 -1
- package/dist/esm/bdx/BdxSessionConfiguration.js +6 -1
- package/dist/esm/bdx/BdxSessionConfiguration.js.map +1 -1
- package/dist/esm/bdx/FileDesignator.d.ts +15 -1
- package/dist/esm/bdx/FileDesignator.d.ts.map +1 -1
- package/dist/esm/bdx/FileDesignator.js +29 -3
- package/dist/esm/bdx/FileDesignator.js.map +1 -1
- package/dist/esm/bdx/PersistedFileDesignator.d.ts +10 -2
- package/dist/esm/bdx/PersistedFileDesignator.d.ts.map +1 -1
- package/dist/esm/bdx/PersistedFileDesignator.js +24 -6
- package/dist/esm/bdx/PersistedFileDesignator.js.map +1 -1
- package/dist/esm/bdx/ScopedStorage.d.ts +18 -0
- package/dist/esm/bdx/ScopedStorage.d.ts.map +1 -0
- package/dist/esm/bdx/ScopedStorage.js +16 -0
- package/dist/esm/bdx/ScopedStorage.js.map +6 -0
- package/dist/esm/bdx/bdx-session-initiator.d.ts.map +1 -1
- package/dist/esm/bdx/bdx-session-initiator.js +10 -2
- package/dist/esm/bdx/bdx-session-initiator.js.map +1 -1
- package/dist/esm/bdx/flow/DrivenSendingFlow.d.ts.map +1 -1
- package/dist/esm/bdx/flow/DrivenSendingFlow.js +2 -0
- package/dist/esm/bdx/flow/DrivenSendingFlow.js.map +1 -1
- package/dist/esm/bdx/flow/DrivingReceivingFlow.d.ts.map +1 -1
- package/dist/esm/bdx/flow/DrivingReceivingFlow.js +1 -0
- package/dist/esm/bdx/flow/DrivingReceivingFlow.js.map +1 -1
- package/dist/esm/bdx/flow/Flow.d.ts +7 -0
- package/dist/esm/bdx/flow/Flow.d.ts.map +1 -1
- package/dist/esm/bdx/flow/Flow.js +23 -2
- package/dist/esm/bdx/flow/Flow.js.map +1 -1
- package/dist/esm/bdx/flow/FollowingReceivingFlow.d.ts.map +1 -1
- package/dist/esm/bdx/flow/FollowingReceivingFlow.js +3 -0
- package/dist/esm/bdx/flow/FollowingReceivingFlow.js.map +1 -1
- package/dist/esm/bdx/flow/FollowingSendingFlow.d.ts.map +1 -1
- package/dist/esm/bdx/flow/FollowingSendingFlow.js +1 -0
- package/dist/esm/bdx/flow/FollowingSendingFlow.js.map +1 -1
- package/dist/esm/bdx/flow/OutboundFlow.d.ts.map +1 -1
- package/dist/esm/bdx/flow/OutboundFlow.js +1 -0
- package/dist/esm/bdx/flow/OutboundFlow.js.map +1 -1
- package/dist/esm/bdx/index.d.ts +1 -0
- package/dist/esm/bdx/index.d.ts.map +1 -1
- package/dist/esm/bdx/index.js +1 -0
- package/dist/esm/bdx/index.js.map +1 -1
- package/dist/esm/certificate/kinds/Icac.d.ts.map +1 -1
- package/dist/esm/certificate/kinds/Icac.js +1 -7
- package/dist/esm/certificate/kinds/Icac.js.map +1 -1
- package/dist/esm/certificate/kinds/Rcac.d.ts +1 -0
- package/dist/esm/certificate/kinds/Rcac.d.ts.map +1 -1
- package/dist/esm/certificate/kinds/Rcac.js +3 -0
- package/dist/esm/certificate/kinds/Rcac.js.map +1 -1
- package/dist/esm/certificate/kinds/definitions/operational.d.ts +1 -1
- package/dist/esm/certificate/kinds/definitions/operational.js +1 -1
- package/dist/esm/certificate/kinds/definitions/operational.js.map +1 -1
- package/dist/esm/common/FailsafeContext.js +2 -2
- package/dist/esm/common/FailsafeContext.js.map +1 -1
- package/dist/esm/dcl/DclClient.d.ts.map +1 -1
- package/dist/esm/dcl/DclClient.js +1 -2
- package/dist/esm/dcl/DclClient.js.map +1 -1
- package/dist/esm/dcl/DclOtaUpdateService.d.ts +30 -31
- package/dist/esm/dcl/DclOtaUpdateService.d.ts.map +1 -1
- package/dist/esm/dcl/DclOtaUpdateService.js +191 -93
- package/dist/esm/dcl/DclOtaUpdateService.js.map +2 -2
- package/dist/esm/dcl/index.d.ts +0 -3
- package/dist/esm/dcl/index.d.ts.map +1 -1
- package/dist/esm/dcl/index.js +0 -3
- package/dist/esm/dcl/index.js.map +1 -1
- package/dist/esm/fabric/Fabric.d.ts +53 -9
- package/dist/esm/fabric/Fabric.d.ts.map +1 -1
- package/dist/esm/fabric/Fabric.js +67 -33
- package/dist/esm/fabric/Fabric.js.map +1 -1
- package/dist/esm/fabric/FabricAuthority.js +1 -1
- package/dist/esm/fabric/FabricAuthority.js.map +1 -1
- package/dist/esm/fabric/FabricManager.d.ts +14 -5
- package/dist/esm/fabric/FabricManager.d.ts.map +1 -1
- package/dist/esm/fabric/FabricManager.js +66 -43
- package/dist/esm/fabric/FabricManager.js.map +1 -1
- package/dist/esm/groups/FabricGroups.d.ts.map +1 -1
- package/dist/esm/groups/FabricGroups.js +5 -9
- package/dist/esm/groups/FabricGroups.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.d.ts +1 -106
- package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.js +2 -144
- package/dist/esm/interaction/InteractionMessenger.js.map +2 -2
- package/dist/esm/interaction/index.d.ts +0 -1
- package/dist/esm/interaction/index.d.ts.map +1 -1
- package/dist/esm/interaction/index.js +0 -1
- package/dist/esm/interaction/index.js.map +1 -1
- package/dist/esm/mdns/MdnsClient.d.ts +4 -4
- package/dist/esm/mdns/MdnsClient.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsClient.js +13 -17
- package/dist/esm/mdns/MdnsClient.js.map +1 -1
- package/dist/esm/mdns/MdnsConsts.d.ts +3 -3
- package/dist/esm/mdns/MdnsConsts.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsConsts.js +3 -2
- package/dist/esm/mdns/MdnsConsts.js.map +1 -1
- package/dist/{cjs/dcl → esm/ota}/OtaImageHeader.d.ts.map +1 -1
- package/dist/esm/{dcl → ota}/OtaImageHeader.js.map +1 -1
- package/dist/esm/{dcl → ota}/OtaImageReader.d.ts.map +1 -1
- package/dist/esm/{dcl → ota}/OtaImageReader.js +0 -3
- package/dist/esm/ota/OtaImageReader.js.map +6 -0
- package/dist/{cjs/dcl → esm/ota}/OtaImageWriter.d.ts +1 -1
- package/dist/esm/{dcl → ota}/OtaImageWriter.d.ts.map +1 -1
- package/dist/esm/{dcl → ota}/OtaImageWriter.js.map +1 -1
- package/dist/esm/ota/index.d.ts +9 -0
- package/dist/esm/ota/index.d.ts.map +1 -0
- package/dist/esm/ota/index.js +9 -0
- package/dist/esm/ota/index.js.map +6 -0
- package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
- package/dist/esm/peer/ControllerCommissioner.js +5 -0
- package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts +11 -3
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
- package/dist/esm/peer/ControllerCommissioningFlow.js +119 -41
- package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
- package/dist/esm/peer/PeerSet.d.ts.map +1 -1
- package/dist/esm/peer/PeerSet.js +17 -10
- package/dist/esm/peer/PeerSet.js.map +1 -1
- package/dist/esm/protocol/DeviceAdvertiser.js +3 -3
- package/dist/esm/protocol/DeviceAdvertiser.js.map +1 -1
- package/dist/esm/protocol/ExchangeProvider.d.ts +2 -2
- package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeProvider.js +2 -2
- package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
- package/dist/esm/protocol/MessageExchange.js +3 -3
- package/dist/esm/protocol/MessageExchange.js.map +1 -1
- package/dist/esm/protocol/ProtocolMocks.d.ts +2 -2
- package/dist/esm/protocol/ProtocolMocks.d.ts.map +1 -1
- package/dist/esm/protocol/ProtocolMocks.js +11 -2
- package/dist/esm/protocol/ProtocolMocks.js.map +1 -1
- package/dist/esm/session/NodeSession.d.ts.map +1 -1
- package/dist/esm/session/NodeSession.js +3 -3
- package/dist/esm/session/NodeSession.js.map +1 -1
- package/dist/esm/session/Session.d.ts.map +1 -1
- package/dist/esm/session/Session.js +1 -0
- package/dist/esm/session/Session.js.map +1 -1
- package/dist/esm/session/SessionManager.js +2 -2
- package/dist/esm/session/SessionManager.js.map +1 -1
- package/dist/esm/session/SessionParameters.d.ts.map +1 -1
- package/dist/esm/session/SessionParameters.js +7 -1
- package/dist/esm/session/SessionParameters.js.map +1 -1
- package/dist/esm/session/pase/PaseServer.d.ts.map +1 -1
- package/dist/esm/session/pase/PaseServer.js +1 -0
- package/dist/esm/session/pase/PaseServer.js.map +1 -1
- package/package.json +6 -6
- package/src/action/client/ClientBdx.ts +19 -0
- package/src/action/client/ClientInteraction.ts +34 -4
- package/src/action/client/QueuedClientInteraction.ts +16 -12
- package/src/action/client/index.ts +1 -0
- package/src/action/request/Read.ts +8 -2
- package/src/action/request/Write.ts +3 -3
- package/src/advertisement/ble/BleAdvertisement.ts +4 -4
- package/src/advertisement/mdns/CommissionableMdnsAdvertisement.ts +1 -1
- package/src/advertisement/mdns/OperationalMdnsAdvertisement.ts +4 -6
- package/src/bdx/BdxClient.ts +8 -0
- package/src/bdx/BdxError.ts +2 -0
- package/src/bdx/BdxMessenger.ts +16 -5
- package/src/bdx/BdxProtocol.ts +104 -22
- package/src/bdx/BdxSession.ts +38 -16
- package/src/bdx/BdxSessionConfiguration.ts +24 -2
- package/src/bdx/FileDesignator.ts +31 -2
- package/src/bdx/PersistedFileDesignator.ts +35 -8
- package/src/bdx/ScopedStorage.ts +25 -0
- package/src/bdx/bdx-session-initiator.ts +11 -2
- package/src/bdx/flow/DrivenSendingFlow.ts +3 -0
- package/src/bdx/flow/DrivingReceivingFlow.ts +1 -0
- package/src/bdx/flow/Flow.ts +29 -2
- package/src/bdx/flow/FollowingReceivingFlow.ts +3 -0
- package/src/bdx/flow/FollowingSendingFlow.ts +2 -0
- package/src/bdx/flow/OutboundFlow.ts +1 -0
- package/src/bdx/index.ts +1 -0
- package/src/certificate/kinds/Icac.ts +4 -1
- package/src/certificate/kinds/Rcac.ts +4 -0
- package/src/certificate/kinds/definitions/operational.ts +1 -1
- package/src/common/FailsafeContext.ts +2 -2
- package/src/dcl/DclClient.ts +1 -2
- package/src/dcl/DclOtaUpdateService.ts +266 -125
- package/src/dcl/index.ts +0 -3
- package/src/fabric/Fabric.ts +118 -39
- package/src/fabric/FabricAuthority.ts +1 -1
- package/src/fabric/FabricManager.ts +76 -49
- package/src/groups/FabricGroups.ts +5 -9
- package/src/index.ts +1 -0
- package/src/interaction/InteractionMessenger.ts +2 -186
- package/src/interaction/index.ts +0 -1
- package/src/mdns/MdnsClient.ts +14 -19
- package/src/mdns/MdnsConsts.ts +5 -4
- package/src/{dcl → ota}/OtaImageReader.ts +1 -5
- package/src/{dcl → ota}/OtaImageWriter.ts +1 -1
- package/src/ota/index.ts +9 -0
- package/src/peer/ControllerCommissioner.ts +7 -0
- package/src/peer/ControllerCommissioningFlow.ts +161 -54
- package/src/peer/PeerSet.ts +25 -12
- package/src/protocol/DeviceAdvertiser.ts +5 -5
- package/src/protocol/ExchangeProvider.ts +3 -3
- package/src/protocol/MessageExchange.ts +3 -3
- package/src/protocol/ProtocolMocks.ts +13 -4
- package/src/session/NodeSession.ts +3 -3
- package/src/session/Session.ts +1 -0
- package/src/session/SessionManager.ts +2 -2
- package/src/session/SessionParameters.ts +10 -2
- package/src/session/pase/PaseServer.ts +2 -1
- package/dist/cjs/dcl/OtaImageReader.js.map +0 -6
- package/dist/cjs/interaction/SubscriptionClient.d.ts +0 -39
- package/dist/cjs/interaction/SubscriptionClient.d.ts.map +0 -1
- package/dist/cjs/interaction/SubscriptionClient.js +0 -93
- package/dist/cjs/interaction/SubscriptionClient.js.map +0 -6
- package/dist/esm/dcl/OtaImageReader.js.map +0 -6
- package/dist/esm/interaction/SubscriptionClient.d.ts +0 -39
- package/dist/esm/interaction/SubscriptionClient.d.ts.map +0 -1
- package/dist/esm/interaction/SubscriptionClient.js +0 -73
- package/dist/esm/interaction/SubscriptionClient.js.map +0 -6
- package/src/interaction/SubscriptionClient.ts +0 -104
- /package/dist/cjs/{dcl → ota}/OtaImageHeader.d.ts +0 -0
- /package/dist/cjs/{dcl → ota}/OtaImageHeader.js +0 -0
- /package/dist/cjs/{dcl → ota}/OtaImageReader.d.ts +0 -0
- /package/dist/cjs/{dcl → ota}/OtaImageWriter.js +0 -0
- /package/dist/esm/{dcl → ota}/OtaImageHeader.d.ts +0 -0
- /package/dist/esm/{dcl → ota}/OtaImageHeader.js +0 -0
- /package/dist/esm/{dcl → ota}/OtaImageReader.d.ts +0 -0
- /package/dist/esm/{dcl → ota}/OtaImageWriter.js +0 -0
- /package/src/{dcl → ota}/OtaImageHeader.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BdxError.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE1D,4CAA4C;AAC5C,qBAAa,QAAS,SAAQ,WAAW;;
|
|
1
|
+
{"version":3,"file":"BdxError.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE1D,4CAA4C;AAC5C,qBAAa,QAAS,SAAQ,WAAW;;IAErC,gBAAgB,SAAK;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;gBAEd,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAAqC;IAKxE,IAAI,IAAI,IAAI,aAAa,CAExB;IAED,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO;CAG3B;AAED,mFAAmF;AACnF,qBAAa,sBAAuB,SAAQ,WAAW;aAG/B,iBAAiB,EAAE,iBAAiB;aACpC,kBAAkB,EAAE,aAAa;gBAFjD,OAAO,EAAE,MAAM,EACC,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,aAAa;CAMxD"}
|
package/dist/cjs/bdx/BdxError.js
CHANGED
|
@@ -31,6 +31,8 @@ var import_types = require("#types");
|
|
|
31
31
|
*/
|
|
32
32
|
class BdxError extends import_general.MatterError {
|
|
33
33
|
#code;
|
|
34
|
+
bytesTransferred = 0;
|
|
35
|
+
totalBytesLength;
|
|
34
36
|
constructor(message, code = import_types.BdxStatusCode.Unknown) {
|
|
35
37
|
super(`BDX error ${import_types.BdxStatusCode[code]}(${code}): ${message}`);
|
|
36
38
|
this.#code = code;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/bdx/BdxError.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA4B;AAC5B,mBAAiD;AAPjD;AAAA;AAAA;AAAA;AAAA;AAUO,MAAM,iBAAiB,2BAAY;AAAA,EACtC;AAAA,EAEA,YAAY,SAAiB,OAAsB,2BAAc,SAAS;AACtE,UAAM,aAAa,2BAAc,IAAI,CAAC,IAAI,IAAI,MAAM,OAAO,EAAE;AAC7D,SAAK,QAAQ;AAAA,EACjB;AAAA,EAEA,IAAI,OAAsB;AACtB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,OAAO,GAAG,OAAgB;AACtB,WAAO,iBAAiB;AAAA,EAC5B;AACJ;AAGO,MAAM,+BAA+B,2BAAY;AAAA,EAC7C,YACH,SACgB,mBACA,oBAClB;AACE;AAAA,MACI,IAAI,+BAAkB,iBAAiB,CAAC,KAAK,iBAAiB,OAAO,2BAAc,kBAAkB,CAAC,KAAK,kBAAkB,MAAM,OAAO;AAAA,IAC9I;AALgB;AACA;AAAA,EAKpB;AACJ;",
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA4B;AAC5B,mBAAiD;AAPjD;AAAA;AAAA;AAAA;AAAA;AAUO,MAAM,iBAAiB,2BAAY;AAAA,EACtC;AAAA,EACA,mBAAmB;AAAA,EACnB;AAAA,EAEA,YAAY,SAAiB,OAAsB,2BAAc,SAAS;AACtE,UAAM,aAAa,2BAAc,IAAI,CAAC,IAAI,IAAI,MAAM,OAAO,EAAE;AAC7D,SAAK,QAAQ;AAAA,EACjB;AAAA,EAEA,IAAI,OAAsB;AACtB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,OAAO,GAAG,OAAgB;AACtB,WAAO,iBAAiB;AAAA,EAC5B;AACJ;AAGO,MAAM,+BAA+B,2BAAY;AAAA,EAC7C,YACH,SACgB,mBACA,oBAClB;AACE;AAAA,MACI,IAAI,+BAAkB,iBAAiB,CAAC,KAAK,iBAAiB,OAAO,2BAAc,kBAAkB,CAAC,KAAK,kBAAkB,MAAM,OAAO;AAAA,IAC9I;AALgB;AACA;AAAA,EAKpB;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Message } from "#codec/MessageCodec.js";
|
|
7
7
|
import { Duration } from "#general";
|
|
8
|
+
import { ExchangeProvider } from "#protocol/index.js";
|
|
8
9
|
import { MessageExchange } from "#protocol/MessageExchange.js";
|
|
9
10
|
import { BdxMessageType, BdxStatusCode } from "#types";
|
|
10
11
|
import { BdxReceiveAccept, BdxSendAccept } from "./schema/BdxAcceptMessagesSchema.js";
|
|
@@ -15,13 +16,15 @@ export declare const BDX_TRANSFER_IDLE_TIMEOUT: Duration;
|
|
|
15
16
|
/** Messenger class that contains all Bdx Messages */
|
|
16
17
|
export declare class BdxMessenger {
|
|
17
18
|
#private;
|
|
19
|
+
/** Creates a new BdxMessenger instance by initiating a new MessageExchange from the given ExchangeProvider. */
|
|
20
|
+
static create(exchangeProvider: ExchangeProvider, messageTimeout?: Duration): Promise<BdxMessenger>;
|
|
18
21
|
/**
|
|
19
22
|
* Creates a new BdxMessenger instance.
|
|
20
23
|
* @param exchange Exchange to use for the messaging
|
|
21
24
|
* @param messageTimeout Communication Timeout for the Bdx Messages, defaults to 5 minutes as defined for Matter OTA transfers
|
|
22
25
|
*/
|
|
23
26
|
constructor(exchange: MessageExchange, messageTimeout?: Duration);
|
|
24
|
-
get channel(): import("
|
|
27
|
+
get channel(): import("#protocol/index.js").MessageChannel;
|
|
25
28
|
get exchange(): MessageExchange;
|
|
26
29
|
get maxPayloadSize(): number;
|
|
27
30
|
/**
|
|
@@ -67,6 +70,7 @@ export declare class BdxMessenger {
|
|
|
67
70
|
sendError(code: BdxStatusCode): Promise<void>;
|
|
68
71
|
protected throwIfErrorStatusReport(message: Message, logHint?: string): void;
|
|
69
72
|
close(): Promise<void>;
|
|
73
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
70
74
|
/**
|
|
71
75
|
* Ensure that the value is a safe JavaScript "number" type and that it is not too large. Matter spec allows also
|
|
72
76
|
* 64bit values, but they make little sense for now, so make sure we handle them as too large. MAX_SAFE_INTEGER is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BdxMessenger.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxMessenger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAGH,QAAQ,EAMX,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"BdxMessenger.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxMessenger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAGH,QAAQ,EAMX,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAmB,cAAc,EAAE,aAAa,EAAwC,MAAM,QAAQ,CAAC;AAE9G,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EACH,QAAQ,EACR,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,EACb,qBAAqB,EACxB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKpD,eAAO,MAAM,yBAAyB,UAAa,CAAC;AAEpD,qDAAqD;AACrD,qBAAa,YAAY;;IAIrB,+GAA+G;WAClG,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,WAA4B;IAKlG;;;;OAIG;gBACS,QAAQ,EAAE,eAAe,EAAE,cAAc,WAA4B;IAQjF,IAAI,OAAO,gDAEV;IAED,IAAI,QAAQ,oBAEX;IAED,IAAI,cAAc,WAEjB;IAED;;;;OAIG;IACG,WAAW,CACb,oBAAoB,EAAE,cAAc,EAAE,EACtC,OAAO,WAAuB,EAC9B,mBAAmB,CAAC,EAAE,MAAM,GAC7B,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAuBrB,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC;IAStC,8GAA8G;IACxG,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAQ5D,gHAAgH;IAC1G,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQlE,kDAAkD;IAC5C,cAAc,CAAC,OAAO,EAAE,aAAa;IAI3C,qDAAqD;IAC/C,iBAAiB,CAAC,OAAO,EAAE,gBAAgB;IAIjD,6CAA6C;IACvC,SAAS,CAAC,OAAO,EAAE,QAAQ;IAIjC,kDAAkD;IAC5C,cAAc,CAAC,OAAO,EAAE,aAAa;IAI3C,0DAA0D;IACpD,sBAAsB,CAAC,OAAO,EAAE,qBAAqB;IAI3D,gDAAgD;IAC1C,YAAY,CAAC,OAAO,EAAE,WAAW;IAIvC,gDAAgD;IAC1C,YAAY,CAAC,OAAO,EAAE,WAAW;IAIvC,kDAAkD;IAC5C,eAAe,CAAC,OAAO,EAAE,cAAc;IAI7C,mHAAmH;IAC7G,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAStF;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;IA0B1G,0EAA0E;IACpE,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC;IAMhD,uEAAuE;IACjE,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC;IAM1C,6EAA6E;IAC7E,SAAS,CAAC,IAAI,EAAE,aAAa;IAsB7B,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;IAwBrE,KAAK;IAIL,CAAC,MAAM,CAAC,YAAY,CAAC;IAIrB;;;;OAIG;IACH,MAAM,CAAC,YAAY,CACf,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAClC,OAAO,SAAK,EACZ,YAAY,gBAAwB,GACrC,MAAM;CASZ"}
|
|
@@ -37,14 +37,19 @@ const BDX_TRANSFER_IDLE_TIMEOUT = (0, import_general.Minutes)(5);
|
|
|
37
37
|
class BdxMessenger {
|
|
38
38
|
#exchange;
|
|
39
39
|
#messageTimeout;
|
|
40
|
+
/** Creates a new BdxMessenger instance by initiating a new MessageExchange from the given ExchangeProvider. */
|
|
41
|
+
static async create(exchangeProvider, messageTimeout = BDX_TRANSFER_IDLE_TIMEOUT) {
|
|
42
|
+
const exchange = await exchangeProvider.initiateExchange(import_types.BDX_PROTOCOL_ID);
|
|
43
|
+
return new this(exchange, messageTimeout);
|
|
44
|
+
}
|
|
40
45
|
/**
|
|
41
46
|
* Creates a new BdxMessenger instance.
|
|
42
47
|
* @param exchange Exchange to use for the messaging
|
|
43
48
|
* @param messageTimeout Communication Timeout for the Bdx Messages, defaults to 5 minutes as defined for Matter OTA transfers
|
|
44
49
|
*/
|
|
45
50
|
constructor(exchange, messageTimeout = BDX_TRANSFER_IDLE_TIMEOUT) {
|
|
46
|
-
if (!exchange.
|
|
47
|
-
throw new import_general.ImplementationError("Bdx Protocol requires a
|
|
51
|
+
if (!exchange.session.isSecure) {
|
|
52
|
+
throw new import_general.ImplementationError("Bdx Protocol requires a secure session");
|
|
48
53
|
}
|
|
49
54
|
this.#messageTimeout = messageTimeout;
|
|
50
55
|
this.#exchange = exchange;
|
|
@@ -65,12 +70,12 @@ class BdxMessenger {
|
|
|
65
70
|
*/
|
|
66
71
|
async nextMessage(expectedMessageTypes, timeout = this.#messageTimeout, expectedMessageInfo) {
|
|
67
72
|
logger.debug(
|
|
68
|
-
`Waiting for Bdx ${expectedMessageTypes.map((t) => import_types.BdxMessageType[t]).join("/")} message with timeout ${timeout}
|
|
73
|
+
`Waiting for Bdx ${expectedMessageTypes.map((t) => import_types.BdxMessageType[t]).join("/")} message with timeout ${import_general.Duration.format(timeout)}`
|
|
69
74
|
);
|
|
70
75
|
const message = await this.exchange.nextMessage({ timeout });
|
|
71
76
|
const messageType = message.payloadHeader.messageType;
|
|
72
77
|
if (expectedMessageInfo === void 0) {
|
|
73
|
-
expectedMessageInfo = expectedMessageTypes.map((t) => `${
|
|
78
|
+
expectedMessageInfo = expectedMessageTypes.map((t) => `${import_types.BdxMessageType[t]}#${t}`).join(",");
|
|
74
79
|
}
|
|
75
80
|
this.throwIfErrorStatusReport(message, expectedMessageInfo);
|
|
76
81
|
if (!expectedMessageTypes.includes(messageType))
|
|
@@ -227,6 +232,9 @@ class BdxMessenger {
|
|
|
227
232
|
close() {
|
|
228
233
|
return this.#exchange.close();
|
|
229
234
|
}
|
|
235
|
+
[Symbol.asyncDispose]() {
|
|
236
|
+
return this.close();
|
|
237
|
+
}
|
|
230
238
|
/**
|
|
231
239
|
* Ensure that the value is a safe JavaScript "number" type and that it is not too large. Matter spec allows also
|
|
232
240
|
* 64bit values, but they make little sense for now, so make sure we handle them as too large. MAX_SAFE_INTEGER is
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/bdx/BdxMessenger.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,qBASO;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,23 +3,30 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { ScopedStorage } from "#bdx/ScopedStorage.js";
|
|
7
|
+
import { Duration, Environment, Environmental, Observable } from "#general";
|
|
8
|
+
import { PeerAddress } from "#peer/PeerAddress.js";
|
|
7
9
|
import { MessageExchange } from "#protocol/MessageExchange.js";
|
|
8
10
|
import { ProtocolHandler } from "#protocol/ProtocolHandler.js";
|
|
9
11
|
import { Message } from "../codec/MessageCodec.js";
|
|
12
|
+
import { BdxSession } from "./BdxSession.js";
|
|
10
13
|
import { BdxSessionConfiguration } from "./BdxSessionConfiguration.js";
|
|
11
14
|
/** BDX protocol handler. */
|
|
12
15
|
export declare class BdxProtocol implements ProtocolHandler {
|
|
13
16
|
#private;
|
|
14
17
|
readonly id = 2;
|
|
15
18
|
readonly requiresSecureSession = true;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
constructor(storage: StorageContext, options?: BdxSessionConfiguration.Config);
|
|
19
|
+
static [Environmental.create](env: Environment): BdxProtocol;
|
|
20
|
+
get sessionStarted(): Observable<[session: BdxSession, scope: string], void>;
|
|
21
|
+
get sessionClosed(): Observable<[session: BdxSession, scope: string], void>;
|
|
22
|
+
enablePeerForScope(peer: PeerAddress, storage: ScopedStorage, config?: BdxProtocol.Config): boolean;
|
|
23
|
+
disablePeerForScope(peer: PeerAddress, storage: ScopedStorage, force?: boolean): Promise<void>;
|
|
22
24
|
onNewExchange(exchange: MessageExchange, message: Message): Promise<void>;
|
|
23
25
|
close(): Promise<void>;
|
|
24
26
|
}
|
|
27
|
+
export declare namespace BdxProtocol {
|
|
28
|
+
interface Config extends BdxSessionConfiguration.Config {
|
|
29
|
+
messageTimeout?: Duration;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
25
32
|
//# sourceMappingURL=BdxProtocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BdxProtocol.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxProtocol.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"BdxProtocol.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxProtocol.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAoC,UAAU,EAAE,MAAM,UAAU,CAAC;AAC9G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAKvE,4BAA4B;AAC5B,qBAAa,WAAY,YAAW,eAAe;;IAC/C,QAAQ,CAAC,EAAE,KAAmB;IAC9B,QAAQ,CAAC,qBAAqB,QAAQ;IAMtC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAO9C,IAAI,cAAc,2DAEjB;IAED,IAAI,aAAa,2DAEhB;IASD,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM;IAenF,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,UAAQ;IAiB5E,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO;IAyEzD,KAAK;CAOd;AAED,yBAAiB,WAAW,CAAC;IACzB,UAAiB,MAAO,SAAQ,uBAAuB,CAAC,MAAM;QAC1D,cAAc,CAAC,EAAE,QAAQ,CAAC;KAC7B;CACJ"}
|
|
@@ -21,7 +21,13 @@ __export(BdxProtocol_exports, {
|
|
|
21
21
|
BdxProtocol: () => BdxProtocol
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(BdxProtocol_exports);
|
|
24
|
+
var import_BdxError = require("#bdx/BdxError.js");
|
|
25
|
+
var import_FileDesignator = require("#bdx/FileDesignator.js");
|
|
26
|
+
var import_PersistedFileDesignator = require("#bdx/PersistedFileDesignator.js");
|
|
24
27
|
var import_general = require("#general");
|
|
28
|
+
var import_PeerAddress = require("#peer/PeerAddress.js");
|
|
29
|
+
var import_ExchangeManager = require("#protocol/ExchangeManager.js");
|
|
30
|
+
var import_SecureSession = require("#session/SecureSession.js");
|
|
25
31
|
var import_types = require("#types");
|
|
26
32
|
var import_BdxMessenger = require("./BdxMessenger.js");
|
|
27
33
|
var import_BdxSession = require("./BdxSession.js");
|
|
@@ -36,33 +42,87 @@ class BdxProtocol {
|
|
|
36
42
|
id = import_types.BDX_PROTOCOL_ID;
|
|
37
43
|
requiresSecureSession = true;
|
|
38
44
|
#activeBdxSessions = /* @__PURE__ */ new Map();
|
|
39
|
-
#
|
|
40
|
-
#
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
#peerScopes = /* @__PURE__ */ new Map();
|
|
46
|
+
#sessionStarted = (0, import_general.Observable)();
|
|
47
|
+
#sessionClosed = (0, import_general.Observable)();
|
|
48
|
+
static [import_general.Environmental.create](env) {
|
|
49
|
+
const instance = new BdxProtocol();
|
|
50
|
+
env.get(import_ExchangeManager.ExchangeManager).addProtocolHandler(instance);
|
|
51
|
+
env.set(BdxProtocol, instance);
|
|
52
|
+
return instance;
|
|
53
|
+
}
|
|
54
|
+
get sessionStarted() {
|
|
55
|
+
return this.#sessionStarted;
|
|
56
|
+
}
|
|
57
|
+
get sessionClosed() {
|
|
58
|
+
return this.#sessionClosed;
|
|
59
|
+
}
|
|
60
|
+
#peerScopeKey(peer, scope) {
|
|
61
|
+
if (scope === void 0) {
|
|
62
|
+
throw new import_general.MatterError("StorageContext must have a defined scope to be used with enableScope");
|
|
63
|
+
}
|
|
64
|
+
return `${peer.toString()}-${scope}`;
|
|
65
|
+
}
|
|
66
|
+
enablePeerForScope(peer, storage, config) {
|
|
67
|
+
const peerScopeStr = this.#peerScopeKey(peer, storage.scope);
|
|
68
|
+
const peerDetails = this.#peerScopes.get(peerScopeStr);
|
|
69
|
+
if (peerDetails !== void 0) {
|
|
70
|
+
const { storage: existingStorage, config: existingConfig } = peerDetails;
|
|
71
|
+
logger.warn(config, "vs", existingConfig);
|
|
72
|
+
if (existingStorage !== storage || (0, import_general.isDeepEqual)(config, existingConfig)) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
} else {
|
|
76
|
+
this.#peerScopes.set(peerScopeStr, { peer, storage, config });
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
async disablePeerForScope(peer, storage, force = false) {
|
|
81
|
+
if (this.#activeBdxSessions.size > 0) {
|
|
82
|
+
for (const { session, scope } of this.#activeBdxSessions.values()) {
|
|
83
|
+
if (storage.scope === scope && import_PeerAddress.PeerAddress.is(peer, session.peerAddress)) {
|
|
84
|
+
if (force) {
|
|
85
|
+
await session.close(new import_general.MatterError("BDX protocol scope disabled"));
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
throw new import_general.MatterError(
|
|
89
|
+
`Cannot disable BDX for peer "${peer}" (scope: ${scope}) because there are active BDX sessions using it`
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
this.#peerScopes.delete(this.#peerScopeKey(peer, storage.scope));
|
|
49
95
|
}
|
|
50
96
|
async onNewExchange(exchange, message) {
|
|
51
97
|
const initMessageType = message.payloadHeader.messageType;
|
|
52
|
-
|
|
98
|
+
import_SecureSession.SecureSession.assert(exchange.session);
|
|
53
99
|
switch (initMessageType) {
|
|
54
100
|
case import_types.BdxMessageType.SendInit:
|
|
55
101
|
case import_types.BdxMessageType.ReceiveInit:
|
|
56
102
|
logger.debug(
|
|
57
103
|
`Initialize Session for ${import_types.BdxMessageType[initMessageType]} message on BDX protocol for exchange ${exchange.id}`
|
|
58
104
|
);
|
|
105
|
+
await exchange.nextMessage();
|
|
59
106
|
const { payload } = message;
|
|
60
|
-
const
|
|
107
|
+
const initMessage = new import_BdxInitMessagesSchema.BdxInitMessageSchema().decode(payload);
|
|
108
|
+
const { fileDesignator: messageFileDesignator } = initMessage;
|
|
109
|
+
const fd = new import_FileDesignator.FileDesignator(messageFileDesignator);
|
|
110
|
+
const [storageScope, fileDesignator] = fd.text.split("/");
|
|
111
|
+
const { storage, config } = this.#peerScopes.get(this.#peerScopeKey(exchange.session.peerAddress, storageScope)) ?? {};
|
|
112
|
+
if (storage === void 0 || fileDesignator === void 0) {
|
|
113
|
+
throw new import_BdxError.BdxError(
|
|
114
|
+
`No storage context found for BDX file designator "${fd.text}"`,
|
|
115
|
+
import_types.BdxStatusCode.FileDesignatorUnknown
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
const messenger = new import_BdxMessenger.BdxMessenger(exchange, config?.messageTimeout);
|
|
119
|
+
const bdxSession = import_BdxSession.BdxSession.fromMessage(messenger, {
|
|
61
120
|
initMessageType,
|
|
62
|
-
initMessage
|
|
63
|
-
|
|
121
|
+
initMessage,
|
|
122
|
+
fileDesignator: new import_PersistedFileDesignator.PersistedFileDesignator(fileDesignator, storage),
|
|
123
|
+
...config
|
|
64
124
|
});
|
|
65
|
-
await this.#registerSession(messenger, bdxSession);
|
|
125
|
+
await this.#registerSession(messenger, bdxSession, storageScope);
|
|
66
126
|
try {
|
|
67
127
|
await bdxSession.processTransfer();
|
|
68
128
|
} catch (error) {
|
|
@@ -73,27 +133,29 @@ class BdxProtocol {
|
|
|
73
133
|
logger.warn(
|
|
74
134
|
`Unexpected BDX message type ${import_types.BdxMessageType[initMessageType]} on new exchange ${exchange.id}`
|
|
75
135
|
);
|
|
76
|
-
await
|
|
136
|
+
await new import_BdxMessenger.BdxMessenger(exchange).sendError(import_types.BdxStatusCode.UnexpectedMessage);
|
|
77
137
|
}
|
|
78
138
|
}
|
|
79
139
|
/** Make sure only one BDX session can be active per exchange and that the exchange is closed with the BDX session. */
|
|
80
|
-
async #registerSession(messenger, bdxSession) {
|
|
140
|
+
async #registerSession(messenger, bdxSession, scope) {
|
|
81
141
|
const exchange = messenger.exchange;
|
|
82
142
|
if (this.#activeBdxSessions.has(exchange)) {
|
|
83
143
|
logger.warn(`BDX session for exchange ${exchange.id} already exists, sending error`);
|
|
84
144
|
await messenger.sendError(import_types.BdxStatusCode.UnexpectedMessage);
|
|
85
145
|
return;
|
|
86
146
|
}
|
|
87
|
-
this.#activeBdxSessions.set(exchange, bdxSession);
|
|
147
|
+
this.#activeBdxSessions.set(exchange, { session: bdxSession, scope });
|
|
148
|
+
this.#sessionStarted.emit(bdxSession, scope);
|
|
88
149
|
bdxSession.closed.on(async () => {
|
|
89
150
|
logger.debug(`BDX session for exchange ${exchange.id} closed`);
|
|
90
151
|
this.#activeBdxSessions.delete(exchange);
|
|
91
152
|
await exchange.close();
|
|
153
|
+
this.#sessionClosed.emit(bdxSession, scope);
|
|
92
154
|
});
|
|
93
155
|
}
|
|
94
156
|
async close() {
|
|
95
157
|
logger.debug(`Closing BDX protocol handler with ${this.#activeBdxSessions.size} active sessions`);
|
|
96
|
-
for (const session of this.#activeBdxSessions.values()) {
|
|
158
|
+
for (const { session } of this.#activeBdxSessions.values()) {
|
|
97
159
|
await session.close(new import_general.MatterError("BDX protocol handler closed"));
|
|
98
160
|
}
|
|
99
161
|
this.#activeBdxSessions.clear();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/bdx/BdxProtocol.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { AsyncObservable,
|
|
6
|
+
import { AsyncObservable, Observable } from "#general";
|
|
7
7
|
import { BdxMessenger } from "./BdxMessenger.js";
|
|
8
8
|
import { BdxSessionConfiguration } from "./BdxSessionConfiguration.js";
|
|
9
9
|
/**
|
|
@@ -24,12 +24,19 @@ export declare class BdxSession {
|
|
|
24
24
|
static asSender(messenger: BdxMessenger, options: BdxSessionConfiguration.SenderInitiatorOptions): BdxSession;
|
|
25
25
|
/** Initializes a BdxSession as a receiver, means that we download data from the peer. */
|
|
26
26
|
static asReceiver(messenger: BdxMessenger, options: BdxSessionConfiguration.InitiatorOptions): BdxSession;
|
|
27
|
-
/**
|
|
28
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Initializes a BdxSession from an incoming *Init message. The message determines the direction of the transfer.
|
|
29
|
+
* The provided storages allow to map the file designator to a storage context depending on the path prefix in the
|
|
30
|
+
* file designator.
|
|
31
|
+
*/
|
|
32
|
+
static fromMessage(messenger: BdxMessenger, options: BdxSessionConfiguration.ReceiverOptions): BdxSession;
|
|
29
33
|
private constructor();
|
|
34
|
+
get progressInfo(): Observable<[bytesTransferred: number, totalBytesLength: number | undefined], void>;
|
|
35
|
+
get progressFinished(): Observable<[totalBytesTransferred: number], void>;
|
|
30
36
|
/** Method called to start the session. It will end with a successful Transfer or with an error */
|
|
31
37
|
processTransfer(): Promise<void>;
|
|
32
38
|
get closed(): AsyncObservable<any[], void>;
|
|
39
|
+
get peerAddress(): import("../index.js").PeerAddress;
|
|
33
40
|
close(error?: unknown): Promise<void>;
|
|
34
41
|
}
|
|
35
42
|
export declare namespace BdxSession { }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BdxSession.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxSession.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAoC,
|
|
1
|
+
{"version":3,"file":"BdxSession.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxSession.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAoC,UAAU,EAAE,MAAM,UAAU,CAAC;AAKzF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AASvE;;;;;;;;;;;GAWG;AACH,qBAAa,UAAU;;IAUnB,mFAAmF;IACnF,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB,CAAC,sBAAsB,GAAG,UAAU;IAI7G,yFAAyF;IACzF,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB,CAAC,gBAAgB,GAAG,UAAU;IAIzG;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB,CAAC,eAAe,GAAG,UAAU;IAezG,OAAO;IAkBP,IAAI,YAAY,uFAEf;IAED,IAAI,gBAAgB,sDAEnB;IAED,kGAAkG;IAC5F,eAAe;IA4ErB,IAAI,MAAM,iCAET;IAED,IAAI,WAAW,sCAGd;IAEK,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO;CAQ9B;AAED,yBAAiB,UAAU,CAAC,GAAE"}
|
|
@@ -22,6 +22,7 @@ __export(BdxSession_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(BdxSession_exports);
|
|
24
24
|
var import_general = require("#general");
|
|
25
|
+
var import_SecureSession = require("#session/SecureSession.js");
|
|
25
26
|
var import_types = require("#types");
|
|
26
27
|
var import_bdx_session_initiator = require("./bdx-session-initiator.js");
|
|
27
28
|
var import_BdxError = require("./BdxError.js");
|
|
@@ -31,7 +32,6 @@ var import_DrivingReceivingFlow = require("./flow/DrivingReceivingFlow.js");
|
|
|
31
32
|
var import_Flow = require("./flow/Flow.js");
|
|
32
33
|
var import_FollowingReceivingFlow = require("./flow/FollowingReceivingFlow.js");
|
|
33
34
|
var import_FollowingSendingFlow = require("./flow/FollowingSendingFlow.js");
|
|
34
|
-
var import_PersistedFileDesignator = require("./PersistedFileDesignator.js");
|
|
35
35
|
/**
|
|
36
36
|
* @license
|
|
37
37
|
* Copyright 2022-2025 Matter.js Authors
|
|
@@ -45,6 +45,8 @@ class BdxSession {
|
|
|
45
45
|
#isClosed = false;
|
|
46
46
|
#config;
|
|
47
47
|
#transferFlow;
|
|
48
|
+
#progressInfo = (0, import_general.Observable)();
|
|
49
|
+
#progressFinished = (0, import_general.Observable)();
|
|
48
50
|
/** Initializes a BdxSession as a sender, means that we upload data to the peer. */
|
|
49
51
|
static asSender(messenger, options) {
|
|
50
52
|
return new BdxSession(messenger, { isSender: true, ...options });
|
|
@@ -53,19 +55,21 @@ class BdxSession {
|
|
|
53
55
|
static asReceiver(messenger, options) {
|
|
54
56
|
return new BdxSession(messenger, { isSender: false, ...options });
|
|
55
57
|
}
|
|
56
|
-
/**
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
/**
|
|
59
|
+
* Initializes a BdxSession from an incoming *Init message. The message determines the direction of the transfer.
|
|
60
|
+
* The provided storages allow to map the file designator to a storage context depending on the path prefix in the
|
|
61
|
+
* file designator.
|
|
62
|
+
*/
|
|
63
|
+
static fromMessage(messenger, options) {
|
|
64
|
+
const { initMessageType } = options;
|
|
59
65
|
if (initMessageType !== import_types.BdxMessageType.SendInit && initMessageType !== import_types.BdxMessageType.ReceiveInit) {
|
|
60
66
|
throw new import_BdxError.BdxError(
|
|
61
67
|
`Invalid message type for BDX session initialization: ${import_types.BdxMessageType[initMessageType]} (${initMessageType})`,
|
|
62
68
|
import_types.BdxStatusCode.UnexpectedMessage
|
|
63
69
|
);
|
|
64
70
|
}
|
|
65
|
-
const { fileDesignator } = initMessage;
|
|
66
71
|
return new BdxSession(messenger, {
|
|
67
72
|
isSender: initMessageType === import_types.BdxMessageType.ReceiveInit,
|
|
68
|
-
fileDesignator: new import_PersistedFileDesignator.PersistedFileDesignator(fileDesignator, storage),
|
|
69
73
|
...options
|
|
70
74
|
});
|
|
71
75
|
}
|
|
@@ -73,14 +77,23 @@ class BdxSession {
|
|
|
73
77
|
this.#messenger = messenger;
|
|
74
78
|
this.#config = new import_BdxSessionConfiguration.BdxSessionConfiguration(options);
|
|
75
79
|
const exchange = messenger.exchange;
|
|
76
|
-
if (!exchange.
|
|
77
|
-
throw new import_BdxError.BdxError("Bdx Protocol requires a
|
|
80
|
+
if (!exchange.session.isSecure) {
|
|
81
|
+
throw new import_BdxError.BdxError("Bdx Protocol requires a secure session.");
|
|
78
82
|
}
|
|
79
83
|
exchange.closed.on(async () => {
|
|
84
|
+
if (this.#isClosed) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
80
87
|
logger.debug(`Closing BDX session for exchange ${exchange.id}`);
|
|
81
88
|
await this.close();
|
|
82
89
|
});
|
|
83
90
|
}
|
|
91
|
+
get progressInfo() {
|
|
92
|
+
return this.#progressInfo;
|
|
93
|
+
}
|
|
94
|
+
get progressFinished() {
|
|
95
|
+
return this.#progressFinished;
|
|
96
|
+
}
|
|
84
97
|
/** Method called to start the session. It will end with a successful Transfer or with an error */
|
|
85
98
|
async processTransfer() {
|
|
86
99
|
if (this.#started) {
|
|
@@ -102,6 +115,12 @@ class BdxSession {
|
|
|
102
115
|
this.#started = true;
|
|
103
116
|
try {
|
|
104
117
|
this.#transferFlow = this.#initializeFlow(await (0, import_bdx_session_initiator.bdxSessionInitiator)(this.#messenger, this.#config));
|
|
118
|
+
this.#transferFlow.progressInfo.on(
|
|
119
|
+
(bytesTransferred, totalBytesLength) => this.#progressInfo.emit(bytesTransferred, totalBytesLength)
|
|
120
|
+
);
|
|
121
|
+
this.#transferFlow.progressFinished.on(
|
|
122
|
+
(totalBytesTransferred) => this.#progressFinished.emit(totalBytesTransferred)
|
|
123
|
+
);
|
|
105
124
|
await this.#transferFlow.processTransfer();
|
|
106
125
|
await this.close();
|
|
107
126
|
} catch (error) {
|
|
@@ -109,6 +128,8 @@ class BdxSession {
|
|
|
109
128
|
await this.#messenger.sendError(error.code);
|
|
110
129
|
logger.warn(`BDX session failed with error:`, error);
|
|
111
130
|
await this.close(error);
|
|
131
|
+
error.bytesTransferred = this.#transferFlow?.transferredBytes ?? 0;
|
|
132
|
+
error.totalBytesLength = this.#transferFlow?.dataLength;
|
|
112
133
|
throw error;
|
|
113
134
|
}
|
|
114
135
|
}
|
|
@@ -141,6 +162,10 @@ class BdxSession {
|
|
|
141
162
|
get closed() {
|
|
142
163
|
return this.#closed;
|
|
143
164
|
}
|
|
165
|
+
get peerAddress() {
|
|
166
|
+
import_SecureSession.SecureSession.assert(this.#messenger.exchange.session);
|
|
167
|
+
return this.#messenger.exchange.session.peerAddress;
|
|
168
|
+
}
|
|
144
169
|
async close(error) {
|
|
145
170
|
if (this.#isClosed) {
|
|
146
171
|
return;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/bdx/BdxSession.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { FileDesignator } from "#bdx/FileDesignator.js";
|
|
6
7
|
import { BdxMessageType } from "#types";
|
|
7
8
|
import { Flow } from "./flow/Flow.js";
|
|
8
9
|
import { PersistedFileDesignator } from "./PersistedFileDesignator.js";
|
|
@@ -14,6 +15,7 @@ export declare class BdxSessionConfiguration {
|
|
|
14
15
|
get initMessage(): BdxInit | undefined;
|
|
15
16
|
get isInitiator(): boolean;
|
|
16
17
|
get fileDesignator(): PersistedFileDesignator;
|
|
18
|
+
get transferFileDesignator(): FileDesignator;
|
|
17
19
|
get transferConfig(): BdxSessionConfiguration.Config;
|
|
18
20
|
}
|
|
19
21
|
export declare namespace BdxSessionConfiguration {
|
|
@@ -38,6 +40,10 @@ export declare namespace BdxSessionConfiguration {
|
|
|
38
40
|
interface InitiatorOptions extends BdxSessionConfiguration.Config {
|
|
39
41
|
/** FileDesignator to use for the session. The value is usually pre-determined with the peer. */
|
|
40
42
|
fileDesignator: PersistedFileDesignator;
|
|
43
|
+
/**
|
|
44
|
+
* Optional file designator to use for the transfer. This can be used to separate the file designator used
|
|
45
|
+
* in BDX messages from the persisted file. */
|
|
46
|
+
transferFileDesignator?: FileDesignator;
|
|
41
47
|
}
|
|
42
48
|
interface SenderInitiatorOptions extends InitiatorOptions {
|
|
43
49
|
/** The start offset of the data to send. When using this, you need to know what you are doing. */
|
|
@@ -48,12 +54,21 @@ export declare namespace BdxSessionConfiguration {
|
|
|
48
54
|
interface ReceiverOptions extends BdxSessionConfiguration.Config {
|
|
49
55
|
initMessageType: BdxMessageType;
|
|
50
56
|
initMessage: BdxInit;
|
|
57
|
+
fileDesignator: PersistedFileDesignator;
|
|
51
58
|
}
|
|
52
59
|
interface Options extends BdxSessionConfiguration.Config {
|
|
53
60
|
/** True if the session is initiated as a sender, false for receiver */
|
|
54
61
|
isSender: boolean;
|
|
55
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* File designator to use for the session and read from or write to. It points to the persisted blob storage.
|
|
64
|
+
*/
|
|
56
65
|
fileDesignator: PersistedFileDesignator;
|
|
66
|
+
/**
|
|
67
|
+
* Optional Transfer FileDesignator to use for the transfer, if different from the fileDesignator. This is
|
|
68
|
+
* mainly useful when receiving data where the fileDesignator used in the BDX messages is defined by the file
|
|
69
|
+
* sender and when the persisted file is stored under a different designator.
|
|
70
|
+
*/
|
|
71
|
+
transferFileDesignator?: FileDesignator;
|
|
57
72
|
/** The initial message received to start the session */
|
|
58
73
|
initMessage?: BdxInit;
|
|
59
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BdxSessionConfiguration.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxSessionConfiguration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"BdxSessionConfiguration.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxSessionConfiguration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,qBAAa,uBAAuB;;gBAOpB,OAAO,EAAE,uBAAuB,CAAC,OAAO;IAkCpD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,WAAW,IAAI,OAAO,GAAG,SAAS,CAErC;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,cAAc,IAAI,uBAAuB,CAE5C;IAED,IAAI,sBAAsB,IAAI,cAAc,CAE3C;IAED,IAAI,cAAc,IAAI,uBAAuB,CAAC,MAAM,CAEnD;CACJ;AAED,yBAAiB,uBAAuB,CAAC;IACrC,UAAiB,MAAM;QACnB;;;WAGG;QACH,oBAAoB,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAEzC,4EAA4E;QAC5E,2BAA2B,CAAC,EAAE,KAAK,CAAC;QAEpC,sHAAsH;QACtH,YAAY,CAAC,EAAE,MAAM,CAAC;QAEtB,sEAAsE;QACtE,eAAe,CAAC,EAAE,MAAM,CAAC;QAEzB,kGAAkG;QAClG,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAE3B,oGAAoG;QACpG,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B;IAEM,MAAM,aAAa,EAAE,uBAAuB,CAAC,MAOnD,CAAC;IAEF,UAAiB,gBAAiB,SAAQ,uBAAuB,CAAC,MAAM;QACpE,gGAAgG;QAChG,cAAc,EAAE,uBAAuB,CAAC;QAExC;;sDAE8C;QAC9C,sBAAsB,CAAC,EAAE,cAAc,CAAC;KAC3C;IAED,UAAiB,sBAAuB,SAAQ,gBAAgB;QAC5D,kGAAkG;QAClG,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAE3B,oGAAoG;QACpG,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B;IAED,UAAiB,eAAgB,SAAQ,uBAAuB,CAAC,MAAM;QACnE,eAAe,EAAE,cAAc,CAAC;QAChC,WAAW,EAAE,OAAO,CAAC;QACrB,cAAc,EAAE,uBAAuB,CAAC;KAC3C;IAED,UAAiB,OAAQ,SAAQ,uBAAuB,CAAC,MAAM;QAC3D,uEAAuE;QACvE,QAAQ,EAAE,OAAO,CAAC;QAElB;;WAEG;QACH,cAAc,EAAE,uBAAuB,CAAC;QAExC;;;;WAIG;QACH,sBAAsB,CAAC,EAAE,cAAc,CAAC;QAExC,wDAAwD;QACxD,WAAW,CAAC,EAAE,OAAO,CAAC;KACzB;CACJ"}
|
|
@@ -33,9 +33,11 @@ class BdxSessionConfiguration {
|
|
|
33
33
|
#initMessage;
|
|
34
34
|
#transferConfig;
|
|
35
35
|
#fileDesignator;
|
|
36
|
+
#transferFileDesignator;
|
|
36
37
|
constructor(options) {
|
|
37
|
-
const { isSender, fileDesignator, initMessage } = options;
|
|
38
|
+
const { isSender, fileDesignator, transferFileDesignator, initMessage } = options;
|
|
38
39
|
this.#fileDesignator = fileDesignator;
|
|
40
|
+
this.#transferFileDesignator = transferFileDesignator ?? fileDesignator;
|
|
39
41
|
this.#isSender = isSender;
|
|
40
42
|
this.#initMessage = initMessage;
|
|
41
43
|
this.#transferConfig = { ...BdxSessionConfiguration.DefaultConfig, ...options };
|
|
@@ -75,6 +77,9 @@ class BdxSessionConfiguration {
|
|
|
75
77
|
get fileDesignator() {
|
|
76
78
|
return this.#fileDesignator;
|
|
77
79
|
}
|
|
80
|
+
get transferFileDesignator() {
|
|
81
|
+
return this.#transferFileDesignator;
|
|
82
|
+
}
|
|
78
83
|
get transferConfig() {
|
|
79
84
|
return this.#transferConfig;
|
|
80
85
|
}
|