@haskou/value-objects 4.0.1 → 4.1.0

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 (143) hide show
  1. package/README.md +176 -79
  2. package/dist/errors/index.d.ts +0 -2
  3. package/dist/errors/index.d.ts.map +1 -1
  4. package/dist/errors/index.js +0 -2
  5. package/dist/errors/index.js.map +1 -1
  6. package/dist/interfaces/PrimitiveOf.d.ts +1 -5
  7. package/dist/interfaces/PrimitiveOf.d.ts.map +1 -1
  8. package/dist/patterns/Assert.d.ts +1 -1
  9. package/dist/patterns/Assert.d.ts.map +1 -1
  10. package/dist/types/Primitive.d.ts +1 -1
  11. package/dist/types/Primitive.d.ts.map +1 -1
  12. package/dist/value-objects/Email.d.ts +0 -1
  13. package/dist/value-objects/Email.d.ts.map +1 -1
  14. package/dist/value-objects/Email.js +1 -2
  15. package/dist/value-objects/Email.js.map +1 -1
  16. package/dist/value-objects/NumberValueObject.js +1 -1
  17. package/dist/value-objects/NumberValueObject.js.map +1 -1
  18. package/dist/value-objects/UniqueObjectArray.d.ts.map +1 -1
  19. package/dist/value-objects/coordinates/Latitude.d.ts.map +1 -1
  20. package/dist/value-objects/coordinates/Latitude.js +4 -5
  21. package/dist/value-objects/coordinates/Latitude.js.map +1 -1
  22. package/dist/value-objects/coordinates/Longitude.d.ts.map +1 -1
  23. package/dist/value-objects/coordinates/Longitude.js +4 -5
  24. package/dist/value-objects/coordinates/Longitude.js.map +1 -1
  25. package/dist/value-objects/crypto/CryptoAdapter.d.ts +2 -3
  26. package/dist/value-objects/crypto/CryptoAdapter.d.ts.map +1 -1
  27. package/dist/value-objects/crypto/CryptoAdapter.js +4 -9
  28. package/dist/value-objects/crypto/CryptoAdapter.js.map +1 -1
  29. package/dist/value-objects/crypto/EncryptedKeyPair.d.ts +4 -4
  30. package/dist/value-objects/crypto/EncryptedKeyPair.d.ts.map +1 -1
  31. package/dist/value-objects/crypto/EncryptedKeyPair.js.map +1 -1
  32. package/dist/value-objects/crypto/EncryptedPayload.d.ts +0 -2
  33. package/dist/value-objects/crypto/EncryptedPayload.d.ts.map +1 -1
  34. package/dist/value-objects/crypto/EncryptedPayload.js +0 -15
  35. package/dist/value-objects/crypto/EncryptedPayload.js.map +1 -1
  36. package/dist/value-objects/crypto/EncryptedPrivateKey.d.ts +2 -3
  37. package/dist/value-objects/crypto/EncryptedPrivateKey.d.ts.map +1 -1
  38. package/dist/value-objects/crypto/EncryptedPrivateKey.js +4 -6
  39. package/dist/value-objects/crypto/EncryptedPrivateKey.js.map +1 -1
  40. package/dist/value-objects/crypto/KeyPair.d.ts +2 -2
  41. package/dist/value-objects/crypto/KeyPair.d.ts.map +1 -1
  42. package/dist/value-objects/crypto/KeyPair.js +1 -1
  43. package/dist/value-objects/crypto/KeyPair.js.map +1 -1
  44. package/dist/value-objects/crypto/PrivateKey.d.ts +0 -13
  45. package/dist/value-objects/crypto/PrivateKey.d.ts.map +1 -1
  46. package/dist/value-objects/crypto/PrivateKey.js +12 -58
  47. package/dist/value-objects/crypto/PrivateKey.js.map +1 -1
  48. package/dist/value-objects/crypto/PublicKey.d.ts +2 -6
  49. package/dist/value-objects/crypto/PublicKey.d.ts.map +1 -1
  50. package/dist/value-objects/crypto/PublicKey.js +6 -20
  51. package/dist/value-objects/crypto/PublicKey.js.map +1 -1
  52. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.d.ts +2 -2
  53. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.d.ts.map +1 -1
  54. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.js.map +1 -1
  55. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.d.ts +5 -7
  56. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.d.ts.map +1 -1
  57. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.js +17 -41
  58. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.js.map +1 -1
  59. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.d.ts +2 -2
  60. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.d.ts.map +1 -1
  61. package/dist/value-objects/crypto/index.d.ts +0 -3
  62. package/dist/value-objects/crypto/index.d.ts.map +1 -1
  63. package/dist/value-objects/crypto/index.js +0 -3
  64. package/dist/value-objects/crypto/index.js.map +1 -1
  65. package/dist/value-objects/hashes/MD5Hash.d.ts.map +1 -1
  66. package/dist/value-objects/hashes/MD5Hash.js +1 -2
  67. package/dist/value-objects/hashes/MD5Hash.js.map +1 -1
  68. package/dist/value-objects/hashes/SHA256Hash.d.ts.map +1 -1
  69. package/dist/value-objects/hashes/SHA256Hash.js +1 -2
  70. package/dist/value-objects/hashes/SHA256Hash.js.map +1 -1
  71. package/dist/value-objects/hashes/SHA512Hash.d.ts.map +1 -1
  72. package/dist/value-objects/hashes/SHA512Hash.js +1 -2
  73. package/dist/value-objects/hashes/SHA512Hash.js.map +1 -1
  74. package/dist/value-objects/ids/ShortId.d.ts +0 -1
  75. package/dist/value-objects/ids/ShortId.d.ts.map +1 -1
  76. package/dist/value-objects/ids/ShortId.js +3 -7
  77. package/dist/value-objects/ids/ShortId.js.map +1 -1
  78. package/dist/value-objects/ids/UUID.d.ts +0 -2
  79. package/dist/value-objects/ids/UUID.d.ts.map +1 -1
  80. package/dist/value-objects/ids/UUID.js +4 -18
  81. package/dist/value-objects/ids/UUID.js.map +1 -1
  82. package/dist/value-objects/index.d.ts +0 -1
  83. package/dist/value-objects/index.d.ts.map +1 -1
  84. package/dist/value-objects/index.js +0 -1
  85. package/dist/value-objects/index.js.map +1 -1
  86. package/dist/value-objects/media/Media.d.ts +0 -2
  87. package/dist/value-objects/media/Media.d.ts.map +1 -1
  88. package/dist/value-objects/media/Media.js +1 -14
  89. package/dist/value-objects/media/Media.js.map +1 -1
  90. package/dist/value-objects/time/CalendarDay.d.ts +1 -2
  91. package/dist/value-objects/time/CalendarDay.d.ts.map +1 -1
  92. package/dist/value-objects/time/CalendarDay.js +11 -25
  93. package/dist/value-objects/time/CalendarDay.js.map +1 -1
  94. package/dist/value-objects/time/DayOfWeek.d.ts.map +1 -1
  95. package/dist/value-objects/time/DayOfWeek.js +3 -2
  96. package/dist/value-objects/time/DayOfWeek.js.map +1 -1
  97. package/dist/value-objects/time/Duration.js +2 -2
  98. package/dist/value-objects/time/Duration.js.map +1 -1
  99. package/dist/value-objects/time/Hour.d.ts +0 -3
  100. package/dist/value-objects/time/Hour.d.ts.map +1 -1
  101. package/dist/value-objects/time/Hour.js +31 -30
  102. package/dist/value-objects/time/Hour.js.map +1 -1
  103. package/dist/value-objects/time/Timestamp.d.ts +0 -3
  104. package/dist/value-objects/time/Timestamp.d.ts.map +1 -1
  105. package/dist/value-objects/time/Timestamp.js +6 -50
  106. package/dist/value-objects/time/Timestamp.js.map +1 -1
  107. package/dist/value-objects/time/TimestampInterval.d.ts +4 -2
  108. package/dist/value-objects/time/TimestampInterval.d.ts.map +1 -1
  109. package/dist/value-objects/time/TimestampInterval.js +10 -0
  110. package/dist/value-objects/time/TimestampInterval.js.map +1 -1
  111. package/package.json +32 -57
  112. package/dist/errors/InvalidEncryptedPrivateKeyFormatError.d.ts +0 -5
  113. package/dist/errors/InvalidEncryptedPrivateKeyFormatError.d.ts.map +0 -1
  114. package/dist/errors/InvalidEncryptedPrivateKeyFormatError.js +0 -11
  115. package/dist/errors/InvalidEncryptedPrivateKeyFormatError.js.map +0 -1
  116. package/dist/errors/InvalidPasswordError.d.ts +0 -5
  117. package/dist/errors/InvalidPasswordError.d.ts.map +0 -1
  118. package/dist/errors/InvalidPasswordError.js +0 -11
  119. package/dist/errors/InvalidPasswordError.js.map +0 -1
  120. package/dist/value-objects/Password.d.ts +0 -8
  121. package/dist/value-objects/Password.d.ts.map +0 -1
  122. package/dist/value-objects/Password.js +0 -28
  123. package/dist/value-objects/Password.js.map +0 -1
  124. package/dist/value-objects/crypto/AsymmetricEncryptedPayload.d.ts +0 -5
  125. package/dist/value-objects/crypto/AsymmetricEncryptedPayload.d.ts.map +0 -1
  126. package/dist/value-objects/crypto/AsymmetricEncryptedPayload.js +0 -11
  127. package/dist/value-objects/crypto/AsymmetricEncryptedPayload.js.map +0 -1
  128. package/dist/value-objects/crypto/StrictBase64.d.ts +0 -15
  129. package/dist/value-objects/crypto/StrictBase64.d.ts.map +0 -1
  130. package/dist/value-objects/crypto/StrictBase64.js +0 -36
  131. package/dist/value-objects/crypto/StrictBase64.js.map +0 -1
  132. package/dist/value-objects/crypto/SymmetricEncryptedPayload.d.ts +0 -5
  133. package/dist/value-objects/crypto/SymmetricEncryptedPayload.d.ts.map +0 -1
  134. package/dist/value-objects/crypto/SymmetricEncryptedPayload.js +0 -11
  135. package/dist/value-objects/crypto/SymmetricEncryptedPayload.js.map +0 -1
  136. package/dist/value-objects/crypto/SymmetricKey.d.ts +0 -49
  137. package/dist/value-objects/crypto/SymmetricKey.d.ts.map +0 -1
  138. package/dist/value-objects/crypto/SymmetricKey.js +0 -149
  139. package/dist/value-objects/crypto/SymmetricKey.js.map +0 -1
  140. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV3.d.ts +0 -24
  141. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV3.d.ts.map +0 -1
  142. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV3.js +0 -105
  143. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV3.js.map +0 -1
package/README.md CHANGED
@@ -1,115 +1,212 @@
1
- # @haskou/value-objects
1
+ [![npm version](https://badge.fury.io/js/@haskou%2Fvalue-objects.svg)](https://badge.fury.io/js/@haskou%2Fvalue-objects)
2
2
 
3
- [![CI](https://github.com/haskou/value-objects/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/haskou/value-objects/actions/workflows/ci.yml?query=branch%3Amaster)
4
- [![codecov](https://codecov.io/gh/haskou/value-objects/branch/master/graph/badge.svg)](https://codecov.io/gh/haskou/value-objects)
5
- [![npm version](https://img.shields.io/npm/v/@haskou/value-objects.svg)](https://www.npmjs.com/package/@haskou/value-objects)
6
- [![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen?logo=renovatebot)](https://docs.renovatebot.com/)
7
- [![license](https://img.shields.io/npm/l/@haskou/value-objects.svg)](LICENSE.txt)
3
+ # Value Objects
8
4
 
9
- A TypeScript library for validated, immutable primitive wrappers and small utility value objects.
5
+ A TypeScript lightweight library for creating safe, immutable,
6
+ and validated **Value Objects**. Perfect for applications that require **Domain-Driven Design (DDD)** and **type safety**.
10
7
 
11
- It provides ready-to-use objects for strings, numbers, identifiers, dates, coordinates, hashes, media, collections, and cryptographic payload helpers. Validation happens when an object is created, so code receiving one of these objects can rely on its shape.
8
+ ## 🚀 Quick Start
12
9
 
10
+ ```bash
11
+ npm install @haskou/value-objects
12
+ ```
13
13
 
14
- ## Documentation
15
-
16
- Full documentation is available at **https://haskou.github.io/value-objects/**.
17
-
18
- The documentation includes installation, quick start, examples, error handling, serialization notes, and one reference page per exported class.
14
+ ```typescript
15
+ import { Email, PositiveNumber, Color, Hour } from 'value-objects';
19
16
 
20
- Reusable agent instructions and engineering skills are available at **https://github.com/haskou/ddd-engineer-skills**.
17
+ // ✅ Automatic validation on construction
18
+ const email = new Email('user@example.com'); // Valid
19
+ const price = new PositiveNumber(29.99); // Valid
20
+ const color = new Color('#FF0000'); // Valid
21
+ const hour = new Hour('09:30'); // Valid
21
22
 
23
+ // ❌ Immediate errors with invalid values
24
+ const badEmail = new Email('not-an-email'); // Error!
25
+ const badPrice = new PositiveNumber(-5); // Error!
26
+ ```
22
27
 
23
- ## Installation
28
+ ## 🤔 Why use Value Objects?
24
29
 
25
- ```bash
26
- npm install @haskou/value-objects
30
+ **Without Value Objects:**
31
+ ```typescript
32
+ function createUser(email: string, age: number): void {
33
+ // Are they valid? We don't know until runtime
34
+ if (!email.includes('@')) throw new Error('Invalid email');
35
+ if (age <= 0) throw new Error('Invalid age');
36
+ // Creation stuff
37
+ }
27
38
  ```
28
39
 
29
- ```bash
30
- yarn add @haskou/value-objects
40
+ **With Value Objects:**
41
+ ```typescript
42
+ function createUser(email: Email, age: PositiveNumber): void {
43
+ // If we get here, values ARE valid
44
+ // Creation stuff
45
+ }
31
46
  ```
32
47
 
33
- ## Quick start
48
+ This prevents defensive programming and if-else validations
49
+ since it implements Null Object pattern (see technical documentation).
50
+ Also value-objects can be modified easily keeping the same logic along
51
+ your application.
52
+
53
+ ## 📦 Available Value Objects
54
+
55
+ ### 🔤 Basic
56
+ - **`StringValueObject`** - Strings with length validation
57
+ - **`NumberValueObject`** - Numbers with math operations
58
+ - **`Integer`** - Whole numbers
59
+ - **`PositiveNumber`** - Positive numbers (> 0)
60
+
61
+ ### 🆔 Identifiers
62
+ - **`ShortId`** - MongoDB ObjectId strings (24‑character hex)
63
+ - **`UUID`** - Universally Unique Identifier (v4)
64
+
65
+ ### ✨ Specialized
66
+ - **`Email`** - Email addresses with automatic validation
67
+ - **`Color`** - Hex colors (#FF0000)
68
+
69
+ ### 🕒 Time
70
+ - **`Hour`** - Time in 24h format (09:30)
71
+ - **`Year`** - Years with leap year calculations
72
+ - **`CalendarDay`** - Calendar days
73
+ - **`Day`** - Days of month (1-31)
74
+ - **`DayOfWeek`** - Days of the week
75
+ - **`Month`** - Months (1-12)
76
+ - **`MonthOfYear`** - Month/year combinations
77
+ - **`Timestamp`** - Timestamps with operations
78
+ - **`TimestampInterval`** - Time intervals
79
+ - **`Duration`** - Duration in milliseconds
80
+
81
+ ### 🌍 Coordinates
82
+ - **`Latitude`** - Latitude (-90 to 90)
83
+ - **`Longitude`** - Longitude (-180 to 180)
84
+ - **`Coordinates`** - Coordinate pairs
85
+
86
+ ### 🔐 Cryptography
87
+ - **`KeyPair`** - Ed25519 key pair generation, signing, and verification
88
+ - **`PrivateKey`** - Ed25519 private key (PEM format) with signing
89
+ - **`PublicKey`** - Ed25519 public key (PEM format) with signature verification
90
+ - **`Signature`** - Base64-encoded ed25519 digital signature
91
+ - **`EncryptedPrivateKey`** - AES-256-GCM encrypted private key (scrypt-based, password-protected)
92
+ - **`EncryptedKeyPair`** - Key pair with encrypted private key
93
+
94
+ ### 📎 Media
95
+ - **`Media`** - Binary/string content with Buffer, size, and Base64 helpers
96
+
97
+ ### #️ Hashes
98
+ - **`MD5Hash`** - MD5 hashes with helpers
99
+ - **`SHA256Hash`** - SHA‑256 hashes with helpers
100
+ - **`SHA512Hash`** - SHA‑512 hashes with helpers
101
+
102
+ ### 📝 Other
103
+ - **`Enum`** - Base class for typed enumerations
104
+ - **`UniqueObjectArray`** - Iterable collection that keeps comparable items unique
105
+
106
+ ## 💡 Basic Examples
34
107
 
35
108
  ```typescript
36
- import { Color, Email, Hour, PositiveNumber } from '@haskou/value-objects';
109
+ // Validated strings
110
+ const name = new StringValueObject('John Doe');
111
+ const code = new StringValueObject('ABC', 3); // max 3 characters
112
+
113
+ // Numbers with operations
114
+ const price = new NumberValueObject(29.99);
115
+ const discount = new NumberValueObject(5.00);
116
+ const total = price.subtract(discount); // 24.99
37
117
 
118
+ // Emails
38
119
  const email = new Email('user@example.com');
39
- const price = new PositiveNumber(29.99);
40
- const color = new Color('#FF0000');
41
- const hour = new Hour('09:30');
120
+ console.log(email.getDomain()); // 'example.com'
42
121
 
43
- console.log(email.valueOf()); // 'user@example.com'
44
- console.log(price.valueOf()); // 29.99
45
- console.log(color.toString()); // '#FF0000'
46
- console.log(hour.addMinutes(45).toString()); // '10:15'
47
- ```
122
+ // Colors
123
+ const red = new Color('#FF0000');
124
+ const blue = Color.BLUE; // Predefined color
48
125
 
49
- Invalid values throw specific errors.
126
+ // Coordinates
127
+ const latitude = new Latitude(40.7128); // New York
128
+ const longitude = new Longitude(-74.0060);
129
+ const coords = new Coordinates(latitude, longitude);
50
130
 
51
- ```typescript
52
- import { Email, InvalidEmailError } from '@haskou/value-objects';
53
-
54
- try {
55
- new Email('not-an-email');
56
- } catch (error) {
57
- if (error instanceof InvalidEmailError) {
58
- console.error('Invalid email');
59
- }
60
- }
131
+ // Time
132
+ const hour = new Hour('09:30');
133
+ const year = new Year(2024);
134
+ console.log(year.isLeapYear()); // true
135
+
136
+ // IDs
137
+ const id = ShortId.generate(); // 69ad70897364ee0d1406b1d0
138
+ const uuid = UUID.generate(); // 3fd4c04a-8e73-4e10-aef3-f491b32ec538
139
+
140
+ // Hashes
141
+ const md5 = MD5Hash.from('hello'); // 5d41402abc4b2a76b9719d911017c592
142
+ const sha256 = SHA256Hash.from('hello'); // 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
143
+ const sha512 = SHA512Hash.from('hello'); // 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043
144
+ console.log(md5.toBase64());
145
+
146
+ // Crypto
147
+ const keyPair = KeyPair.generate(); // Ed25519 key pair
148
+ const signature = keyPair.sign('hello world'); // Sign a message
149
+ keyPair.isValidSignature('hello world', signature); // true
150
+
151
+ // Encrypted key pairs
152
+ const encrypted = await keyPair.encryptKeyPair('my-password');
153
+ const sig = encrypted.sign('message', 'my-password');
154
+ encrypted.isValidSignature('message', sig); // true
155
+
156
+ // Media
157
+ const media = new Media('hello world');
158
+ console.log(media.getSize()); // 11
159
+ console.log(media.getBase64()); // 'aGVsbG8gd29ybGQ='
160
+ console.log(media.getBuffer()); // <Buffer 68 65 6c 6c 6f ...>
161
+
162
+ // Unique collections
163
+ const weekdays = UniqueObjectArray.fromArray([
164
+ DayOfWeek.MONDAY,
165
+ DayOfWeek.TUESDAY,
166
+ DayOfWeek.MONDAY,
167
+ ]);
168
+ console.log(weekdays.length()); // 2
169
+ console.log(weekdays.toArray().map((day) => day.toString())); // ['monday', 'tuesday']
61
170
  ```
62
171
 
63
- ## Available categories
64
-
65
- | Category | Examples |
66
- | --- | --- |
67
- | Base | `ValueObject`, `NullObject`, `Enum` |
68
- | Strings | `StringValueObject`, `Password`, `Email`, `Color` |
69
- | Numbers | `NumberValueObject`, `Integer`, `PositiveNumber` |
70
- | IDs | `ShortId`, `UUID` |
71
- | Time | `Timestamp`, `CalendarDay`, `Hour`, `Duration`, `MonthOfYear` |
72
- | Coordinates | `Latitude`, `Longitude`, `Coordinates` |
73
- | Hashes | `MD5Hash`, `SHA256Hash`, `SHA512Hash` |
74
- | Media | `Media` |
75
- | Collections | `UniqueObjectArray` |
76
- | Crypto helpers | `KeyPair`, `PrivateKey`, `PublicKey`, `SymmetricKey`, encrypted payload objects |
172
+ ## 📚 Technical Documentation
77
173
 
78
- See the complete API reference in the documentation: https://haskou.github.io/value-objects/reference/
174
+ Need more details? Check the complete documentation:
79
175
 
80
- ## Documentation development
176
+ **[📖 TECHNICAL_DOCUMENTATION.md](./TECHNICAL_DOCUMENTATION.md)**
81
177
 
82
- ```bash
83
- # Start local docs server
84
- yarn docs:dev
178
+ Includes:
179
+ - ✅ Complete API for all Value Objects
180
+ - ✅ Advanced usage examples
181
+ - ✅ Error handling
182
+ - ✅ Design principles (immutability, null safety, etc.)
183
+ - ✅ Composition and extensibility patterns
85
184
 
86
- # Build static documentation
87
- yarn docs:build
185
+ ## 🛠️ Development
88
186
 
89
- # Preview the built site
90
- yarn docs:preview
91
- ```
187
+ ```bash
188
+ # Install dependencies
189
+ npm install
92
190
 
93
- ## Package development
191
+ # Run tests
192
+ npm test
94
193
 
95
- ```bash
96
- yarn install
97
- yarn test
98
- yarn build
194
+ # Build
195
+ npm run build
99
196
  ```
100
197
 
101
- ## Release branches
198
+ ## 🤝 Contributing
102
199
 
103
- Publishing is handled by CI when a pull request is merged into the default branch.
200
+ 1. Fork the repository
201
+ 2. Create a branch: `git checkout -b my-feature`
202
+ 3. Make your changes and add tests
203
+ 4. Run tests: `npm test`
204
+ 5. Submit a pull request
104
205
 
105
- | Branch prefix | npm bump |
106
- | --- | --- |
107
- | `fix/*` | Patch |
108
- | `feat/*` | Minor |
109
- | `break/*` | Major |
206
+ ## 📄 License
110
207
 
111
- Branches without one of these prefixes still run CI, but they do not publish to npm.
208
+ MIT License - see the [LICENSE](LICENSE.txt) file for details.
112
209
 
113
- ## License
210
+ ---
114
211
 
115
- MIT. See [LICENSE.txt](LICENSE.txt).
212
+ **Made with ❤️ and TypeScript**
@@ -5,7 +5,6 @@ export * from './InvalidDayError';
5
5
  export * from './InvalidDayFormatError';
6
6
  export * from './InvalidHourError';
7
7
  export * from './InvalidEmailError';
8
- export * from './InvalidEncryptedPrivateKeyFormatError';
9
8
  export * from './InvalidFormatError';
10
9
  export * from './InvalidHashError';
11
10
  export * from './InvalidIntegerError';
@@ -14,7 +13,6 @@ export * from './InvalidLongitudeError';
14
13
  export * from './InvalidEmailError';
15
14
  export * from './InvalidMinutesError';
16
15
  export * from './InvalidNumberError';
17
- export * from './InvalidPasswordError';
18
16
  export * from './InvalidPositiveNumberError';
19
17
  export * from './InvalidStringLengthError';
20
18
  export * from './InvalidTimestampIntervalError';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yCAAyC,CAAC;AACxD,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
@@ -8,7 +8,6 @@ tslib_1.__exportStar(require("./InvalidDayError"), exports);
8
8
  tslib_1.__exportStar(require("./InvalidDayFormatError"), exports);
9
9
  tslib_1.__exportStar(require("./InvalidHourError"), exports);
10
10
  tslib_1.__exportStar(require("./InvalidEmailError"), exports);
11
- tslib_1.__exportStar(require("./InvalidEncryptedPrivateKeyFormatError"), exports);
12
11
  tslib_1.__exportStar(require("./InvalidFormatError"), exports);
13
12
  tslib_1.__exportStar(require("./InvalidHashError"), exports);
14
13
  tslib_1.__exportStar(require("./InvalidIntegerError"), exports);
@@ -17,7 +16,6 @@ tslib_1.__exportStar(require("./InvalidLongitudeError"), exports);
17
16
  tslib_1.__exportStar(require("./InvalidEmailError"), exports);
18
17
  tslib_1.__exportStar(require("./InvalidMinutesError"), exports);
19
18
  tslib_1.__exportStar(require("./InvalidNumberError"), exports);
20
- tslib_1.__exportStar(require("./InvalidPasswordError"), exports);
21
19
  tslib_1.__exportStar(require("./InvalidPositiveNumberError"), exports);
22
20
  tslib_1.__exportStar(require("./InvalidStringLengthError"), exports);
23
21
  tslib_1.__exportStar(require("./InvalidTimestampIntervalError"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,wDAA8B;AAC9B,8DAAoC;AACpC,4DAAkC;AAClC,kEAAwC;AACxC,6DAAmC;AACnC,8DAAoC;AACpC,kFAAwD;AACxD,+DAAqC;AACrC,6DAAmC;AACnC,gEAAsC;AACtC,iEAAuC;AACvC,kEAAwC;AACxC,8DAAoC;AACpC,gEAAsC;AACtC,+DAAqC;AACrC,iEAAuC;AACvC,uEAA6C;AAC7C,qEAA2C;AAC3C,0EAAgD;AAChD,4DAAkC;AAClC,+DAAqC;AACrC,kEAAwC;AACxC,4DAAkC;AAClC,gEAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,wDAA8B;AAC9B,8DAAoC;AACpC,4DAAkC;AAClC,kEAAwC;AACxC,6DAAmC;AACnC,8DAAoC;AACpC,+DAAqC;AACrC,6DAAmC;AACnC,gEAAsC;AACtC,iEAAuC;AACvC,kEAAwC;AACxC,8DAAoC;AACpC,gEAAsC;AACtC,+DAAqC;AACrC,uEAA6C;AAC7C,qEAA2C;AAC3C,0EAAgD;AAChD,4DAAkC;AAClC,+DAAqC;AACrC,kEAAwC;AACxC,4DAAkC;AAClC,gEAAsC"}
@@ -1,9 +1,5 @@
1
1
  import { Primitive } from '../types/Primitive';
2
- type SerializedValue = Primitive | SerializedValue[] | {
3
- [key: string]: SerializedValue;
4
- };
5
2
  export type PrimitiveOf<T extends {
6
- toPrimitives(): SerializedValue;
3
+ toPrimitives(): Primitive | Record<string, Primitive>;
7
4
  }> = ReturnType<T['toPrimitives']>;
8
- export {};
9
5
  //# sourceMappingURL=PrimitiveOf.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrimitiveOf.d.ts","sourceRoot":"","sources":["../../src/interfaces/PrimitiveOf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,KAAK,eAAe,GAChB,SAAS,GACT,eAAe,EAAE,GACjB;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;CAChC,CAAC;AAEN,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS;IAAE,YAAY,IAAI,eAAe,CAAA;CAAE,IACnE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"PrimitiveOf.d.ts","sourceRoot":"","sources":["../../src/interfaces/PrimitiveOf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS;IAAE,YAAY,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CAAE,IACjE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { BaseError } from '../errors/BaseError';
2
2
  import { DomainError } from '../errors/DomainError';
3
3
  export type Errors = Error | BaseError | DomainError | string;
4
- export declare function assert(condition: boolean | unknown | undefined, error: string | Errors): asserts condition;
4
+ export declare function assert(condition: boolean | unknown | undefined, error: string | Errors): void;
5
5
  //# sourceMappingURL=Assert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Assert.d.ts","sourceRoot":"","sources":["../../src/patterns/Assert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;AAE9D,wBAAgB,MAAM,CACpB,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,EACxC,KAAK,EAAE,MAAM,GAAG,MAAM,GACrB,OAAO,CAAC,SAAS,CAMnB"}
1
+ {"version":3,"file":"Assert.d.ts","sourceRoot":"","sources":["../../src/patterns/Assert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;AAE9D,wBAAgB,MAAM,CACpB,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,EACxC,KAAK,EAAE,MAAM,GAAG,MAAM,GACrB,IAAI,CAMN"}
@@ -1,2 +1,2 @@
1
- export type Primitive = string | number | boolean | bigint | symbol | null | undefined;
1
+ export type Primitive = string | number | boolean | bigint | symbol | Record<string, unknown> | Array<unknown> | null | undefined;
2
2
  //# sourceMappingURL=Primitive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Primitive.d.ts","sourceRoot":"","sources":["../../src/types/Primitive.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACnB,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"Primitive.d.ts","sourceRoot":"","sources":["../../src/types/Primitive.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,KAAK,CAAC,OAAO,CAAC,GACd,IAAI,GACJ,SAAS,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { StringValueObject } from './StringValueObject';
2
2
  export declare class Email extends StringValueObject {
3
- private static readonly PATTERN;
4
3
  constructor(value: string | StringValueObject);
5
4
  private ensureIsValidEmail;
6
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Email.d.ts","sourceRoot":"","sources":["../../src/value-objects/Email.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,qBAAa,KAAM,SAAQ,iBAAiB;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CACwE;gBAE3F,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAU7C,OAAO,CAAC,kBAAkB;CAG3B"}
1
+ {"version":3,"file":"Email.d.ts","sourceRoot":"","sources":["../../src/value-objects/Email.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,qBAAa,KAAM,SAAQ,iBAAiB;gBAC9B,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAU7C,OAAO,CAAC,kBAAkB;CAM3B"}
@@ -6,7 +6,6 @@ const Assert_1 = require("../patterns/Assert");
6
6
  const NullObject_1 = require("./NullObject");
7
7
  const StringValueObject_1 = require("./StringValueObject");
8
8
  class Email extends StringValueObject_1.StringValueObject {
9
- static PATTERN = /^[\w+\-.!#$%&'*/=?^`{|}~]+@(?:[\w-]+\.)+(?:[a-z]{2,63}|xn--[a-z0-9](?:[a-z0-9-]{0,57}[a-z0-9])?)$/i;
10
9
  constructor(value) {
11
10
  super(value?.valueOf());
12
11
  if (NullObject_1.NullObject.isNullObject(this)) {
@@ -15,7 +14,7 @@ class Email extends StringValueObject_1.StringValueObject {
15
14
  this.ensureIsValidEmail(this.value);
16
15
  }
17
16
  ensureIsValidEmail(value) {
18
- (0, Assert_1.assert)(Email.PATTERN.test(value), new InvalidEmailError_1.InvalidEmailError(value));
17
+ (0, Assert_1.assert)(new RegExp(/^[\w+\-.]+@(?:[\w-]+\.)+[a-zA-Z]{2,13}$/).test(value), new InvalidEmailError_1.InvalidEmailError(value));
19
18
  }
20
19
  }
21
20
  exports.Email = Email;
@@ -1 +1 @@
1
- {"version":3,"file":"Email.js","sourceRoot":"","sources":["../../src/value-objects/Email.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAChE,+CAA4C;AAC5C,6CAA0C;AAC1C,2DAAwD;AAExD,MAAa,KAAM,SAAQ,qCAAiB;IAClC,MAAM,CAAU,OAAO,GAC7B,oGAAoG,CAAC;IAEvG,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAExB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAEO,kBAAkB,CAAC,KAAa;QACtC,IAAA,eAAM,EAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,qCAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;;AAhBH,sBAiBC"}
1
+ {"version":3,"file":"Email.js","sourceRoot":"","sources":["../../src/value-objects/Email.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAChE,+CAA4C;AAC5C,6CAA0C;AAC1C,2DAAwD;AAExD,MAAa,KAAM,SAAQ,qCAAiB;IAC1C,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAExB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAEO,kBAAkB,CAAC,KAAa;QACtC,IAAA,eAAM,EACJ,IAAI,MAAM,CAAC,yCAAyC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EACjE,IAAI,qCAAiB,CAAC,KAAK,CAAC,CAC7B,CAAC;IACJ,CAAC;CACF;AAjBD,sBAiBC"}
@@ -14,7 +14,7 @@ class NumberValueObject extends ValueObject_1.ValueObject {
14
14
  (0, Assert_1.assert)(this.isValidNumber(this.value), new InvalidNumberError_1.InvalidNumberError(this.value));
15
15
  }
16
16
  isValidNumber(value) {
17
- return Number.isFinite(value.valueOf());
17
+ return !isNaN(value.valueOf());
18
18
  }
19
19
  isZero() {
20
20
  return this.value === 0;
@@ -1 +1 @@
1
- {"version":3,"file":"NumberValueObject.js","sourceRoot":"","sources":["../../src/value-objects/NumberValueObject.ts"],"names":[],"mappings":";;;AAAA,qEAAkE;AAClE,+CAA4C;AAC5C,6CAA0C;AAC1C,+CAA4C;AAE5C,MAAa,iBAAkB,SAAQ,yBAAmB;IACxD,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAExB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAA,eAAM,EAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,uCAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEM,aAAa,CAAC,KAAiC;QACpD,OAAO,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAEM,oBAAoB,CAAC,KAAiC;QAC3D,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAEM,UAAU,CAAC,KAAiC;QACjD,OAAO,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAEM,iBAAiB,CAAC,KAAiC;QACxD,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAEM,GAAG,CAAC,KAAiC;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;IAEM,QAAQ,CAAC,KAAiC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;IAEM,QAAQ,CAAC,KAAiC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;IAEM,MAAM,CAAC,KAAiC;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AAlDD,8CAkDC"}
1
+ {"version":3,"file":"NumberValueObject.js","sourceRoot":"","sources":["../../src/value-objects/NumberValueObject.ts"],"names":[],"mappings":";;;AAAA,qEAAkE;AAClE,+CAA4C;AAC5C,6CAA0C;AAC1C,+CAA4C;AAE5C,MAAa,iBAAkB,SAAQ,yBAAmB;IACxD,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAExB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAA,eAAM,EAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,uCAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACjC,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEM,aAAa,CAAC,KAAiC;QACpD,OAAO,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAEM,oBAAoB,CAAC,KAAiC;QAC3D,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAEM,UAAU,CAAC,KAAiC;QACjD,OAAO,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAEM,iBAAiB,CAAC,KAAiC;QACxD,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAEM,GAAG,CAAC,KAAiC;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;IAEM,QAAQ,CAAC,KAAiC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;IAEM,QAAQ,CAAC,KAAiC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;IAEM,MAAM,CAAC,KAAiC;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AAlDD,8CAkDC"}
@@ -1 +1 @@
1
- {"version":3,"file":"UniqueObjectArray.d.ts","sourceRoot":"","sources":["../../src/value-objects/UniqueObjectArray.ts"],"names":[],"mappings":"AAAA,UAAU,cAAc;IACtB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CACjC;AACD,qBAAa,iBAAiB,CAC5B,CAAC,SAAS,cAAc,CACxB,YAAW,QAAQ,CAAC,CAAC,CAAC;IACtB,OAAO,CAAC,KAAK,CAAW;WAEV,SAAS,CAAC,CAAC,SAAS,cAAc,EAC9C,KAAK,EAAE,CAAC,EAAE,GACT,iBAAiB,CAAC,CAAC,CAAC;IAShB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAI1B,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAUtB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAYxB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;IAIhC,MAAM,IAAI,MAAM;IAIhB,OAAO,IAAI,CAAC,EAAE;CAGtB"}
1
+ {"version":3,"file":"UniqueObjectArray.d.ts","sourceRoot":"","sources":["../../src/value-objects/UniqueObjectArray.ts"],"names":[],"mappings":"AAAA,UAAU,cAAc;IACtB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CACjC;AACD,qBAAa,iBAAiB,CAAC,CAAC,SAAS,cAAc,CACrD,YAAW,QAAQ,CAAC,CAAC,CAAC;IAEtB,OAAO,CAAC,KAAK,CAAW;WAEV,SAAS,CAAC,CAAC,SAAS,cAAc,EAC9C,KAAK,EAAE,CAAC,EAAE,GACT,iBAAiB,CAAC,CAAC,CAAC;IAShB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAI1B,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAUtB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAYxB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;IAIhC,MAAM,IAAI,MAAM;IAIhB,OAAO,IAAI,CAAC,EAAE;CAGtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Latitude.d.ts","sourceRoot":"","sources":["../../../src/value-objects/coordinates/Latitude.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,QAAS,SAAQ,iBAAiB;IAC7C,OAAO,CAAC,MAAM,CAAC,SAAS,CAA8B;IACtD,OAAO,CAAC,MAAM,CAAC,SAAS,CAA6B;IAErD,OAAO,CAAC,MAAM,CAAC,OAAO;gBAUV,KAAK,EAAE,MAAM,GAAG,iBAAiB;CAI9C"}
1
+ {"version":3,"file":"Latitude.d.ts","sourceRoot":"","sources":["../../../src/value-objects/coordinates/Latitude.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,QAAS,SAAQ,iBAAiB;IAC7C,OAAO,CAAC,MAAM,CAAC,SAAS,CAA8B;IACtD,OAAO,CAAC,MAAM,CAAC,SAAS,CAA6B;IAErD,OAAO,CAAC,MAAM,CAAC,OAAO;gBASV,KAAK,EAAE,MAAM,GAAG,iBAAiB;CAI9C"}
@@ -8,14 +8,13 @@ class Latitude extends NumberValueObject_1.NumberValueObject {
8
8
  static MIN_VALUE = new NumberValueObject_1.NumberValueObject(-90);
9
9
  static MAX_VALUE = new NumberValueObject_1.NumberValueObject(90);
10
10
  static isValid(value) {
11
- const primitive = value.valueOf();
12
- return (Number.isFinite(primitive) &&
13
- primitive >= this.MIN_VALUE.valueOf() &&
14
- primitive <= this.MAX_VALUE.valueOf());
11
+ const numberValue = new NumberValueObject_1.NumberValueObject(value.valueOf());
12
+ return (numberValue.isGreaterOrEqualThan(this.MIN_VALUE) &&
13
+ numberValue.isLessOrEqualThan(this.MAX_VALUE));
15
14
  }
16
15
  constructor(value) {
17
- (0, Assert_1.assert)(Latitude.isValid(value), new InvalidLatitudeError_1.InvalidLatitudeError(value.valueOf()));
18
16
  super(value.valueOf());
17
+ (0, Assert_1.assert)(Latitude.isValid(value), new InvalidLatitudeError_1.InvalidLatitudeError(value.valueOf()));
19
18
  }
20
19
  }
21
20
  exports.Latitude = Latitude;
@@ -1 +1 @@
1
- {"version":3,"file":"Latitude.js","sourceRoot":"","sources":["../../../src/value-objects/coordinates/Latitude.ts"],"names":[],"mappings":";;;AAAA,4EAAyE;AACzE,kDAA+C;AAC/C,4DAAyD;AAEzD,MAAa,QAAS,SAAQ,qCAAiB;IACrC,MAAM,CAAC,SAAS,GAAG,IAAI,qCAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9C,MAAM,CAAC,SAAS,GAAG,IAAI,qCAAiB,CAAC,EAAE,CAAC,CAAC;IAE7C,MAAM,CAAC,OAAO,CAAC,KAAiC;QACtD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAElC,OAAO,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC1B,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;YACrC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CACtC,CAAC;IACJ,CAAC;IAED,YAAY,KAAiC;QAC3C,IAAA,eAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,2CAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3E,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACzB,CAAC;;AAjBH,4BAkBC"}
1
+ {"version":3,"file":"Latitude.js","sourceRoot":"","sources":["../../../src/value-objects/coordinates/Latitude.ts"],"names":[],"mappings":";;;AAAA,4EAAyE;AACzE,kDAA+C;AAC/C,4DAAyD;AAEzD,MAAa,QAAS,SAAQ,qCAAiB;IACrC,MAAM,CAAC,SAAS,GAAG,IAAI,qCAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9C,MAAM,CAAC,SAAS,GAAG,IAAI,qCAAiB,CAAC,EAAE,CAAC,CAAC;IAE7C,MAAM,CAAC,OAAO,CAAC,KAAiC;QACtD,MAAM,WAAW,GAAG,IAAI,qCAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAE3D,OAAO,CACL,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC;YAChD,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAC9C,CAAC;IACJ,CAAC;IAED,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvB,IAAA,eAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,2CAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;;AAhBH,4BAiBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Longitude.d.ts","sourceRoot":"","sources":["../../../src/value-objects/coordinates/Longitude.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,SAAU,SAAQ,iBAAiB;IAC9C,OAAO,CAAC,MAAM,CAAC,SAAS,CAA+B;IACvD,OAAO,CAAC,MAAM,CAAC,SAAS,CAA8B;IAEtD,OAAO,CAAC,MAAM,CAAC,OAAO;gBAUV,KAAK,EAAE,MAAM,GAAG,iBAAiB;CAO9C"}
1
+ {"version":3,"file":"Longitude.d.ts","sourceRoot":"","sources":["../../../src/value-objects/coordinates/Longitude.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,SAAU,SAAQ,iBAAiB;IAC9C,OAAO,CAAC,MAAM,CAAC,SAAS,CAA+B;IACvD,OAAO,CAAC,MAAM,CAAC,SAAS,CAA8B;IAEtD,OAAO,CAAC,MAAM,CAAC,OAAO;gBASV,KAAK,EAAE,MAAM,GAAG,iBAAiB;CAO9C"}
@@ -8,14 +8,13 @@ class Longitude extends NumberValueObject_1.NumberValueObject {
8
8
  static MIN_VALUE = new NumberValueObject_1.NumberValueObject(-180);
9
9
  static MAX_VALUE = new NumberValueObject_1.NumberValueObject(180);
10
10
  static isValid(value) {
11
- const primitive = value.valueOf();
12
- return (Number.isFinite(primitive) &&
13
- primitive >= this.MIN_VALUE.valueOf() &&
14
- primitive <= this.MAX_VALUE.valueOf());
11
+ const numberValue = new NumberValueObject_1.NumberValueObject(value.valueOf());
12
+ return (numberValue.isGreaterOrEqualThan(this.MIN_VALUE) &&
13
+ numberValue.isLessOrEqualThan(this.MAX_VALUE));
15
14
  }
16
15
  constructor(value) {
17
- (0, Assert_1.assert)(Longitude.isValid(value), new InvalidLongitudeError_1.InvalidLongitudeError(value.valueOf()));
18
16
  super(value.valueOf());
17
+ (0, Assert_1.assert)(Longitude.isValid(value), new InvalidLongitudeError_1.InvalidLongitudeError(value.valueOf()));
19
18
  }
20
19
  }
21
20
  exports.Longitude = Longitude;
@@ -1 +1 @@
1
- {"version":3,"file":"Longitude.js","sourceRoot":"","sources":["../../../src/value-objects/coordinates/Longitude.ts"],"names":[],"mappings":";;;AAAA,8EAA2E;AAC3E,kDAA+C;AAC/C,4DAAyD;AAEzD,MAAa,SAAU,SAAQ,qCAAiB;IACtC,MAAM,CAAC,SAAS,GAAG,IAAI,qCAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,CAAC,SAAS,GAAG,IAAI,qCAAiB,CAAC,GAAG,CAAC,CAAC;IAE9C,MAAM,CAAC,OAAO,CAAC,KAAiC;QACtD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAElC,OAAO,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC1B,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;YACrC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CACtC,CAAC;IACJ,CAAC;IAED,YAAY,KAAiC;QAC3C,IAAA,eAAM,EACJ,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EACxB,IAAI,6CAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAC3C,CAAC;QACF,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACzB,CAAC;;AApBH,8BAqBC"}
1
+ {"version":3,"file":"Longitude.js","sourceRoot":"","sources":["../../../src/value-objects/coordinates/Longitude.ts"],"names":[],"mappings":";;;AAAA,8EAA2E;AAC3E,kDAA+C;AAC/C,4DAAyD;AAEzD,MAAa,SAAU,SAAQ,qCAAiB;IACtC,MAAM,CAAC,SAAS,GAAG,IAAI,qCAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,CAAC,SAAS,GAAG,IAAI,qCAAiB,CAAC,GAAG,CAAC,CAAC;IAE9C,MAAM,CAAC,OAAO,CAAC,KAAiC;QACtD,MAAM,WAAW,GAAG,IAAI,qCAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAE3D,OAAO,CACL,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC;YAChD,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAC9C,CAAC;IACJ,CAAC;IAED,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvB,IAAA,eAAM,EACJ,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EACxB,IAAI,6CAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAC3C,CAAC;IACJ,CAAC;;AAnBH,8BAoBC"}
@@ -3,10 +3,9 @@ type HashAlgorithm = 'md5' | 'sha256' | 'sha512';
3
3
  export declare class CryptoAdapter {
4
4
  private static pemToDer;
5
5
  private static wrapPem;
6
- static decryptAes256Gcm(key: Uint8Array, iv: Uint8Array, cipherText: Uint8Array, tag: Uint8Array, aad?: Uint8Array): Buffer;
6
+ static decryptAes256Gcm(key: Uint8Array, iv: Uint8Array, cipherText: Uint8Array, tag: Uint8Array): Buffer;
7
7
  static deriveEncryptionKey(sharedSecret: Uint8Array, ephemeralPublicKey: Uint8Array): Uint8Array;
8
- static deriveEncryptionKeyWithHkdf(sharedSecret: Uint8Array, ephemeralPublicKey: Uint8Array, recipientPublicKey: Uint8Array): Uint8Array;
9
- static encryptAes256Gcm(key: Uint8Array, iv: Uint8Array, message: Uint8Array, aad?: Uint8Array): {
8
+ static encryptAes256Gcm(key: Uint8Array, iv: Uint8Array, message: Uint8Array): {
10
9
  cipherText: Uint8Array;
11
10
  tag: Uint8Array;
12
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoAdapter.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoAdapter.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAShC,KAAK,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ;IASvB,OAAO,CAAC,MAAM,CAAC,OAAO;WAOR,gBAAgB,CAC5B,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,UAAU,EACd,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,UAAU,EACf,GAAG,CAAC,EAAE,UAAU,GACf,MAAM;WAIK,mBAAmB,CAC/B,YAAY,EAAE,UAAU,EACxB,kBAAkB,EAAE,UAAU,GAC7B,UAAU;WAIC,2BAA2B,CACvC,YAAY,EAAE,UAAU,EACxB,kBAAkB,EAAE,UAAU,EAC9B,kBAAkB,EAAE,UAAU,GAC7B,UAAU;WAUC,gBAAgB,CAC5B,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,UAAU,EACnB,GAAG,CAAC,EAAE,UAAU,GACf;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,UAAU,CAAA;KAAE;WAShC,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;WAM3C,IAAI,CAChB,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,MAAM,GAAG,UAAU,GACzB,MAAM;WAWK,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;WAIzC,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU;WAInD,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU;WAMrD,cAAc,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM;WAO7C,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU;WAInD,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU;WAIlD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAIjC,mBAAmB,IAAI,MAAM;WAI7B,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;WAMxD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU;WAQ/C,MAAM,CAClB,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO;WAQI,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;WAInD,kBAAkB,CAC9B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,GACpB,UAAU;WAIC,sBAAsB,IAAI,UAAU;CAGnD"}
1
+ {"version":3,"file":"CryptoAdapter.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoAdapter.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC,KAAK,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ;IASvB,OAAO,CAAC,MAAM,CAAC,OAAO;WAOR,gBAAgB,CAC5B,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,UAAU,EACd,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,UAAU,GACd,MAAM;WAIK,mBAAmB,CAC/B,YAAY,EAAE,UAAU,EACxB,kBAAkB,EAAE,UAAU,GAC7B,UAAU;WAIC,gBAAgB,CAC5B,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,UAAU,GAClB;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,UAAU,CAAA;KAAE;WAShC,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;WAM3C,IAAI,CAChB,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,MAAM,GAAG,UAAU,GACzB,MAAM;WAWK,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;WAIzC,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU;WAInD,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU;WAMrD,cAAc,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM;WAO7C,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU;WAInD,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU;WAIlD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAIjC,mBAAmB,IAAI,MAAM;WAI7B,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;WAMxD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU;WAQ/C,MAAM,CAClB,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO;WAQI,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;WAInD,kBAAkB,CAC9B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,GACpB,UAAU;WAIC,sBAAsB,IAAI,UAAU;CAGnD"}
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CryptoAdapter = void 0;
4
4
  const aes_js_1 = require("@noble/ciphers/aes.js");
5
5
  const ed25519_js_1 = require("@noble/curves/ed25519.js");
6
- const hkdf_js_1 = require("@noble/hashes/hkdf.js");
7
6
  const legacy_js_1 = require("@noble/hashes/legacy.js");
8
7
  const sha2_js_1 = require("@noble/hashes/sha2.js");
9
8
  const utils_js_1 = require("@noble/hashes/utils.js");
@@ -11,7 +10,6 @@ const buffer_1 = require("buffer");
11
10
  const privateKeyDerPrefix = (0, utils_js_1.hexToBytes)('302e020100300506032b657004220420');
12
11
  const publicKeyDerPrefix = (0, utils_js_1.hexToBytes)('302a300506032b6570032100');
13
12
  const gcmTagLength = 16;
14
- const asymmetricPayloadV2Info = buffer_1.Buffer.from('@haskou/value-objects/asymmetric-payload/v2');
15
13
  class CryptoAdapter {
16
14
  static pemToDer(pem) {
17
15
  const base64 = pem
@@ -23,17 +21,14 @@ class CryptoAdapter {
23
21
  static wrapPem(label, der) {
24
22
  return `-----BEGIN ${label}-----\n${buffer_1.Buffer.from(der).toString('base64')}\n-----END ${label}-----\n`;
25
23
  }
26
- static decryptAes256Gcm(key, iv, cipherText, tag, aad) {
27
- return buffer_1.Buffer.from((0, aes_js_1.gcm)(key, iv, aad).decrypt((0, utils_js_1.concatBytes)(cipherText, tag)));
24
+ static decryptAes256Gcm(key, iv, cipherText, tag) {
25
+ return buffer_1.Buffer.from((0, aes_js_1.gcm)(key, iv).decrypt((0, utils_js_1.concatBytes)(cipherText, tag)));
28
26
  }
29
27
  static deriveEncryptionKey(sharedSecret, ephemeralPublicKey) {
30
28
  return (0, sha2_js_1.sha256)((0, utils_js_1.concatBytes)(sharedSecret, ephemeralPublicKey));
31
29
  }
32
- static deriveEncryptionKeyWithHkdf(sharedSecret, ephemeralPublicKey, recipientPublicKey) {
33
- return (0, hkdf_js_1.hkdf)(sha2_js_1.sha256, sharedSecret, (0, utils_js_1.concatBytes)(ephemeralPublicKey, recipientPublicKey), asymmetricPayloadV2Info, 32);
34
- }
35
- static encryptAes256Gcm(key, iv, message, aad) {
36
- const encrypted = (0, aes_js_1.gcm)(key, iv, aad).encrypt(message);
30
+ static encryptAes256Gcm(key, iv, message) {
31
+ const encrypted = (0, aes_js_1.gcm)(key, iv).encrypt(message);
37
32
  return {
38
33
  cipherText: encrypted.subarray(0, -gcmTagLength),
39
34
  tag: encrypted.subarray(-gcmTagLength),
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoAdapter.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoAdapter.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoAdapter.ts"],"names":[],"mappings":"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"}