@digitaldefiance/node-ecies-lib 4.12.3 → 4.12.7
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 +3 -2
- package/src/index.d.ts +1 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +2 -0
- package/src/index.js.map +1 -1
- package/src/transforms/checksumTransform.d.ts +8 -0
- package/src/transforms/checksumTransform.d.ts.map +1 -0
- package/src/transforms/checksumTransform.js +23 -0
- package/src/transforms/checksumTransform.js.map +1 -0
- package/src/transforms/eciesDecryptTransform.d.ts +14 -0
- package/src/transforms/eciesDecryptTransform.d.ts.map +1 -0
- package/src/transforms/eciesDecryptTransform.js +80 -0
- package/src/transforms/eciesDecryptTransform.js.map +1 -0
- package/src/transforms/eciesEncryptTransform.d.ts +17 -0
- package/src/transforms/eciesEncryptTransform.d.ts.map +1 -0
- package/src/transforms/eciesEncryptTransform.js +93 -0
- package/src/transforms/eciesEncryptTransform.js.map +1 -0
- package/src/transforms/index.d.ts +6 -0
- package/src/transforms/index.d.ts.map +1 -0
- package/src/transforms/index.js +9 -0
- package/src/transforms/index.js.map +1 -0
- package/src/transforms/xorMultipleTransform.d.ts +13 -0
- package/src/transforms/xorMultipleTransform.d.ts.map +1 -0
- package/src/transforms/xorMultipleTransform.js +56 -0
- package/src/transforms/xorMultipleTransform.js.map +1 -0
- package/src/transforms/xorTransform.d.ts +9 -0
- package/src/transforms/xorTransform.d.ts.map +1 -0
- package/src/transforms/xorTransform.js +31 -0
- package/src/transforms/xorTransform.js.map +1 -0
- package/src/typed-configuration.d.ts +40 -0
- package/src/typed-configuration.d.ts.map +1 -1
- package/src/typed-configuration.js +37 -2
- package/src/typed-configuration.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digitaldefiance/node-ecies-lib",
|
|
3
|
-
"version": "4.12.
|
|
3
|
+
"version": "4.12.7",
|
|
4
4
|
"description": "Digital Defiance Node ECIES Library",
|
|
5
5
|
"homepage": "https://github.com/Digital-Defiance/node-ecies-lib",
|
|
6
6
|
"repository": {
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"license": "MIT",
|
|
63
63
|
"packageManager": "yarn@4.10.3",
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@digitaldefiance/ecies-lib": "4.12.
|
|
65
|
+
"@digitaldefiance/ecies-lib": "4.12.7",
|
|
66
66
|
"@digitaldefiance/express-suite-test-utils": "1.0.14",
|
|
67
67
|
"@digitaldefiance/i18n-lib": "3.8.16",
|
|
68
68
|
"@ethereumjs/wallet": "^10.0.0",
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"@scure/bip32": "1.7.0",
|
|
72
72
|
"bson": "^6.10.4",
|
|
73
73
|
"ethereum-cryptography": "^3.2.0",
|
|
74
|
+
"js-sha3": "^0.9.3",
|
|
74
75
|
"paillier-bigint": "^3.4.1",
|
|
75
76
|
"ts-brand": "^0.2.0"
|
|
76
77
|
},
|
package/src/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * from './interfaces';
|
|
|
8
8
|
export * from './member';
|
|
9
9
|
export * from './types';
|
|
10
10
|
export * from './secure-buffer';
|
|
11
|
+
export * from './transforms';
|
|
11
12
|
export { AESGCMService } from './services/aes-gcm';
|
|
12
13
|
export { ChunkProcessor } from './services/chunk-processor';
|
|
13
14
|
export * from './services/ecies';
|
package/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AAGtB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAGhC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,YAAY,EACV,UAAU,EACV,SAAS,EACT,OAAO,IAAI,eAAe,GAC3B,MAAM,iBAAiB,CAAC;AAGzB,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AAGtB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAGhC,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,YAAY,EACV,UAAU,EACV,SAAS,EACT,OAAO,IAAI,eAAe,GAC3B,MAAM,iBAAiB,CAAC;AAGzB,cAAc,uBAAuB,CAAC"}
|
package/src/index.js
CHANGED
|
@@ -14,6 +14,8 @@ tslib_1.__exportStar(require("./interfaces"), exports);
|
|
|
14
14
|
tslib_1.__exportStar(require("./member"), exports);
|
|
15
15
|
tslib_1.__exportStar(require("./types"), exports);
|
|
16
16
|
tslib_1.__exportStar(require("./secure-buffer"), exports);
|
|
17
|
+
// Transforms - stream transforms for encryption/decryption
|
|
18
|
+
tslib_1.__exportStar(require("./transforms"), exports);
|
|
17
19
|
// Services - explicit exports to avoid conflicts
|
|
18
20
|
var aes_gcm_1 = require("./services/aes-gcm");
|
|
19
21
|
Object.defineProperty(exports, "AESGCMService", { enumerable: true, get: function () { return aes_gcm_1.AESGCMService; } });
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":";;;;AAAA,0BAA0B;AAC1B,qDAA2B;AAC3B,iDAAuB;AACvB,gDAAsB;AAEtB,4CAA4C;AAC5C,sDAA4B;AAC5B,yDAA+B;AAC/B,iDAAuB;AACvB,uDAA6B;AAC7B,mDAAyB;AACzB,kDAAwB;AACxB,0DAAgC;AAEhC,iDAAiD;AACjD,8CAAmD;AAA1C,wGAAA,aAAa,OAAA;AACtB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,2DAAiC;AACjC,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,kFAA+E;AAAtE,oIAAA,uBAAuB,OAAA;AAChC,4CAAkD;AAAzC,uGAAA,aAAa,OAAA;AACtB,gEAA8D;AAArD,mHAAA,eAAe,OAAA;AACxB,oEAA0C;AAE1C,kCAAkC;AAClC,qDAAsD;AAA7C,oHAAA,iBAAiB,OAAA;AAC1B,uDAAwD;AAA/C,sHAAA,kBAAkB,OAAA;AAS3B,iEAAiE;AACjE,gEAAsC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":";;;;AAAA,0BAA0B;AAC1B,qDAA2B;AAC3B,iDAAuB;AACvB,gDAAsB;AAEtB,4CAA4C;AAC5C,sDAA4B;AAC5B,yDAA+B;AAC/B,iDAAuB;AACvB,uDAA6B;AAC7B,mDAAyB;AACzB,kDAAwB;AACxB,0DAAgC;AAEhC,2DAA2D;AAC3D,uDAA6B;AAE7B,iDAAiD;AACjD,8CAAmD;AAA1C,wGAAA,aAAa,OAAA;AACtB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,2DAAiC;AACjC,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,kFAA+E;AAAtE,oIAAA,uBAAuB,OAAA;AAChC,4CAAkD;AAAzC,uGAAA,aAAa,OAAA;AACtB,gEAA8D;AAArD,mHAAA,eAAe,OAAA;AACxB,oEAA0C;AAE1C,kCAAkC;AAClC,qDAAsD;AAA7C,oHAAA,iBAAiB,OAAA;AAC1B,uDAAwD;AAA/C,sHAAA,kBAAkB,OAAA;AAS3B,iEAAiE;AACjE,gEAAsC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Transform, TransformCallback } from 'stream';
|
|
2
|
+
export declare class ChecksumTransform extends Transform {
|
|
3
|
+
private sha3;
|
|
4
|
+
constructor();
|
|
5
|
+
_transform(chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback): void;
|
|
6
|
+
_flush(callback: TransformCallback): void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=checksumTransform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checksumTransform.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/checksumTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAMtD,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,OAAO,CAAC,IAAI,CAAS;;IAML,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,iBAAiB;IAMb,MAAM,CAAC,QAAQ,EAAE,iBAAiB;CAKnD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChecksumTransform = void 0;
|
|
4
|
+
const stream_1 = require("stream");
|
|
5
|
+
const js_sha3_1 = require("js-sha3");
|
|
6
|
+
class ChecksumTransform extends stream_1.Transform {
|
|
7
|
+
sha3;
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.sha3 = js_sha3_1.sha3_512.create();
|
|
11
|
+
}
|
|
12
|
+
_transform(chunk, encoding, callback) {
|
|
13
|
+
this.sha3.update(chunk);
|
|
14
|
+
callback(null, chunk);
|
|
15
|
+
}
|
|
16
|
+
_flush(callback) {
|
|
17
|
+
const checksum = this.sha3.digest();
|
|
18
|
+
this.emit('checksum', Buffer.from(checksum));
|
|
19
|
+
callback();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.ChecksumTransform = ChecksumTransform;
|
|
23
|
+
//# sourceMappingURL=checksumTransform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checksumTransform.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/checksumTransform.ts"],"names":[],"mappings":";;;AAAA,mCAAsD;AAEtD,qCAA2C;AAI3C,MAAa,iBAAkB,SAAQ,kBAAS;IACtC,IAAI,CAAS;IACrB;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,kBAAQ,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAEe,UAAU,CACxB,KAAa,EACb,QAAwB,EACxB,QAA2B;QAE3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAEe,MAAM,CAAC,QAA2B;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAA8B,CAAC,CAAC;QAC1E,QAAQ,EAAE,CAAC;IACb,CAAC;CACF;AArBD,8CAqBC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Transform, TransformCallback, TransformOptions } from 'stream';
|
|
2
|
+
import { PlatformID } from '../interfaces';
|
|
3
|
+
import { ECIESService } from '../services';
|
|
4
|
+
export declare class EciesDecryptionTransform<TID extends PlatformID = Buffer> extends Transform {
|
|
5
|
+
private readonly blockSize;
|
|
6
|
+
private readonly privateKey;
|
|
7
|
+
private buffer;
|
|
8
|
+
private readonly logger;
|
|
9
|
+
private readonly eciesService;
|
|
10
|
+
constructor(eciesService: ECIESService<TID>, privateKey: Buffer, blockSize: number, options?: TransformOptions, logger?: Console);
|
|
11
|
+
_transform(chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback): void;
|
|
12
|
+
_flush(callback: TransformCallback): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=eciesDecryptTransform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eciesDecryptTransform.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/eciesDecryptTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,qBAAa,wBAAwB,CACnC,GAAG,SAAS,UAAU,GAAG,MAAM,CAC/B,SAAQ,SAAS;IACjB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;gBAG/C,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,gBAAgB,EAC1B,MAAM,GAAE,OAAiB;IAYX,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI;IAkDS,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;CAoB1D"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EciesDecryptionTransform = void 0;
|
|
4
|
+
const stream_1 = require("stream");
|
|
5
|
+
class EciesDecryptionTransform extends stream_1.Transform {
|
|
6
|
+
blockSize;
|
|
7
|
+
privateKey;
|
|
8
|
+
buffer;
|
|
9
|
+
logger;
|
|
10
|
+
eciesService;
|
|
11
|
+
constructor(eciesService, privateKey, blockSize, options, logger = console) {
|
|
12
|
+
super(options);
|
|
13
|
+
this.logger = logger;
|
|
14
|
+
this.privateKey = privateKey;
|
|
15
|
+
this.blockSize = blockSize;
|
|
16
|
+
this.buffer = Buffer.alloc(0);
|
|
17
|
+
// Use provided service or create one with GuidV4Provider config
|
|
18
|
+
this.eciesService = eciesService;
|
|
19
|
+
}
|
|
20
|
+
_transform(chunk, encoding, callback) {
|
|
21
|
+
try {
|
|
22
|
+
if (chunk.length === 0) {
|
|
23
|
+
callback();
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
// Add new chunk to buffer
|
|
27
|
+
this.buffer = Buffer.concat([this.buffer, chunk]);
|
|
28
|
+
// Process complete blocks
|
|
29
|
+
while (this.buffer.length >= this.blockSize) {
|
|
30
|
+
const encryptedBlock = this.buffer.subarray(0, this.blockSize);
|
|
31
|
+
this.buffer = this.buffer.subarray(this.blockSize);
|
|
32
|
+
try {
|
|
33
|
+
const decryptedBlock = this.eciesService.decryptSimpleOrSingleWithHeader(true, // decryptSimple = true
|
|
34
|
+
this.privateKey, encryptedBlock);
|
|
35
|
+
this.push(decryptedBlock);
|
|
36
|
+
}
|
|
37
|
+
catch (decryptError) {
|
|
38
|
+
console.error('Block decryption error:', {
|
|
39
|
+
error: decryptError,
|
|
40
|
+
blockSize: this.blockSize,
|
|
41
|
+
encryptedBlockLength: encryptedBlock.length,
|
|
42
|
+
privateKeyLength: this.privateKey.length,
|
|
43
|
+
});
|
|
44
|
+
throw decryptError;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
callback();
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
this.logger.error('Transform error details:', {
|
|
51
|
+
error,
|
|
52
|
+
blockSize: this.blockSize,
|
|
53
|
+
bufferLength: this.buffer.length,
|
|
54
|
+
chunkLength: chunk.length,
|
|
55
|
+
privateKeyLength: this.privateKey.length,
|
|
56
|
+
});
|
|
57
|
+
const finalError = error instanceof Error ? error : new Error('Decryption failed');
|
|
58
|
+
this.logger.error('Transform error:', finalError);
|
|
59
|
+
callback(finalError);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
_flush(callback) {
|
|
63
|
+
try {
|
|
64
|
+
// Handle any remaining data in buffer
|
|
65
|
+
if (this.buffer.length > 0) {
|
|
66
|
+
const decryptedBlock = this.eciesService.decryptSimpleOrSingleWithHeader(true, // decryptSimple = true
|
|
67
|
+
this.privateKey, this.buffer);
|
|
68
|
+
this.push(decryptedBlock);
|
|
69
|
+
}
|
|
70
|
+
callback();
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
const finalError = error instanceof Error ? error : new Error('Decryption failed');
|
|
74
|
+
this.logger.error('Flush error:', finalError);
|
|
75
|
+
callback(finalError);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.EciesDecryptionTransform = EciesDecryptionTransform;
|
|
80
|
+
//# sourceMappingURL=eciesDecryptTransform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eciesDecryptTransform.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/eciesDecryptTransform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Transform, TransformCallback } from 'stream';
|
|
2
|
+
import { ECIESService } from '../services';
|
|
3
|
+
/**
|
|
4
|
+
* Transform stream that encrypts data using ECIES encryption
|
|
5
|
+
*/
|
|
6
|
+
export declare class EciesEncryptTransform extends Transform {
|
|
7
|
+
private readonly blockSize;
|
|
8
|
+
private readonly receiverPublicKey;
|
|
9
|
+
private buffer;
|
|
10
|
+
private readonly capacityPerBlock;
|
|
11
|
+
private readonly logger;
|
|
12
|
+
private readonly eciesService;
|
|
13
|
+
constructor(eciesService: ECIESService, blockSize: number, receiverPublicKey: Buffer, logger?: Console);
|
|
14
|
+
_transform(chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback): void;
|
|
15
|
+
_flush(callback: TransformCallback): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=eciesEncryptTransform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eciesEncryptTransform.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/eciesEncryptTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,SAAS;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAG1C,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EACzB,MAAM,GAAE,OAAiB;IA4BX,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI;IAsDS,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;CAmB1D"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EciesEncryptTransform = void 0;
|
|
4
|
+
const stream_1 = require("stream");
|
|
5
|
+
/**
|
|
6
|
+
* Transform stream that encrypts data using ECIES encryption
|
|
7
|
+
*/
|
|
8
|
+
class EciesEncryptTransform extends stream_1.Transform {
|
|
9
|
+
blockSize;
|
|
10
|
+
receiverPublicKey;
|
|
11
|
+
buffer;
|
|
12
|
+
capacityPerBlock;
|
|
13
|
+
logger;
|
|
14
|
+
eciesService;
|
|
15
|
+
constructor(eciesService, blockSize, receiverPublicKey, logger = console) {
|
|
16
|
+
super();
|
|
17
|
+
this.logger = logger;
|
|
18
|
+
this.blockSize = blockSize;
|
|
19
|
+
// Validate public key size (should be 33 bytes for compressed or 65 bytes for uncompressed secp256k1 public key)
|
|
20
|
+
if (receiverPublicKey.length !== 33 && receiverPublicKey.length !== 65) {
|
|
21
|
+
throw new Error(`Invalid public key length: expected 33 or 65 bytes, got ${receiverPublicKey.length}`);
|
|
22
|
+
}
|
|
23
|
+
this.receiverPublicKey = receiverPublicKey;
|
|
24
|
+
this.buffer = Buffer.alloc(0);
|
|
25
|
+
this.eciesService = eciesService;
|
|
26
|
+
// Calculate how much data we can encrypt per block
|
|
27
|
+
const encryptedLength = this.eciesService.computeEncryptedLengthFromDataLength(this.blockSize, 'simple');
|
|
28
|
+
// For Simple encryption, capacity = blockSize - overhead
|
|
29
|
+
this.capacityPerBlock = this.blockSize - (encryptedLength - this.blockSize);
|
|
30
|
+
}
|
|
31
|
+
_transform(chunk, encoding, callback) {
|
|
32
|
+
try {
|
|
33
|
+
if (chunk.length === 0) {
|
|
34
|
+
callback();
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
// Add new chunk to buffer by creating a new Uint8Array with combined length
|
|
38
|
+
const newBuffer = Buffer.alloc(this.buffer.length + chunk.length);
|
|
39
|
+
newBuffer.set(this.buffer);
|
|
40
|
+
newBuffer.set(chunk, this.buffer.length);
|
|
41
|
+
this.buffer = newBuffer;
|
|
42
|
+
// Process complete blocks
|
|
43
|
+
while (this.buffer.length >= this.capacityPerBlock) {
|
|
44
|
+
const blockData = this.buffer.subarray(0, this.capacityPerBlock);
|
|
45
|
+
this.buffer = this.buffer.subarray(this.capacityPerBlock);
|
|
46
|
+
const encryptedBlock = this.eciesService.encryptSimpleOrSingle(true, // encryptSimple = true
|
|
47
|
+
this.receiverPublicKey, blockData);
|
|
48
|
+
this.push(encryptedBlock);
|
|
49
|
+
}
|
|
50
|
+
callback();
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
// Create final error with message
|
|
54
|
+
const finalError = error instanceof Error
|
|
55
|
+
? new Error(`Encryption failed: ${error.message}`)
|
|
56
|
+
: new Error('Encryption failed');
|
|
57
|
+
// Log errors before emitting
|
|
58
|
+
this.logger.error('Encryption error:', finalError);
|
|
59
|
+
this.logger.error('Error details:', {
|
|
60
|
+
error,
|
|
61
|
+
publicKeyLength: this.receiverPublicKey.length,
|
|
62
|
+
publicKeyPrefix: this.receiverPublicKey.subarray(0, 4),
|
|
63
|
+
dataLength: chunk.length,
|
|
64
|
+
blockSize: this.blockSize,
|
|
65
|
+
bufferLength: this.buffer.length,
|
|
66
|
+
capacityPerBlock: this.capacityPerBlock,
|
|
67
|
+
});
|
|
68
|
+
// Emit error event and call callback
|
|
69
|
+
setImmediate(() => {
|
|
70
|
+
this.emit('error', finalError);
|
|
71
|
+
callback(finalError);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
_flush(callback) {
|
|
76
|
+
try {
|
|
77
|
+
// Handle any remaining data in buffer
|
|
78
|
+
if (this.buffer.length > 0) {
|
|
79
|
+
const encryptedBlock = this.eciesService.encryptSimpleOrSingle(true, // encryptSimple = true
|
|
80
|
+
this.receiverPublicKey, this.buffer);
|
|
81
|
+
this.push(encryptedBlock);
|
|
82
|
+
}
|
|
83
|
+
callback();
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
const finalError = error instanceof Error ? error : new Error('Encryption failed');
|
|
87
|
+
this.logger.error('Flush error:', finalError);
|
|
88
|
+
callback(finalError);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.EciesEncryptTransform = EciesEncryptTransform;
|
|
93
|
+
//# sourceMappingURL=eciesEncryptTransform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eciesEncryptTransform.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/eciesEncryptTransform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./checksumTransform"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./eciesDecryptTransform"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./eciesEncryptTransform"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./xorMultipleTransform"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./xorTransform"), exports);
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,kEAAwC;AACxC,kEAAwC;AACxC,iEAAuC;AACvC,yDAA+B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Readable, Transform, TransformCallback } from 'stream';
|
|
2
|
+
export declare class XorMultipleTransformStream extends Transform {
|
|
3
|
+
private sources;
|
|
4
|
+
private buffers;
|
|
5
|
+
private readonly streamEnded;
|
|
6
|
+
constructor(sources: Readable[]);
|
|
7
|
+
processData(): void;
|
|
8
|
+
checkEndCondition(): void;
|
|
9
|
+
_transform(chunk: Buffer, encoding: string, callback: TransformCallback): void;
|
|
10
|
+
_flush(callback: TransformCallback): void;
|
|
11
|
+
}
|
|
12
|
+
export default XorMultipleTransformStream;
|
|
13
|
+
//# sourceMappingURL=xorMultipleTransform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xorMultipleTransform.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/xorMultipleTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEhE,qBAAa,0BAA2B,SAAQ,SAAS;IACvD,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAY;gBAE5B,OAAO,EAAE,QAAQ,EAAE;IAmB/B,WAAW,IAAI,IAAI;IAoCnB,iBAAiB,IAAI,IAAI;IAMhB,UAAU,CACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI;IAKE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;CAGnD;AAED,eAAe,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XorMultipleTransformStream = void 0;
|
|
4
|
+
const stream_1 = require("stream");
|
|
5
|
+
class XorMultipleTransformStream extends stream_1.Transform {
|
|
6
|
+
sources;
|
|
7
|
+
buffers;
|
|
8
|
+
streamEnded;
|
|
9
|
+
constructor(sources) {
|
|
10
|
+
super();
|
|
11
|
+
this.sources = sources;
|
|
12
|
+
this.buffers = new Array(sources.length).fill(null);
|
|
13
|
+
this.streamEnded = new Array(sources.length).fill(false);
|
|
14
|
+
this.sources.forEach((source, index) => {
|
|
15
|
+
source.on('data', (chunk) => {
|
|
16
|
+
this.buffers[index] = chunk;
|
|
17
|
+
this.processData();
|
|
18
|
+
});
|
|
19
|
+
source.on('end', () => {
|
|
20
|
+
this.streamEnded[index] = true;
|
|
21
|
+
this.checkEndCondition();
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
processData() {
|
|
26
|
+
if (this.buffers.every((buffer, index) => buffer !== null || this.streamEnded[index])) {
|
|
27
|
+
const minLength = Math.min(...this.buffers.map((buffer, index) => this.streamEnded[index] ? 0 : buffer.length));
|
|
28
|
+
if (minLength === 0) {
|
|
29
|
+
this.end();
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const xorResult = Buffer.alloc(minLength);
|
|
33
|
+
for (let i = 0; i < minLength; i++) {
|
|
34
|
+
xorResult[i] = this.buffers.reduce((acc, buffer, index) => this.streamEnded[index] ? acc : acc ^ buffer[i], 0);
|
|
35
|
+
}
|
|
36
|
+
this.push(xorResult);
|
|
37
|
+
// Update buffers
|
|
38
|
+
this.buffers = this.buffers.map((buffer, index) => this.streamEnded[index] ? buffer : buffer.subarray(minLength));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
checkEndCondition() {
|
|
42
|
+
if (this.streamEnded.every((ended) => ended)) {
|
|
43
|
+
this.end();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
_transform(chunk, encoding, callback) {
|
|
47
|
+
// This transform does not use the incoming chunk directly
|
|
48
|
+
callback();
|
|
49
|
+
}
|
|
50
|
+
_flush(callback) {
|
|
51
|
+
callback();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.XorMultipleTransformStream = XorMultipleTransformStream;
|
|
55
|
+
exports.default = XorMultipleTransformStream;
|
|
56
|
+
//# sourceMappingURL=xorMultipleTransform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xorMultipleTransform.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/xorMultipleTransform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Transform, TransformCallback } from 'stream';
|
|
2
|
+
export declare class XorTransform extends Transform {
|
|
3
|
+
private firstChunk;
|
|
4
|
+
private xorChunk;
|
|
5
|
+
constructor();
|
|
6
|
+
_transform(chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback): void;
|
|
7
|
+
_flush(callback: TransformCallback): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=xorTransform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xorTransform.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/xorTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEtD,qBAAa,YAAa,SAAQ,SAAS;IACzC,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,QAAQ,CAAS;;IAOT,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,iBAAiB;IAab,MAAM,CAAC,QAAQ,EAAE,iBAAiB;CAInD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XorTransform = void 0;
|
|
4
|
+
const stream_1 = require("stream");
|
|
5
|
+
class XorTransform extends stream_1.Transform {
|
|
6
|
+
firstChunk;
|
|
7
|
+
xorChunk;
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.firstChunk = true;
|
|
11
|
+
this.xorChunk = Buffer.alloc(0);
|
|
12
|
+
}
|
|
13
|
+
_transform(chunk, encoding, callback) {
|
|
14
|
+
if (this.firstChunk) {
|
|
15
|
+
this.xorChunk = chunk;
|
|
16
|
+
this.firstChunk = false;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
for (let i = 0; i < chunk.length; i++) {
|
|
20
|
+
this.xorChunk[i] ^= chunk[i];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
callback();
|
|
24
|
+
}
|
|
25
|
+
_flush(callback) {
|
|
26
|
+
this.push(this.xorChunk);
|
|
27
|
+
callback();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.XorTransform = XorTransform;
|
|
31
|
+
//# sourceMappingURL=xorTransform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xorTransform.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/xorTransform.ts"],"names":[],"mappings":";;;AAAA,mCAAsD;AAEtD,MAAa,YAAa,SAAQ,kBAAS;IACjC,UAAU,CAAU;IACpB,QAAQ,CAAS;IACzB;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAEe,UAAU,CACxB,KAAa,EACb,QAAwB,EACxB,QAA2B;QAE3B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,QAAQ,EAAE,CAAC;IACb,CAAC;IAEe,MAAM,CAAC,QAA2B;QAChD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,QAAQ,EAAE,CAAC;IACb,CAAC;CACF;AA7BD,oCA6BC"}
|
|
@@ -42,6 +42,24 @@ export interface IEnhancedNodeIdProvider<TID> extends IIdProvider<TID> {
|
|
|
42
42
|
* @returns A strongly-typed ID of type TID
|
|
43
43
|
*/
|
|
44
44
|
fromBytesTyped(bytes: Uint8Array): TID;
|
|
45
|
+
/**
|
|
46
|
+
* Validate an ID with strong typing.
|
|
47
|
+
* @param id The ID to validate
|
|
48
|
+
* @returns True if valid, false otherwise
|
|
49
|
+
*/
|
|
50
|
+
validateTyped(id: TID): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Serialize strongly-typed ID to string.
|
|
53
|
+
* @param id The ID to serialize
|
|
54
|
+
* @returns The serialized ID
|
|
55
|
+
*/
|
|
56
|
+
serializeTyped(id: TID): string;
|
|
57
|
+
/**
|
|
58
|
+
* Deserialize string to strongly-typed ID.
|
|
59
|
+
* @param serialized The serialized ID
|
|
60
|
+
* @returns The deserialized ID
|
|
61
|
+
*/
|
|
62
|
+
deserializeTyped(serialized: string): TID;
|
|
45
63
|
/**
|
|
46
64
|
* Access to the underlying provider for advanced operations.
|
|
47
65
|
*/
|
|
@@ -83,6 +101,12 @@ export interface ITypedNodeIdProvider<TID> {
|
|
|
83
101
|
* @returns The deserialized ID
|
|
84
102
|
*/
|
|
85
103
|
deserializeTyped(serialized: string): TID;
|
|
104
|
+
/**
|
|
105
|
+
* Validate an ID with strong typing.
|
|
106
|
+
* @param id The ID to validate
|
|
107
|
+
* @returns True if valid, false otherwise
|
|
108
|
+
*/
|
|
109
|
+
validateTyped(id: TID): boolean;
|
|
86
110
|
/**
|
|
87
111
|
* The byte length of IDs produced by this provider.
|
|
88
112
|
*/
|
|
@@ -149,6 +173,22 @@ export interface INodeTypedConfiguration<TID> {
|
|
|
149
173
|
* ```
|
|
150
174
|
*/
|
|
151
175
|
export declare function getEnhancedNodeIdProvider<TID>(): IEnhancedNodeIdProvider<TID>;
|
|
176
|
+
/**
|
|
177
|
+
* Ensure that the ID provider has the expected name and returns a typed wrapper.
|
|
178
|
+
* This is useful for ensuring that the correct ID provider is being used.
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```typescript
|
|
182
|
+
* // For ObjectId configurations
|
|
183
|
+
* const config = ensureEnhancedNodeIdProvider<ObjectId>('ObjectId');
|
|
184
|
+
*
|
|
185
|
+
* // For GUID configurations
|
|
186
|
+
* const guidConfig = ensureEnhancedNodeIdProvider<GuidV4>('GuidV4');
|
|
187
|
+
* ```
|
|
188
|
+
* @param name Expected provider name
|
|
189
|
+
* @returns IEnhancedNodeIdProvider<TID>
|
|
190
|
+
*/
|
|
191
|
+
export declare function ensureEnhancedNodeIdProvider<TID>(name: string): IEnhancedNodeIdProvider<TID>;
|
|
152
192
|
/**
|
|
153
193
|
* Get a simple typed Node.js ID provider with minimal API surface.
|
|
154
194
|
* Only provides strongly-typed methods without the original IIdProvider interface.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-configuration.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/typed-configuration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EACL,2BAA2B,EAE3B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB,CAAC,GAAG,CAAE,SAAQ,WAAW,CAAC,GAAG,CAAC;IACpE;;;OAGG;IACH,aAAa,IAAI,GAAG,CAAC;IAErB;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;CAC/C;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB,CAAC,GAAG;IACvC;;;OAGG;IACH,aAAa,IAAI,GAAG,CAAC;IAErB;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC;IAEvC;;;;OAIG;IACH,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,UAAU,CAAC;IAElC;;;;OAIG;IACH,cAAc,CAAC,EAAE,EAAE,GAAG,GAAG,MAAM,CAAC;IAEhC;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB,CAAC,GAAG;IAC1C;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;IAE7C;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAE1D;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAEpD;;;OAGG;IACH,UAAU,IAAI,GAAG,CAAC;IAElB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC;IAEpC;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,GAAG,GAAG,UAAU,CAAC;CAChC;
|
|
1
|
+
{"version":3,"file":"typed-configuration.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/typed-configuration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EACL,2BAA2B,EAE3B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB,CAAC,GAAG,CAAE,SAAQ,WAAW,CAAC,GAAG,CAAC;IACpE;;;OAGG;IACH,aAAa,IAAI,GAAG,CAAC;IAErB;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC;IAEvC;;;;OAIG;IACH,aAAa,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC;IAEhC;;;;OAIG;IACH,cAAc,CAAC,EAAE,EAAE,GAAG,GAAG,MAAM,CAAC;IAEhC;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;CAC/C;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB,CAAC,GAAG;IACvC;;;OAGG;IACH,aAAa,IAAI,GAAG,CAAC;IAErB;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC;IAEvC;;;;OAIG;IACH,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,UAAU,CAAC;IAElC;;;;OAIG;IACH,cAAc,CAAC,EAAE,EAAE,GAAG,GAAG,MAAM,CAAC;IAEhC;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC;IAE1C;;;;OAIG;IACH,aAAa,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB,CAAC,GAAG;IAC1C;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;IAE7C;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAE1D;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAEpD;;;OAGG;IACH,UAAU,IAAI,GAAG,CAAC;IAElB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC;IAEpC;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,GAAG,GAAG,UAAU,CAAC;CAChC;AAyJD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,KAAK,uBAAuB,CAAC,GAAG,CAAC,CAU7E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAC9C,IAAI,EAAE,MAAM,GACX,uBAAuB,CAAC,GAAG,CAAC,CAQ9B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,KAAK,oBAAoB,CAAC,GAAG,CAAC,CAQvE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAC9C,SAAS,CAAC,EAAE,oBAAoB,GAC/B,uBAAuB,CAAC,GAAG,CAAC,CAK9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,+BAA+B,IAAI,uBAAuB,CAAC,QAAQ,CAAC,CASnF;AAGD,OAAO,EAAE,2BAA2B,IAAI,yBAAyB,EAAE,CAAC;AAGpE,YAAY,EACV,gBAAgB,IAAI,iBAAiB,EACrC,cAAc,IAAI,eAAe,EACjC,YAAY,IAAI,aAAa,EAC7B,gBAAgB,IAAI,iBAAiB,GACtC,MAAM,4BAA4B,CAAC"}
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.getTypedNodeConfiguration = void 0;
|
|
27
27
|
exports.getEnhancedNodeIdProvider = getEnhancedNodeIdProvider;
|
|
28
|
+
exports.ensureEnhancedNodeIdProvider = ensureEnhancedNodeIdProvider;
|
|
28
29
|
exports.getTypedNodeIdProvider = getTypedNodeIdProvider;
|
|
29
30
|
exports.createNodeTypedConfiguration = createNodeTypedConfiguration;
|
|
30
31
|
exports.createNodeObjectIdConfiguration = createNodeObjectIdConfiguration;
|
|
@@ -82,6 +83,15 @@ class EnhancedNodeIdProvider {
|
|
|
82
83
|
fromBytesTyped(bytes) {
|
|
83
84
|
return this.provider.fromBytes(bytes);
|
|
84
85
|
}
|
|
86
|
+
validateTyped(id) {
|
|
87
|
+
return this.provider.validate(this.provider.toBytes(id));
|
|
88
|
+
}
|
|
89
|
+
serializeTyped(id) {
|
|
90
|
+
return this.provider.idToString(id);
|
|
91
|
+
}
|
|
92
|
+
deserializeTyped(str) {
|
|
93
|
+
return this.provider.idFromString(str);
|
|
94
|
+
}
|
|
85
95
|
get underlyingProvider() {
|
|
86
96
|
return this.provider;
|
|
87
97
|
}
|
|
@@ -110,10 +120,13 @@ class TypedNodeIdProvider {
|
|
|
110
120
|
return this.provider.toBytes(id);
|
|
111
121
|
}
|
|
112
122
|
serializeTyped(id) {
|
|
113
|
-
return this.provider.
|
|
123
|
+
return this.provider.idToString(id);
|
|
114
124
|
}
|
|
115
125
|
deserializeTyped(serialized) {
|
|
116
|
-
return this.provider.
|
|
126
|
+
return this.provider.idFromString(serialized);
|
|
127
|
+
}
|
|
128
|
+
validateTyped(id) {
|
|
129
|
+
return this.provider.validate(this.provider.toBytes(id));
|
|
117
130
|
}
|
|
118
131
|
}
|
|
119
132
|
/**
|
|
@@ -164,6 +177,28 @@ function getEnhancedNodeIdProvider() {
|
|
|
164
177
|
}
|
|
165
178
|
return new EnhancedNodeIdProvider(constants.idProvider);
|
|
166
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* Ensure that the ID provider has the expected name and returns a typed wrapper.
|
|
182
|
+
* This is useful for ensuring that the correct ID provider is being used.
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```typescript
|
|
186
|
+
* // For ObjectId configurations
|
|
187
|
+
* const config = ensureEnhancedNodeIdProvider<ObjectId>('ObjectId');
|
|
188
|
+
*
|
|
189
|
+
* // For GUID configurations
|
|
190
|
+
* const guidConfig = ensureEnhancedNodeIdProvider<GuidV4>('GuidV4');
|
|
191
|
+
* ```
|
|
192
|
+
* @param name Expected provider name
|
|
193
|
+
* @returns IEnhancedNodeIdProvider<TID>
|
|
194
|
+
*/
|
|
195
|
+
function ensureEnhancedNodeIdProvider(name) {
|
|
196
|
+
const provider = getEnhancedNodeIdProvider();
|
|
197
|
+
if (provider.name !== name) {
|
|
198
|
+
throw new Error(`Provider name mismatch. Expected ${name}, got ${provider.name}`);
|
|
199
|
+
}
|
|
200
|
+
return provider;
|
|
201
|
+
}
|
|
167
202
|
/**
|
|
168
203
|
* Get a simple typed Node.js ID provider with minimal API surface.
|
|
169
204
|
* Only provides strongly-typed methods without the original IIdProvider interface.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-configuration.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/typed-configuration.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;
|
|
1
|
+
{"version":3,"file":"typed-configuration.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/typed-configuration.ts"],"names":[],"mappings":"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"}
|