@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,60 @@
|
|
|
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 FollowingReceivingFlow_exports = {};
|
|
20
|
+
__export(FollowingReceivingFlow_exports, {
|
|
21
|
+
FollowingReceivingFlow: () => FollowingReceivingFlow
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(FollowingReceivingFlow_exports);
|
|
24
|
+
var import_general = require("#general");
|
|
25
|
+
var import_types = require("#types");
|
|
26
|
+
var import_BdxMessenger = require("../BdxMessenger.js");
|
|
27
|
+
var import_BdxMessage = require("../schema/BdxMessage.js");
|
|
28
|
+
var import_OutboundFlow = require("./OutboundFlow.js");
|
|
29
|
+
/**
|
|
30
|
+
* @license
|
|
31
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
32
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
33
|
+
*/
|
|
34
|
+
const logger = import_general.Logger.get("BdxFollowingReceivingFlow");
|
|
35
|
+
class FollowingReceivingFlow extends import_OutboundFlow.OutboundFlow {
|
|
36
|
+
async transferNextChunk() {
|
|
37
|
+
const { iterator, streamReader } = this.stream;
|
|
38
|
+
const blockQuery = await this.messenger.readBlockQuery();
|
|
39
|
+
const bytesToSkip = import_BdxMessage.BdxMessage.is(blockQuery, import_types.BdxMessageType.BlockQueryWithSkip) ? import_BdxMessenger.BdxMessenger.asSafeNumber(
|
|
40
|
+
blockQuery.message.bytesToSkip,
|
|
41
|
+
"BytesToSkip",
|
|
42
|
+
import_types.BdxStatusCode.TransferFailedUnknownError
|
|
43
|
+
) : 0;
|
|
44
|
+
const { blockCounter } = blockQuery.message;
|
|
45
|
+
this.validateCounter(blockCounter);
|
|
46
|
+
if (bytesToSkip > 0) {
|
|
47
|
+
const skipped = await streamReader.skip(bytesToSkip);
|
|
48
|
+
logger.debug(`Skipped ${skipped}bytes of data (requested ${bytesToSkip}bytes)`);
|
|
49
|
+
}
|
|
50
|
+
const { data, done } = await this.readDataChunk(iterator);
|
|
51
|
+
if (done) {
|
|
52
|
+
await this.messenger.sendBlockEof({ data, blockCounter });
|
|
53
|
+
this.finalBlockCounter = blockCounter;
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
await this.messenger.sendBlock({ data, blockCounter });
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=FollowingReceivingFlow.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/bdx/flow/FollowingReceivingFlow.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAuB;AACvB,mBAA8C;AAC9C,0BAA6B;AAC7B,wBAA2B;AAC3B,0BAA6B;AAV7B;AAAA;AAAA;AAAA;AAAA;AAYA,MAAM,SAAS,sBAAO,IAAI,2BAA2B;AAO9C,MAAM,+BAA+B,iCAAa;AAAA,EACrD,MAAgB,oBAAoB;AAChC,UAAM,EAAE,UAAU,aAAa,IAAI,KAAK;AAGxC,UAAM,aAAa,MAAM,KAAK,UAAU,eAAe;AACvD,UAAM,cAAc,6BAAW,GAAG,YAAY,4BAAe,kBAAkB,IACzE,iCAAa;AAAA,MACT,WAAW,QAAQ;AAAA,MACnB;AAAA,MACA,2BAAc;AAAA,IAClB,IACA;AAEN,UAAM,EAAE,aAAa,IAAI,WAAW;AACpC,SAAK,gBAAgB,YAAY;AAEjC,QAAI,cAAc,GAAG;AACjB,YAAM,UAAU,MAAM,aAAa,KAAK,WAAW;AACnD,aAAO,MAAM,WAAW,OAAO,4BAA4B,WAAW,QAAQ;AAAA,IAClF;AACA,UAAM,EAAE,MAAM,KAAK,IAAI,MAAM,KAAK,cAAc,QAAQ;AAExD,QAAI,MAAM;AACN,YAAM,KAAK,UAAU,aAAa,EAAE,MAAM,aAAa,CAAC;AACxD,WAAK,oBAAoB;AACzB,aAAO;AAAA,IACX;AAEA,UAAM,KAAK,UAAU,UAAU,EAAE,MAAM,aAAa,CAAC;AAErD,WAAO;AAAA,EACX;AACJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { InboundFlow } from "./InboundFlow.js";
|
|
7
|
+
/**
|
|
8
|
+
* BDX Transport flow logic for a "BDX Following Sender":
|
|
9
|
+
* - Reads the Block and sends an Ack (if synchronous transfer is used)
|
|
10
|
+
* - Last message is confirmed with an AckEof
|
|
11
|
+
*/
|
|
12
|
+
export declare class FollowingSendingFlow extends InboundFlow {
|
|
13
|
+
protected transferNextChunk(): Promise<boolean>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=FollowingSendingFlow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FollowingSendingFlow.d.ts","sourceRoot":"","sources":["../../../../src/bdx/flow/FollowingSendingFlow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;cACjC,iBAAiB;CAuBpC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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 FollowingSendingFlow_exports = {};
|
|
20
|
+
__export(FollowingSendingFlow_exports, {
|
|
21
|
+
FollowingSendingFlow: () => FollowingSendingFlow
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(FollowingSendingFlow_exports);
|
|
24
|
+
var import_InboundFlow = require("./InboundFlow.js");
|
|
25
|
+
/**
|
|
26
|
+
* @license
|
|
27
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
28
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
29
|
+
*/
|
|
30
|
+
class FollowingSendingFlow extends import_InboundFlow.InboundFlow {
|
|
31
|
+
async transferNextChunk() {
|
|
32
|
+
const { asynchronousTransfer } = this.transferParameters;
|
|
33
|
+
const { writeController } = this.stream;
|
|
34
|
+
const {
|
|
35
|
+
kind: messageType,
|
|
36
|
+
message: { data, blockCounter }
|
|
37
|
+
} = await this.messenger.readBlock();
|
|
38
|
+
this.validateCounter(blockCounter);
|
|
39
|
+
if (this.writeDataChunk(writeController, data, messageType)) {
|
|
40
|
+
this.finalBlockCounter = blockCounter;
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
if (!asynchronousTransfer) {
|
|
44
|
+
await this.messenger.sendBlockAck({ blockCounter });
|
|
45
|
+
}
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=FollowingSendingFlow.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/bdx/flow/FollowingSendingFlow.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAA4B;AAN5B;AAAA;AAAA;AAAA;AAAA;AAaO,MAAM,6BAA6B,+BAAY;AAAA,EAClD,MAAgB,oBAAoB;AAChC,UAAM,EAAE,qBAAqB,IAAI,KAAK;AACtC,UAAM,EAAE,gBAAgB,IAAI,KAAK;AAEjC,UAAM;AAAA,MACF,MAAM;AAAA,MACN,SAAS,EAAE,MAAM,aAAa;AAAA,IAClC,IAAI,MAAM,KAAK,UAAU,UAAU;AACnC,SAAK,gBAAgB,YAAY;AAGjC,QAAI,KAAK,eAAe,iBAAiB,MAAM,WAAW,GAAG;AACzD,WAAK,oBAAoB;AACzB,aAAO;AAAA,IACX;AAEA,QAAI,CAAC,sBAAsB;AAEvB,YAAM,KAAK,UAAU,aAAa,EAAE,aAAa,CAAC;AAAA,IACtD;AAEA,WAAO;AAAA,EACX;AACJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Bytes } from "#general";
|
|
7
|
+
import { BdxMessageType } from "#types";
|
|
8
|
+
import { Flow } from "./Flow.js";
|
|
9
|
+
/**
|
|
10
|
+
* Base class for inbound BDX transfer flows where data is received from the peer and written to our node.
|
|
11
|
+
*/
|
|
12
|
+
export declare abstract class InboundFlow extends Flow {
|
|
13
|
+
#private;
|
|
14
|
+
/**
|
|
15
|
+
* Returns initialized streams for the transfer and initializes the #closeStream class function
|
|
16
|
+
*/
|
|
17
|
+
protected initTransfer(): Promise<void>;
|
|
18
|
+
protected get stream(): {
|
|
19
|
+
writeController: ReadableStreamDefaultController<AllowSharedBufferSource>;
|
|
20
|
+
writePromise: PromiseLike<void>;
|
|
21
|
+
};
|
|
22
|
+
protected finalizeTransfer(): Promise<void>;
|
|
23
|
+
protected writeDataChunk(writeController: ReadableStreamDefaultController<Bytes>, data: Bytes, messageType: BdxMessageType): boolean;
|
|
24
|
+
close(error?: unknown): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=InboundFlow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InboundFlow.d.ts","sourceRoot":"","sources":["../../../../src/bdx/flow/InboundFlow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAA+B,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAiB,MAAM,QAAQ,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;GAEG;AACH,8BAAsB,WAAY,SAAQ,IAAI;;IAK1C;;OAEG;cACa,YAAY;IAkC5B,SAAS,KAAK,MAAM;;;MAKnB;cAEe,gBAAgB;IAOhC,SAAS,CAAC,cAAc,CACpB,eAAe,EAAE,+BAA+B,CAAC,KAAK,CAAC,EACvD,IAAI,EAAE,KAAK,EACX,WAAW,EAAE,cAAc;IA0BhB,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO;CAIvC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
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 InboundFlow_exports = {};
|
|
20
|
+
__export(InboundFlow_exports, {
|
|
21
|
+
InboundFlow: () => InboundFlow
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(InboundFlow_exports);
|
|
24
|
+
var import_general = require("#general");
|
|
25
|
+
var import_types = require("#types");
|
|
26
|
+
var import_BdxError = require("../BdxError.js");
|
|
27
|
+
var import_Flow = require("./Flow.js");
|
|
28
|
+
/**
|
|
29
|
+
* @license
|
|
30
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
31
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
32
|
+
*/
|
|
33
|
+
class InboundFlow extends import_Flow.Flow {
|
|
34
|
+
#closeStreams;
|
|
35
|
+
#writeController;
|
|
36
|
+
#writePromise;
|
|
37
|
+
/**
|
|
38
|
+
* Returns initialized streams for the transfer and initializes the #closeStream class function
|
|
39
|
+
*/
|
|
40
|
+
async initTransfer() {
|
|
41
|
+
let writeController;
|
|
42
|
+
const stream = new ReadableStream({
|
|
43
|
+
start: (controller) => {
|
|
44
|
+
writeController = controller;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
const { fileDesignator } = this.transferParameters;
|
|
48
|
+
const writePromise = fileDesignator.writeFromStream(stream);
|
|
49
|
+
this.#closeStreams = async (error) => {
|
|
50
|
+
if (writeController !== void 0) {
|
|
51
|
+
if (error != void 0) {
|
|
52
|
+
writeController.error(error);
|
|
53
|
+
try {
|
|
54
|
+
await writePromise;
|
|
55
|
+
} catch {
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (!stream.locked) {
|
|
60
|
+
await stream.cancel();
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
this.#writeController = writeController;
|
|
64
|
+
this.#writePromise = writePromise;
|
|
65
|
+
}
|
|
66
|
+
get stream() {
|
|
67
|
+
if (!this.#writeController || !this.#writePromise) {
|
|
68
|
+
throw new import_general.InternalError("Transfer not initialized. Call initTransfer() before starting the transfer.");
|
|
69
|
+
}
|
|
70
|
+
return { writeController: this.#writeController, writePromise: this.#writePromise };
|
|
71
|
+
}
|
|
72
|
+
async finalizeTransfer() {
|
|
73
|
+
const { writePromise } = this.stream;
|
|
74
|
+
const blockCounter = this.finalBlockCounter;
|
|
75
|
+
await writePromise;
|
|
76
|
+
await this.messenger.sendBlockAckEof({ blockCounter });
|
|
77
|
+
}
|
|
78
|
+
writeDataChunk(writeController, data, messageType) {
|
|
79
|
+
writeController.enqueue(data);
|
|
80
|
+
if (this.bytesLeft !== void 0) {
|
|
81
|
+
this.bytesLeft -= data.byteLength;
|
|
82
|
+
}
|
|
83
|
+
let done = false;
|
|
84
|
+
if (messageType === import_types.BdxMessageType.BlockEof) {
|
|
85
|
+
if (this.bytesLeft !== void 0 && this.bytesLeft !== 0) {
|
|
86
|
+
throw new import_BdxError.BdxError(
|
|
87
|
+
`Received BlockEof with ${this.bytesLeft}bytes left, but no more data available`,
|
|
88
|
+
this.bytesLeft > 0 ? import_types.BdxStatusCode.LengthTooShort : import_types.BdxStatusCode.LengthTooLarge
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
done = true;
|
|
92
|
+
writeController.close();
|
|
93
|
+
}
|
|
94
|
+
return done;
|
|
95
|
+
}
|
|
96
|
+
async close(error) {
|
|
97
|
+
await super.close(error);
|
|
98
|
+
await this.#closeStreams?.(error);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=InboundFlow.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/bdx/flow/InboundFlow.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAmD;AACnD,mBAA8C;AAC9C,sBAAyB;AACzB,kBAAqB;AATrB;AAAA;AAAA;AAAA;AAAA;AAcO,MAAe,oBAAoB,iBAAK;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAgB,eAAe;AAE3B,QAAI;AACJ,UAAM,SAAS,IAAI,eAAsB;AAAA,MACrC,OAAO,gBAAc;AACjB,0BAAkB;AAAA,MACtB;AAAA,IACJ,CAAC;AACD,UAAM,EAAE,eAAe,IAAI,KAAK;AAChC,UAAM,eAAe,eAAe,gBAAgB,MAAM;AAG1D,SAAK,gBAAgB,OAAO,UAAoB;AAC5C,UAAI,oBAAoB,QAAW;AAC/B,YAAI,SAAS,QAAW;AAEpB,0BAAgB,MAAM,KAAK;AAC3B,cAAI;AACA,kBAAM;AAAA,UACV,QAAQ;AAAA,UAER;AAAA,QACJ;AAAA,MACJ;AAEA,UAAI,CAAC,OAAO,QAAQ;AAChB,cAAM,OAAO,OAAO;AAAA,MACxB;AAAA,IACJ;AAEA,SAAK,mBAAmB;AACxB,SAAK,gBAAgB;AAAA,EACzB;AAAA,EAEA,IAAc,SAAS;AACnB,QAAI,CAAC,KAAK,oBAAoB,CAAC,KAAK,eAAe;AAC/C,YAAM,IAAI,6BAAc,6EAA6E;AAAA,IACzG;AACA,WAAO,EAAE,iBAAiB,KAAK,kBAAkB,cAAc,KAAK,cAAc;AAAA,EACtF;AAAA,EAEA,MAAgB,mBAAmB;AAC/B,UAAM,EAAE,aAAa,IAAI,KAAK;AAC9B,UAAM,eAAe,KAAK;AAC1B,UAAM;AACN,UAAM,KAAK,UAAU,gBAAgB,EAAE,aAAa,CAAC;AAAA,EACzD;AAAA,EAEU,eACN,iBACA,MACA,aACF;AAEE,oBAAgB,QAAQ,IAAI;AAC5B,QAAI,KAAK,cAAc,QAAW;AAC9B,WAAK,aAAa,KAAK;AAAA,IAC3B;AAEA,QAAI,OAAO;AAGX,QAAI,gBAAgB,4BAAe,UAAU;AACzC,UAAI,KAAK,cAAc,UAAa,KAAK,cAAc,GAAG;AACtD,cAAM,IAAI;AAAA,UACN,0BAA0B,KAAK,SAAS;AAAA,UACxC,KAAK,YAAY,IAAI,2BAAc,iBAAiB,2BAAc;AAAA,QACtE;AAAA,MACJ;AAEA,aAAO;AACP,sBAAgB,MAAM;AAAA,IAC1B;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAe,MAAM,OAAiB;AAClC,UAAM,MAAM,MAAM,KAAK;AACvB,UAAM,KAAK,gBAAgB,KAAK;AAAA,EACpC;AACJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { BytesStreamReader } from "#general";
|
|
7
|
+
import { Flow } from "./Flow.js";
|
|
8
|
+
/**
|
|
9
|
+
* Base class for outbound BDX transfer flows where data is read from our node and sent to the peer.
|
|
10
|
+
*/
|
|
11
|
+
export declare abstract class OutboundFlow extends Flow {
|
|
12
|
+
#private;
|
|
13
|
+
protected get stream(): {
|
|
14
|
+
iterator: AsyncGenerator<Uint8Array<ArrayBufferLike>, void, unknown>;
|
|
15
|
+
streamReader: BytesStreamReader;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Returns initialized streams for the transfer and initializes the #closeStream class function
|
|
19
|
+
*/
|
|
20
|
+
protected initTransfer(): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Reads one data chunk from the reader and does some basic checks.
|
|
23
|
+
*/
|
|
24
|
+
protected readDataChunk(reader: AsyncGenerator<Uint8Array<ArrayBufferLike>, void, unknown>): Promise<{
|
|
25
|
+
data: Uint8Array<ArrayBufferLike>;
|
|
26
|
+
done: boolean;
|
|
27
|
+
}>;
|
|
28
|
+
protected finalizeTransfer(): Promise<void>;
|
|
29
|
+
close(error?: unknown): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=OutboundFlow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutboundFlow.d.ts","sourceRoot":"","sources":["../../../../src/bdx/flow/OutboundFlow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AAG5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;GAEG;AACH,8BAAsB,YAAa,SAAQ,IAAI;;IAK3C,SAAS,KAAK,MAAM;;;MAKnB;IAED;;OAEG;cACa,YAAY;IAoC5B;;OAEG;cACa,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;;;;cA6ChF,gBAAgB;IAMjB,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO;CAIvC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
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 OutboundFlow_exports = {};
|
|
20
|
+
__export(OutboundFlow_exports, {
|
|
21
|
+
OutboundFlow: () => OutboundFlow
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(OutboundFlow_exports);
|
|
24
|
+
var import_general = require("#general");
|
|
25
|
+
var import_types = require("#types");
|
|
26
|
+
var import_BdxError = require("../BdxError.js");
|
|
27
|
+
var import_Flow = require("./Flow.js");
|
|
28
|
+
/**
|
|
29
|
+
* @license
|
|
30
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
31
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
32
|
+
*/
|
|
33
|
+
class OutboundFlow extends import_Flow.Flow {
|
|
34
|
+
#closeStreams;
|
|
35
|
+
#iterator;
|
|
36
|
+
#streamReader;
|
|
37
|
+
get stream() {
|
|
38
|
+
if (this.#iterator === void 0 || this.#streamReader === void 0) {
|
|
39
|
+
throw new import_general.InternalError("Read stream not initialized");
|
|
40
|
+
}
|
|
41
|
+
return { iterator: this.#iterator, streamReader: this.#streamReader };
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Returns initialized streams for the transfer and initializes the #closeStream class function
|
|
45
|
+
*/
|
|
46
|
+
async initTransfer() {
|
|
47
|
+
const { blockSize } = this.transferParameters;
|
|
48
|
+
const blob = await this.transferParameters.fileDesignator.openBlob();
|
|
49
|
+
const blobSize = blob.size;
|
|
50
|
+
const { startOffset = 0, dataLength = blobSize } = this.transferParameters;
|
|
51
|
+
const dataBlob = startOffset > 0 || dataLength !== blobSize ? blob.slice(startOffset, startOffset + dataLength) : blob;
|
|
52
|
+
const stream = dataBlob.stream();
|
|
53
|
+
const reader = stream.getReader();
|
|
54
|
+
this.#closeStreams = async (_error) => {
|
|
55
|
+
if (stream.locked) {
|
|
56
|
+
reader?.releaseLock();
|
|
57
|
+
try {
|
|
58
|
+
await reader?.cancel();
|
|
59
|
+
} catch (error) {
|
|
60
|
+
if (!(error instanceof TypeError)) {
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
await stream.cancel();
|
|
66
|
+
};
|
|
67
|
+
const streamReader = new import_general.BytesStreamReader(reader);
|
|
68
|
+
this.#iterator = streamReader.read(blockSize);
|
|
69
|
+
this.#streamReader = streamReader;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Reads one data chunk from the reader and does some basic checks.
|
|
73
|
+
*/
|
|
74
|
+
async readDataChunk(reader) {
|
|
75
|
+
const { blockSize, dataLength } = this.transferParameters;
|
|
76
|
+
let { value, done = false } = await reader.next();
|
|
77
|
+
if (value === void 0) {
|
|
78
|
+
if (!done) {
|
|
79
|
+
throw new import_BdxError.BdxError(
|
|
80
|
+
`Data length too short, expected ${blockSize}bytes, but got less`,
|
|
81
|
+
import_types.BdxStatusCode.LengthTooShort
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
value = new Uint8Array();
|
|
85
|
+
} else if (value.byteLength < blockSize) {
|
|
86
|
+
({ done = false } = await reader.next());
|
|
87
|
+
if (!done) {
|
|
88
|
+
throw new import_BdxError.BdxError(
|
|
89
|
+
`Data length too short, expected ${blockSize}bytes, but got less`,
|
|
90
|
+
import_types.BdxStatusCode.LengthTooShort
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (this.bytesLeft !== void 0 && dataLength !== void 0) {
|
|
95
|
+
this.bytesLeft -= value.byteLength;
|
|
96
|
+
if (this.bytesLeft < 0) {
|
|
97
|
+
throw new import_BdxError.BdxError(
|
|
98
|
+
`Data length exceeded, expected ${dataLength}bytes, but got ${-this.bytesLeft}bytes more`,
|
|
99
|
+
import_types.BdxStatusCode.LengthTooLarge
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
if (done && this.bytesLeft > 0) {
|
|
103
|
+
throw new import_BdxError.BdxError(
|
|
104
|
+
`Data length too short, expected ${dataLength}bytes, but got ${this.bytesLeft}bytes less`,
|
|
105
|
+
import_types.BdxStatusCode.LengthTooShort
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
if (this.bytesLeft === 0) {
|
|
109
|
+
done = true;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return { data: value, done };
|
|
113
|
+
}
|
|
114
|
+
async finalizeTransfer() {
|
|
115
|
+
const blockCounter = this.finalBlockCounter;
|
|
116
|
+
const { blockCounter: ackedBlockCounter } = await this.messenger.readBlockAckEof();
|
|
117
|
+
this.validateCounter(ackedBlockCounter, blockCounter);
|
|
118
|
+
}
|
|
119
|
+
async close(error) {
|
|
120
|
+
await super.close(error);
|
|
121
|
+
await this.#closeStreams?.(error);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=OutboundFlow.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/bdx/flow/OutboundFlow.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export * from "./BdxClient.js";
|
|
7
|
+
export * from "./BdxError.js";
|
|
8
|
+
export * from "./BdxMessenger.js";
|
|
9
|
+
export * from "./BdxProtocol.js";
|
|
10
|
+
export * from "./BdxSession.js";
|
|
11
|
+
export * from "./BdxSessionConfiguration.js";
|
|
12
|
+
export * from "./FileDesignator.js";
|
|
13
|
+
export * from "./flow/Flow.js";
|
|
14
|
+
export * from "./PersistedFileDesignator.js";
|
|
15
|
+
export * from "./schema/index.js";
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bdx/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
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 __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var bdx_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(bdx_exports);
|
|
18
|
+
__reExport(bdx_exports, require("./BdxClient.js"), module.exports);
|
|
19
|
+
__reExport(bdx_exports, require("./BdxError.js"), module.exports);
|
|
20
|
+
__reExport(bdx_exports, require("./BdxMessenger.js"), module.exports);
|
|
21
|
+
__reExport(bdx_exports, require("./BdxProtocol.js"), module.exports);
|
|
22
|
+
__reExport(bdx_exports, require("./BdxSession.js"), module.exports);
|
|
23
|
+
__reExport(bdx_exports, require("./BdxSessionConfiguration.js"), module.exports);
|
|
24
|
+
__reExport(bdx_exports, require("./FileDesignator.js"), module.exports);
|
|
25
|
+
__reExport(bdx_exports, require("./flow/Flow.js"), module.exports);
|
|
26
|
+
__reExport(bdx_exports, require("./PersistedFileDesignator.js"), module.exports);
|
|
27
|
+
__reExport(bdx_exports, require("./schema/index.js"), module.exports);
|
|
28
|
+
/**
|
|
29
|
+
* @license
|
|
30
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
31
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
32
|
+
*/
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/bdx/index.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,wBAAc,2BANd;AAOA,wBAAc,0BAPd;AAQA,wBAAc,8BARd;AASA,wBAAc,6BATd;AAUA,wBAAc,4BAVd;AAWA,wBAAc,yCAXd;AAYA,wBAAc,gCAZd;AAaA,wBAAc,2BAbd;AAcA,wBAAc,yCAdd;AAeA,wBAAc,8BAfd;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Bytes } from "#general";
|
|
7
|
+
import { Schema, TypeFromPartialBitSchema } from "#types";
|
|
8
|
+
import { BdxTransferControlBitmap } from "./BdxInitMessagesSchema.js";
|
|
9
|
+
/** @see {@link MatterSpecification.v141.Core}, section 11.22.5.2 */
|
|
10
|
+
export interface BdxSendAccept {
|
|
11
|
+
/**
|
|
12
|
+
* Transfer control details
|
|
13
|
+
* TC
|
|
14
|
+
* 1 octet
|
|
15
|
+
*/
|
|
16
|
+
transferControl: TypeFromPartialBitSchema<typeof BdxTransferControlBitmap>;
|
|
17
|
+
/**
|
|
18
|
+
* Specifies the maximum data size (in bytes) of the block that the Initiator supports, exclusive of block header
|
|
19
|
+
* fields, such as a block counter.
|
|
20
|
+
* MBS, 2 octets
|
|
21
|
+
*/
|
|
22
|
+
maxBlockSize: number;
|
|
23
|
+
/**
|
|
24
|
+
* Allows the Initiator to send additional application-specific information about the file to be transferred
|
|
25
|
+
* MD, Variable length, TLV
|
|
26
|
+
*/
|
|
27
|
+
metaData?: Bytes;
|
|
28
|
+
}
|
|
29
|
+
/** @see {@link MatterSpecification.v141.Core}, section 11.22.5.3 */
|
|
30
|
+
export interface BdxReceiveAccept extends BdxSendAccept {
|
|
31
|
+
/**
|
|
32
|
+
* Specifies a predetermined definite length for the transfer
|
|
33
|
+
* DEFLEN, 4/8 octets
|
|
34
|
+
*/
|
|
35
|
+
length?: number | bigint;
|
|
36
|
+
}
|
|
37
|
+
/** Schema for BDX SendAccept message */
|
|
38
|
+
export declare class BdxSendAcceptMessageSchema<M extends BdxSendAccept> extends Schema<M> {
|
|
39
|
+
encodeInternal(message: M): Uint8Array<ArrayBufferLike>;
|
|
40
|
+
decodeInternal(bytes: Bytes): M;
|
|
41
|
+
validate({ transferControl, maxBlockSize }: M): void;
|
|
42
|
+
}
|
|
43
|
+
export declare const BdxSendAcceptMessage: BdxSendAcceptMessageSchema<BdxSendAccept>;
|
|
44
|
+
/** Schema for Bdx ReceiveAccept message */
|
|
45
|
+
export declare class BdxReceiveAcceptMessageSchema extends BdxSendAcceptMessageSchema<BdxReceiveAccept> {
|
|
46
|
+
encodeInternal(message: BdxReceiveAccept): Uint8Array<ArrayBufferLike>;
|
|
47
|
+
decodeInternal(bytes: Bytes): BdxReceiveAccept;
|
|
48
|
+
}
|
|
49
|
+
export declare const BdxReceiveAcceptMessage: BdxReceiveAcceptMessageSchema;
|
|
50
|
+
//# sourceMappingURL=BdxAcceptMessagesSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BdxAcceptMessagesSchema.d.ts","sourceRoot":"","sources":["../../../../src/bdx/schema/BdxAcceptMessagesSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAkC,MAAM,UAAU,CAAC;AACjE,OAAO,EAAiB,MAAM,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAEzE,OAAO,EAGH,wBAAwB,EAE3B,MAAM,4BAA4B,CAAC;AAEpC,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,eAAe,EAAE,wBAAwB,CAAC,OAAO,wBAAwB,CAAC,CAAC;IAE3E;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;CACpB;AAED,oEAAoE;AACpE,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACnD;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,wCAAwC;AACxC,qBAAa,0BAA0B,CAAC,CAAC,SAAS,aAAa,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IAC9E,cAAc,CAAC,OAAO,EAAE,CAAC;IAezB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC;IAgBtB,QAAQ,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE,CAAC;CAiBzD;AACD,eAAO,MAAM,oBAAoB,2CAAmC,CAAC;AAErE,2CAA2C;AAC3C,qBAAa,6BAA8B,SAAQ,0BAA0B,CAAC,gBAAgB,CAAC;IAClF,cAAc,CAAC,OAAO,EAAE,gBAAgB;IA6BxC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB;CAyB1D;AACD,eAAO,MAAM,uBAAuB,+BAAsC,CAAC"}
|