@brightchain/brightchain-lib 0.6.0 → 0.7.0
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/package.json
CHANGED
|
@@ -28,6 +28,7 @@ export declare class MessageCBLService<TID extends PlatformID = Uint8Array> {
|
|
|
28
28
|
createMessage(content: Uint8Array, creator: Member<TID>, options: IMessageCBLOptions): Promise<{
|
|
29
29
|
messageId: string;
|
|
30
30
|
contentBlockIds: string[];
|
|
31
|
+
magnetUrl: string;
|
|
31
32
|
}>;
|
|
32
33
|
getMessageContent(messageId: string): Promise<Uint8Array>;
|
|
33
34
|
getMessageMetadata(messageId: string): Promise<IMessageMetadata | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageCBLService.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/messageCBLService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAMhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAE/F,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAG/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAEL,oBAAoB,EACrB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,eAAe,CAAC;IAC1B,gBAAgB,EAAE,uBAAuB,CAAC;CAC3C;AAED,qBAAa,iBAAiB,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAI9D,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAT1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;gBAG3B,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAC3B,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,WAAW,EACvB,aAAa,CAAC,EAAE,qBAAqB,YAAA,EACtD,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrB,OAAO,CAAC,EAAE,wBAAwB,YAAA,EAClC,MAAM,CAAC,EAAE,cAAc,YAAA;IAKpC,aAAa,CACjB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACpB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"messageCBLService.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/messageCBLService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAMhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAE/F,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAG/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAEL,oBAAoB,EACrB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,eAAe,CAAC;IAC1B,gBAAgB,EAAE,uBAAuB,CAAC;CAC3C;AAED,qBAAa,iBAAiB,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAI9D,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAT1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;gBAG3B,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAC3B,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,WAAW,EACvB,aAAa,CAAC,EAAE,qBAAqB,YAAA,EACtD,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrB,OAAO,CAAC,EAAE,wBAAwB,YAAA,EAClC,MAAM,CAAC,EAAE,cAAc,YAAA;IAKpC,aAAa,CACjB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACpB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IA0HI,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAoCzD,kBAAkB,CACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAMnC,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,sBAAsB;YA2BhB,cAAc;YAwBd,mBAAmB;CASlC"}
|
|
@@ -6,6 +6,7 @@ const constants_1 = require("../../constants");
|
|
|
6
6
|
const blockEncryptionType_1 = require("../../enumerations/blockEncryptionType");
|
|
7
7
|
const durabilityLevel_1 = require("../../enumerations/durabilityLevel");
|
|
8
8
|
const messageDeliveryStatus_1 = require("../../enumerations/messaging/messageDeliveryStatus");
|
|
9
|
+
const messageEncryptionScheme_1 = require("../../enumerations/messaging/messageEncryptionScheme");
|
|
9
10
|
const messageErrorType_1 = require("../../enumerations/messaging/messageErrorType");
|
|
10
11
|
const replicationStatus_1 = require("../../enumerations/replicationStatus");
|
|
11
12
|
const messageError_1 = require("../../errors/messaging/messageError");
|
|
@@ -46,21 +47,17 @@ class MessageCBLService {
|
|
|
46
47
|
}
|
|
47
48
|
const blockIdsArray = this.serializeBlockIds(contentBlockIds);
|
|
48
49
|
const cblHeader = this.cblService.makeCblHeader(creator, new Date(), contentBlockIds.length, content.length, blockIdsArray, blockSize, blockEncryptionType_1.BlockEncryptionType.None);
|
|
49
|
-
const messageCBLData = new Uint8Array(blockSize);
|
|
50
50
|
const totalSize = cblHeader.headerData.length + blockIdsArray.length;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
totalSize,
|
|
54
|
-
blockSize,
|
|
55
|
-
headerSize: cblHeader.headerData.length,
|
|
56
|
-
idsSize: blockIdsArray.length,
|
|
57
|
-
});
|
|
58
|
-
}
|
|
51
|
+
// Create CBL data with exact size needed (no pre-padding)
|
|
52
|
+
const messageCBLData = new Uint8Array(totalSize);
|
|
59
53
|
messageCBLData.set(cblHeader.headerData, 0);
|
|
60
54
|
messageCBLData.set(blockIdsArray, cblHeader.headerData.length);
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
55
|
+
// Store with whitening for Owner-Free storage
|
|
56
|
+
const whiteningResult = await this.blockStore.storeCBLWithWhitening(messageCBLData, {
|
|
57
|
+
isEncrypted: options.encryptionScheme !== messageEncryptionScheme_1.MessageEncryptionScheme.NONE,
|
|
58
|
+
});
|
|
59
|
+
const messageId = whiteningResult.magnetUrl;
|
|
60
|
+
const magnetUrl = whiteningResult.magnetUrl;
|
|
64
61
|
if (this.metadataStore) {
|
|
65
62
|
const metadata = {
|
|
66
63
|
blockId: messageId,
|
|
@@ -89,7 +86,7 @@ class MessageCBLService {
|
|
|
89
86
|
}
|
|
90
87
|
this.metrics?.recordMessageSent();
|
|
91
88
|
this.logger?.logMessageCreated(messageId, options.senderId, options.recipients.length);
|
|
92
|
-
return { messageId, contentBlockIds };
|
|
89
|
+
return { messageId, contentBlockIds, magnetUrl };
|
|
93
90
|
}
|
|
94
91
|
catch (error) {
|
|
95
92
|
await this.cleanupPartialState(contentBlockIds);
|
|
@@ -100,16 +97,18 @@ class MessageCBLService {
|
|
|
100
97
|
}
|
|
101
98
|
throw new messageError_1.MessageError(messageErrorType_1.MessageErrorType.STORAGE_FAILED, 'Failed to create message after retries', {
|
|
102
99
|
error: error instanceof Error ? error.message : 'Unknown error',
|
|
103
|
-
originalError: error instanceof Error ? error.
|
|
100
|
+
originalError: error instanceof Error ? error.message : String(error),
|
|
104
101
|
stack: error instanceof Error ? error.stack : undefined,
|
|
105
102
|
});
|
|
106
103
|
}
|
|
107
104
|
}
|
|
108
105
|
async getMessageContent(messageId) {
|
|
109
106
|
try {
|
|
110
|
-
|
|
111
|
-
const
|
|
112
|
-
const
|
|
107
|
+
// Retrieve whitened CBL using magnet URL
|
|
108
|
+
const components = this.blockStore.parseCBLMagnetUrl(messageId);
|
|
109
|
+
const messageCBLData = await this.blockStore.retrieveCBL(components.blockId1, components.blockId2, components.block1ParityIds, components.block2ParityIds);
|
|
110
|
+
const header = this.cblService.parseBaseHeader(messageCBLData);
|
|
111
|
+
const contentBlockIds = this.extractBlockIds(messageCBLData, header.cblAddressCount);
|
|
113
112
|
const contentChunks = [];
|
|
114
113
|
for (const blockId of contentBlockIds) {
|
|
115
114
|
const block = await this.blockStore.getData(checksum_1.Checksum.fromHex(blockId));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageCBLService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/messageCBLService.ts"],"names":[],"mappings":";;;AACA,kDAAoD;AACpD,+CAA2C;AAC3C,gFAA6E;AAC7E,wEAAqE;AACrE,8FAA2F;
|
|
1
|
+
{"version":3,"file":"messageCBLService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/messageCBLService.ts"],"names":[],"mappings":"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"}
|