@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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/bdx/BdxMessenger.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA,EACI;AAAA,EACA;AAAA,
|
|
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"}
|
|
@@ -3,7 +3,13 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { BdxError } from "#bdx/BdxError.js";
|
|
7
|
+
import { FileDesignator } from "#bdx/FileDesignator.js";
|
|
8
|
+
import { PersistedFileDesignator } from "#bdx/PersistedFileDesignator.js";
|
|
9
|
+
import { Environmental, isDeepEqual, Logger, MatterError, Observable } from "#general";
|
|
10
|
+
import { PeerAddress } from "#peer/PeerAddress.js";
|
|
11
|
+
import { ExchangeManager } from "#protocol/ExchangeManager.js";
|
|
12
|
+
import { SecureSession } from "#session/SecureSession.js";
|
|
7
13
|
import { BDX_PROTOCOL_ID, BdxMessageType, BdxStatusCode } from "#types";
|
|
8
14
|
import { BdxMessenger } from "./BdxMessenger.js";
|
|
9
15
|
import { BdxSession } from "./BdxSession.js";
|
|
@@ -13,33 +19,87 @@ class BdxProtocol {
|
|
|
13
19
|
id = BDX_PROTOCOL_ID;
|
|
14
20
|
requiresSecureSession = true;
|
|
15
21
|
#activeBdxSessions = /* @__PURE__ */ new Map();
|
|
16
|
-
#
|
|
17
|
-
#
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
#peerScopes = /* @__PURE__ */ new Map();
|
|
23
|
+
#sessionStarted = Observable();
|
|
24
|
+
#sessionClosed = Observable();
|
|
25
|
+
static [Environmental.create](env) {
|
|
26
|
+
const instance = new BdxProtocol();
|
|
27
|
+
env.get(ExchangeManager).addProtocolHandler(instance);
|
|
28
|
+
env.set(BdxProtocol, instance);
|
|
29
|
+
return instance;
|
|
30
|
+
}
|
|
31
|
+
get sessionStarted() {
|
|
32
|
+
return this.#sessionStarted;
|
|
33
|
+
}
|
|
34
|
+
get sessionClosed() {
|
|
35
|
+
return this.#sessionClosed;
|
|
36
|
+
}
|
|
37
|
+
#peerScopeKey(peer, scope) {
|
|
38
|
+
if (scope === void 0) {
|
|
39
|
+
throw new MatterError("StorageContext must have a defined scope to be used with enableScope");
|
|
40
|
+
}
|
|
41
|
+
return `${peer.toString()}-${scope}`;
|
|
42
|
+
}
|
|
43
|
+
enablePeerForScope(peer, storage, config) {
|
|
44
|
+
const peerScopeStr = this.#peerScopeKey(peer, storage.scope);
|
|
45
|
+
const peerDetails = this.#peerScopes.get(peerScopeStr);
|
|
46
|
+
if (peerDetails !== void 0) {
|
|
47
|
+
const { storage: existingStorage, config: existingConfig } = peerDetails;
|
|
48
|
+
logger.warn(config, "vs", existingConfig);
|
|
49
|
+
if (existingStorage !== storage || isDeepEqual(config, existingConfig)) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
} else {
|
|
53
|
+
this.#peerScopes.set(peerScopeStr, { peer, storage, config });
|
|
54
|
+
}
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
async disablePeerForScope(peer, storage, force = false) {
|
|
58
|
+
if (this.#activeBdxSessions.size > 0) {
|
|
59
|
+
for (const { session, scope } of this.#activeBdxSessions.values()) {
|
|
60
|
+
if (storage.scope === scope && PeerAddress.is(peer, session.peerAddress)) {
|
|
61
|
+
if (force) {
|
|
62
|
+
await session.close(new MatterError("BDX protocol scope disabled"));
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
throw new MatterError(
|
|
66
|
+
`Cannot disable BDX for peer "${peer}" (scope: ${scope}) because there are active BDX sessions using it`
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
this.#peerScopes.delete(this.#peerScopeKey(peer, storage.scope));
|
|
26
72
|
}
|
|
27
73
|
async onNewExchange(exchange, message) {
|
|
28
74
|
const initMessageType = message.payloadHeader.messageType;
|
|
29
|
-
|
|
75
|
+
SecureSession.assert(exchange.session);
|
|
30
76
|
switch (initMessageType) {
|
|
31
77
|
case BdxMessageType.SendInit:
|
|
32
78
|
case BdxMessageType.ReceiveInit:
|
|
33
79
|
logger.debug(
|
|
34
80
|
`Initialize Session for ${BdxMessageType[initMessageType]} message on BDX protocol for exchange ${exchange.id}`
|
|
35
81
|
);
|
|
82
|
+
await exchange.nextMessage();
|
|
36
83
|
const { payload } = message;
|
|
37
|
-
const
|
|
84
|
+
const initMessage = new BdxInitMessageSchema().decode(payload);
|
|
85
|
+
const { fileDesignator: messageFileDesignator } = initMessage;
|
|
86
|
+
const fd = new FileDesignator(messageFileDesignator);
|
|
87
|
+
const [storageScope, fileDesignator] = fd.text.split("/");
|
|
88
|
+
const { storage, config } = this.#peerScopes.get(this.#peerScopeKey(exchange.session.peerAddress, storageScope)) ?? {};
|
|
89
|
+
if (storage === void 0 || fileDesignator === void 0) {
|
|
90
|
+
throw new BdxError(
|
|
91
|
+
`No storage context found for BDX file designator "${fd.text}"`,
|
|
92
|
+
BdxStatusCode.FileDesignatorUnknown
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
const messenger = new BdxMessenger(exchange, config?.messageTimeout);
|
|
96
|
+
const bdxSession = BdxSession.fromMessage(messenger, {
|
|
38
97
|
initMessageType,
|
|
39
|
-
initMessage
|
|
40
|
-
|
|
98
|
+
initMessage,
|
|
99
|
+
fileDesignator: new PersistedFileDesignator(fileDesignator, storage),
|
|
100
|
+
...config
|
|
41
101
|
});
|
|
42
|
-
await this.#registerSession(messenger, bdxSession);
|
|
102
|
+
await this.#registerSession(messenger, bdxSession, storageScope);
|
|
43
103
|
try {
|
|
44
104
|
await bdxSession.processTransfer();
|
|
45
105
|
} catch (error) {
|
|
@@ -50,27 +110,29 @@ class BdxProtocol {
|
|
|
50
110
|
logger.warn(
|
|
51
111
|
`Unexpected BDX message type ${BdxMessageType[initMessageType]} on new exchange ${exchange.id}`
|
|
52
112
|
);
|
|
53
|
-
await
|
|
113
|
+
await new BdxMessenger(exchange).sendError(BdxStatusCode.UnexpectedMessage);
|
|
54
114
|
}
|
|
55
115
|
}
|
|
56
116
|
/** Make sure only one BDX session can be active per exchange and that the exchange is closed with the BDX session. */
|
|
57
|
-
async #registerSession(messenger, bdxSession) {
|
|
117
|
+
async #registerSession(messenger, bdxSession, scope) {
|
|
58
118
|
const exchange = messenger.exchange;
|
|
59
119
|
if (this.#activeBdxSessions.has(exchange)) {
|
|
60
120
|
logger.warn(`BDX session for exchange ${exchange.id} already exists, sending error`);
|
|
61
121
|
await messenger.sendError(BdxStatusCode.UnexpectedMessage);
|
|
62
122
|
return;
|
|
63
123
|
}
|
|
64
|
-
this.#activeBdxSessions.set(exchange, bdxSession);
|
|
124
|
+
this.#activeBdxSessions.set(exchange, { session: bdxSession, scope });
|
|
125
|
+
this.#sessionStarted.emit(bdxSession, scope);
|
|
65
126
|
bdxSession.closed.on(async () => {
|
|
66
127
|
logger.debug(`BDX session for exchange ${exchange.id} closed`);
|
|
67
128
|
this.#activeBdxSessions.delete(exchange);
|
|
68
129
|
await exchange.close();
|
|
130
|
+
this.#sessionClosed.emit(bdxSession, scope);
|
|
69
131
|
});
|
|
70
132
|
}
|
|
71
133
|
async close() {
|
|
72
134
|
logger.debug(`Closing BDX protocol handler with ${this.#activeBdxSessions.size} active sessions`);
|
|
73
|
-
for (const session of this.#activeBdxSessions.values()) {
|
|
135
|
+
for (const { session } of this.#activeBdxSessions.values()) {
|
|
74
136
|
await session.close(new MatterError("BDX protocol handler closed"));
|
|
75
137
|
}
|
|
76
138
|
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,SAAS,QAAQ,
|
|
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"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { AsyncObservable, Diagnostic, Logger } from "#general";
|
|
6
|
+
import { AsyncObservable, Diagnostic, Logger, Observable } from "#general";
|
|
7
|
+
import { SecureSession } from "#session/SecureSession.js";
|
|
7
8
|
import { BdxMessageType, BdxStatusCode } from "#types";
|
|
8
9
|
import { bdxSessionInitiator } from "./bdx-session-initiator.js";
|
|
9
10
|
import { BdxError } from "./BdxError.js";
|
|
@@ -13,7 +14,6 @@ import { DrivingReceivingFlow } from "./flow/DrivingReceivingFlow.js";
|
|
|
13
14
|
import { Flow } from "./flow/Flow.js";
|
|
14
15
|
import { FollowingReceivingFlow } from "./flow/FollowingReceivingFlow.js";
|
|
15
16
|
import { FollowingSendingFlow } from "./flow/FollowingSendingFlow.js";
|
|
16
|
-
import { PersistedFileDesignator } from "./PersistedFileDesignator.js";
|
|
17
17
|
const logger = Logger.get("BdxSession");
|
|
18
18
|
class BdxSession {
|
|
19
19
|
#messenger;
|
|
@@ -22,6 +22,8 @@ class BdxSession {
|
|
|
22
22
|
#isClosed = false;
|
|
23
23
|
#config;
|
|
24
24
|
#transferFlow;
|
|
25
|
+
#progressInfo = Observable();
|
|
26
|
+
#progressFinished = Observable();
|
|
25
27
|
/** Initializes a BdxSession as a sender, means that we upload data to the peer. */
|
|
26
28
|
static asSender(messenger, options) {
|
|
27
29
|
return new BdxSession(messenger, { isSender: true, ...options });
|
|
@@ -30,19 +32,21 @@ class BdxSession {
|
|
|
30
32
|
static asReceiver(messenger, options) {
|
|
31
33
|
return new BdxSession(messenger, { isSender: false, ...options });
|
|
32
34
|
}
|
|
33
|
-
/**
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Initializes a BdxSession from an incoming *Init message. The message determines the direction of the transfer.
|
|
37
|
+
* The provided storages allow to map the file designator to a storage context depending on the path prefix in the
|
|
38
|
+
* file designator.
|
|
39
|
+
*/
|
|
40
|
+
static fromMessage(messenger, options) {
|
|
41
|
+
const { initMessageType } = options;
|
|
36
42
|
if (initMessageType !== BdxMessageType.SendInit && initMessageType !== BdxMessageType.ReceiveInit) {
|
|
37
43
|
throw new BdxError(
|
|
38
44
|
`Invalid message type for BDX session initialization: ${BdxMessageType[initMessageType]} (${initMessageType})`,
|
|
39
45
|
BdxStatusCode.UnexpectedMessage
|
|
40
46
|
);
|
|
41
47
|
}
|
|
42
|
-
const { fileDesignator } = initMessage;
|
|
43
48
|
return new BdxSession(messenger, {
|
|
44
49
|
isSender: initMessageType === BdxMessageType.ReceiveInit,
|
|
45
|
-
fileDesignator: new PersistedFileDesignator(fileDesignator, storage),
|
|
46
50
|
...options
|
|
47
51
|
});
|
|
48
52
|
}
|
|
@@ -50,14 +54,23 @@ class BdxSession {
|
|
|
50
54
|
this.#messenger = messenger;
|
|
51
55
|
this.#config = new BdxSessionConfiguration(options);
|
|
52
56
|
const exchange = messenger.exchange;
|
|
53
|
-
if (!exchange.
|
|
54
|
-
throw new BdxError("Bdx Protocol requires a
|
|
57
|
+
if (!exchange.session.isSecure) {
|
|
58
|
+
throw new BdxError("Bdx Protocol requires a secure session.");
|
|
55
59
|
}
|
|
56
60
|
exchange.closed.on(async () => {
|
|
61
|
+
if (this.#isClosed) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
57
64
|
logger.debug(`Closing BDX session for exchange ${exchange.id}`);
|
|
58
65
|
await this.close();
|
|
59
66
|
});
|
|
60
67
|
}
|
|
68
|
+
get progressInfo() {
|
|
69
|
+
return this.#progressInfo;
|
|
70
|
+
}
|
|
71
|
+
get progressFinished() {
|
|
72
|
+
return this.#progressFinished;
|
|
73
|
+
}
|
|
61
74
|
/** Method called to start the session. It will end with a successful Transfer or with an error */
|
|
62
75
|
async processTransfer() {
|
|
63
76
|
if (this.#started) {
|
|
@@ -79,6 +92,12 @@ class BdxSession {
|
|
|
79
92
|
this.#started = true;
|
|
80
93
|
try {
|
|
81
94
|
this.#transferFlow = this.#initializeFlow(await bdxSessionInitiator(this.#messenger, this.#config));
|
|
95
|
+
this.#transferFlow.progressInfo.on(
|
|
96
|
+
(bytesTransferred, totalBytesLength) => this.#progressInfo.emit(bytesTransferred, totalBytesLength)
|
|
97
|
+
);
|
|
98
|
+
this.#transferFlow.progressFinished.on(
|
|
99
|
+
(totalBytesTransferred) => this.#progressFinished.emit(totalBytesTransferred)
|
|
100
|
+
);
|
|
82
101
|
await this.#transferFlow.processTransfer();
|
|
83
102
|
await this.close();
|
|
84
103
|
} catch (error) {
|
|
@@ -86,6 +105,8 @@ class BdxSession {
|
|
|
86
105
|
await this.#messenger.sendError(error.code);
|
|
87
106
|
logger.warn(`BDX session failed with error:`, error);
|
|
88
107
|
await this.close(error);
|
|
108
|
+
error.bytesTransferred = this.#transferFlow?.transferredBytes ?? 0;
|
|
109
|
+
error.totalBytesLength = this.#transferFlow?.dataLength;
|
|
89
110
|
throw error;
|
|
90
111
|
}
|
|
91
112
|
}
|
|
@@ -118,6 +139,10 @@ class BdxSession {
|
|
|
118
139
|
get closed() {
|
|
119
140
|
return this.#closed;
|
|
120
141
|
}
|
|
142
|
+
get peerAddress() {
|
|
143
|
+
SecureSession.assert(this.#messenger.exchange.session);
|
|
144
|
+
return this.#messenger.exchange.session.peerAddress;
|
|
145
|
+
}
|
|
121
146
|
async close(error) {
|
|
122
147
|
if (this.#isClosed) {
|
|
123
148
|
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,SAAS,iBAA+B,YAAY,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,iBAA+B,YAAY,QAAQ,kBAAkB;AAC9E,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB,qBAAqB;AAC9C,SAAS,2BAA2B;AACpC,SAAS,gBAAgB;AAEzB,SAAS,+BAA+B;AACxC,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,YAAY;AACrB,SAAS,8BAA8B;AACvC,SAAS,4BAA4B;AAErC,MAAM,SAAS,OAAO,IAAI,YAAY;AAc/B,MAAM,WAAW;AAAA,EACpB;AAAA,EACA,WAAW;AAAA,EACX,UAAU,gBAAgB;AAAA,EAC1B,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,gBAAgB,WAA6E;AAAA,EAC7F,oBAAoB,WAA4C;AAAA;AAAA,EAGhE,OAAO,SAAS,WAAyB,SAAqE;AAC1G,WAAO,IAAI,WAAW,WAAW,EAAE,UAAU,MAAM,GAAG,QAAQ,CAAC;AAAA,EACnE;AAAA;AAAA,EAGA,OAAO,WAAW,WAAyB,SAA+D;AACtG,WAAO,IAAI,WAAW,WAAW,EAAE,UAAU,OAAO,GAAG,QAAQ,CAAC;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,YAAY,WAAyB,SAA8D;AACtG,UAAM,EAAE,gBAAgB,IAAI;AAC5B,QAAI,oBAAoB,eAAe,YAAY,oBAAoB,eAAe,aAAa;AAC/F,YAAM,IAAI;AAAA,QACN,wDAAwD,eAAe,eAAe,CAAC,KAAK,eAAe;AAAA,QAC3G,cAAc;AAAA,MAClB;AAAA,IACJ;AAEA,WAAO,IAAI,WAAW,WAAW;AAAA,MAC7B,UAAU,oBAAoB,eAAe;AAAA,MAC7C,GAAG;AAAA,IACP,CAAC;AAAA,EACL;AAAA,EAEQ,YAAY,WAAyB,SAA0C;AACnF,SAAK,aAAa;AAElB,SAAK,UAAU,IAAI,wBAAwB,OAAO;AAElD,UAAM,WAAW,UAAU;AAC3B,QAAI,CAAC,SAAS,QAAQ,UAAU;AAC5B,YAAM,IAAI,SAAS,yCAAyC;AAAA,IAChE;AACA,aAAS,OAAO,GAAG,YAAY;AAC3B,UAAI,KAAK,WAAW;AAChB;AAAA,MACJ;AACA,aAAO,MAAM,oCAAoC,SAAS,EAAE,EAAE;AAC9D,YAAM,KAAK,MAAM;AAAA,IACrB,CAAC;AAAA,EACL;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,mBAAmB;AACnB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,MAAM,kBAAkB;AACpB,QAAI,KAAK,UAAU;AACf,YAAM,IAAI,SAAS,+BAA+B,cAAc,iBAAiB;AAAA,IACrF;AACA,QAAI,KAAK,WAAW;AAChB,YAAM,IAAI,SAAS,8BAA8B,cAAc,iBAAiB;AAAA,IACpF;AAEA,UAAM,EAAE,UAAU,aAAa,eAAe,IAAI,KAAK;AACvD,WAAO;AAAA,MACH;AAAA,MACA,WAAW,KAAK;AAAA,QACZ,MAAM,KAAK,WAAW,SAAS;AAAA,QAC/B;AAAA,QACA;AAAA,QACA,UAAU,gBAAgB;AAAA,MAC9B,CAAC;AAAA,IACL;AAEA,SAAK,WAAW;AAChB,QAAI;AACA,WAAK,gBAAgB,KAAK,gBAAgB,MAAM,oBAAoB,KAAK,YAAY,KAAK,OAAO,CAAC;AAClG,WAAK,cAAc,aAAa;AAAA,QAAG,CAAC,kBAAkB,qBAClD,KAAK,cAAc,KAAK,kBAAkB,gBAAgB;AAAA,MAC9D;AACA,WAAK,cAAc,iBAAiB;AAAA,QAAG,2BACnC,KAAK,kBAAkB,KAAK,qBAAqB;AAAA,MACrD;AAEA,YAAM,KAAK,cAAc,gBAAgB;AAEzC,YAAM,KAAK,MAAM;AAAA,IACrB,SAAS,OAAO;AACZ,eAAS,OAAO,KAAK;AACrB,YAAM,KAAK,WAAW,UAAU,MAAM,IAAI;AAE1C,aAAO,KAAK,kCAAkC,KAAK;AAEnD,YAAM,KAAK,MAAM,KAAK;AAEtB,YAAM,mBAAmB,KAAK,eAAe,oBAAoB;AACjE,YAAM,mBAAmB,KAAK,eAAe;AAC7C,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,gBAAgB,oBAAgD;AAC5D,UAAM,EAAE,cAAc,sBAAsB,YAAY,UAAU,eAAe,IAAI;AACrF,UAAM,gBAAgB,iBAAiB,KAAK,WAAW;AAEvD,UAAM,OAAO,GAAG,gBAAgB,GAAG,uBAAuB,WAAW,EAAE,YAAY,WAAW,IAAI,WAAW,WAAW,UAAU;AAClI,WAAO;AAAA,MACH,6BAA6B,IAAI;AAAA,MACjC,WAAW,KAAK;AAAA,QACZ,MAAM,KAAK,WAAW,SAAS;AAAA,QAC/B;AAAA,QACA,UAAU,eAAe;AAAA,MAC7B,CAAC;AAAA,IACL;AAEA,QAAI;AACJ,QAAI,UAAU;AACV,UAAI,iBAAiB,sBAAsB;AACvC,mBAAW;AAAA,MACf,OAAO;AACH,mBAAW;AAAA,MACf;AAAA,IACJ,WAAW,iBAAiB,sBAAsB;AAC9C,iBAAW;AAAA,IACf,OAAO;AACH,iBAAW;AAAA,IACf;AAEA,WAAO,IAAI,SAAS,KAAK,YAAY,kBAAkB;AAAA,EAC3D;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AACd,kBAAc,OAAO,KAAK,WAAW,SAAS,OAAO;AACrD,WAAO,KAAK,WAAW,SAAS,QAAQ;AAAA,EAC5C;AAAA,EAEA,MAAM,MAAM,OAAiB;AACzB,QAAI,KAAK,WAAW;AAChB;AAAA,IACJ;AACA,SAAK,YAAY;AACjB,UAAM,KAAK,eAAe,MAAM,KAAK;AACrC,UAAM,KAAK,QAAQ,KAAK;AAAA,EAC5B;AACJ;",
|
|
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"}
|
|
@@ -10,9 +10,11 @@ class BdxSessionConfiguration {
|
|
|
10
10
|
#initMessage;
|
|
11
11
|
#transferConfig;
|
|
12
12
|
#fileDesignator;
|
|
13
|
+
#transferFileDesignator;
|
|
13
14
|
constructor(options) {
|
|
14
|
-
const { isSender, fileDesignator, initMessage } = options;
|
|
15
|
+
const { isSender, fileDesignator, transferFileDesignator, initMessage } = options;
|
|
15
16
|
this.#fileDesignator = fileDesignator;
|
|
17
|
+
this.#transferFileDesignator = transferFileDesignator ?? fileDesignator;
|
|
16
18
|
this.#isSender = isSender;
|
|
17
19
|
this.#initMessage = initMessage;
|
|
18
20
|
this.#transferConfig = { ...BdxSessionConfiguration.DefaultConfig, ...options };
|
|
@@ -52,6 +54,9 @@ class BdxSessionConfiguration {
|
|
|
52
54
|
get fileDesignator() {
|
|
53
55
|
return this.#fileDesignator;
|
|
54
56
|
}
|
|
57
|
+
get transferFileDesignator() {
|
|
58
|
+
return this.#transferFileDesignator;
|
|
59
|
+
}
|
|
55
60
|
get transferConfig() {
|
|
56
61
|
return this.#transferConfig;
|
|
57
62
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/bdx/BdxSessionConfiguration.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,2BAA2B;AAEpC,SAAS,YAAY;AAId,MAAM,wBAAwB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,SAA0C;AAClD,UAAM,EAAE,UAAU,gBAAgB,wBAAwB,YAAY,IAAI;AAC1E,SAAK,kBAAkB;AACvB,SAAK,0BAA0B,0BAA0B;AACzD,SAAK,YAAY;AACjB,SAAK,eAAe;AACpB,SAAK,kBAAkB,EAAE,GAAG,wBAAwB,eAAe,GAAG,QAAQ;AAG9E,UAAM;AAAA,MACF,uBAAuB,CAAC;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI,KAAK;AACT,QAAI,qBAAqB,WAAW,GAAG;AACnC,YAAM,IAAI,oBAAoB,iDAAiD;AAAA,IACnF;AACA,QAAI,iBAAiB,UAAa,gBAAgB,GAAG;AACjD,YAAM,IAAI,oBAAoB,uCAAuC;AAAA,IACzE;AACA,QAAI,oBAAoB,UAAa,mBAAmB,GAAG;AACvD,YAAM,IAAI,oBAAoB,0CAA0C;AAAA,IAC5E;AACA,QAAI,6BAA6B;AAC7B,YAAM,IAAI,oBAAoB,wCAAwC;AAAA,IAC1E;AACA,QAAI,CAAC,aAAa,sBAAsB,UAAa,oBAAoB,SAAY;AACjF,YAAM,IAAI,oBAAoB,0EAA0E;AAAA,IAC5G;AAAA,EACJ;AAAA,EAEA,IAAI,WAAoB;AACpB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAmC;AACnC,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAuB;AACvB,WAAO,KAAK,iBAAiB;AAAA,EACjC;AAAA,EAEA,IAAI,iBAA0C;AAC1C,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,yBAAyC;AACzC,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,iBAAiD;AACjD,WAAO,KAAK;AAAA,EAChB;AACJ;AAAA,CAEO,CAAUA,6BAAV;AAwBI,EAAMA,yBAAA,gBAAgD;AAAA,IACzD,sBAAsB;AAAA,MAClB,KAAK,WAAW;AAAA;AAAA,MAChB,KAAK,WAAW;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA;AAAA,IAC7B,iBAAiB,OAAQ;AAAA;AAAA,EAC7B;AAAA,GA/Ba;",
|
|
5
5
|
"names": ["BdxSessionConfiguration"]
|
|
6
6
|
}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Bytes } from "#general";
|
|
6
|
+
import { Bytes, Diagnostic } from "#general";
|
|
7
|
+
import { NodeId } from "#types";
|
|
7
8
|
/**
|
|
8
9
|
* Class to represent a File designator from Matter.
|
|
9
10
|
* Specification wise this is a bytes object, but to store in a storage we need a string name.
|
|
@@ -11,11 +12,24 @@ import { Bytes } from "#general";
|
|
|
11
12
|
*/
|
|
12
13
|
export declare class FileDesignator {
|
|
13
14
|
#private;
|
|
15
|
+
[Diagnostic.value]: string;
|
|
16
|
+
/**
|
|
17
|
+
* Initialize a FileDesignator from a BDX URI string. Also returns the source node ID of the owner of the file.
|
|
18
|
+
*/
|
|
19
|
+
static fromBdxUri(uri: string): {
|
|
20
|
+
fileDesignator: FileDesignator;
|
|
21
|
+
sourceNodeId: NodeId;
|
|
22
|
+
};
|
|
14
23
|
/** Create a FileDesignator from a string or bytes object. */
|
|
15
24
|
constructor(fd: string | Bytes);
|
|
16
25
|
/** Return the bytes representation of the FileDesignator. */
|
|
17
26
|
get bytes(): Bytes;
|
|
18
27
|
/** Return the textual/string representation of the FileDesignator. */
|
|
19
28
|
get text(): string;
|
|
29
|
+
/**
|
|
30
|
+
* Return the FileDesignator as a BDX URI string. The source node ID of the owner of the file is required to
|
|
31
|
+
* generate a valid URI.
|
|
32
|
+
*/
|
|
33
|
+
asBdxUri(sourceNode: NodeId): string;
|
|
20
34
|
}
|
|
21
35
|
//# sourceMappingURL=FileDesignator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileDesignator.d.ts","sourceRoot":"","sources":["../../../src/bdx/FileDesignator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"FileDesignator.d.ts","sourceRoot":"","sources":["../../../src/bdx/FileDesignator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAuB,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;;GAIG;AACH,qBAAa,cAAc;;IA4DnB,CAAC,UAAU,CAAC,KAAK,CAAC;IAzDtB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;;;;IAW7B,6DAA6D;gBACjD,EAAE,EAAE,MAAM,GAAG,KAAK;IAQ9B,6DAA6D;IAC7D,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,sEAAsE;IACtE,IAAI,IAAI,IAAI,MAAM,CAkBjB;IAED;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM;CAO9B"}
|
|
@@ -3,9 +3,23 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Bytes } from "#general";
|
|
6
|
+
import { Bytes, Diagnostic, ImplementationError } from "#general";
|
|
7
|
+
import { NodeId } from "#types";
|
|
7
8
|
class FileDesignator {
|
|
8
9
|
#fd;
|
|
10
|
+
/**
|
|
11
|
+
* Initialize a FileDesignator from a BDX URI string. Also returns the source node ID of the owner of the file.
|
|
12
|
+
*/
|
|
13
|
+
static fromBdxUri(uri) {
|
|
14
|
+
const bdxParts = uri.match(/^bdx:\/\/([0-9A-F]{16})\/(\S+)$/);
|
|
15
|
+
if (!bdxParts) {
|
|
16
|
+
throw new ImplementationError(`Invalid OTA URI "${uri}"`);
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
fileDesignator: new FileDesignator(bdxParts[2]),
|
|
20
|
+
sourceNodeId: NodeId(BigInt(`0x${bdxParts[1]}`))
|
|
21
|
+
};
|
|
22
|
+
}
|
|
9
23
|
/** Create a FileDesignator from a string or bytes object. */
|
|
10
24
|
constructor(fd) {
|
|
11
25
|
if (typeof fd === "string") {
|
|
@@ -26,8 +40,10 @@ class FileDesignator {
|
|
|
26
40
|
byte >= 97 && byte <= 122 || // a-z
|
|
27
41
|
byte >= 48 && byte <= 57 || // 0..9
|
|
28
42
|
byte === 46 || // "."
|
|
29
|
-
byte === 45
|
|
30
|
-
// "
|
|
43
|
+
byte === 45 || // "-"
|
|
44
|
+
byte === 95 || // "_"
|
|
45
|
+
byte === 47
|
|
46
|
+
// "/"
|
|
31
47
|
);
|
|
32
48
|
if (isValidName) {
|
|
33
49
|
return fileDesignatorData.reduce((name, byte) => name + String.fromCharCode(byte), "");
|
|
@@ -35,6 +51,16 @@ class FileDesignator {
|
|
|
35
51
|
return `0x${Bytes.toHex(fileDesignatorData)}`;
|
|
36
52
|
}
|
|
37
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Return the FileDesignator as a BDX URI string. The source node ID of the owner of the file is required to
|
|
56
|
+
* generate a valid URI.
|
|
57
|
+
*/
|
|
58
|
+
asBdxUri(sourceNode) {
|
|
59
|
+
return `bdx://${NodeId.strOf(sourceNode).toUpperCase()}/${this.text}`;
|
|
60
|
+
}
|
|
61
|
+
get [Diagnostic.value]() {
|
|
62
|
+
return this.text;
|
|
63
|
+
}
|
|
38
64
|
}
|
|
39
65
|
export {
|
|
40
66
|
FileDesignator
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/bdx/FileDesignator.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,YAAY,2BAA2B;AACvD,SAAS,cAAc;AAOhB,MAAM,eAAe;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,WAAW,KAAa;AAC3B,UAAM,WAAW,IAAI,MAAM,iCAAiC;AAC5D,QAAI,CAAC,UAAU;AACX,YAAM,IAAI,oBAAoB,oBAAoB,GAAG,GAAG;AAAA,IAC5D;AACA,WAAO;AAAA,MACH,gBAAgB,IAAI,eAAe,SAAS,CAAC,CAAC;AAAA,MAC9C,cAAc,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC;AAAA,IACnD;AAAA,EACJ;AAAA;AAAA,EAGA,YAAY,IAAoB;AAC5B,QAAI,OAAO,OAAO,UAAU;AACxB,WAAK,MAAM,MAAM,WAAW,EAAE;AAAA,IAClC,OAAO;AACH,WAAK,MAAM;AAAA,IACf;AAAA,EACJ;AAAA;AAAA,EAGA,IAAI,QAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,IAAI,OAAe;AACf,UAAM,qBAAqB,MAAM,GAAG,KAAK,GAAG;AAE5C,UAAM,cAAc,mBAAmB;AAAA,MACnC,UACK,QAAQ,MAAQ,QAAQ;AAAA,MACxB,QAAQ,MAAQ,QAAQ;AAAA,MACxB,QAAQ,MAAQ,QAAQ;AAAA,MACzB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA;AAAA,IACjB;AACA,QAAI,aAAa;AACb,aAAO,mBAAmB,OAAO,CAAC,MAAM,SAAS,OAAO,OAAO,aAAa,IAAI,GAAG,EAAE;AAAA,IACzF,OAAO;AACH,aAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAAA,IAC/C;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS,YAAoB;AACzB,WAAO,SAAS,OAAO,MAAM,UAAU,EAAE,YAAY,CAAC,IAAI,KAAK,IAAI;AAAA,EACvE;AAAA,EAEA,KAAK,WAAW,KAAK,IAAY;AAC7B,WAAO,KAAK;AAAA,EAChB;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|