@brightchain/brightchain-lib 0.1.0 → 0.1.2
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/README.md +348 -87
- package/package.json +15 -1
- package/src/browser.d.ts +5 -1
- package/src/browser.d.ts.map +1 -1
- package/src/browser.js +10 -2
- package/src/browser.js.map +1 -1
- package/src/index.d.ts +2 -1
- package/src/index.d.ts.map +1 -1
- package/src/index.js +2 -1
- package/src/index.js.map +1 -1
- package/src/lib/blockPaddingTransform.d.ts +2 -2
- package/src/lib/blockPaddingTransform.d.ts.map +1 -1
- package/src/lib/blockPaddingTransform.js +26 -9
- package/src/lib/blockPaddingTransform.js.map +1 -1
- package/src/lib/blocks/base.d.ts +1 -1
- package/src/lib/blocks/base.d.ts.map +1 -1
- package/src/lib/blocks/encryptedBlockFactory.d.ts +2 -2
- package/src/lib/blocks/encryptedBlockFactory.d.ts.map +1 -1
- package/src/lib/blocks/encryptedBlockFactory.js +22 -16
- package/src/lib/blocks/encryptedBlockFactory.js.map +1 -1
- package/src/lib/blocks/ephemeral.d.ts +1 -1
- package/src/lib/blocks/ephemeral.d.ts.map +1 -1
- package/src/lib/blocks/ephemeral.js +8 -5
- package/src/lib/blocks/ephemeral.js.map +1 -1
- package/src/lib/blocks/memoryTuple.d.ts +13 -13
- package/src/lib/blocks/memoryTuple.d.ts.map +1 -1
- package/src/lib/blocks/memoryTuple.js +29 -15
- package/src/lib/blocks/memoryTuple.js.map +1 -1
- package/src/lib/blocks/random.d.ts +9 -13
- package/src/lib/blocks/random.d.ts.map +1 -1
- package/src/lib/blocks/random.js +25 -24
- package/src/lib/blocks/random.js.map +1 -1
- package/src/lib/blocks/rawData.d.ts +1 -5
- package/src/lib/blocks/rawData.d.ts.map +1 -1
- package/src/lib/blocks/rawData.js +8 -8
- package/src/lib/blocks/rawData.js.map +1 -1
- package/src/lib/blocks/whitened.d.ts +12 -12
- package/src/lib/blocks/whitened.d.ts.map +1 -1
- package/src/lib/blocks/whitened.js +32 -20
- package/src/lib/blocks/whitened.js.map +1 -1
- package/src/lib/browserBrightChain.d.ts +30 -0
- package/src/lib/browserBrightChain.d.ts.map +1 -0
- package/src/lib/browserBrightChain.js +82 -0
- package/src/lib/browserBrightChain.js.map +1 -0
- package/src/lib/browserCrypto.d.ts +9 -0
- package/src/lib/browserCrypto.d.ts.map +1 -0
- package/src/lib/browserCrypto.js +34 -0
- package/src/lib/browserCrypto.js.map +1 -0
- package/src/lib/browserKeyring.d.ts +21 -0
- package/src/lib/browserKeyring.d.ts.map +1 -0
- package/src/lib/browserKeyring.js +133 -0
- package/src/lib/browserKeyring.js.map +1 -0
- package/src/lib/browserStream.d.ts +40 -0
- package/src/lib/browserStream.d.ts.map +1 -0
- package/src/lib/browserStream.js +154 -0
- package/src/lib/browserStream.js.map +1 -0
- package/src/lib/cblStream.d.ts +2 -2
- package/src/lib/cblStream.d.ts.map +1 -1
- package/src/lib/cblStream.js +21 -43
- package/src/lib/cblStream.js.map +1 -1
- package/src/lib/enumerations/systemKeyringErrorType.d.ts +2 -1
- package/src/lib/enumerations/systemKeyringErrorType.d.ts.map +1 -1
- package/src/lib/enumerations/systemKeyringErrorType.js +1 -0
- package/src/lib/enumerations/systemKeyringErrorType.js.map +1 -1
- package/src/lib/errors/systemKeyringError.d.ts.map +1 -1
- package/src/lib/errors/systemKeyringError.js +1 -0
- package/src/lib/errors/systemKeyringError.js.map +1 -1
- package/src/lib/interfaces/blocks/base.d.ts +1 -1
- package/src/lib/interfaces/blocks/base.d.ts.map +1 -1
- package/src/lib/interfaces/keyringEntry.d.ts +3 -3
- package/src/lib/interfaces/keyringEntry.d.ts.map +1 -1
- package/src/lib/primeTupleGeneratorStream.d.ts +2 -2
- package/src/lib/primeTupleGeneratorStream.d.ts.map +1 -1
- package/src/lib/primeTupleGeneratorStream.js +19 -9
- package/src/lib/primeTupleGeneratorStream.js.map +1 -1
- package/src/lib/secureHeapStorage.d.ts.map +1 -1
- package/src/lib/secureHeapStorage.js +8 -5
- package/src/lib/secureHeapStorage.js.map +1 -1
- package/src/lib/services/fec.service.js +4 -4
- package/src/lib/services/fec.service.js.map +1 -1
- package/src/lib/services/tuple.service.d.ts +5 -5
- package/src/lib/services/tuple.service.d.ts.map +1 -1
- package/src/lib/services/tuple.service.js +47 -38
- package/src/lib/services/tuple.service.js.map +1 -1
- package/src/lib/systemKeyring.d.ts +3 -11
- package/src/lib/systemKeyring.d.ts.map +1 -1
- package/src/lib/systemKeyring.js +7 -95
- package/src/lib/systemKeyring.js.map +1 -1
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Browser-compatible keyring implementation using Web Crypto API and localStorage
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BrowserKeyring = void 0;
|
|
7
|
+
const browserCrypto_1 = require("./browserCrypto");
|
|
8
|
+
const systemKeyringErrorType_1 = require("./enumerations/systemKeyringErrorType");
|
|
9
|
+
const systemKeyringError_1 = require("./errors/systemKeyringError");
|
|
10
|
+
class BrowserKeyring {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.maxAccessRate = 10; // per minute
|
|
13
|
+
this.keys = new Map();
|
|
14
|
+
this.accessLog = new Map();
|
|
15
|
+
}
|
|
16
|
+
static getInstance() {
|
|
17
|
+
if (!BrowserKeyring.instance) {
|
|
18
|
+
BrowserKeyring.instance = new BrowserKeyring();
|
|
19
|
+
}
|
|
20
|
+
return BrowserKeyring.instance;
|
|
21
|
+
}
|
|
22
|
+
async deriveKey(password, salt) {
|
|
23
|
+
const encoder = new TextEncoder();
|
|
24
|
+
const passwordBuffer = encoder.encode(password);
|
|
25
|
+
const keyMaterial = await crypto.subtle.importKey('raw', passwordBuffer, 'PBKDF2', false, ['deriveKey']);
|
|
26
|
+
// Ensure salt has proper ArrayBuffer backing
|
|
27
|
+
const saltBuffer = new Uint8Array(salt);
|
|
28
|
+
return crypto.subtle.deriveKey({
|
|
29
|
+
name: 'PBKDF2',
|
|
30
|
+
salt: saltBuffer,
|
|
31
|
+
iterations: 100000,
|
|
32
|
+
hash: 'SHA-256'
|
|
33
|
+
}, keyMaterial, { name: 'AES-GCM', length: 256 }, false, ['encrypt', 'decrypt']);
|
|
34
|
+
}
|
|
35
|
+
async storeKey(id, data, password) {
|
|
36
|
+
const salt = (0, browserCrypto_1.randomBytes)(32);
|
|
37
|
+
const iv = (0, browserCrypto_1.randomBytes)(12); // GCM uses 12-byte IV
|
|
38
|
+
const key = await this.deriveKey(password, salt);
|
|
39
|
+
// Ensure iv has proper ArrayBuffer backing
|
|
40
|
+
const ivBuffer = new Uint8Array(iv);
|
|
41
|
+
// Ensure data has proper ArrayBuffer backing
|
|
42
|
+
const dataBuffer = new Uint8Array(data);
|
|
43
|
+
const encryptedData = await crypto.subtle.encrypt({ name: 'AES-GCM', iv: ivBuffer }, key, dataBuffer);
|
|
44
|
+
const entry = {
|
|
45
|
+
id,
|
|
46
|
+
version: 1,
|
|
47
|
+
encryptedData: new Uint8Array(encryptedData),
|
|
48
|
+
iv,
|
|
49
|
+
salt,
|
|
50
|
+
created: new Date(),
|
|
51
|
+
};
|
|
52
|
+
this.keys.set(id, entry);
|
|
53
|
+
await this.persistToStorage();
|
|
54
|
+
}
|
|
55
|
+
async retrieveKey(id, password) {
|
|
56
|
+
this.checkRateLimit(id);
|
|
57
|
+
const entry = this.keys.get(id);
|
|
58
|
+
if (!entry) {
|
|
59
|
+
throw new systemKeyringError_1.SystemKeyringError(systemKeyringErrorType_1.SystemKeyringErrorType.KeyNotFound, id);
|
|
60
|
+
}
|
|
61
|
+
const key = await this.deriveKey(password, entry.salt);
|
|
62
|
+
try {
|
|
63
|
+
// Ensure iv has proper ArrayBuffer backing
|
|
64
|
+
const ivBuffer = new Uint8Array(entry.iv);
|
|
65
|
+
// Ensure encryptedData has proper ArrayBuffer backing
|
|
66
|
+
const encryptedDataBuffer = new Uint8Array(entry.encryptedData);
|
|
67
|
+
const decryptedData = await crypto.subtle.decrypt({ name: 'AES-GCM', iv: ivBuffer }, key, encryptedDataBuffer);
|
|
68
|
+
entry.lastAccessed = new Date();
|
|
69
|
+
this.logAccess(id);
|
|
70
|
+
return new Uint8Array(decryptedData);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
throw new systemKeyringError_1.SystemKeyringError(systemKeyringErrorType_1.SystemKeyringErrorType.DecryptionFailed);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
checkRateLimit(id) {
|
|
77
|
+
const accessCount = this.accessLog.get(id) || 0;
|
|
78
|
+
if (accessCount >= this.maxAccessRate) {
|
|
79
|
+
throw new systemKeyringError_1.SystemKeyringError(systemKeyringErrorType_1.SystemKeyringErrorType.RateLimitExceeded);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
logAccess(id) {
|
|
83
|
+
const count = (this.accessLog.get(id) || 0) + 1;
|
|
84
|
+
this.accessLog.set(id, count);
|
|
85
|
+
// Reset count after 1 minute
|
|
86
|
+
setTimeout(() => {
|
|
87
|
+
this.accessLog.set(id, 0);
|
|
88
|
+
}, 60000);
|
|
89
|
+
}
|
|
90
|
+
async persistToStorage() {
|
|
91
|
+
const entries = Array.from(this.keys.entries()).map(([id, entry]) => [
|
|
92
|
+
id,
|
|
93
|
+
{
|
|
94
|
+
...entry,
|
|
95
|
+
encryptedData: Array.from(entry.encryptedData),
|
|
96
|
+
iv: Array.from(entry.iv),
|
|
97
|
+
salt: Array.from(entry.salt),
|
|
98
|
+
}
|
|
99
|
+
]);
|
|
100
|
+
localStorage.setItem('brightchain-keyring', JSON.stringify(entries));
|
|
101
|
+
}
|
|
102
|
+
async loadFromStorage() {
|
|
103
|
+
try {
|
|
104
|
+
const data = localStorage.getItem('brightchain-keyring');
|
|
105
|
+
if (!data)
|
|
106
|
+
return;
|
|
107
|
+
const entries = JSON.parse(data);
|
|
108
|
+
this.keys.clear();
|
|
109
|
+
for (const [id, entry] of entries) {
|
|
110
|
+
this.keys.set(id, {
|
|
111
|
+
...entry,
|
|
112
|
+
encryptedData: new Uint8Array(entry.encryptedData),
|
|
113
|
+
iv: new Uint8Array(entry.iv),
|
|
114
|
+
salt: new Uint8Array(entry.salt),
|
|
115
|
+
created: new Date(entry.created),
|
|
116
|
+
lastAccessed: entry.lastAccessed ? new Date(entry.lastAccessed) : undefined,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
console.warn('Failed to load keyring from storage:', error);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async initialize() {
|
|
125
|
+
await this.loadFromStorage();
|
|
126
|
+
}
|
|
127
|
+
async rotateKey(id, oldPassword, newPassword) {
|
|
128
|
+
const data = await this.retrieveKey(id, oldPassword);
|
|
129
|
+
await this.storeKey(id, data, newPassword);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.BrowserKeyring = BrowserKeyring;
|
|
133
|
+
//# sourceMappingURL=browserKeyring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browserKeyring.js","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/browserKeyring.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal browser-compatible stream implementation
|
|
3
|
+
*/
|
|
4
|
+
export declare class Readable {
|
|
5
|
+
protected _data: Uint8Array;
|
|
6
|
+
protected _position: number;
|
|
7
|
+
protected _listeners: {
|
|
8
|
+
[event: string]: ((...args: any[]) => void)[];
|
|
9
|
+
};
|
|
10
|
+
protected _readableBuffer: Uint8Array[];
|
|
11
|
+
constructor(data?: Uint8Array);
|
|
12
|
+
read(size?: number): Uint8Array | null;
|
|
13
|
+
push(chunk: any): boolean;
|
|
14
|
+
static from(data: Uint8Array): Readable;
|
|
15
|
+
on(event: string, listener: (...args: any[]) => void): this;
|
|
16
|
+
emit(event: string, ...args: any[]): boolean;
|
|
17
|
+
pipe<T extends Transform>(destination: T): T;
|
|
18
|
+
[Symbol.asyncIterator](): AsyncIterableIterator<Uint8Array>;
|
|
19
|
+
}
|
|
20
|
+
export interface TransformCallback {
|
|
21
|
+
(error?: Error | null): void;
|
|
22
|
+
}
|
|
23
|
+
export interface TransformOptions {
|
|
24
|
+
objectMode?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare class Transform extends Readable {
|
|
27
|
+
protected _transformBuffer: Uint8Array[];
|
|
28
|
+
protected _objectMode: boolean;
|
|
29
|
+
protected _ended: boolean;
|
|
30
|
+
constructor(options?: TransformOptions);
|
|
31
|
+
_transform(chunk: any, encoding: string, callback: TransformCallback): void;
|
|
32
|
+
_flush(callback: TransformCallback): void;
|
|
33
|
+
push(chunk: any): boolean;
|
|
34
|
+
write(chunk: any, encoding?: string, callback?: TransformCallback): boolean;
|
|
35
|
+
end(chunk?: any, encoding?: string, callback?: TransformCallback): void;
|
|
36
|
+
destroy(error?: Error): void;
|
|
37
|
+
pipe<T extends Transform>(destination: T): T;
|
|
38
|
+
read(size?: number): Uint8Array | null;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=browserStream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browserStream.d.ts","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/browserStream.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,QAAQ;IACnB,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC;IAC5B,SAAS,CAAC,SAAS,SAAK;IACxB,SAAS,CAAC,UAAU,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAA;KAAE,CAAM;IAC7E,SAAS,CAAC,eAAe,EAAE,UAAU,EAAE,CAAM;gBAEjC,IAAI,CAAC,EAAE,UAAU;IAI7B,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAWtC,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IASzB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,QAAQ;IAKvC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAQ3D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO;IAU5C,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC;IAgBrC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC;CAMnE;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,SAAU,SAAQ,QAAQ;IACrC,SAAS,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAM;IAC9C,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;IAC/B,SAAS,CAAC,MAAM,UAAS;gBAEb,OAAO,CAAC,EAAE,gBAAgB;IAMtC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAO3E,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAKhC,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAiBlC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO;IAO3E,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAWvE,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAMnB,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC;IAiB5C,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;CAQhD"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Minimal browser-compatible stream implementation
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Transform = exports.Readable = void 0;
|
|
7
|
+
class Readable {
|
|
8
|
+
constructor(data) {
|
|
9
|
+
this._position = 0;
|
|
10
|
+
this._listeners = {};
|
|
11
|
+
this._readableBuffer = [];
|
|
12
|
+
this._data = data || new Uint8Array(0);
|
|
13
|
+
}
|
|
14
|
+
read(size) {
|
|
15
|
+
if (this._position >= this._data.length) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const end = size ? Math.min(this._position + size, this._data.length) : this._data.length;
|
|
19
|
+
const chunk = this._data.slice(this._position, end);
|
|
20
|
+
this._position = end;
|
|
21
|
+
return chunk;
|
|
22
|
+
}
|
|
23
|
+
push(chunk) {
|
|
24
|
+
if (chunk !== null) {
|
|
25
|
+
this.emit('data', chunk);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
this.emit('end');
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
static from(data) {
|
|
33
|
+
return new Readable(data);
|
|
34
|
+
}
|
|
35
|
+
// Event emitter methods
|
|
36
|
+
on(event, listener) {
|
|
37
|
+
if (!this._listeners[event]) {
|
|
38
|
+
this._listeners[event] = [];
|
|
39
|
+
}
|
|
40
|
+
this._listeners[event].push(listener);
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
emit(event, ...args) {
|
|
44
|
+
const listeners = this._listeners[event];
|
|
45
|
+
if (listeners) {
|
|
46
|
+
listeners.forEach(listener => listener(...args));
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
// Pipe method for Node.js compatibility
|
|
52
|
+
pipe(destination) {
|
|
53
|
+
// Simple pipe implementation - read all data and write to destination
|
|
54
|
+
const processData = () => {
|
|
55
|
+
let chunk;
|
|
56
|
+
while ((chunk = this.read()) !== null) {
|
|
57
|
+
destination.write(chunk);
|
|
58
|
+
}
|
|
59
|
+
destination.end();
|
|
60
|
+
};
|
|
61
|
+
// Process immediately or on next tick
|
|
62
|
+
setTimeout(processData, 0);
|
|
63
|
+
return destination;
|
|
64
|
+
}
|
|
65
|
+
// Async iterator support for compatibility
|
|
66
|
+
async *[Symbol.asyncIterator]() {
|
|
67
|
+
let chunk;
|
|
68
|
+
while ((chunk = this.read()) !== null) {
|
|
69
|
+
yield chunk;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.Readable = Readable;
|
|
74
|
+
class Transform extends Readable {
|
|
75
|
+
constructor(options) {
|
|
76
|
+
super();
|
|
77
|
+
this._transformBuffer = [];
|
|
78
|
+
this._ended = false;
|
|
79
|
+
this._objectMode = options?.objectMode || false;
|
|
80
|
+
}
|
|
81
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
82
|
+
_transform(chunk, encoding, callback) {
|
|
83
|
+
// Override in subclasses
|
|
84
|
+
this.push(chunk);
|
|
85
|
+
callback();
|
|
86
|
+
}
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
88
|
+
_flush(callback) {
|
|
89
|
+
// Override in subclasses
|
|
90
|
+
callback();
|
|
91
|
+
}
|
|
92
|
+
push(chunk) {
|
|
93
|
+
if (chunk !== null) {
|
|
94
|
+
if (this._objectMode) {
|
|
95
|
+
// In object mode, emit data events directly
|
|
96
|
+
this.emit('data', chunk);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
// In buffer mode, emit data events directly too
|
|
100
|
+
this.emit('data', chunk);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// null means end of stream
|
|
105
|
+
this.emit('end');
|
|
106
|
+
}
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
// Add write method for compatibility
|
|
110
|
+
write(chunk, encoding, callback) {
|
|
111
|
+
const cb = callback || (() => { });
|
|
112
|
+
this._transform(chunk, encoding || 'buffer', cb);
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
// Add end method for compatibility
|
|
116
|
+
end(chunk, encoding, callback) {
|
|
117
|
+
if (chunk) {
|
|
118
|
+
this.write(chunk, encoding);
|
|
119
|
+
}
|
|
120
|
+
this._ended = true;
|
|
121
|
+
this._flush(() => {
|
|
122
|
+
this.push(null);
|
|
123
|
+
if (callback)
|
|
124
|
+
callback();
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
destroy(error) {
|
|
128
|
+
if (error) {
|
|
129
|
+
this.emit('error', error);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
pipe(destination) {
|
|
133
|
+
this.on('data', (chunk) => {
|
|
134
|
+
destination.write(chunk);
|
|
135
|
+
});
|
|
136
|
+
this.on('end', () => {
|
|
137
|
+
destination.end();
|
|
138
|
+
});
|
|
139
|
+
this.on('error', (error) => {
|
|
140
|
+
destination.destroy(error);
|
|
141
|
+
});
|
|
142
|
+
return destination;
|
|
143
|
+
}
|
|
144
|
+
// Override read to return buffered data
|
|
145
|
+
read(size) {
|
|
146
|
+
if (this._transformBuffer.length === 0) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
const chunk = this._transformBuffer.shift();
|
|
150
|
+
return chunk || null;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
exports.Transform = Transform;
|
|
154
|
+
//# sourceMappingURL=browserStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browserStream.js","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/browserStream.ts"],"names":[],"mappings":"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"}
|
package/src/lib/cblStream.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChecksumUint8Array, Member, type PlatformID } from '@digitaldefiance/ecies-lib';
|
|
2
|
-
import { Readable } from '
|
|
2
|
+
import { Readable } from './browserStream';
|
|
3
3
|
import { ConstituentBlockListBlock } from './blocks/cbl';
|
|
4
4
|
import { WhitenedBlock } from './blocks/whitened';
|
|
5
5
|
/**
|
|
@@ -26,7 +26,7 @@ export declare class CblStream<TID extends PlatformID = Uint8Array> extends Read
|
|
|
26
26
|
private readonly creatorForDecryption?;
|
|
27
27
|
private readonly blockService;
|
|
28
28
|
constructor(cbl: ConstituentBlockListBlock, getWhitenedBlock: (blockId: ChecksumUint8Array) => WhitenedBlock, creatorForDecryption?: Member<TID>);
|
|
29
|
-
_read(size: number):
|
|
29
|
+
_read(size: number): void;
|
|
30
30
|
private readData;
|
|
31
31
|
}
|
|
32
32
|
//# sourceMappingURL=cblStream.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cblStream.d.ts","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/cblStream.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,MAAM,EACN,KAAK,UAAU,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cblStream.d.ts","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/cblStream.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,MAAM,EACN,KAAK,UAAU,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAIzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AASlD;;;;;;;;;;;;GAYG;AACH,qBAAa,SAAS,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,QAAQ;IAC1E,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAEd;IACnB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAc;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAG1C,GAAG,EAAE,yBAAyB,EAC9B,gBAAgB,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,aAAa,EAChE,oBAAoB,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC;IAsBpC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;YAOX,QAAQ;CAuEvB"}
|
package/src/lib/cblStream.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CblStream = void 0;
|
|
4
|
-
const
|
|
4
|
+
const browserStream_1 = require("./browserStream");
|
|
5
5
|
const encrypted_1 = require("./blocks/encrypted");
|
|
6
6
|
const ephemeral_1 = require("./blocks/ephemeral");
|
|
7
7
|
const memoryTuple_1 = require("./blocks/memoryTuple");
|
|
@@ -23,7 +23,7 @@ const serviceLocator_1 = require("./services/serviceLocator");
|
|
|
23
23
|
* 3. XORs them together to recover the original data
|
|
24
24
|
* 4. Decrypts the data if needed
|
|
25
25
|
*/
|
|
26
|
-
class CblStream extends
|
|
26
|
+
class CblStream extends browserStream_1.Readable {
|
|
27
27
|
constructor(cbl, getWhitenedBlock, creatorForDecryption) {
|
|
28
28
|
super();
|
|
29
29
|
this.currentTupleIndex = 0;
|
|
@@ -39,50 +39,21 @@ class CblStream extends stream_1.Readable {
|
|
|
39
39
|
}
|
|
40
40
|
this.cbl = cbl;
|
|
41
41
|
this.getWhitenedBlock = getWhitenedBlock;
|
|
42
|
-
|
|
42
|
+
// Ensure we have at least 1 tuple to process if we have addresses
|
|
43
|
+
this.maxTuple = Math.max(1, Math.ceil(cbl.cblAddressCount / cbl.tupleSize));
|
|
43
44
|
this.overallReadOffset = 0;
|
|
44
45
|
this.currentDataOffset = -1;
|
|
45
46
|
this.creatorForDecryption = creatorForDecryption;
|
|
46
47
|
}
|
|
47
|
-
|
|
48
|
-
//
|
|
49
|
-
|
|
50
|
-
this.
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
// Convert originalDataLength to number if it's a BigInt
|
|
54
|
-
const originalDataLength = this.cbl.originalDataLength;
|
|
55
|
-
const bytesRemaining = originalDataLength - this.overallReadOffset;
|
|
56
|
-
let stillToRead = bytesRemaining > size ? size : bytesRemaining;
|
|
57
|
-
while (stillToRead > 0) {
|
|
58
|
-
// If we have no data or have read all current data, read next tuple
|
|
59
|
-
if (!this.currentData ||
|
|
60
|
-
this.currentDataOffset >= this.currentData.data.length) {
|
|
61
|
-
await this.readData();
|
|
62
|
-
if (!this.currentData) {
|
|
63
|
-
// No more data available
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
// Read up to size bytes from the current data
|
|
68
|
-
const bytesToRead = Math.min(stillToRead, this.currentData.data.length - this.currentDataOffset);
|
|
69
|
-
const chunk = this.currentData.data.subarray(this.currentDataOffset, this.currentDataOffset + bytesToRead);
|
|
70
|
-
this.push(chunk);
|
|
71
|
-
this.overallReadOffset += bytesToRead;
|
|
72
|
-
this.currentDataOffset += bytesToRead;
|
|
73
|
-
stillToRead -= bytesToRead;
|
|
74
|
-
// Check if we have reached or exceeded the originalDataLength
|
|
75
|
-
if (this.overallReadOffset >= this.cbl.originalDataLength) {
|
|
76
|
-
this.push(null); // End the stream
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
48
|
+
_read(size) {
|
|
49
|
+
// Trigger async reading immediately
|
|
50
|
+
setTimeout(() => {
|
|
51
|
+
this.readData().catch(error => this.emit('error', error));
|
|
52
|
+
}, 0);
|
|
80
53
|
}
|
|
81
54
|
async readData() {
|
|
82
55
|
if (this.currentTupleIndex >= this.maxTuple) {
|
|
83
|
-
this.push(null);
|
|
84
|
-
this.currentData = null;
|
|
85
|
-
this.currentDataOffset = -1;
|
|
56
|
+
this.push(null); // Signal end of stream
|
|
86
57
|
return;
|
|
87
58
|
}
|
|
88
59
|
try {
|
|
@@ -104,11 +75,10 @@ class CblStream extends stream_1.Readable {
|
|
|
104
75
|
const tuple = new memoryTuple_1.InMemoryBlockTuple(blocks);
|
|
105
76
|
const xoredData = await tuple.xor();
|
|
106
77
|
// Convert RawDataBlock to OwnedDataBlock
|
|
107
|
-
// Handle the case where creator might be undefined
|
|
108
78
|
if (!this.cbl.creator) {
|
|
109
79
|
throw new cblError_1.CblError(cblErrorType_1.CblErrorType.CreatorUndefined);
|
|
110
80
|
}
|
|
111
|
-
this.currentData = await ephemeral_1.EphemeralBlock.from(blockType_1.BlockType.EphemeralOwnedDataBlock, blockDataType_1.BlockDataType.RawData, xoredData.blockSize,
|
|
81
|
+
this.currentData = await ephemeral_1.EphemeralBlock.from(blockType_1.BlockType.EphemeralOwnedDataBlock, blockDataType_1.BlockDataType.RawData, xoredData.blockSize, new Uint8Array(xoredData.data), xoredData.idChecksum, this.cbl.creator, xoredData.metadata.dateCreated, xoredData.metadata.lengthWithoutPadding);
|
|
112
82
|
// Decrypt if needed
|
|
113
83
|
if (this.creatorForDecryption) {
|
|
114
84
|
if (!(this.currentData instanceof encrypted_1.EncryptedBlock)) {
|
|
@@ -116,11 +86,19 @@ class CblStream extends stream_1.Readable {
|
|
|
116
86
|
}
|
|
117
87
|
this.currentData = await this.blockService.decrypt(this.creatorForDecryption, this.currentData, blockType_1.BlockType.EphemeralOwnedDataBlock);
|
|
118
88
|
}
|
|
89
|
+
// Push the data to the stream
|
|
90
|
+
this.push(new Uint8Array(this.currentData.data));
|
|
119
91
|
this.currentTupleIndex++;
|
|
120
|
-
|
|
92
|
+
// Continue reading if there's more data
|
|
93
|
+
if (this.currentTupleIndex < this.maxTuple) {
|
|
94
|
+
setTimeout(() => this.readData(), 0);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
this.push(null); // End stream
|
|
98
|
+
}
|
|
121
99
|
}
|
|
122
100
|
catch (error) {
|
|
123
|
-
this.
|
|
101
|
+
this.emit('error', error instanceof Error
|
|
124
102
|
? error
|
|
125
103
|
: new Error('Unknown error reading data'));
|
|
126
104
|
}
|
package/src/lib/cblStream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cblStream.js","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/cblStream.ts"],"names":[],"mappings":";;;AAKA,
|
|
1
|
+
{"version":3,"file":"cblStream.js","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/cblStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemKeyringErrorType.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/enumerations/systemKeyringErrorType.ts"],"names":[],"mappings":"AAAA,oBAAY,sBAAsB;IAChC,WAAW,gBAAgB;IAC3B,iBAAiB,sBAAsB;
|
|
1
|
+
{"version":3,"file":"systemKeyringErrorType.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/enumerations/systemKeyringErrorType.ts"],"names":[],"mappings":"AAAA,oBAAY,sBAAsB;IAChC,WAAW,gBAAgB;IAC3B,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;CACtC"}
|
|
@@ -5,5 +5,6 @@ var SystemKeyringErrorType;
|
|
|
5
5
|
(function (SystemKeyringErrorType) {
|
|
6
6
|
SystemKeyringErrorType["KeyNotFound"] = "KeyNotFound";
|
|
7
7
|
SystemKeyringErrorType["RateLimitExceeded"] = "RateLimitExceeded";
|
|
8
|
+
SystemKeyringErrorType["DecryptionFailed"] = "DecryptionFailed";
|
|
8
9
|
})(SystemKeyringErrorType || (exports.SystemKeyringErrorType = SystemKeyringErrorType = {}));
|
|
9
10
|
//# sourceMappingURL=systemKeyringErrorType.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemKeyringErrorType.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/enumerations/systemKeyringErrorType.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"systemKeyringErrorType.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/enumerations/systemKeyringErrorType.ts"],"names":[],"mappings":";;;AAAA,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,qDAA2B,CAAA;IAC3B,iEAAuC,CAAA;IACvC,+DAAqC,CAAA;AACvC,CAAC,EAJW,sBAAsB,sCAAtB,sBAAsB,QAIjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemKeyringError.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/errors/systemKeyringError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,WAAW,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,kBAAmB,SAAQ,UAAU,CAAC,sBAAsB,CAAC;IACxE,IAAW,SAAS,IAAI,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"systemKeyringError.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/errors/systemKeyringError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,WAAW,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,kBAAmB,SAAQ,UAAU,CAAC,sBAAsB,CAAC;IACxE,IAAW,SAAS,IAAI,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC,CASlE;gBAEC,IAAI,EAAE,sBAAsB,EAC5B,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,cAAc;CAO7B"}
|
|
@@ -9,6 +9,7 @@ class SystemKeyringError extends typedError_1.TypedError {
|
|
|
9
9
|
return {
|
|
10
10
|
[systemKeyringErrorType_1.SystemKeyringErrorType.KeyNotFound]: stringNames_1.default.Error_SystemKeyringErrorKeyNotFoundTemplate,
|
|
11
11
|
[systemKeyringErrorType_1.SystemKeyringErrorType.RateLimitExceeded]: stringNames_1.default.Error_SystemKeyringErrorRateLimitExceeded,
|
|
12
|
+
[systemKeyringErrorType_1.SystemKeyringErrorType.DecryptionFailed]: stringNames_1.default.Error_SystemKeyringErrorRateLimitExceeded, // Reuse existing error message
|
|
12
13
|
};
|
|
13
14
|
}
|
|
14
15
|
constructor(type, keyId, _language) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemKeyringError.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/errors/systemKeyringError.ts"],"names":[],"mappings":";;;AACA,6DAAsD;AACtD,mFAAgF;AAChF,6CAA0C;AAE1C,MAAa,kBAAmB,SAAQ,uBAAkC;IACxE,IAAW,SAAS;QAClB,OAAO;YACL,CAAC,+CAAsB,CAAC,WAAW,CAAC,EAClC,qBAAW,CAAC,2CAA2C;YACzD,CAAC,+CAAsB,CAAC,iBAAiB,CAAC,EACxC,qBAAW,CAAC,yCAAyC;
|
|
1
|
+
{"version":3,"file":"systemKeyringError.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/errors/systemKeyringError.ts"],"names":[],"mappings":";;;AACA,6DAAsD;AACtD,mFAAgF;AAChF,6CAA0C;AAE1C,MAAa,kBAAmB,SAAQ,uBAAkC;IACxE,IAAW,SAAS;QAClB,OAAO;YACL,CAAC,+CAAsB,CAAC,WAAW,CAAC,EAClC,qBAAW,CAAC,2CAA2C;YACzD,CAAC,+CAAsB,CAAC,iBAAiB,CAAC,EACxC,qBAAW,CAAC,yCAAyC;YACvD,CAAC,+CAAsB,CAAC,gBAAgB,CAAC,EACvC,qBAAW,CAAC,yCAAyC,EAAE,+BAA+B;SACzF,CAAC;IACJ,CAAC;IACD,YACE,IAA4B,EAC5B,KAAc,EACd,SAA0B;QAE1B,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE;YACrB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AArBD,gDAqBC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChecksumString, ChecksumUint8Array } from '@digitaldefiance/ecies-lib';
|
|
2
|
-
import { Readable } from '
|
|
2
|
+
import { Readable } from '../../browserStream';
|
|
3
3
|
import { BlockDataType } from '../../enumerations/blockDataType';
|
|
4
4
|
import { BlockSize } from '../../enumerations/blockSize';
|
|
5
5
|
import { BlockType } from '../../enumerations/blockType';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/blocks/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/blocks/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;OAMG;IACH,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;IAE3B;;;;;OAKG;IACH,IAAI,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC;IAEhC;;;;;;OAMG;IACH,IAAI,SAAS,IAAI,SAAS,CAAC;IAE3B;;;;;;OAMG;IACH,IAAI,UAAU,IAAI,kBAAkB,CAAC;IAErC;;;;;;OAMG;IACH,IAAI,SAAS,IAAI,SAAS,CAAC;IAE3B;;;;;;OAMG;IACH,IAAI,aAAa,IAAI,aAAa,CAAC;IAEnC;;;OAGG;IACH,IAAI,IAAI,IAAI,UAAU,GAAG,QAAQ,CAAC;IAElC;;;;;;OAMG;IACH,IAAI,cAAc,IAAI,cAAc,CAAC;IAErC;;;OAGG;IACH,IAAI,UAAU,IAAI,OAAO,CAAC;IAE1B;;;OAGG;IACH,IAAI,OAAO,IAAI,OAAO,CAAC;IAEvB;;;;;;OAMG;IACH,IAAI,aAAa,IAAI,MAAM,CAAC;IAE5B;;;OAGG;IACH,IAAI,YAAY,IAAI,UAAU,GAAG,UAAU,CAAC;IAE5C;;;;OAIG;IACH,IAAI,cAAc,IAAI,UAAU,GAAG,UAAU,CAAC;IAC9C;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAAC;IAEhC;;;;;;OAMG;IACH,IAAI,eAAe,IAAI,UAAU,GAAG,UAAU,CAAC;IAE/C;;OAEG;IACH,IAAI,SAAS,IAAI,UAAU,GAAG,UAAU,CAAC;IAEzC;;;;;;OAMG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAAC;IAE/B;;;;;;;;OAQG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/B;;;;;;;;OAQG;IACH,YAAY,IAAI,IAAI,CAAC;IAErB;;;OAGG;IACH,QAAQ,IAAI,IAAI,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyringEntry.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/interfaces/keyringEntry.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"keyringEntry.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/interfaces/keyringEntry.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,UAAU,CAAC;IAC1B,EAAE,EAAE,UAAU,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,IAAI,CAAC;IACd,YAAY,CAAC,EAAE,IAAI,CAAC;CACrB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Member, PlatformID } from '@digitaldefiance/ecies-lib';
|
|
2
|
-
import { Transform, TransformCallback, TransformOptions } from '
|
|
2
|
+
import { Transform, TransformCallback, TransformOptions } from './browserStream';
|
|
3
3
|
import { RandomBlock } from './blocks/random';
|
|
4
4
|
import { WhitenedBlock } from './blocks/whitened';
|
|
5
5
|
import { BlockSize } from './enumerations/blockSize';
|
|
@@ -26,7 +26,7 @@ export declare class PrimeTupleGeneratorStream<TID extends PlatformID = Uint8Arr
|
|
|
26
26
|
private readonly randomBlockSource;
|
|
27
27
|
private readonly whitenedBlockSource;
|
|
28
28
|
constructor(blockSize: BlockSize, creator: Member<TID>, whitenedBlockSource: () => WhitenedBlock | undefined, randomBlockSource: () => RandomBlock, options?: TransformOptions);
|
|
29
|
-
_transform(chunk:
|
|
29
|
+
_transform(chunk: any, encoding: string, callback: TransformCallback): Promise<void>;
|
|
30
30
|
private makeTuple;
|
|
31
31
|
_flush(callback: TransformCallback): Promise<void>;
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primeTupleGeneratorStream.d.ts","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/primeTupleGeneratorStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"primeTupleGeneratorStream.d.ts","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/primeTupleGeneratorStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGjF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAOrD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,yBAAyB,CACpC,GAAG,SAAS,UAAU,GAAG,UAAU,CACnC,SAAQ,SAAS;IACjB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAkC;gBAGpE,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACpB,mBAAmB,EAAE,MAAM,aAAa,GAAG,SAAS,EACpD,iBAAiB,EAAE,MAAM,WAAW,EACpC,OAAO,CAAC,EAAE,gBAAgB;IAwBN,UAAU,CAC9B,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC;YAiCF,SAAS;IA2ED,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBzE"}
|