@digitaldefiance/node-ecies-lib 1.0.4 → 1.0.6
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 +88 -8
- package/dist/i18n/ecies-i18n-factory.d.ts +34 -0
- package/dist/i18n/ecies-i18n-factory.d.ts.map +1 -0
- package/dist/i18n/ecies-i18n-factory.js +200 -0
- package/dist/i18n/ecies-i18n-factory.js.map +1 -0
- package/dist/i18n/index.d.ts +2 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +2 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/member.d.ts +8 -1
- package/dist/member.d.ts.map +1 -1
- package/dist/member.js +27 -15
- package/dist/member.js.map +1 -1
- package/dist/services/ecies/crypto-core.d.ts.map +1 -1
- package/dist/services/ecies/crypto-core.js +5 -4
- package/dist/services/ecies/crypto-core.js.map +1 -1
- package/dist/services/ecies/multi-recipient.d.ts +3 -4
- package/dist/services/ecies/multi-recipient.d.ts.map +1 -1
- package/dist/services/ecies/multi-recipient.js +3 -2
- package/dist/services/ecies/multi-recipient.js.map +1 -1
- package/dist/services/ecies/service.d.ts +4 -4
- package/dist/services/ecies/service.d.ts.map +1 -1
- package/dist/services/ecies/service.js +16 -2
- package/dist/services/ecies/service.js.map +1 -1
- package/dist/services/ecies/signature.d.ts.map +1 -1
- package/dist/services/ecies/signature.js +4 -3
- package/dist/services/ecies/signature.js.map +1 -1
- package/dist/services/ecies/single-recipient.d.ts +4 -4
- package/dist/services/ecies/single-recipient.d.ts.map +1 -1
- package/dist/services/ecies/single-recipient.js +2 -1
- package/dist/services/ecies/single-recipient.js.map +1 -1
- package/dist/services/ecies/utilities.d.ts.map +1 -1
- package/dist/services/ecies/utilities.js +7 -6
- package/dist/services/ecies/utilities.js.map +1 -1
- package/dist/services/pbkdf2.d.ts +8 -1
- package/dist/services/pbkdf2.d.ts.map +1 -1
- package/dist/services/pbkdf2.js +17 -5
- package/dist/services/pbkdf2.js.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +12 -2
- package/dist/utils.js.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -8,7 +8,47 @@ A Node.js-specific implementation of the Digital Defiance ECIES (Elliptic Curve
|
|
|
8
8
|
- **Multi-recipient Encryption**: Encrypt data for multiple recipients simultaneously
|
|
9
9
|
- **PBKDF2 Key Derivation**: Password-based key derivation with configurable profiles
|
|
10
10
|
- **Digital Signatures**: Sign and verify data using elliptic curve cryptography
|
|
11
|
-
|
|
11
|
+
|
|
12
|
+
- ## 🚀 Plugin-Based I18n Architecture
|
|
13
|
+
|
|
14
|
+
Version 1.0.4+ includes full support for the new plugin-based internationalization architecture from `@digitaldefiance/i18n-lib`:
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
- **Component-Based Translations**: ECIES-specific strings organized in dedicated components
|
|
19
|
+
- **Multi-Language Support**: Built-in translations for English, French, Spanish, German, Chinese, Japanese, and Ukrainian
|
|
20
|
+
- **Type-Safe Translation Calls**: Full TypeScript support with compile-time validation
|
|
21
|
+
- **Automatic Fallback**: Intelligent fallback to default language for missing translations
|
|
22
|
+
- **Custom Engine Support**: Use your own plugin engine instance or let the library manage it automatically
|
|
23
|
+
|
|
24
|
+
### Advanced Usage
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
import {
|
|
28
|
+
getEciesPluginI18nEngine,
|
|
29
|
+
getNodeEciesTranslation,
|
|
30
|
+
NodeEciesStringKey
|
|
31
|
+
} from '@digitaldefiance/node-ecies-lib';
|
|
32
|
+
import { CoreLanguage } from '@digitaldefiance/i18n-lib';
|
|
33
|
+
|
|
34
|
+
// Get the plugin engine instance
|
|
35
|
+
const engine = getEciesPluginI18nEngine();
|
|
36
|
+
|
|
37
|
+
// Use component-based translations
|
|
38
|
+
const errorMessage = getNodeEciesTranslation(
|
|
39
|
+
NodeEciesStringKey.Error_LengthError_LengthIsInvalidType,
|
|
40
|
+
{},
|
|
41
|
+
CoreLanguage.Spanish
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
// Switch languages globally
|
|
45
|
+
engine.setLanguage(CoreLanguage.French);
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Member
|
|
49
|
+
|
|
50
|
+
Member management with wallet integration:
|
|
51
|
+
|
|
12
52
|
- **Cross-platform Compatibility**: Works seamlessly with the browser-based `@digitaldefiance/ecies-lib`
|
|
13
53
|
|
|
14
54
|
## Installation
|
|
@@ -19,12 +59,19 @@ npm install @digitaldefiance/node-ecies-lib
|
|
|
19
59
|
|
|
20
60
|
## Quick Start
|
|
21
61
|
|
|
62
|
+
### 🆕 Plugin-Based Architecture (Recommended)
|
|
63
|
+
|
|
22
64
|
```typescript
|
|
23
65
|
import { ECIESService, Member, MemberType, EmailString } from '@digitaldefiance/node-ecies-lib';
|
|
24
|
-
import { getEciesI18nEngine } from '@digitaldefiance/ecies-lib';
|
|
25
66
|
|
|
26
|
-
// Initialize the service
|
|
27
|
-
const eciesService = new ECIESService(
|
|
67
|
+
// Initialize the service - no need to pass i18n engine explicitly!
|
|
68
|
+
const eciesService = new ECIESService();
|
|
69
|
+
|
|
70
|
+
// Or with configuration
|
|
71
|
+
const eciesServiceWithConfig = new ECIESService({
|
|
72
|
+
curveName: 'secp256k1',
|
|
73
|
+
symmetricAlgorithm: 'aes-256-gcm'
|
|
74
|
+
});
|
|
28
75
|
|
|
29
76
|
// Create a new member
|
|
30
77
|
const { member, mnemonic } = Member.newMember(
|
|
@@ -38,11 +85,22 @@ const { member, mnemonic } = Member.newMember(
|
|
|
38
85
|
const message = 'Hello, secure world!';
|
|
39
86
|
const encrypted = member.encryptData(message);
|
|
40
87
|
|
|
41
|
-
// Decrypt data
|
|
88
|
+
// Decrypt data
|
|
42
89
|
const decrypted = member.decryptData(encrypted);
|
|
43
90
|
console.log(decrypted.toString()); // "Hello, secure world!"
|
|
44
91
|
```
|
|
45
92
|
|
|
93
|
+
### Legacy API (Still Supported)
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
import { ECIESService, Member, MemberType, EmailString, getEciesPluginI18nEngine } from '@digitaldefiance/node-ecies-lib';
|
|
97
|
+
|
|
98
|
+
// Initialize the service with explicit i18n engine
|
|
99
|
+
const eciesService = new ECIESService(getEciesPluginI18nEngine());
|
|
100
|
+
|
|
101
|
+
// Rest of the usage remains the same...
|
|
102
|
+
```
|
|
103
|
+
|
|
46
104
|
## Core Components
|
|
47
105
|
|
|
48
106
|
### ECIESService
|
|
@@ -51,9 +109,13 @@ The main service class providing encryption, decryption, and key management:
|
|
|
51
109
|
|
|
52
110
|
```typescript
|
|
53
111
|
import { ECIESService } from '@digitaldefiance/node-ecies-lib';
|
|
54
|
-
import { getEciesI18nEngine } from '@digitaldefiance/ecies-lib';
|
|
55
112
|
|
|
56
|
-
|
|
113
|
+
// 🆕 Plugin-based architecture - automatic i18n setup
|
|
114
|
+
const service = new ECIESService();
|
|
115
|
+
|
|
116
|
+
// Or with explicit plugin engine (advanced usage)
|
|
117
|
+
import { getEciesPluginI18nEngine } from '@digitaldefiance/node-ecies-lib';
|
|
118
|
+
const serviceWithExplicitEngine = new ECIESService(getEciesPluginI18nEngine());
|
|
57
119
|
|
|
58
120
|
// Generate mnemonic
|
|
59
121
|
const mnemonic = service.generateNewMnemonic();
|
|
@@ -214,6 +276,7 @@ npm test -- ecies-compatibility.e2e.spec.ts
|
|
|
214
276
|
```
|
|
215
277
|
|
|
216
278
|
Test categories:
|
|
279
|
+
|
|
217
280
|
- Unit tests for individual components
|
|
218
281
|
- Integration tests for cross-component functionality
|
|
219
282
|
- End-to-end tests for complete workflows
|
|
@@ -263,4 +326,21 @@ Please read the contributing guidelines in the main repository.
|
|
|
263
326
|
## Related Packages
|
|
264
327
|
|
|
265
328
|
- `@digitaldefiance/ecies-lib`: Browser-compatible ECIES library
|
|
266
|
-
- `@digitaldefiance/i18n-lib`: Internationalization support
|
|
329
|
+
- `@digitaldefiance/i18n-lib`: Internationalization support
|
|
330
|
+
|
|
331
|
+
## ChangeLog
|
|
332
|
+
|
|
333
|
+
### Version 1.0.5
|
|
334
|
+
|
|
335
|
+
- Sat Oct 11 2025 21:34:00 GMT-0700 (Pacific Daylight Time)
|
|
336
|
+
- Used latest cleanup code from i18n library and updated dependencies
|
|
337
|
+
|
|
338
|
+
### Version 1.0.4
|
|
339
|
+
|
|
340
|
+
- Sat Oct 11 2025 19:08:00 GMT-0700 (Pacific Daylight Time)
|
|
341
|
+
- Added plugin-based internationalization architecture with `@digitaldefiance/i18n-lib`
|
|
342
|
+
|
|
343
|
+
### Version 1.0.3
|
|
344
|
+
|
|
345
|
+
- Fri Oct 03 2024 10:50:21 GMT-0700 (Pacific Daylight Time)
|
|
346
|
+
- Initial release
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { CoreLanguage, PluginI18nEngine } from '@digitaldefiance/i18n-lib';
|
|
2
|
+
/**
|
|
3
|
+
* ECIES-specific string keys for the node ECIES library
|
|
4
|
+
*/
|
|
5
|
+
declare enum NodeEciesStringKey {
|
|
6
|
+
Error_LengthError_LengthIsInvalidType = "error_length_error_length_is_invalid_type",
|
|
7
|
+
Error_Member_MissingMemberName = "error_member_missing_member_name",
|
|
8
|
+
Error_Member_InvalidMemberNameWhitespace = "error_member_invalid_member_name_whitespace",
|
|
9
|
+
Error_Member_NoWallet = "error_member_no_wallet",
|
|
10
|
+
Error_Member_WalletAlreadyLoaded = "error_member_wallet_already_loaded",
|
|
11
|
+
Error_Member_InvalidMnemonic = "error_member_invalid_mnemonic",
|
|
12
|
+
Error_Member_MissingPrivateKey = "error_member_missing_private_key",
|
|
13
|
+
Error_Member_MissingEncryptionData = "error_member_missing_encryption_data",
|
|
14
|
+
Error_Member_EncryptionDataTooLarge = "error_member_encryption_data_too_large",
|
|
15
|
+
Error_Member_MissingEmail = "error_member_missing_email",
|
|
16
|
+
Error_Member_InvalidEmailWhitespace = "error_member_invalid_email_whitespace",
|
|
17
|
+
Error_Pbkdf2_InvalidSaltLength = "error_pbkdf2_invalid_salt_length",
|
|
18
|
+
Error_Pbkdf2_InvalidHashLength = "error_pbkdf2_invalid_hash_length"
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Create or get the ECIES I18n engine with proper component registration
|
|
22
|
+
* This replaces the legacy getEciesI18nEngine() function
|
|
23
|
+
*/
|
|
24
|
+
export declare function getEciesPluginI18nEngine(): PluginI18nEngine<CoreLanguage>;
|
|
25
|
+
/**
|
|
26
|
+
* Reset the engine instance (useful for testing)
|
|
27
|
+
*/
|
|
28
|
+
export declare function resetEciesPluginI18nEngine(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Get a translation from the Node ECIES component
|
|
31
|
+
*/
|
|
32
|
+
export declare function getNodeEciesTranslation(key: NodeEciesStringKey, variables?: Record<string, string | number>, language?: CoreLanguage): string;
|
|
33
|
+
export { NodeEciesStringKey };
|
|
34
|
+
//# sourceMappingURL=ecies-i18n-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ecies-i18n-factory.d.ts","sourceRoot":"","sources":["../../src/i18n/ecies-i18n-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAEZ,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,aAAK,kBAAkB;IACrB,qCAAqC,8CAA8C;IAGnF,8BAA8B,qCAAqC;IACnE,wCAAwC,gDAAgD;IACxF,qBAAqB,2BAA2B;IAChD,gCAAgC,uCAAuC;IACvE,4BAA4B,kCAAkC;IAC9D,8BAA8B,qCAAqC;IACnE,kCAAkC,yCAAyC;IAC3E,mCAAmC,2CAA2C;IAC9E,yBAAyB,+BAA+B;IACxD,mCAAmC,0CAA0C;IAG7E,8BAA8B,qCAAqC;IACnE,8BAA8B,qCAAqC;CACpE;AAmOD;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAwBzE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,kBAAkB,EACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAC3C,QAAQ,CAAC,EAAE,YAAY,GACtB,MAAM,CAGR;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { CoreLanguage, createCoreI18nEngine, } from '@digitaldefiance/i18n-lib';
|
|
2
|
+
/**
|
|
3
|
+
* ECIES-specific string keys for the node ECIES library
|
|
4
|
+
*/
|
|
5
|
+
var NodeEciesStringKey;
|
|
6
|
+
(function (NodeEciesStringKey) {
|
|
7
|
+
NodeEciesStringKey["Error_LengthError_LengthIsInvalidType"] = "error_length_error_length_is_invalid_type";
|
|
8
|
+
// Member errors
|
|
9
|
+
NodeEciesStringKey["Error_Member_MissingMemberName"] = "error_member_missing_member_name";
|
|
10
|
+
NodeEciesStringKey["Error_Member_InvalidMemberNameWhitespace"] = "error_member_invalid_member_name_whitespace";
|
|
11
|
+
NodeEciesStringKey["Error_Member_NoWallet"] = "error_member_no_wallet";
|
|
12
|
+
NodeEciesStringKey["Error_Member_WalletAlreadyLoaded"] = "error_member_wallet_already_loaded";
|
|
13
|
+
NodeEciesStringKey["Error_Member_InvalidMnemonic"] = "error_member_invalid_mnemonic";
|
|
14
|
+
NodeEciesStringKey["Error_Member_MissingPrivateKey"] = "error_member_missing_private_key";
|
|
15
|
+
NodeEciesStringKey["Error_Member_MissingEncryptionData"] = "error_member_missing_encryption_data";
|
|
16
|
+
NodeEciesStringKey["Error_Member_EncryptionDataTooLarge"] = "error_member_encryption_data_too_large";
|
|
17
|
+
NodeEciesStringKey["Error_Member_MissingEmail"] = "error_member_missing_email";
|
|
18
|
+
NodeEciesStringKey["Error_Member_InvalidEmailWhitespace"] = "error_member_invalid_email_whitespace";
|
|
19
|
+
// PBKDF2 errors
|
|
20
|
+
NodeEciesStringKey["Error_Pbkdf2_InvalidSaltLength"] = "error_pbkdf2_invalid_salt_length";
|
|
21
|
+
NodeEciesStringKey["Error_Pbkdf2_InvalidHashLength"] = "error_pbkdf2_invalid_hash_length";
|
|
22
|
+
})(NodeEciesStringKey || (NodeEciesStringKey = {}));
|
|
23
|
+
/**
|
|
24
|
+
* Component definition for Node ECIES strings
|
|
25
|
+
*/
|
|
26
|
+
const NodeEciesComponent = {
|
|
27
|
+
id: 'node-ecies',
|
|
28
|
+
name: 'Node ECIES Library Strings',
|
|
29
|
+
stringKeys: Object.values(NodeEciesStringKey),
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Node ECIES string translations
|
|
33
|
+
*/
|
|
34
|
+
const nodeEciesStrings = {
|
|
35
|
+
[CoreLanguage.EnglishUS]: {
|
|
36
|
+
[NodeEciesStringKey.Error_LengthError_LengthIsInvalidType]: 'Length encoding type is invalid',
|
|
37
|
+
// Member errors
|
|
38
|
+
[NodeEciesStringKey.Error_Member_MissingMemberName]: 'Member name is required',
|
|
39
|
+
[NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace]: 'Member name cannot have leading or trailing whitespace',
|
|
40
|
+
[NodeEciesStringKey.Error_Member_NoWallet]: 'No wallet available',
|
|
41
|
+
[NodeEciesStringKey.Error_Member_WalletAlreadyLoaded]: 'Wallet is already loaded',
|
|
42
|
+
[NodeEciesStringKey.Error_Member_InvalidMnemonic]: 'Invalid mnemonic phrase',
|
|
43
|
+
[NodeEciesStringKey.Error_Member_MissingPrivateKey]: 'Private key is missing',
|
|
44
|
+
[NodeEciesStringKey.Error_Member_MissingEncryptionData]: 'Encryption data is missing',
|
|
45
|
+
[NodeEciesStringKey.Error_Member_EncryptionDataTooLarge]: 'Encryption data is too large',
|
|
46
|
+
[NodeEciesStringKey.Error_Member_MissingEmail]: 'Email address is required',
|
|
47
|
+
[NodeEciesStringKey.Error_Member_InvalidEmailWhitespace]: 'Email address cannot have leading or trailing whitespace',
|
|
48
|
+
// PBKDF2 errors
|
|
49
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidSaltLength]: 'Invalid salt length',
|
|
50
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidHashLength]: 'Invalid hash length',
|
|
51
|
+
},
|
|
52
|
+
[CoreLanguage.EnglishUK]: {
|
|
53
|
+
[NodeEciesStringKey.Error_LengthError_LengthIsInvalidType]: 'Length encoding type is invalid',
|
|
54
|
+
// Member errors
|
|
55
|
+
[NodeEciesStringKey.Error_Member_MissingMemberName]: 'Member name is required',
|
|
56
|
+
[NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace]: 'Member name cannot have leading or trailing whitespace',
|
|
57
|
+
[NodeEciesStringKey.Error_Member_NoWallet]: 'No wallet available',
|
|
58
|
+
[NodeEciesStringKey.Error_Member_WalletAlreadyLoaded]: 'Wallet is already loaded',
|
|
59
|
+
[NodeEciesStringKey.Error_Member_InvalidMnemonic]: 'Invalid mnemonic phrase',
|
|
60
|
+
[NodeEciesStringKey.Error_Member_MissingPrivateKey]: 'Private key is missing',
|
|
61
|
+
[NodeEciesStringKey.Error_Member_MissingEncryptionData]: 'Encryption data is missing',
|
|
62
|
+
[NodeEciesStringKey.Error_Member_EncryptionDataTooLarge]: 'Encryption data is too large',
|
|
63
|
+
[NodeEciesStringKey.Error_Member_MissingEmail]: 'Email address is required',
|
|
64
|
+
[NodeEciesStringKey.Error_Member_InvalidEmailWhitespace]: 'Email address cannot have leading or trailing whitespace',
|
|
65
|
+
// PBKDF2 errors
|
|
66
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidSaltLength]: 'Invalid salt length',
|
|
67
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidHashLength]: 'Invalid hash length',
|
|
68
|
+
},
|
|
69
|
+
[CoreLanguage.French]: {
|
|
70
|
+
[NodeEciesStringKey.Error_LengthError_LengthIsInvalidType]: "Le type d'encodage de longueur est invalide",
|
|
71
|
+
// Member errors (French translations)
|
|
72
|
+
[NodeEciesStringKey.Error_Member_MissingMemberName]: 'Le nom du membre est requis',
|
|
73
|
+
[NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace]: "Le nom du membre ne peut pas avoir d'espaces au début ou à la fin",
|
|
74
|
+
[NodeEciesStringKey.Error_Member_NoWallet]: 'Aucun portefeuille disponible',
|
|
75
|
+
[NodeEciesStringKey.Error_Member_WalletAlreadyLoaded]: 'Le portefeuille est déjà chargé',
|
|
76
|
+
[NodeEciesStringKey.Error_Member_InvalidMnemonic]: 'Phrase mnémotechnique invalide',
|
|
77
|
+
[NodeEciesStringKey.Error_Member_MissingPrivateKey]: 'Clé privée manquante',
|
|
78
|
+
[NodeEciesStringKey.Error_Member_MissingEncryptionData]: 'Données de chiffrement manquantes',
|
|
79
|
+
[NodeEciesStringKey.Error_Member_EncryptionDataTooLarge]: 'Données de chiffrement trop volumineuses',
|
|
80
|
+
[NodeEciesStringKey.Error_Member_MissingEmail]: 'Adresse e-mail requise',
|
|
81
|
+
[NodeEciesStringKey.Error_Member_InvalidEmailWhitespace]: "L'adresse e-mail ne peut pas avoir d'espaces au début ou à la fin",
|
|
82
|
+
// PBKDF2 errors
|
|
83
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidSaltLength]: 'Longueur de sel invalide',
|
|
84
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidHashLength]: 'Longueur de hachage invalide',
|
|
85
|
+
},
|
|
86
|
+
[CoreLanguage.Spanish]: {
|
|
87
|
+
[NodeEciesStringKey.Error_LengthError_LengthIsInvalidType]: 'El tipo de codificación de longitud es inválido',
|
|
88
|
+
[NodeEciesStringKey.Error_Member_MissingMemberName]: 'Member name is required',
|
|
89
|
+
[NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace]: 'Member name cannot have leading or trailing whitespace',
|
|
90
|
+
[NodeEciesStringKey.Error_Member_NoWallet]: 'No wallet available',
|
|
91
|
+
[NodeEciesStringKey.Error_Member_WalletAlreadyLoaded]: 'Wallet is already loaded',
|
|
92
|
+
[NodeEciesStringKey.Error_Member_InvalidMnemonic]: 'Invalid mnemonic phrase',
|
|
93
|
+
[NodeEciesStringKey.Error_Member_MissingPrivateKey]: 'Private key is missing',
|
|
94
|
+
[NodeEciesStringKey.Error_Member_MissingEncryptionData]: 'Encryption data is missing',
|
|
95
|
+
[NodeEciesStringKey.Error_Member_EncryptionDataTooLarge]: 'Encryption data is too large',
|
|
96
|
+
[NodeEciesStringKey.Error_Member_MissingEmail]: 'Email address is required',
|
|
97
|
+
[NodeEciesStringKey.Error_Member_InvalidEmailWhitespace]: 'Email address cannot have leading or trailing whitespace',
|
|
98
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidSaltLength]: 'Invalid salt length',
|
|
99
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidHashLength]: 'Invalid hash length',
|
|
100
|
+
},
|
|
101
|
+
[CoreLanguage.German]: {
|
|
102
|
+
[NodeEciesStringKey.Error_LengthError_LengthIsInvalidType]: 'Längencodierungstyp ist ungültig',
|
|
103
|
+
[NodeEciesStringKey.Error_Member_MissingMemberName]: 'Member name is required',
|
|
104
|
+
[NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace]: 'Member name cannot have leading or trailing whitespace',
|
|
105
|
+
[NodeEciesStringKey.Error_Member_NoWallet]: 'No wallet available',
|
|
106
|
+
[NodeEciesStringKey.Error_Member_WalletAlreadyLoaded]: 'Wallet is already loaded',
|
|
107
|
+
[NodeEciesStringKey.Error_Member_InvalidMnemonic]: 'Invalid mnemonic phrase',
|
|
108
|
+
[NodeEciesStringKey.Error_Member_MissingPrivateKey]: 'Private key is missing',
|
|
109
|
+
[NodeEciesStringKey.Error_Member_MissingEncryptionData]: 'Encryption data is missing',
|
|
110
|
+
[NodeEciesStringKey.Error_Member_EncryptionDataTooLarge]: 'Encryption data is too large',
|
|
111
|
+
[NodeEciesStringKey.Error_Member_MissingEmail]: 'Email address is required',
|
|
112
|
+
[NodeEciesStringKey.Error_Member_InvalidEmailWhitespace]: 'Email address cannot have leading or trailing whitespace',
|
|
113
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidSaltLength]: 'Invalid salt length',
|
|
114
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidHashLength]: 'Invalid hash length',
|
|
115
|
+
},
|
|
116
|
+
[CoreLanguage.MandarinChinese]: {
|
|
117
|
+
[NodeEciesStringKey.Error_LengthError_LengthIsInvalidType]: '长度编码类型无效',
|
|
118
|
+
[NodeEciesStringKey.Error_Member_MissingMemberName]: 'Member name is required',
|
|
119
|
+
[NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace]: 'Member name cannot have leading or trailing whitespace',
|
|
120
|
+
[NodeEciesStringKey.Error_Member_NoWallet]: 'No wallet available',
|
|
121
|
+
[NodeEciesStringKey.Error_Member_WalletAlreadyLoaded]: 'Wallet is already loaded',
|
|
122
|
+
[NodeEciesStringKey.Error_Member_InvalidMnemonic]: 'Invalid mnemonic phrase',
|
|
123
|
+
[NodeEciesStringKey.Error_Member_MissingPrivateKey]: 'Private key is missing',
|
|
124
|
+
[NodeEciesStringKey.Error_Member_MissingEncryptionData]: 'Encryption data is missing',
|
|
125
|
+
[NodeEciesStringKey.Error_Member_EncryptionDataTooLarge]: 'Encryption data is too large',
|
|
126
|
+
[NodeEciesStringKey.Error_Member_MissingEmail]: 'Email address is required',
|
|
127
|
+
[NodeEciesStringKey.Error_Member_InvalidEmailWhitespace]: 'Email address cannot have leading or trailing whitespace',
|
|
128
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidSaltLength]: 'Invalid salt length',
|
|
129
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidHashLength]: 'Invalid hash length',
|
|
130
|
+
},
|
|
131
|
+
[CoreLanguage.Japanese]: {
|
|
132
|
+
[NodeEciesStringKey.Error_LengthError_LengthIsInvalidType]: '長さエンコーディングタイプが無効です',
|
|
133
|
+
[NodeEciesStringKey.Error_Member_MissingMemberName]: 'Member name is required',
|
|
134
|
+
[NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace]: 'Member name cannot have leading or trailing whitespace',
|
|
135
|
+
[NodeEciesStringKey.Error_Member_NoWallet]: 'No wallet available',
|
|
136
|
+
[NodeEciesStringKey.Error_Member_WalletAlreadyLoaded]: 'Wallet is already loaded',
|
|
137
|
+
[NodeEciesStringKey.Error_Member_InvalidMnemonic]: 'Invalid mnemonic phrase',
|
|
138
|
+
[NodeEciesStringKey.Error_Member_MissingPrivateKey]: 'Private key is missing',
|
|
139
|
+
[NodeEciesStringKey.Error_Member_MissingEncryptionData]: 'Encryption data is missing',
|
|
140
|
+
[NodeEciesStringKey.Error_Member_EncryptionDataTooLarge]: 'Encryption data is too large',
|
|
141
|
+
[NodeEciesStringKey.Error_Member_MissingEmail]: 'Email address is required',
|
|
142
|
+
[NodeEciesStringKey.Error_Member_InvalidEmailWhitespace]: 'Email address cannot have leading or trailing whitespace',
|
|
143
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidSaltLength]: 'Invalid salt length',
|
|
144
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidHashLength]: 'Invalid hash length',
|
|
145
|
+
},
|
|
146
|
+
[CoreLanguage.Ukrainian]: {
|
|
147
|
+
[NodeEciesStringKey.Error_LengthError_LengthIsInvalidType]: 'Тип кодування довжини недійсний',
|
|
148
|
+
[NodeEciesStringKey.Error_Member_MissingMemberName]: 'Member name is required',
|
|
149
|
+
[NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace]: 'Member name cannot have leading or trailing whitespace',
|
|
150
|
+
[NodeEciesStringKey.Error_Member_NoWallet]: 'No wallet available',
|
|
151
|
+
[NodeEciesStringKey.Error_Member_WalletAlreadyLoaded]: 'Wallet is already loaded',
|
|
152
|
+
[NodeEciesStringKey.Error_Member_InvalidMnemonic]: 'Invalid mnemonic phrase',
|
|
153
|
+
[NodeEciesStringKey.Error_Member_MissingPrivateKey]: 'Private key is missing',
|
|
154
|
+
[NodeEciesStringKey.Error_Member_MissingEncryptionData]: 'Encryption data is missing',
|
|
155
|
+
[NodeEciesStringKey.Error_Member_EncryptionDataTooLarge]: 'Encryption data is too large',
|
|
156
|
+
[NodeEciesStringKey.Error_Member_MissingEmail]: 'Email address is required',
|
|
157
|
+
[NodeEciesStringKey.Error_Member_InvalidEmailWhitespace]: 'Email address cannot have leading or trailing whitespace',
|
|
158
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidSaltLength]: 'Invalid salt length',
|
|
159
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidHashLength]: 'Invalid hash length',
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* Singleton instance of the ECIES I18n engine
|
|
164
|
+
*/
|
|
165
|
+
let eciesI18nEngineInstance = null;
|
|
166
|
+
/**
|
|
167
|
+
* Create or get the ECIES I18n engine with proper component registration
|
|
168
|
+
* This replaces the legacy getEciesI18nEngine() function
|
|
169
|
+
*/
|
|
170
|
+
export function getEciesPluginI18nEngine() {
|
|
171
|
+
if (!eciesI18nEngineInstance) {
|
|
172
|
+
// Create core engine with system strings
|
|
173
|
+
eciesI18nEngineInstance = createCoreI18nEngine('node-ecies');
|
|
174
|
+
// Register the Node ECIES component
|
|
175
|
+
const registration = {
|
|
176
|
+
component: NodeEciesComponent,
|
|
177
|
+
strings: nodeEciesStrings,
|
|
178
|
+
};
|
|
179
|
+
const result = eciesI18nEngineInstance.registerComponent(registration);
|
|
180
|
+
if (!result.isValid) {
|
|
181
|
+
console.warn('Node ECIES component registration incomplete:', result.missingKeys);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return eciesI18nEngineInstance;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Reset the engine instance (useful for testing)
|
|
188
|
+
*/
|
|
189
|
+
export function resetEciesPluginI18nEngine() {
|
|
190
|
+
eciesI18nEngineInstance = null;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get a translation from the Node ECIES component
|
|
194
|
+
*/
|
|
195
|
+
export function getNodeEciesTranslation(key, variables, language) {
|
|
196
|
+
const engine = getEciesPluginI18nEngine();
|
|
197
|
+
return engine.translate('node-ecies', key, variables, language);
|
|
198
|
+
}
|
|
199
|
+
export { NodeEciesStringKey };
|
|
200
|
+
//# sourceMappingURL=ecies-i18n-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ecies-i18n-factory.js","sourceRoot":"","sources":["../../src/i18n/ecies-i18n-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
|
package/dist/member.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import { EmailString, MemberType, SecureBuffer, SecureString } from '@digitaldefiance/ecies-lib';
|
|
1
|
+
import { EmailString, MemberErrorType, MemberType, SecureBuffer, SecureString } from '@digitaldefiance/ecies-lib';
|
|
2
2
|
import { Wallet } from '@ethereumjs/wallet';
|
|
3
|
+
/**
|
|
4
|
+
* Custom error classes that work with the plugin i18n system
|
|
5
|
+
*/
|
|
6
|
+
export declare class NodeMemberError extends Error {
|
|
7
|
+
readonly type: MemberErrorType;
|
|
8
|
+
constructor(message: string, type: MemberErrorType);
|
|
9
|
+
}
|
|
3
10
|
import { ECIESService } from './services/ecies/service';
|
|
4
11
|
import { Types } from 'mongoose';
|
|
5
12
|
import { IMemberOperational } from './interfaces/member-operational';
|
package/dist/member.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../src/member.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,
|
|
1
|
+
{"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../src/member.ts"],"names":[],"mappings":"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"}
|
package/dist/member.js
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
import { ECIES, EmailString,
|
|
1
|
+
import { ECIES, EmailString, MemberErrorType, MemberType, SecureBuffer, } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { getNodeEciesTranslation, NodeEciesStringKey, } from './i18n/ecies-i18n-factory';
|
|
3
|
+
/**
|
|
4
|
+
* Custom error classes that work with the plugin i18n system
|
|
5
|
+
*/
|
|
6
|
+
export class NodeMemberError extends Error {
|
|
7
|
+
type;
|
|
8
|
+
constructor(message, type) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.type = type;
|
|
11
|
+
this.name = 'NodeMemberError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
2
14
|
// Removed: import { ServiceProvider } from './services/service.provider';
|
|
3
15
|
import { ObjectId } from 'mongodb';
|
|
4
16
|
/**
|
|
@@ -33,10 +45,10 @@ export class Member {
|
|
|
33
45
|
this._id = id ?? new ObjectId();
|
|
34
46
|
this._name = name;
|
|
35
47
|
if (!this._name || this._name.length == 0) {
|
|
36
|
-
throw new
|
|
48
|
+
throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_MissingMemberName), MemberErrorType.MissingMemberName);
|
|
37
49
|
}
|
|
38
50
|
if (this._name.trim() != this._name) {
|
|
39
|
-
throw new
|
|
51
|
+
throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace), MemberErrorType.InvalidMemberNameWhitespace);
|
|
40
52
|
}
|
|
41
53
|
this._email = email;
|
|
42
54
|
this._publicKey = publicKey;
|
|
@@ -85,7 +97,7 @@ export class Member {
|
|
|
85
97
|
}
|
|
86
98
|
get wallet() {
|
|
87
99
|
if (!this._wallet) {
|
|
88
|
-
throw new
|
|
100
|
+
throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_NoWallet), MemberErrorType.NoWallet);
|
|
89
101
|
}
|
|
90
102
|
return this._wallet;
|
|
91
103
|
}
|
|
@@ -107,7 +119,7 @@ export class Member {
|
|
|
107
119
|
}
|
|
108
120
|
loadWallet(mnemonic) {
|
|
109
121
|
if (this._wallet) {
|
|
110
|
-
throw new
|
|
122
|
+
throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_WalletAlreadyLoaded), MemberErrorType.WalletAlreadyLoaded);
|
|
111
123
|
}
|
|
112
124
|
const { wallet } = this._eciesService.walletAndSeedFromMnemonic(mnemonic);
|
|
113
125
|
const privateKey = wallet.getPrivateKey();
|
|
@@ -117,7 +129,7 @@ export class Member {
|
|
|
117
129
|
publicKey,
|
|
118
130
|
]);
|
|
119
131
|
if (publicKeyWithPrefix.toString('hex') !== this._publicKey.toString('hex')) {
|
|
120
|
-
throw new
|
|
132
|
+
throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_InvalidMnemonic), MemberErrorType.InvalidMnemonic);
|
|
121
133
|
}
|
|
122
134
|
this._wallet = wallet;
|
|
123
135
|
this._privateKey = new SecureBuffer(privateKey);
|
|
@@ -133,13 +145,13 @@ export class Member {
|
|
|
133
145
|
}
|
|
134
146
|
sign(data) {
|
|
135
147
|
if (!this._privateKey) {
|
|
136
|
-
throw new
|
|
148
|
+
throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_MissingPrivateKey), MemberErrorType.MissingPrivateKey);
|
|
137
149
|
}
|
|
138
150
|
return this._eciesService.signMessage(Buffer.from(this._privateKey.value), data);
|
|
139
151
|
}
|
|
140
152
|
signData(data) {
|
|
141
153
|
if (!this._privateKey) {
|
|
142
|
-
throw new
|
|
154
|
+
throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_MissingPrivateKey), MemberErrorType.MissingPrivateKey);
|
|
143
155
|
}
|
|
144
156
|
return this._eciesService.signMessage(Buffer.from(this._privateKey.value), data);
|
|
145
157
|
}
|
|
@@ -154,14 +166,14 @@ export class Member {
|
|
|
154
166
|
encryptData(data, recipientPublicKey) {
|
|
155
167
|
// Validate input
|
|
156
168
|
if (!data) {
|
|
157
|
-
throw new
|
|
169
|
+
throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_MissingEncryptionData), MemberErrorType.MissingEncryptionData);
|
|
158
170
|
}
|
|
159
171
|
// Check size limit
|
|
160
172
|
const dataSize = Buffer.isBuffer(data)
|
|
161
173
|
? data.length
|
|
162
174
|
: Buffer.byteLength(data);
|
|
163
175
|
if (dataSize > Member.MAX_ENCRYPTION_SIZE) {
|
|
164
|
-
throw new
|
|
176
|
+
throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_EncryptionDataTooLarge), MemberErrorType.EncryptionDataTooLarge);
|
|
165
177
|
}
|
|
166
178
|
// Create buffer from data
|
|
167
179
|
const bufferData = Buffer.isBuffer(data) ? data : Buffer.from(data);
|
|
@@ -171,7 +183,7 @@ export class Member {
|
|
|
171
183
|
}
|
|
172
184
|
decryptData(encryptedData) {
|
|
173
185
|
if (!this._privateKey) {
|
|
174
|
-
throw new
|
|
186
|
+
throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_MissingPrivateKey), MemberErrorType.MissingPrivateKey);
|
|
175
187
|
}
|
|
176
188
|
// decryptSingleWithHeader now returns the Buffer directly
|
|
177
189
|
return this._eciesService.decryptSimpleOrSingleWithHeader(false, Buffer.from(this._privateKey.value), encryptedData);
|
|
@@ -223,16 +235,16 @@ export class Member {
|
|
|
223
235
|
type, name, email, forceMnemonic, createdBy) {
|
|
224
236
|
// Validate inputs first
|
|
225
237
|
if (!name || name.length == 0) {
|
|
226
|
-
throw new
|
|
238
|
+
throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_MissingMemberName), MemberErrorType.MissingMemberName);
|
|
227
239
|
}
|
|
228
240
|
if (name.trim() != name) {
|
|
229
|
-
throw new
|
|
241
|
+
throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace), MemberErrorType.InvalidMemberNameWhitespace);
|
|
230
242
|
}
|
|
231
243
|
if (!email || email.toString().length == 0) {
|
|
232
|
-
throw new
|
|
244
|
+
throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_MissingEmail), MemberErrorType.MissingEmail);
|
|
233
245
|
}
|
|
234
246
|
if (email.toString().trim() != email.toString()) {
|
|
235
|
-
throw new
|
|
247
|
+
throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_InvalidEmailWhitespace), MemberErrorType.InvalidEmailWhitespace);
|
|
236
248
|
}
|
|
237
249
|
// Use injected services
|
|
238
250
|
const mnemonic = forceMnemonic ?? eciesService.generateNewMnemonic();
|