@matter/protocol 0.16.0-alpha.0-20250913-0bc2515df → 0.16.0-alpha.0-20250920-809524dba
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/bdx/BdxClient.d.ts +31 -0
- package/dist/cjs/bdx/BdxClient.d.ts.map +1 -0
- package/dist/cjs/bdx/BdxClient.js +57 -0
- package/dist/cjs/bdx/BdxClient.js.map +6 -0
- package/dist/cjs/bdx/BdxError.d.ts +21 -0
- package/dist/cjs/bdx/BdxError.d.ts.map +1 -0
- package/dist/cjs/bdx/BdxError.js +54 -0
- package/dist/cjs/bdx/BdxError.js.map +6 -0
- package/dist/cjs/bdx/BdxMessenger.d.ts +77 -0
- package/dist/cjs/bdx/BdxMessenger.d.ts.map +1 -0
- package/dist/cjs/bdx/BdxMessenger.js +245 -0
- package/dist/cjs/bdx/BdxMessenger.js.map +6 -0
- package/dist/cjs/bdx/BdxProtocol.d.ts +25 -0
- package/dist/cjs/bdx/BdxProtocol.d.ts.map +1 -0
- package/dist/cjs/bdx/BdxProtocol.js +102 -0
- package/dist/cjs/bdx/BdxProtocol.js.map +6 -0
- package/dist/cjs/bdx/BdxSession.d.ts +36 -0
- package/dist/cjs/bdx/BdxSession.d.ts.map +1 -0
- package/dist/cjs/bdx/BdxSession.js +153 -0
- package/dist/cjs/bdx/BdxSession.js.map +6 -0
- package/dist/cjs/bdx/BdxSessionConfiguration.d.ts +61 -0
- package/dist/cjs/bdx/BdxSessionConfiguration.d.ts.map +1 -0
- package/dist/cjs/bdx/BdxSessionConfiguration.js +95 -0
- package/dist/cjs/bdx/BdxSessionConfiguration.js.map +6 -0
- package/dist/cjs/bdx/FileDesignator.d.ts +21 -0
- package/dist/cjs/bdx/FileDesignator.d.ts.map +1 -0
- package/dist/cjs/bdx/FileDesignator.js +62 -0
- package/dist/cjs/bdx/FileDesignator.js.map +6 -0
- package/dist/cjs/bdx/PersistedFileDesignator.d.ts +16 -0
- package/dist/cjs/bdx/PersistedFileDesignator.d.ts.map +1 -0
- package/dist/cjs/bdx/PersistedFileDesignator.js +57 -0
- package/dist/cjs/bdx/PersistedFileDesignator.js.map +6 -0
- package/dist/cjs/bdx/bdx-session-initiator.d.ts +14 -0
- package/dist/cjs/bdx/bdx-session-initiator.d.ts.map +1 -0
- package/dist/cjs/bdx/bdx-session-initiator.js +218 -0
- package/dist/cjs/bdx/bdx-session-initiator.js.map +6 -0
- package/dist/cjs/bdx/flow/DrivenSendingFlow.d.ts +15 -0
- package/dist/cjs/bdx/flow/DrivenSendingFlow.d.ts.map +1 -0
- package/dist/cjs/bdx/flow/DrivenSendingFlow.js +49 -0
- package/dist/cjs/bdx/flow/DrivenSendingFlow.js.map +6 -0
- package/dist/cjs/bdx/flow/DrivingReceivingFlow.d.ts +15 -0
- package/dist/cjs/bdx/flow/DrivingReceivingFlow.d.ts.map +1 -0
- package/dist/cjs/bdx/flow/DrivingReceivingFlow.js +47 -0
- package/dist/cjs/bdx/flow/DrivingReceivingFlow.js.map +6 -0
- package/dist/cjs/bdx/flow/Flow.d.ts +48 -0
- package/dist/cjs/bdx/flow/Flow.d.ts.map +1 -0
- package/dist/cjs/bdx/flow/Flow.js +112 -0
- package/dist/cjs/bdx/flow/Flow.js.map +6 -0
- package/dist/cjs/bdx/flow/FollowingReceivingFlow.d.ts +16 -0
- package/dist/cjs/bdx/flow/FollowingReceivingFlow.d.ts.map +1 -0
- package/dist/cjs/bdx/flow/FollowingReceivingFlow.js +60 -0
- package/dist/cjs/bdx/flow/FollowingReceivingFlow.js.map +6 -0
- package/dist/cjs/bdx/flow/FollowingSendingFlow.d.ts +15 -0
- package/dist/cjs/bdx/flow/FollowingSendingFlow.d.ts.map +1 -0
- package/dist/cjs/bdx/flow/FollowingSendingFlow.js +49 -0
- package/dist/cjs/bdx/flow/FollowingSendingFlow.js.map +6 -0
- package/dist/cjs/bdx/flow/InboundFlow.d.ts +26 -0
- package/dist/cjs/bdx/flow/InboundFlow.d.ts.map +1 -0
- package/dist/cjs/bdx/flow/InboundFlow.js +101 -0
- package/dist/cjs/bdx/flow/InboundFlow.js.map +6 -0
- package/dist/cjs/bdx/flow/OutboundFlow.d.ts +31 -0
- package/dist/cjs/bdx/flow/OutboundFlow.d.ts.map +1 -0
- package/dist/cjs/bdx/flow/OutboundFlow.js +124 -0
- package/dist/cjs/bdx/flow/OutboundFlow.js.map +6 -0
- package/dist/cjs/bdx/index.d.ts +16 -0
- package/dist/cjs/bdx/index.d.ts.map +1 -0
- package/dist/cjs/bdx/index.js +33 -0
- package/dist/cjs/bdx/index.js.map +6 -0
- package/dist/cjs/bdx/schema/BdxAcceptMessagesSchema.d.ts +50 -0
- package/dist/cjs/bdx/schema/BdxAcceptMessagesSchema.d.ts.map +1 -0
- package/dist/cjs/bdx/schema/BdxAcceptMessagesSchema.js +125 -0
- package/dist/cjs/bdx/schema/BdxAcceptMessagesSchema.js.map +6 -0
- package/dist/cjs/bdx/schema/BdxBlockMessagesSchema.d.ts +53 -0
- package/dist/cjs/bdx/schema/BdxBlockMessagesSchema.d.ts.map +1 -0
- package/dist/cjs/bdx/schema/BdxBlockMessagesSchema.js +92 -0
- package/dist/cjs/bdx/schema/BdxBlockMessagesSchema.js.map +6 -0
- package/dist/cjs/bdx/schema/BdxInitMessagesSchema.d.ts +117 -0
- package/dist/cjs/bdx/schema/BdxInitMessagesSchema.d.ts.map +1 -0
- package/dist/cjs/bdx/schema/BdxInitMessagesSchema.js +153 -0
- package/dist/cjs/bdx/schema/BdxInitMessagesSchema.js.map +6 -0
- package/dist/cjs/bdx/schema/BdxMessage.d.ts +23 -0
- package/dist/cjs/bdx/schema/BdxMessage.d.ts.map +1 -0
- package/dist/cjs/bdx/schema/BdxMessage.js +75 -0
- package/dist/cjs/bdx/schema/BdxMessage.js.map +6 -0
- package/dist/cjs/bdx/schema/BdxStatusMessageSchema.d.ts +12 -0
- package/dist/cjs/bdx/schema/BdxStatusMessageSchema.d.ts.map +1 -0
- package/dist/cjs/bdx/schema/BdxStatusMessageSchema.js +35 -0
- package/dist/cjs/bdx/schema/BdxStatusMessageSchema.js.map +6 -0
- package/dist/cjs/bdx/schema/index.d.ts +11 -0
- package/dist/cjs/bdx/schema/index.d.ts.map +1 -0
- package/dist/cjs/bdx/schema/index.js +28 -0
- package/dist/cjs/bdx/schema/index.js.map +6 -0
- 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/mdns/MdnsClient.js +2 -2
- package/dist/cjs/mdns/MdnsClient.js.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.js +4 -2
- package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
- package/dist/cjs/protocol/MessageExchange.d.ts +2 -0
- package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageExchange.js +14 -8
- package/dist/cjs/protocol/MessageExchange.js.map +2 -2
- package/dist/cjs/protocol/ProtocolStatusMessage.d.ts +1 -1
- package/dist/cjs/protocol/ProtocolStatusMessage.d.ts.map +1 -1
- package/dist/cjs/protocol/ProtocolStatusMessage.js.map +1 -1
- package/dist/esm/bdx/BdxClient.d.ts +31 -0
- package/dist/esm/bdx/BdxClient.d.ts.map +1 -0
- package/dist/esm/bdx/BdxClient.js +37 -0
- package/dist/esm/bdx/BdxClient.js.map +6 -0
- package/dist/esm/bdx/BdxError.d.ts +21 -0
- package/dist/esm/bdx/BdxError.d.ts.map +1 -0
- package/dist/esm/bdx/BdxError.js +34 -0
- package/dist/esm/bdx/BdxError.js.map +6 -0
- package/dist/esm/bdx/BdxMessenger.d.ts +77 -0
- package/dist/esm/bdx/BdxMessenger.d.ts.map +1 -0
- package/dist/esm/bdx/BdxMessenger.js +233 -0
- package/dist/esm/bdx/BdxMessenger.js.map +6 -0
- package/dist/esm/bdx/BdxProtocol.d.ts +25 -0
- package/dist/esm/bdx/BdxProtocol.d.ts.map +1 -0
- package/dist/esm/bdx/BdxProtocol.js +82 -0
- package/dist/esm/bdx/BdxProtocol.js.map +6 -0
- package/dist/esm/bdx/BdxSession.d.ts +36 -0
- package/dist/esm/bdx/BdxSession.d.ts.map +1 -0
- package/dist/esm/bdx/BdxSession.js +133 -0
- package/dist/esm/bdx/BdxSession.js.map +6 -0
- package/dist/esm/bdx/BdxSessionConfiguration.d.ts +61 -0
- package/dist/esm/bdx/BdxSessionConfiguration.d.ts.map +1 -0
- package/dist/esm/bdx/BdxSessionConfiguration.js +75 -0
- package/dist/esm/bdx/BdxSessionConfiguration.js.map +6 -0
- package/dist/esm/bdx/FileDesignator.d.ts +21 -0
- package/dist/esm/bdx/FileDesignator.d.ts.map +1 -0
- package/dist/esm/bdx/FileDesignator.js +42 -0
- package/dist/esm/bdx/FileDesignator.js.map +6 -0
- package/dist/esm/bdx/PersistedFileDesignator.d.ts +16 -0
- package/dist/esm/bdx/PersistedFileDesignator.d.ts.map +1 -0
- package/dist/esm/bdx/PersistedFileDesignator.js +37 -0
- package/dist/esm/bdx/PersistedFileDesignator.js.map +6 -0
- package/dist/esm/bdx/bdx-session-initiator.d.ts +14 -0
- package/dist/esm/bdx/bdx-session-initiator.d.ts.map +1 -0
- package/dist/esm/bdx/bdx-session-initiator.js +198 -0
- package/dist/esm/bdx/bdx-session-initiator.js.map +6 -0
- package/dist/esm/bdx/flow/DrivenSendingFlow.d.ts +15 -0
- package/dist/esm/bdx/flow/DrivenSendingFlow.d.ts.map +1 -0
- package/dist/esm/bdx/flow/DrivenSendingFlow.js +29 -0
- package/dist/esm/bdx/flow/DrivenSendingFlow.js.map +6 -0
- package/dist/esm/bdx/flow/DrivingReceivingFlow.d.ts +15 -0
- package/dist/esm/bdx/flow/DrivingReceivingFlow.d.ts.map +1 -0
- package/dist/esm/bdx/flow/DrivingReceivingFlow.js +27 -0
- package/dist/esm/bdx/flow/DrivingReceivingFlow.js.map +6 -0
- package/dist/esm/bdx/flow/Flow.d.ts +48 -0
- package/dist/esm/bdx/flow/Flow.d.ts.map +1 -0
- package/dist/esm/bdx/flow/Flow.js +92 -0
- package/dist/esm/bdx/flow/Flow.js.map +6 -0
- package/dist/esm/bdx/flow/FollowingReceivingFlow.d.ts +16 -0
- package/dist/esm/bdx/flow/FollowingReceivingFlow.d.ts.map +1 -0
- package/dist/esm/bdx/flow/FollowingReceivingFlow.js +40 -0
- package/dist/esm/bdx/flow/FollowingReceivingFlow.js.map +6 -0
- package/dist/esm/bdx/flow/FollowingSendingFlow.d.ts +15 -0
- package/dist/esm/bdx/flow/FollowingSendingFlow.d.ts.map +1 -0
- package/dist/esm/bdx/flow/FollowingSendingFlow.js +29 -0
- package/dist/esm/bdx/flow/FollowingSendingFlow.js.map +6 -0
- package/dist/esm/bdx/flow/InboundFlow.d.ts +26 -0
- package/dist/esm/bdx/flow/InboundFlow.d.ts.map +1 -0
- package/dist/esm/bdx/flow/InboundFlow.js +81 -0
- package/dist/esm/bdx/flow/InboundFlow.js.map +6 -0
- package/dist/esm/bdx/flow/OutboundFlow.d.ts +31 -0
- package/dist/esm/bdx/flow/OutboundFlow.d.ts.map +1 -0
- package/dist/esm/bdx/flow/OutboundFlow.js +104 -0
- package/dist/esm/bdx/flow/OutboundFlow.js.map +6 -0
- package/dist/esm/bdx/index.d.ts +16 -0
- package/dist/esm/bdx/index.d.ts.map +1 -0
- package/dist/esm/bdx/index.js +16 -0
- package/dist/esm/bdx/index.js.map +6 -0
- package/dist/esm/bdx/schema/BdxAcceptMessagesSchema.d.ts +50 -0
- package/dist/esm/bdx/schema/BdxAcceptMessagesSchema.d.ts.map +1 -0
- package/dist/esm/bdx/schema/BdxAcceptMessagesSchema.js +109 -0
- package/dist/esm/bdx/schema/BdxAcceptMessagesSchema.js.map +6 -0
- package/dist/esm/bdx/schema/BdxBlockMessagesSchema.d.ts +53 -0
- package/dist/esm/bdx/schema/BdxBlockMessagesSchema.d.ts.map +1 -0
- package/dist/esm/bdx/schema/BdxBlockMessagesSchema.js +72 -0
- package/dist/esm/bdx/schema/BdxBlockMessagesSchema.js.map +6 -0
- package/dist/esm/bdx/schema/BdxInitMessagesSchema.d.ts +117 -0
- package/dist/esm/bdx/schema/BdxInitMessagesSchema.d.ts.map +1 -0
- package/dist/esm/bdx/schema/BdxInitMessagesSchema.js +133 -0
- package/dist/esm/bdx/schema/BdxInitMessagesSchema.js.map +6 -0
- package/dist/esm/bdx/schema/BdxMessage.d.ts +23 -0
- package/dist/esm/bdx/schema/BdxMessage.d.ts.map +1 -0
- package/dist/esm/bdx/schema/BdxMessage.js +62 -0
- package/dist/esm/bdx/schema/BdxMessage.js.map +6 -0
- package/dist/esm/bdx/schema/BdxStatusMessageSchema.d.ts +12 -0
- package/dist/esm/bdx/schema/BdxStatusMessageSchema.d.ts.map +1 -0
- package/dist/esm/bdx/schema/BdxStatusMessageSchema.js +15 -0
- package/dist/esm/bdx/schema/BdxStatusMessageSchema.js.map +6 -0
- package/dist/esm/bdx/schema/index.d.ts +11 -0
- package/dist/esm/bdx/schema/index.d.ts.map +1 -0
- package/dist/esm/bdx/schema/index.js +11 -0
- package/dist/esm/bdx/schema/index.js.map +6 -0
- 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/mdns/MdnsClient.js +2 -2
- package/dist/esm/mdns/MdnsClient.js.map +1 -1
- package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeManager.js +4 -2
- package/dist/esm/protocol/ExchangeManager.js.map +1 -1
- package/dist/esm/protocol/MessageExchange.d.ts +2 -0
- package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/esm/protocol/MessageExchange.js +14 -8
- package/dist/esm/protocol/MessageExchange.js.map +2 -2
- package/dist/esm/protocol/ProtocolStatusMessage.d.ts +1 -1
- package/dist/esm/protocol/ProtocolStatusMessage.d.ts.map +1 -1
- package/dist/esm/protocol/ProtocolStatusMessage.js.map +1 -1
- package/package.json +6 -6
- package/src/bdx/BdxClient.ts +47 -0
- package/src/bdx/BdxError.ts +39 -0
- package/src/bdx/BdxMessenger.ts +291 -0
- package/src/bdx/BdxProtocol.ts +93 -0
- package/src/bdx/BdxSession.ts +174 -0
- package/src/bdx/BdxSessionConfiguration.ts +134 -0
- package/src/bdx/FileDesignator.ts +49 -0
- package/src/bdx/PersistedFileDesignator.ts +40 -0
- package/src/bdx/bdx-session-initiator.ts +246 -0
- package/src/bdx/flow/DrivenSendingFlow.ts +40 -0
- package/src/bdx/flow/DrivingReceivingFlow.ts +39 -0
- package/src/bdx/flow/Flow.ts +124 -0
- package/src/bdx/flow/FollowingReceivingFlow.ts +53 -0
- package/src/bdx/flow/FollowingSendingFlow.ts +38 -0
- package/src/bdx/flow/InboundFlow.ts +104 -0
- package/src/bdx/flow/OutboundFlow.ts +124 -0
- package/src/bdx/index.ts +16 -0
- package/src/bdx/schema/BdxAcceptMessagesSchema.ts +159 -0
- package/src/bdx/schema/BdxBlockMessagesSchema.ts +99 -0
- package/src/bdx/schema/BdxInitMessagesSchema.ts +213 -0
- package/src/bdx/schema/BdxMessage.ts +70 -0
- package/src/bdx/schema/BdxStatusMessageSchema.ts +14 -0
- package/src/bdx/schema/index.ts +11 -0
- package/src/index.ts +1 -0
- package/src/mdns/MdnsClient.ts +2 -2
- package/src/protocol/ExchangeManager.ts +2 -0
- package/src/protocol/MessageExchange.ts +17 -6
- package/src/protocol/ProtocolStatusMessage.ts +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { BdxMessenger } from "./BdxMessenger.js";
|
|
7
|
+
import { BdxSession } from "./BdxSession.js";
|
|
8
|
+
import { BdxSessionConfiguration } from "./BdxSessionConfiguration.js";
|
|
9
|
+
/**
|
|
10
|
+
* BDX Client to initiate a BDX transfer.
|
|
11
|
+
* Unless differently configured it tries to be the Driver of the transfer.
|
|
12
|
+
* Asynchronous transfer is provisional, implemented in theory but disabled internally.
|
|
13
|
+
*/
|
|
14
|
+
export declare class BdxClient {
|
|
15
|
+
#private;
|
|
16
|
+
/**
|
|
17
|
+
* Create a BDX client to initiate a BDX transfer as sender.
|
|
18
|
+
* A file designator needs to be provided and needs to exist in the storage context.
|
|
19
|
+
*/
|
|
20
|
+
static asSender(messenger: BdxMessenger, options: BdxSessionConfiguration.SenderInitiatorOptions): BdxClient;
|
|
21
|
+
/**
|
|
22
|
+
* Create a BDX client to initiate a BDX transfer as receiver.
|
|
23
|
+
* A file designator needs to be provided. The content will be written to the storage context.
|
|
24
|
+
*/
|
|
25
|
+
static asReceiver(messenger: BdxMessenger, options: BdxSessionConfiguration.InitiatorOptions): BdxClient;
|
|
26
|
+
constructor(bdxSession: BdxSession);
|
|
27
|
+
/** This is the main entry point to initiate and process the BDX transfer. */
|
|
28
|
+
processTransfer(): Promise<void>;
|
|
29
|
+
close(): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=BdxClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BdxClient.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;;;GAIG;AACH,qBAAa,SAAS;;IAGlB;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB,CAAC,sBAAsB;IAIhG;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB,CAAC,gBAAgB;gBAIhF,UAAU,EAAE,UAAU;IAIlC,6EAA6E;IAC7E,eAAe;IAIf,KAAK;CAGR"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var BdxClient_exports = {};
|
|
20
|
+
__export(BdxClient_exports, {
|
|
21
|
+
BdxClient: () => BdxClient
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(BdxClient_exports);
|
|
24
|
+
var import_BdxSession = require("./BdxSession.js");
|
|
25
|
+
/**
|
|
26
|
+
* @license
|
|
27
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
28
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
29
|
+
*/
|
|
30
|
+
class BdxClient {
|
|
31
|
+
#session;
|
|
32
|
+
/**
|
|
33
|
+
* Create a BDX client to initiate a BDX transfer as sender.
|
|
34
|
+
* A file designator needs to be provided and needs to exist in the storage context.
|
|
35
|
+
*/
|
|
36
|
+
static asSender(messenger, options) {
|
|
37
|
+
return new BdxClient(import_BdxSession.BdxSession.asSender(messenger, options));
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Create a BDX client to initiate a BDX transfer as receiver.
|
|
41
|
+
* A file designator needs to be provided. The content will be written to the storage context.
|
|
42
|
+
*/
|
|
43
|
+
static asReceiver(messenger, options) {
|
|
44
|
+
return new BdxClient(import_BdxSession.BdxSession.asReceiver(messenger, options));
|
|
45
|
+
}
|
|
46
|
+
constructor(bdxSession) {
|
|
47
|
+
this.#session = bdxSession;
|
|
48
|
+
}
|
|
49
|
+
/** This is the main entry point to initiate and process the BDX transfer. */
|
|
50
|
+
processTransfer() {
|
|
51
|
+
return this.#session.processTransfer();
|
|
52
|
+
}
|
|
53
|
+
close() {
|
|
54
|
+
return this.#session.close();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=BdxClient.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/bdx/BdxClient.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,wBAA2B;AAP3B;AAAA;AAAA;AAAA;AAAA;AAeO,MAAM,UAAU;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,SAAS,WAAyB,SAAyD;AAC9F,WAAO,IAAI,UAAU,6BAAW,SAAS,WAAW,OAAO,CAAC;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,WAAW,WAAyB,SAAmD;AAC1F,WAAO,IAAI,UAAU,6BAAW,WAAW,WAAW,OAAO,CAAC;AAAA,EAClE;AAAA,EAEA,YAAY,YAAwB;AAChC,SAAK,WAAW;AAAA,EACpB;AAAA;AAAA,EAGA,kBAAkB;AACd,WAAO,KAAK,SAAS,gBAAgB;AAAA,EACzC;AAAA,EAEA,QAAQ;AACJ,WAAO,KAAK,SAAS,MAAM;AAAA,EAC/B;AACJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { MatterError } from "#general";
|
|
7
|
+
import { BdxStatusCode, GeneralStatusCode } from "#types";
|
|
8
|
+
/** Error class used by the BDX protocol. */
|
|
9
|
+
export declare class BdxError extends MatterError {
|
|
10
|
+
#private;
|
|
11
|
+
constructor(message: string, code?: BdxStatusCode);
|
|
12
|
+
get code(): BdxStatusCode;
|
|
13
|
+
static is(error: unknown): error is BdxError;
|
|
14
|
+
}
|
|
15
|
+
/** Error base Class for all errors related to the BDX status response messages. */
|
|
16
|
+
export declare class BdxStatusResponseError extends MatterError {
|
|
17
|
+
readonly generalStatusCode: GeneralStatusCode;
|
|
18
|
+
readonly protocolStatusCode: BdxStatusCode;
|
|
19
|
+
constructor(message: string, generalStatusCode: GeneralStatusCode, protocolStatusCode: BdxStatusCode);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=BdxError.d.ts.map
|
|
@@ -0,0 +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;;gBAGzB,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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var BdxError_exports = {};
|
|
20
|
+
__export(BdxError_exports, {
|
|
21
|
+
BdxError: () => BdxError,
|
|
22
|
+
BdxStatusResponseError: () => BdxStatusResponseError
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(BdxError_exports);
|
|
25
|
+
var import_general = require("#general");
|
|
26
|
+
var import_types = require("#types");
|
|
27
|
+
/**
|
|
28
|
+
* @license
|
|
29
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
30
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
31
|
+
*/
|
|
32
|
+
class BdxError extends import_general.MatterError {
|
|
33
|
+
#code;
|
|
34
|
+
constructor(message, code = import_types.BdxStatusCode.Unknown) {
|
|
35
|
+
super(`BDX error ${import_types.BdxStatusCode[code]}(${code}): ${message}`);
|
|
36
|
+
this.#code = code;
|
|
37
|
+
}
|
|
38
|
+
get code() {
|
|
39
|
+
return this.#code;
|
|
40
|
+
}
|
|
41
|
+
static is(error) {
|
|
42
|
+
return error instanceof BdxError;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
class BdxStatusResponseError extends import_general.MatterError {
|
|
46
|
+
constructor(message, generalStatusCode, protocolStatusCode) {
|
|
47
|
+
super(
|
|
48
|
+
`(${import_types.GeneralStatusCode[generalStatusCode]} (${generalStatusCode}) / ${import_types.BdxStatusCode[protocolStatusCode]} (${protocolStatusCode})) ${message}`
|
|
49
|
+
);
|
|
50
|
+
this.generalStatusCode = generalStatusCode;
|
|
51
|
+
this.protocolStatusCode = protocolStatusCode;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=BdxError.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 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;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Message } from "#codec/MessageCodec.js";
|
|
7
|
+
import { Duration } from "#general";
|
|
8
|
+
import { MessageExchange } from "#protocol/MessageExchange.js";
|
|
9
|
+
import { BdxMessageType, BdxStatusCode } from "#types";
|
|
10
|
+
import { BdxReceiveAccept, BdxSendAccept } from "./schema/BdxAcceptMessagesSchema.js";
|
|
11
|
+
import { BdxBlock, BdxBlockAck, BdxBlockAckEof, BdxBlockEof, BdxBlockQuery, BdxBlockQueryWithSkip } from "./schema/BdxBlockMessagesSchema.js";
|
|
12
|
+
import { BdxInit } from "./schema/BdxInitMessagesSchema.js";
|
|
13
|
+
import { BdxMessage } from "./schema/BdxMessage.js";
|
|
14
|
+
export declare const BDX_TRANSFER_IDLE_TIMEOUT: Duration;
|
|
15
|
+
/** Messenger class that contains all Bdx Messages */
|
|
16
|
+
export declare class BdxMessenger {
|
|
17
|
+
#private;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new BdxMessenger instance.
|
|
20
|
+
* @param exchange Exchange to use for the messaging
|
|
21
|
+
* @param messageTimeout Communication Timeout for the Bdx Messages, defaults to 5 minutes as defined for Matter OTA transfers
|
|
22
|
+
*/
|
|
23
|
+
constructor(exchange: MessageExchange, messageTimeout?: Duration);
|
|
24
|
+
get channel(): import("../index.js").MessageChannel;
|
|
25
|
+
get exchange(): MessageExchange;
|
|
26
|
+
get maxPayloadSize(): number;
|
|
27
|
+
/**
|
|
28
|
+
* Waits for the next message and returns it.
|
|
29
|
+
* A List of allowed expected message types can be provided.
|
|
30
|
+
* If the message type is not in the list, an error will be thrown.
|
|
31
|
+
*/
|
|
32
|
+
nextMessage(expectedMessageTypes: BdxMessageType[], timeout?: Duration, expectedMessageInfo?: string): Promise<BdxMessage<any>>;
|
|
33
|
+
send(bdxMessage: BdxMessage<any>): Promise<void>;
|
|
34
|
+
/** Sends a Bdx SendInit message and waits for the SendAccept message as a response and returns it decoded. */
|
|
35
|
+
sendSendInit(message: BdxInit): Promise<BdxSendAccept>;
|
|
36
|
+
/** Sends a ReceiveInit message and waits for the ReceiveAccept message as a response and returns it decoded. */
|
|
37
|
+
sendReceiveInit(message: BdxInit): Promise<BdxReceiveAccept>;
|
|
38
|
+
/** Encodes and sends a Bdx SendAccept message. */
|
|
39
|
+
sendSendAccept(message: BdxSendAccept): Promise<void>;
|
|
40
|
+
/** Encodes and sends a Bdx ReceiveAccept message. */
|
|
41
|
+
sendReceiveAccept(message: BdxReceiveAccept): Promise<void>;
|
|
42
|
+
/** Encodes and sends a Bdx Block message. */
|
|
43
|
+
sendBlock(message: BdxBlock): Promise<void>;
|
|
44
|
+
/** Encodes and sends a Bdx BlockQuery message. */
|
|
45
|
+
sendBlockQuery(message: BdxBlockQuery): Promise<void>;
|
|
46
|
+
/** Encodes and sends a Bdx BlockQueryWithSkip message. */
|
|
47
|
+
sendBlockQueryWithSkip(message: BdxBlockQueryWithSkip): Promise<void>;
|
|
48
|
+
/** Encodes and sends a Bdx BlockEof message. */
|
|
49
|
+
sendBlockEof(message: BdxBlockEof): Promise<void>;
|
|
50
|
+
/** Encodes and sends a Bdx BlockAck message. */
|
|
51
|
+
sendBlockAck(message: BdxBlockAck): Promise<void>;
|
|
52
|
+
/** Encodes and sends a Bdx BlockAckEof message */
|
|
53
|
+
sendBlockAckEof(message: BdxBlockAckEof): Promise<void>;
|
|
54
|
+
/** Read the next Block message, accepts Block and BlockEof messages. Returns the decoded message and it's type. */
|
|
55
|
+
readBlock(): Promise<BdxMessage<BdxMessageType.Block | BdxMessageType.BlockEof>>;
|
|
56
|
+
/**
|
|
57
|
+
* Read the next BlockQuery message, accepts BlockQuery and BlockQueryWithSkip and BlockAck messages.
|
|
58
|
+
* When a BlockAck is received, it will be validated and the next BlockQuery message will be read.
|
|
59
|
+
* Returns the decoded message and it's type.
|
|
60
|
+
*/
|
|
61
|
+
readBlockQuery(): Promise<BdxMessage<BdxMessageType.BlockQuery | BdxMessageType.BlockQueryWithSkip>>;
|
|
62
|
+
/** Reads the next BlockAckEof message and returns the decoded message. */
|
|
63
|
+
readBlockAckEof(): Promise<BdxBlockAckEof>;
|
|
64
|
+
/** Reads the next BlockAck message and returns the decoded message. */
|
|
65
|
+
readBlockAck(): Promise<BdxBlockAck>;
|
|
66
|
+
/** Sends a Bdx Error StatusReport message with the given protocol status. */
|
|
67
|
+
sendError(code: BdxStatusCode): Promise<void>;
|
|
68
|
+
protected throwIfErrorStatusReport(message: Message, logHint?: string): void;
|
|
69
|
+
close(): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Ensure that the value is a safe JavaScript "number" type and that it is not too large. Matter spec allows also
|
|
72
|
+
* 64bit values, but they make little sense for now, so make sure we handle them as too large. MAX_SAFE_INTEGER is
|
|
73
|
+
* 2^53-1 and is enough for now.
|
|
74
|
+
*/
|
|
75
|
+
static asSafeNumber(value: number | bigint | undefined, context?: string, bdxErrorCode?: BdxStatusCode): number;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=BdxMessenger.d.ts.map
|
|
@@ -0,0 +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,EAAE,cAAc,EAAE,aAAa,EAAwC,MAAM,QAAQ,CAAC;AAE7F,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;;;;OAIG;gBACS,QAAQ,EAAE,eAAe,EAAE,cAAc,WAA4B;IAQjF,IAAI,OAAO,yCAEV;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;;;;OAIG;IACH,MAAM,CAAC,YAAY,CACf,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAClC,OAAO,SAAK,EACZ,YAAY,gBAAwB,GACrC,MAAM;CASZ"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var BdxMessenger_exports = {};
|
|
20
|
+
__export(BdxMessenger_exports, {
|
|
21
|
+
BDX_TRANSFER_IDLE_TIMEOUT: () => BDX_TRANSFER_IDLE_TIMEOUT,
|
|
22
|
+
BdxMessenger: () => BdxMessenger
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(BdxMessenger_exports);
|
|
25
|
+
var import_general = require("#general");
|
|
26
|
+
var import_types = require("#types");
|
|
27
|
+
var import_BdxError = require("./BdxError.js");
|
|
28
|
+
var import_BdxMessage = require("./schema/BdxMessage.js");
|
|
29
|
+
var import_BdxStatusMessageSchema = require("./schema/BdxStatusMessageSchema.js");
|
|
30
|
+
/**
|
|
31
|
+
* @license
|
|
32
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
33
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
34
|
+
*/
|
|
35
|
+
const logger = import_general.Logger.get("BdxMessenger");
|
|
36
|
+
const BDX_TRANSFER_IDLE_TIMEOUT = (0, import_general.Minutes)(5);
|
|
37
|
+
class BdxMessenger {
|
|
38
|
+
#exchange;
|
|
39
|
+
#messageTimeout;
|
|
40
|
+
/**
|
|
41
|
+
* Creates a new BdxMessenger instance.
|
|
42
|
+
* @param exchange Exchange to use for the messaging
|
|
43
|
+
* @param messageTimeout Communication Timeout for the Bdx Messages, defaults to 5 minutes as defined for Matter OTA transfers
|
|
44
|
+
*/
|
|
45
|
+
constructor(exchange, messageTimeout = BDX_TRANSFER_IDLE_TIMEOUT) {
|
|
46
|
+
if (!exchange.channel.isReliable) {
|
|
47
|
+
throw new import_general.ImplementationError("Bdx Protocol requires a reliable channel for message exchange");
|
|
48
|
+
}
|
|
49
|
+
this.#messageTimeout = messageTimeout;
|
|
50
|
+
this.#exchange = exchange;
|
|
51
|
+
}
|
|
52
|
+
get channel() {
|
|
53
|
+
return this.#exchange.channel;
|
|
54
|
+
}
|
|
55
|
+
get exchange() {
|
|
56
|
+
return this.#exchange;
|
|
57
|
+
}
|
|
58
|
+
get maxPayloadSize() {
|
|
59
|
+
return this.#exchange.maxPayloadSize;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Waits for the next message and returns it.
|
|
63
|
+
* A List of allowed expected message types can be provided.
|
|
64
|
+
* If the message type is not in the list, an error will be thrown.
|
|
65
|
+
*/
|
|
66
|
+
async nextMessage(expectedMessageTypes, timeout = this.#messageTimeout, expectedMessageInfo) {
|
|
67
|
+
logger.debug(
|
|
68
|
+
`Waiting for Bdx ${expectedMessageTypes.map((t) => import_types.BdxMessageType[t]).join("/")} message with timeout ${timeout}ms`
|
|
69
|
+
);
|
|
70
|
+
const message = await this.exchange.nextMessage({ timeout });
|
|
71
|
+
const messageType = message.payloadHeader.messageType;
|
|
72
|
+
if (expectedMessageInfo === void 0) {
|
|
73
|
+
expectedMessageInfo = expectedMessageTypes.map((t) => `${t} (${import_types.BdxMessageType[t]})`).join(",");
|
|
74
|
+
}
|
|
75
|
+
this.throwIfErrorStatusReport(message, expectedMessageInfo);
|
|
76
|
+
if (!expectedMessageTypes.includes(messageType))
|
|
77
|
+
throw new import_general.UnexpectedDataError(
|
|
78
|
+
`Received unexpected message type: ${import_types.BdxMessageType[messageType] ?? "unknown"}#${messageType}, expected: ${expectedMessageInfo}`
|
|
79
|
+
);
|
|
80
|
+
logger.debug(
|
|
81
|
+
`Received Bdx ${import_types.BdxMessageType[messageType]}${message.payload.byteLength > 0 ? ` with ${message.payload.byteLength}bytes` : ""}`,
|
|
82
|
+
message
|
|
83
|
+
);
|
|
84
|
+
return import_BdxMessage.BdxMessage.decode(messageType, message.payload);
|
|
85
|
+
}
|
|
86
|
+
async send(bdxMessage) {
|
|
87
|
+
const { kind: messageType, message } = bdxMessage;
|
|
88
|
+
logger.debug(
|
|
89
|
+
`Sending Bdx ${import_types.BdxMessageType[messageType]}${"data" in message && import_general.Bytes.isBytes(message.data) ? ` with ${message.data.byteLength}bytes` : ""}`,
|
|
90
|
+
message
|
|
91
|
+
);
|
|
92
|
+
await this.exchange.send(messageType, import_BdxMessage.BdxMessage.encode(bdxMessage));
|
|
93
|
+
}
|
|
94
|
+
/** Sends a Bdx SendInit message and waits for the SendAccept message as a response and returns it decoded. */
|
|
95
|
+
async sendSendInit(message) {
|
|
96
|
+
await this.send({ kind: import_types.BdxMessageType.SendInit, message });
|
|
97
|
+
const response = await this.nextMessage([import_types.BdxMessageType.SendAccept]);
|
|
98
|
+
import_BdxMessage.BdxMessage.assert(response, import_types.BdxMessageType.SendAccept);
|
|
99
|
+
return response.message;
|
|
100
|
+
}
|
|
101
|
+
/** Sends a ReceiveInit message and waits for the ReceiveAccept message as a response and returns it decoded. */
|
|
102
|
+
async sendReceiveInit(message) {
|
|
103
|
+
await this.send({ kind: import_types.BdxMessageType.ReceiveInit, message });
|
|
104
|
+
const response = await this.nextMessage([import_types.BdxMessageType.ReceiveAccept]);
|
|
105
|
+
import_BdxMessage.BdxMessage.assert(response, import_types.BdxMessageType.ReceiveAccept);
|
|
106
|
+
return response.message;
|
|
107
|
+
}
|
|
108
|
+
/** Encodes and sends a Bdx SendAccept message. */
|
|
109
|
+
async sendSendAccept(message) {
|
|
110
|
+
await this.send({ kind: import_types.BdxMessageType.SendAccept, message });
|
|
111
|
+
}
|
|
112
|
+
/** Encodes and sends a Bdx ReceiveAccept message. */
|
|
113
|
+
async sendReceiveAccept(message) {
|
|
114
|
+
await this.send({ kind: import_types.BdxMessageType.ReceiveAccept, message });
|
|
115
|
+
}
|
|
116
|
+
/** Encodes and sends a Bdx Block message. */
|
|
117
|
+
async sendBlock(message) {
|
|
118
|
+
await this.send({ kind: import_types.BdxMessageType.Block, message });
|
|
119
|
+
}
|
|
120
|
+
/** Encodes and sends a Bdx BlockQuery message. */
|
|
121
|
+
async sendBlockQuery(message) {
|
|
122
|
+
await this.send({ kind: import_types.BdxMessageType.BlockQuery, message });
|
|
123
|
+
}
|
|
124
|
+
/** Encodes and sends a Bdx BlockQueryWithSkip message. */
|
|
125
|
+
async sendBlockQueryWithSkip(message) {
|
|
126
|
+
await this.send({ kind: import_types.BdxMessageType.BlockQueryWithSkip, message });
|
|
127
|
+
}
|
|
128
|
+
/** Encodes and sends a Bdx BlockEof message. */
|
|
129
|
+
async sendBlockEof(message) {
|
|
130
|
+
await this.send({ kind: import_types.BdxMessageType.BlockEof, message });
|
|
131
|
+
}
|
|
132
|
+
/** Encodes and sends a Bdx BlockAck message. */
|
|
133
|
+
async sendBlockAck(message) {
|
|
134
|
+
await this.send({ kind: import_types.BdxMessageType.BlockAck, message });
|
|
135
|
+
}
|
|
136
|
+
/** Encodes and sends a Bdx BlockAckEof message */
|
|
137
|
+
async sendBlockAckEof(message) {
|
|
138
|
+
await this.send({ kind: import_types.BdxMessageType.BlockAckEof, message });
|
|
139
|
+
}
|
|
140
|
+
/** Read the next Block message, accepts Block and BlockEof messages. Returns the decoded message and it's type. */
|
|
141
|
+
async readBlock() {
|
|
142
|
+
const block = await this.nextMessage([import_types.BdxMessageType.Block, import_types.BdxMessageType.BlockEof]);
|
|
143
|
+
if (import_BdxMessage.BdxMessage.is(block, import_types.BdxMessageType.Block) && block.message.data.byteLength === 0) {
|
|
144
|
+
throw new import_BdxError.BdxError("Received empty data in Block message", import_types.BdxStatusCode.BadMessageContent);
|
|
145
|
+
}
|
|
146
|
+
return block;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Read the next BlockQuery message, accepts BlockQuery and BlockQueryWithSkip and BlockAck messages.
|
|
150
|
+
* When a BlockAck is received, it will be validated and the next BlockQuery message will be read.
|
|
151
|
+
* Returns the decoded message and it's type.
|
|
152
|
+
*/
|
|
153
|
+
async readBlockQuery() {
|
|
154
|
+
let response = await this.nextMessage([
|
|
155
|
+
import_types.BdxMessageType.BlockQuery,
|
|
156
|
+
import_types.BdxMessageType.BlockQueryWithSkip,
|
|
157
|
+
import_types.BdxMessageType.BlockAck
|
|
158
|
+
]);
|
|
159
|
+
let expectedBlockMessageCounter = void 0;
|
|
160
|
+
if (import_BdxMessage.BdxMessage.is(response, import_types.BdxMessageType.BlockAck)) {
|
|
161
|
+
expectedBlockMessageCounter = (response.message.blockCounter + 1) % 4294967296;
|
|
162
|
+
response = await this.nextMessage([import_types.BdxMessageType.BlockQuery, import_types.BdxMessageType.BlockQueryWithSkip]);
|
|
163
|
+
}
|
|
164
|
+
if (expectedBlockMessageCounter !== void 0 && response.message.blockCounter !== expectedBlockMessageCounter) {
|
|
165
|
+
throw new import_BdxError.BdxError(
|
|
166
|
+
`Received BlockQuery with unexpected block counter: ${response.message.blockCounter}, expected: ${expectedBlockMessageCounter}`,
|
|
167
|
+
import_types.BdxStatusCode.BadBlockCounter
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
return response;
|
|
171
|
+
}
|
|
172
|
+
/** Reads the next BlockAckEof message and returns the decoded message. */
|
|
173
|
+
async readBlockAckEof() {
|
|
174
|
+
const response = await this.nextMessage([import_types.BdxMessageType.BlockAckEof]);
|
|
175
|
+
import_BdxMessage.BdxMessage.assert(response, import_types.BdxMessageType.BlockAckEof);
|
|
176
|
+
return response.message;
|
|
177
|
+
}
|
|
178
|
+
/** Reads the next BlockAck message and returns the decoded message. */
|
|
179
|
+
async readBlockAck() {
|
|
180
|
+
const response = await this.nextMessage([import_types.BdxMessageType.BlockAck]);
|
|
181
|
+
import_BdxMessage.BdxMessage.assert(response, import_types.BdxMessageType.BlockAck);
|
|
182
|
+
return response.message;
|
|
183
|
+
}
|
|
184
|
+
/** Sends a Bdx Error StatusReport message with the given protocol status. */
|
|
185
|
+
sendError(code) {
|
|
186
|
+
return this.#sendStatusReport(import_types.GeneralStatusCode.Failure, code);
|
|
187
|
+
}
|
|
188
|
+
/** Encodes and sends a Bdx StatusReport message with the given general and protocol status. */
|
|
189
|
+
async #sendStatusReport(generalStatus, protocolStatus, requiresAck) {
|
|
190
|
+
await this.#exchange.send(
|
|
191
|
+
import_types.SecureMessageType.StatusReport,
|
|
192
|
+
import_BdxStatusMessageSchema.BdxStatusMessage.encode({
|
|
193
|
+
generalStatus,
|
|
194
|
+
protocolStatus
|
|
195
|
+
}),
|
|
196
|
+
{
|
|
197
|
+
requiresAck,
|
|
198
|
+
logContext: {
|
|
199
|
+
generalStatus: import_types.GeneralStatusCode[generalStatus] ?? import_general.Diagnostic.hex(generalStatus),
|
|
200
|
+
protocolStatus: import_types.BdxStatusCode[protocolStatus] ?? import_general.Diagnostic.hex(protocolStatus)
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
throwIfErrorStatusReport(message, logHint) {
|
|
206
|
+
const {
|
|
207
|
+
payloadHeader: { messageType },
|
|
208
|
+
payload
|
|
209
|
+
} = message;
|
|
210
|
+
if (messageType !== import_types.SecureMessageType.StatusReport) return;
|
|
211
|
+
const { generalStatus, protocolId, protocolStatus } = import_BdxStatusMessageSchema.BdxStatusMessage.decode(payload);
|
|
212
|
+
if (generalStatus !== import_types.GeneralStatusCode.Success) {
|
|
213
|
+
throw new import_BdxError.BdxStatusResponseError(
|
|
214
|
+
`Received general error status for protocol ${protocolId}${logHint ? ` (${logHint})` : ""}`,
|
|
215
|
+
generalStatus,
|
|
216
|
+
protocolStatus
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
if (protocolStatus !== import_types.BdxStatusCode.Success) {
|
|
220
|
+
throw new import_BdxError.BdxStatusResponseError(
|
|
221
|
+
`Received general success status, but protocol status is not Success${logHint ? ` (${logHint})` : ""}`,
|
|
222
|
+
generalStatus,
|
|
223
|
+
protocolStatus
|
|
224
|
+
);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
close() {
|
|
228
|
+
return this.#exchange.close();
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Ensure that the value is a safe JavaScript "number" type and that it is not too large. Matter spec allows also
|
|
232
|
+
* 64bit values, but they make little sense for now, so make sure we handle them as too large. MAX_SAFE_INTEGER is
|
|
233
|
+
* 2^53-1 and is enough for now.
|
|
234
|
+
*/
|
|
235
|
+
static asSafeNumber(value, context = "", bdxErrorCode = import_types.BdxStatusCode.Unknown) {
|
|
236
|
+
if (typeof value !== "number" && typeof value !== "bigint") {
|
|
237
|
+
throw new import_general.InternalError(`${context} ${value} is not a number`);
|
|
238
|
+
}
|
|
239
|
+
if (value > Number.MAX_SAFE_INTEGER) {
|
|
240
|
+
throw new import_BdxError.BdxError(`${context} ${value} exceeds maximum safe integer value`, bdxErrorCode);
|
|
241
|
+
}
|
|
242
|
+
return Number(value);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=BdxMessenger.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/bdx/BdxMessenger.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { StorageContext } from "#general";
|
|
7
|
+
import { MessageExchange } from "#protocol/MessageExchange.js";
|
|
8
|
+
import { ProtocolHandler } from "#protocol/ProtocolHandler.js";
|
|
9
|
+
import { Message } from "../codec/MessageCodec.js";
|
|
10
|
+
import { BdxSessionConfiguration } from "./BdxSessionConfiguration.js";
|
|
11
|
+
/** BDX protocol handler. */
|
|
12
|
+
export declare class BdxProtocol implements ProtocolHandler {
|
|
13
|
+
#private;
|
|
14
|
+
readonly id = 2;
|
|
15
|
+
readonly requiresSecureSession = true;
|
|
16
|
+
/**
|
|
17
|
+
* Create a new BDX protocol handler.
|
|
18
|
+
* @param storage StorageContext to read or write files from/to.
|
|
19
|
+
* @param options BDX options/limits to use for this session. us this to control how the transfer should behave.
|
|
20
|
+
*/
|
|
21
|
+
constructor(storage: StorageContext, options?: BdxSessionConfiguration.Config);
|
|
22
|
+
onNewExchange(exchange: MessageExchange, message: Message): Promise<void>;
|
|
23
|
+
close(): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=BdxProtocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BdxProtocol.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxProtocol.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAuB,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGnD,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;IAKtC;;;;OAIG;gBACS,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,uBAAuB,CAAC,MAAM;IAKvE,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO;IAiDzD,KAAK;CAOd"}
|