@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.
Files changed (46) hide show
  1. package/README.md +88 -8
  2. package/dist/i18n/ecies-i18n-factory.d.ts +34 -0
  3. package/dist/i18n/ecies-i18n-factory.d.ts.map +1 -0
  4. package/dist/i18n/ecies-i18n-factory.js +200 -0
  5. package/dist/i18n/ecies-i18n-factory.js.map +1 -0
  6. package/dist/i18n/index.d.ts +2 -0
  7. package/dist/i18n/index.d.ts.map +1 -0
  8. package/dist/i18n/index.js +2 -0
  9. package/dist/i18n/index.js.map +1 -0
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/member.d.ts +8 -1
  15. package/dist/member.d.ts.map +1 -1
  16. package/dist/member.js +27 -15
  17. package/dist/member.js.map +1 -1
  18. package/dist/services/ecies/crypto-core.d.ts.map +1 -1
  19. package/dist/services/ecies/crypto-core.js +5 -4
  20. package/dist/services/ecies/crypto-core.js.map +1 -1
  21. package/dist/services/ecies/multi-recipient.d.ts +3 -4
  22. package/dist/services/ecies/multi-recipient.d.ts.map +1 -1
  23. package/dist/services/ecies/multi-recipient.js +3 -2
  24. package/dist/services/ecies/multi-recipient.js.map +1 -1
  25. package/dist/services/ecies/service.d.ts +4 -4
  26. package/dist/services/ecies/service.d.ts.map +1 -1
  27. package/dist/services/ecies/service.js +16 -2
  28. package/dist/services/ecies/service.js.map +1 -1
  29. package/dist/services/ecies/signature.d.ts.map +1 -1
  30. package/dist/services/ecies/signature.js +4 -3
  31. package/dist/services/ecies/signature.js.map +1 -1
  32. package/dist/services/ecies/single-recipient.d.ts +4 -4
  33. package/dist/services/ecies/single-recipient.d.ts.map +1 -1
  34. package/dist/services/ecies/single-recipient.js +2 -1
  35. package/dist/services/ecies/single-recipient.js.map +1 -1
  36. package/dist/services/ecies/utilities.d.ts.map +1 -1
  37. package/dist/services/ecies/utilities.js +7 -6
  38. package/dist/services/ecies/utilities.js.map +1 -1
  39. package/dist/services/pbkdf2.d.ts +8 -1
  40. package/dist/services/pbkdf2.d.ts.map +1 -1
  41. package/dist/services/pbkdf2.js +17 -5
  42. package/dist/services/pbkdf2.js.map +1 -1
  43. package/dist/utils.d.ts.map +1 -1
  44. package/dist/utils.js +12 -2
  45. package/dist/utils.js.map +1 -1
  46. 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
- - **Member Management**: Comprehensive user/member system with key management
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(getEciesI18nEngine());
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
- const service = new ECIESService(getEciesI18nEngine());
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,2 @@
1
+ export * from './ecies-i18n-factory';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export * from './ecies-i18n-factory';
2
+ //# sourceMappingURL=index.js.map
@@ -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
@@ -1,5 +1,6 @@
1
1
  export * from './constants';
2
2
  export * from './enumerations';
3
+ export * from './i18n';
3
4
  export * from './interfaces';
4
5
  export * from './member';
5
6
  export * from './services';
@@ -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
@@ -1,5 +1,6 @@
1
1
  export * from './constants';
2
2
  export * from './enumerations';
3
+ export * from './i18n';
3
4
  export * from './interfaces';
4
5
  export * from './member';
5
6
  export * from './services';
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';
@@ -1 +1 @@
1
- {"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../src/member.ts"],"names":[],"mappings":"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"}
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, getEciesI18nEngine, MemberError, MemberErrorType, MemberType, SecureBuffer, } from '@digitaldefiance/ecies-lib';
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 MemberError(MemberErrorType.MissingMemberName, getEciesI18nEngine());
48
+ throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_MissingMemberName), MemberErrorType.MissingMemberName);
37
49
  }
38
50
  if (this._name.trim() != this._name) {
39
- throw new MemberError(MemberErrorType.InvalidMemberNameWhitespace, getEciesI18nEngine());
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 MemberError(MemberErrorType.NoWallet, getEciesI18nEngine());
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 MemberError(MemberErrorType.WalletAlreadyLoaded, getEciesI18nEngine());
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 MemberError(MemberErrorType.InvalidMnemonic, getEciesI18nEngine());
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 MemberError(MemberErrorType.MissingPrivateKey, getEciesI18nEngine());
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 MemberError(MemberErrorType.MissingPrivateKey, getEciesI18nEngine());
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 MemberError(MemberErrorType.MissingEncryptionData, getEciesI18nEngine());
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 MemberError(MemberErrorType.EncryptionDataTooLarge, getEciesI18nEngine());
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 MemberError(MemberErrorType.MissingPrivateKey, getEciesI18nEngine());
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 MemberError(MemberErrorType.MissingMemberName, getEciesI18nEngine());
238
+ throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_MissingMemberName), MemberErrorType.MissingMemberName);
227
239
  }
228
240
  if (name.trim() != name) {
229
- throw new MemberError(MemberErrorType.InvalidMemberNameWhitespace, getEciesI18nEngine());
241
+ throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace), MemberErrorType.InvalidMemberNameWhitespace);
230
242
  }
231
243
  if (!email || email.toString().length == 0) {
232
- throw new MemberError(MemberErrorType.MissingEmail, getEciesI18nEngine());
244
+ throw new NodeMemberError(getNodeEciesTranslation(NodeEciesStringKey.Error_Member_MissingEmail), MemberErrorType.MissingEmail);
233
245
  }
234
246
  if (email.toString().trim() != email.toString()) {
235
- throw new MemberError(MemberErrorType.InvalidEmailWhitespace, getEciesI18nEngine());
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();