@digitaldefiance/node-ecies-lib 4.7.11 → 4.7.14

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.
Files changed (2) hide show
  1. package/README.md +35 -1
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -8,7 +8,7 @@ A Node.js-specific implementation of the Digital Defiance ECIES (Elliptic Curve
8
8
 
9
9
  Part of [Express Suite](https://github.com/Digital-Defiance/express-suite)
10
10
 
11
- > Current Version: v4.1.0
11
+ > Current Version: v4.7.14
12
12
 
13
13
  This library implements a modern, enterprise-grade ECIES protocol (v4.0) featuring HKDF key derivation, AAD binding, and optimized multi-recipient encryption. It includes a pluggable ID provider system, memory-efficient streaming encryption, and comprehensive internationalization.
14
14
 
@@ -487,6 +487,40 @@ describe('Integration with suite-core-lib', () => {
487
487
 
488
488
  ## ChangeLog
489
489
 
490
+ ### v4.7.14
491
+
492
+ **Bug Fix: idProvider Configuration Now Respected by Member.newMember()**
493
+
494
+ This release fixes a critical bug where `Member.newMember()` ignored the configured `idProvider` in `ECIESService` and always used the default `Constants.idProvider`.
495
+
496
+ **What Changed:**
497
+ - `ECIESService` now stores the full `IConstants` configuration (not just `IECIESConfig`)
498
+ - New `ECIESService.constants` getter provides access to the complete configuration including `idProvider`
499
+ - `Member.newMember()` now uses `eciesService.constants.idProvider.generate()` for ID generation
500
+ - `Member.toJson()` and `Member.fromJson()` now use the service's configured `idProvider` for serialization
501
+ - `Member.fromJson()` validates ID length and warns if it doesn't match the configured `idProvider`
502
+
503
+ **Before (Broken):**
504
+ ```typescript
505
+ const config = registerNodeRuntimeConfiguration({ idProvider: new GuidV4Provider() });
506
+ const service = new ECIESService(config);
507
+ const { member } = Member.newMember(service, MemberType.User, 'Alice', email);
508
+ console.log(member.id.length); // 12 (wrong - used default ObjectIdProvider)
509
+ ```
510
+
511
+ **After (Fixed):**
512
+ ```typescript
513
+ const config = registerNodeRuntimeConfiguration({ idProvider: new GuidV4Provider() });
514
+ const service = new ECIESService(config);
515
+ const { member } = Member.newMember(service, MemberType.User, 'Alice', email);
516
+ console.log(member.id.length); // 16 (correct - uses configured GuidV4Provider)
517
+ ```
518
+
519
+ **Backward Compatibility:**
520
+ - Existing code using default `idProvider` continues to work unchanged
521
+ - The `ECIESService.config` getter still returns `IECIESConfig` for backward compatibility
522
+ - `Member.fromJson()` warns but doesn't fail on ID length mismatch (for compatibility with existing serialized data)
523
+
490
524
  ### v4.4.2
491
525
 
492
526
  - Update ecies lib
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digitaldefiance/node-ecies-lib",
3
- "version": "4.7.11",
3
+ "version": "4.7.14",
4
4
  "description": "Digital Defiance Node ECIES Library",
5
5
  "homepage": "https://github.com/Digital-Defiance/node-ecies-lib",
6
6
  "repository": {
@@ -57,7 +57,7 @@
57
57
  "license": "MIT",
58
58
  "packageManager": "yarn@4.10.3",
59
59
  "dependencies": {
60
- "@digitaldefiance/ecies-lib": "4.7.11",
60
+ "@digitaldefiance/ecies-lib": "4.7.14",
61
61
  "@digitaldefiance/express-suite-test-utils": "1.0.14",
62
62
  "@digitaldefiance/i18n-lib": "3.8.16",
63
63
  "@ethereumjs/wallet": "^10.0.0",