@haskou/value-objects 2.4.0 → 2.6.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.
- package/README.md +11 -1
- package/dist/value-objects/UniqueObjectArray.d.ts +15 -0
- package/dist/value-objects/UniqueObjectArray.d.ts.map +1 -0
- package/dist/value-objects/UniqueObjectArray.js +42 -0
- package/dist/value-objects/UniqueObjectArray.js.map +1 -0
- package/dist/value-objects/crypto/CryptoAdapter.d.ts +30 -0
- package/dist/value-objects/crypto/CryptoAdapter.d.ts.map +1 -0
- package/dist/value-objects/crypto/CryptoAdapter.js +96 -0
- package/dist/value-objects/crypto/CryptoAdapter.js.map +1 -0
- package/dist/value-objects/crypto/CryptoPayload.d.ts +1 -0
- package/dist/value-objects/crypto/CryptoPayload.d.ts.map +1 -1
- package/dist/value-objects/crypto/EncryptedKeyPair.d.ts +1 -0
- package/dist/value-objects/crypto/EncryptedKeyPair.d.ts.map +1 -1
- package/dist/value-objects/crypto/EncryptedKeyPair.js.map +1 -1
- package/dist/value-objects/crypto/EncryptedPrivateKey.d.ts +2 -5
- package/dist/value-objects/crypto/EncryptedPrivateKey.d.ts.map +1 -1
- package/dist/value-objects/crypto/EncryptedPrivateKey.js +21 -39
- package/dist/value-objects/crypto/EncryptedPrivateKey.js.map +1 -1
- package/dist/value-objects/crypto/KeyPair.d.ts +1 -0
- package/dist/value-objects/crypto/KeyPair.d.ts.map +1 -1
- package/dist/value-objects/crypto/KeyPair.js +4 -10
- package/dist/value-objects/crypto/KeyPair.js.map +1 -1
- package/dist/value-objects/crypto/PrivateKey.d.ts +1 -0
- package/dist/value-objects/crypto/PrivateKey.d.ts.map +1 -1
- package/dist/value-objects/crypto/PrivateKey.js +14 -33
- package/dist/value-objects/crypto/PrivateKey.js.map +1 -1
- package/dist/value-objects/crypto/PublicKey.d.ts.map +1 -1
- package/dist/value-objects/crypto/PublicKey.js +16 -29
- package/dist/value-objects/crypto/PublicKey.js.map +1 -1
- package/dist/value-objects/crypto/Signature.d.ts +1 -0
- package/dist/value-objects/crypto/Signature.d.ts.map +1 -1
- package/dist/value-objects/crypto/Signature.js.map +1 -1
- package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.d.ts +21 -0
- package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.d.ts.map +1 -0
- package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.js +56 -0
- package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.js.map +1 -0
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.d.ts +14 -0
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.d.ts.map +1 -0
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.js +33 -0
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.js.map +1 -0
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.d.ts +20 -0
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.d.ts.map +1 -0
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.js +69 -0
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.js.map +1 -0
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.d.ts +8 -0
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.d.ts.map +1 -0
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.js +10 -0
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.js.map +1 -0
- package/dist/value-objects/hashes/Hash.d.ts.map +1 -1
- package/dist/value-objects/hashes/Hash.js +2 -1
- package/dist/value-objects/hashes/Hash.js.map +1 -1
- package/dist/value-objects/hashes/MD5Hash.d.ts +1 -0
- package/dist/value-objects/hashes/MD5Hash.d.ts.map +1 -1
- package/dist/value-objects/hashes/MD5Hash.js +2 -3
- package/dist/value-objects/hashes/MD5Hash.js.map +1 -1
- package/dist/value-objects/hashes/SHA256Hash.d.ts +1 -0
- package/dist/value-objects/hashes/SHA256Hash.d.ts.map +1 -1
- package/dist/value-objects/hashes/SHA256Hash.js +4 -3
- package/dist/value-objects/hashes/SHA256Hash.js.map +1 -1
- package/dist/value-objects/hashes/SHA512Hash.d.ts +1 -0
- package/dist/value-objects/hashes/SHA512Hash.d.ts.map +1 -1
- package/dist/value-objects/hashes/SHA512Hash.js +4 -3
- package/dist/value-objects/hashes/SHA512Hash.js.map +1 -1
- package/dist/value-objects/index.d.ts +1 -0
- package/dist/value-objects/index.d.ts.map +1 -1
- package/dist/value-objects/index.js +1 -0
- package/dist/value-objects/index.js.map +1 -1
- package/dist/value-objects/media/Media.d.ts +1 -0
- package/dist/value-objects/media/Media.d.ts.map +1 -1
- package/dist/value-objects/media/Media.js +2 -1
- package/dist/value-objects/media/Media.js.map +1 -1
- package/package.json +4 -1
- package/dist/errors/InvalidValueError.d.ts +0 -5
- package/dist/errors/InvalidValueError.d.ts.map +0 -1
- package/dist/errors/InvalidValueError.js +0 -11
- package/dist/errors/InvalidValueError.js.map +0 -1
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PublicKey = void 0;
|
|
4
|
-
const
|
|
5
|
-
const ed25519_js_1 = require("@noble/curves/ed25519.js");
|
|
6
|
-
const crypto = tslib_1.__importStar(require("node:crypto"));
|
|
4
|
+
const buffer_1 = require("buffer");
|
|
7
5
|
const InvalidFormatError_1 = require("../../errors/InvalidFormatError");
|
|
8
6
|
const InvalidLengthError_1 = require("../../errors/InvalidLengthError");
|
|
9
7
|
const patterns_1 = require("../../patterns");
|
|
10
8
|
const NullObject_1 = require("../NullObject");
|
|
9
|
+
const CryptoAdapter_1 = require("./CryptoAdapter");
|
|
11
10
|
const EncryptedPayload_1 = require("./EncryptedPayload");
|
|
12
11
|
const Key_1 = require("./Key");
|
|
13
12
|
class PublicKey extends Key_1.Key {
|
|
@@ -28,37 +27,25 @@ class PublicKey extends Key_1.Key {
|
|
|
28
27
|
(0, patterns_1.assert)(PublicKey.PATTERN.test(value), new InvalidFormatError_1.InvalidFormatError(value));
|
|
29
28
|
}
|
|
30
29
|
isValidSignature(payload, signature) {
|
|
31
|
-
const messageBuffer = Buffer.from(payload.valueOf());
|
|
32
|
-
const signatureBuffer = Buffer.from(signature.valueOf(), 'base64');
|
|
33
|
-
const valid =
|
|
30
|
+
const messageBuffer = buffer_1.Buffer.from(payload.valueOf());
|
|
31
|
+
const signatureBuffer = buffer_1.Buffer.from(signature.valueOf(), 'base64');
|
|
32
|
+
const valid = CryptoAdapter_1.CryptoAdapter.verify(signatureBuffer, messageBuffer, this.valueOf());
|
|
34
33
|
return valid;
|
|
35
34
|
}
|
|
36
35
|
encrypt(payload) {
|
|
37
|
-
const messageBuffer = Buffer.from(payload.valueOf());
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
const aesKey = crypto
|
|
46
|
-
.createHash('sha256')
|
|
47
|
-
.update(sharedSecret)
|
|
48
|
-
.update(ephemeralPub)
|
|
49
|
-
.digest();
|
|
50
|
-
const iv = crypto.randomBytes(12);
|
|
51
|
-
const cipher = crypto.createCipheriv('aes-256-gcm', aesKey, iv);
|
|
52
|
-
const cipherText = Buffer.concat([
|
|
53
|
-
cipher.update(messageBuffer),
|
|
54
|
-
cipher.final(),
|
|
55
|
-
]);
|
|
56
|
-
const tag = cipher.getAuthTag();
|
|
36
|
+
const messageBuffer = buffer_1.Buffer.from(payload.valueOf());
|
|
37
|
+
const x25519Pub = CryptoAdapter_1.CryptoAdapter.publicKeyToX25519(this.valueOf());
|
|
38
|
+
const ephemeralPriv = CryptoAdapter_1.CryptoAdapter.x25519RandomPrivateKey();
|
|
39
|
+
const ephemeralPub = CryptoAdapter_1.CryptoAdapter.x25519PublicKey(ephemeralPriv);
|
|
40
|
+
const sharedSecret = CryptoAdapter_1.CryptoAdapter.x25519SharedSecret(ephemeralPriv, x25519Pub);
|
|
41
|
+
const aesKey = CryptoAdapter_1.CryptoAdapter.deriveEncryptionKey(sharedSecret, ephemeralPub);
|
|
42
|
+
const iv = CryptoAdapter_1.CryptoAdapter.randomBytes(12);
|
|
43
|
+
const { cipherText, tag } = CryptoAdapter_1.CryptoAdapter.encryptAes256Gcm(aesKey, iv, messageBuffer);
|
|
57
44
|
const result = [
|
|
58
|
-
Buffer.from(ephemeralPub).toString('base64'),
|
|
45
|
+
buffer_1.Buffer.from(ephemeralPub).toString('base64'),
|
|
59
46
|
iv.toString('base64'),
|
|
60
|
-
cipherText.toString('base64'),
|
|
61
|
-
tag.toString('base64'),
|
|
47
|
+
buffer_1.Buffer.from(cipherText).toString('base64'),
|
|
48
|
+
buffer_1.Buffer.from(tag).toString('base64'),
|
|
62
49
|
].join('.');
|
|
63
50
|
return new EncryptedPayload_1.EncryptedPayload(result);
|
|
64
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublicKey.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/PublicKey.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PublicKey.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/PublicKey.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,wEAAqE;AACrE,wEAAqE;AACrE,6CAAwC;AACxC,8CAA2C;AAE3C,mDAAgD;AAEhD,yDAAsD;AACtD,+BAA4B;AAG5B,MAAa,SAAU,SAAQ,SAAG;IACxB,MAAM,CAAU,MAAM,GAAG,GAAG,CAAC;IAC7B,MAAM,CAAU,OAAO,GAC7B,2EAA2E,CAAC;IAEvE,MAAM,CAAC,OAAO,CAAC,GAA+B;QACnD,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,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,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEO,sBAAsB,CAAC,KAAa;QAC1C,IAAA,iBAAM,EACJ,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EACjC,IAAI,uCAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAChD,CAAC;QACF,IAAA,iBAAM,EAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,uCAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IAEM,gBAAgB,CACrB,OAAsB,EACtB,SAAoB;QAEpB,MAAM,aAAa,GAAG,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,eAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,6BAAa,CAAC,MAAM,CAChC,eAAe,EACf,aAAa,EACb,IAAI,CAAC,OAAO,EAAE,CACf,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,OAAO,CAAC,OAAsB;QACnC,MAAM,aAAa,GAAG,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,6BAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAElE,MAAM,aAAa,GAAG,6BAAa,CAAC,sBAAsB,EAAE,CAAC;QAC7D,MAAM,YAAY,GAAG,6BAAa,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,6BAAa,CAAC,kBAAkB,CACnD,aAAa,EACb,SAAS,CACV,CAAC;QAEF,MAAM,MAAM,GAAG,6BAAa,CAAC,mBAAmB,CAC9C,YAAY,EACZ,YAAY,CACb,CAAC;QAEF,MAAM,EAAE,GAAG,6BAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,6BAAa,CAAC,gBAAgB,CACxD,MAAM,EACN,EAAE,EACF,aAAa,CACd,CAAC;QAEF,MAAM,MAAM,GAAG;YACb,eAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC5C,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACrB,eAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC1C,eAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACpC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEZ,OAAO,IAAI,mCAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;;AA1EH,8BA2EC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Signature.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/Signature.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Signature.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/Signature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,SAAU,SAAQ,WAAW,CAAC,MAAM,CAAC;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAM;IACpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAA2B;WAE5C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;gBAIvC,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAU7C,OAAO,CAAC,cAAc;CAGvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Signature.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/Signature.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Signature.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/Signature.ts"],"names":[],"mappings":";;;AAEA,8EAA2E;AAC3E,6CAAwC;AACxC,8CAA2C;AAE3C,gDAA6C;AAE7C,MAAa,SAAU,SAAQ,yBAAmB;IACxC,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,OAAO,GAAG,uBAAuB,CAAC;IAEnD,MAAM,CAAC,UAAU,CAAC,MAAc;QACrC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,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,iBAAM,EAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,6CAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEO,cAAc;QACpB,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;;AApBH,8BAqBC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
2
|
+
type NodeLikeCrypto = {
|
|
3
|
+
pbkdf2?: (password: string, salt: Buffer, iterations: number, keyLength: number, algorithm: string, callback: (err: Error | null, key: Buffer) => void) => void;
|
|
4
|
+
randomBytes?: (size: number, callback: (err: Error | null, bytes: Buffer) => void) => void;
|
|
5
|
+
scrypt?: (password: string, salt: Buffer, keylen: number, options: {
|
|
6
|
+
N: number;
|
|
7
|
+
r: number;
|
|
8
|
+
p: number;
|
|
9
|
+
}, callback: (err: Error | null, key: Buffer) => void) => void;
|
|
10
|
+
};
|
|
11
|
+
export declare class CryptoDerivation {
|
|
12
|
+
static pbkdf2Async(password: string, salt: Buffer, iterations: number, keyLength: number, algorithm: string, cryptoModule?: NodeLikeCrypto): Promise<Buffer>;
|
|
13
|
+
static scryptAsync(password: string, salt: Buffer, keylen: number, options: {
|
|
14
|
+
N: number;
|
|
15
|
+
r: number;
|
|
16
|
+
p: number;
|
|
17
|
+
}, cryptoModule?: NodeLikeCrypto): Promise<Buffer>;
|
|
18
|
+
static randomBytesAsync(size: number, cryptoModule?: NodeLikeCrypto): Promise<Buffer>;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=CryptoDerivation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CryptoDerivation.d.ts","sourceRoot":"","sources":["../../../../src/value-objects/crypto/encrypted-private-key/CryptoDerivation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,KAAK,cAAc,GAAG;IACpB,MAAM,CAAC,EAAE,CACP,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,KAC/C,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,CACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,KACjD,IAAI,CAAC;IACV,MAAM,CAAC,EAAE,CACP,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAC5C,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,KAC/C,IAAI,CAAC;CACX,CAAC;AAEF,qBAAa,gBAAgB;WACP,WAAW,CAC7B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,cAAc,GAC5B,OAAO,CAAC,MAAM,CAAC;WA0BJ,WAAW,CACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAC5C,YAAY,CAAC,EAAE,cAAc,GAC5B,OAAO,CAAC,MAAM,CAAC;WAeE,gBAAgB,CAClC,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,cAAc,GAC5B,OAAO,CAAC,MAAM,CAAC;CAYnB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CryptoDerivation = void 0;
|
|
4
|
+
const pbkdf2_js_1 = require("@noble/hashes/pbkdf2.js");
|
|
5
|
+
const scrypt_js_1 = require("@noble/hashes/scrypt.js");
|
|
6
|
+
const sha2_js_1 = require("@noble/hashes/sha2.js");
|
|
7
|
+
const buffer_1 = require("buffer");
|
|
8
|
+
const CryptoAdapter_1 = require("../CryptoAdapter");
|
|
9
|
+
class CryptoDerivation {
|
|
10
|
+
static async pbkdf2Async(password, salt, iterations, keyLength, algorithm, cryptoModule) {
|
|
11
|
+
if (cryptoModule?.pbkdf2) {
|
|
12
|
+
return new Promise((resolve, reject) => {
|
|
13
|
+
cryptoModule.pbkdf2(password, salt, iterations, keyLength, algorithm, (err, key) => {
|
|
14
|
+
if (err)
|
|
15
|
+
reject(err);
|
|
16
|
+
else
|
|
17
|
+
resolve(key);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
const hash = algorithm === 'sha512' ? sha2_js_1.sha512 : sha2_js_1.sha256;
|
|
22
|
+
const key = await (0, pbkdf2_js_1.pbkdf2Async)(hash, password, salt, {
|
|
23
|
+
c: iterations,
|
|
24
|
+
dkLen: keyLength,
|
|
25
|
+
});
|
|
26
|
+
return buffer_1.Buffer.from(key);
|
|
27
|
+
}
|
|
28
|
+
static scryptAsync(password, salt, keylen, options, cryptoModule) {
|
|
29
|
+
if (cryptoModule?.scrypt) {
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
cryptoModule.scrypt(password, salt, keylen, options, (err, key) => {
|
|
32
|
+
if (err)
|
|
33
|
+
reject(err);
|
|
34
|
+
else
|
|
35
|
+
resolve(key);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return (0, scrypt_js_1.scryptAsync)(password, salt, { ...options, dkLen: keylen }).then(buffer_1.Buffer.from);
|
|
40
|
+
}
|
|
41
|
+
static async randomBytesAsync(size, cryptoModule) {
|
|
42
|
+
if (cryptoModule?.randomBytes) {
|
|
43
|
+
return new Promise((resolve, reject) => {
|
|
44
|
+
cryptoModule.randomBytes(size, (err, bytes) => {
|
|
45
|
+
if (err)
|
|
46
|
+
reject(err);
|
|
47
|
+
else
|
|
48
|
+
resolve(bytes);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return CryptoAdapter_1.CryptoAdapter.randomBytes(size);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.CryptoDerivation = CryptoDerivation;
|
|
56
|
+
//# sourceMappingURL=CryptoDerivation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CryptoDerivation.js","sourceRoot":"","sources":["../../../../src/value-objects/crypto/encrypted-private-key/CryptoDerivation.ts"],"names":[],"mappings":";;;AAAA,uDAAsD;AACtD,uDAAsD;AACtD,mDAAuD;AACvD,mCAAgC;AAEhC,oDAAiD;AAwBjD,MAAa,gBAAgB;IACpB,MAAM,CAAC,KAAK,CAAC,WAAW,CAC7B,QAAgB,EAChB,IAAY,EACZ,UAAkB,EAClB,SAAiB,EACjB,SAAiB,EACjB,YAA6B;QAE7B,IAAI,YAAY,EAAE,MAAM,EAAE,CAAC;YACzB,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC7C,YAAY,CAAC,MAAO,CAClB,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,SAAS,EACT,SAAS,EACT,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;oBACX,IAAI,GAAG;wBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;wBAChB,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAM,CAAC,CAAC,CAAC,gBAAM,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,IAAA,uBAAW,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClD,CAAC,EAAE,UAAU;YACb,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,OAAO,eAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,WAAW,CACvB,QAAgB,EAChB,IAAY,EACZ,MAAc,EACd,OAA4C,EAC5C,YAA6B;QAE7B,IAAI,YAAY,EAAE,MAAM,EAAE,CAAC;YACzB,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC7C,YAAY,CAAC,MAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;oBACjE,IAAI,GAAG;wBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;wBAChB,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAA,uBAAW,EAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CACpE,eAAM,CAAC,IAAI,CACZ,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAClC,IAAY,EACZ,YAA6B;QAE7B,IAAI,YAAY,EAAE,WAAW,EAAE,CAAC;YAC9B,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC7C,YAAY,CAAC,WAAY,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBAC7C,IAAI,GAAG;wBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;wBAChB,OAAO,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,6BAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;CACF;AAtED,4CAsEC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { StringValueObject } from '../../StringValueObject';
|
|
2
|
+
import { PrivateKey } from '../PrivateKey';
|
|
3
|
+
import { EncryptedPrivateKeyVersion } from './EncryptedPrivateKeyVersion';
|
|
4
|
+
export declare class EncryptedPrivateKeyLegacy extends EncryptedPrivateKeyVersion {
|
|
5
|
+
private static readonly LEGACY_ITERATIONS;
|
|
6
|
+
private static readonly LEGACY_ALGORITHM;
|
|
7
|
+
private static readonly KEY_LENGTH;
|
|
8
|
+
private static readonly CIPHER;
|
|
9
|
+
private static readonly EXPECTED_PARTS;
|
|
10
|
+
matches(parts: string[]): boolean;
|
|
11
|
+
decrypt(parts: string[], password: string | StringValueObject): Promise<PrivateKey>;
|
|
12
|
+
needsReEncryption(): boolean;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=EncryptedPrivateKeyLegacy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EncryptedPrivateKeyLegacy.d.ts","sourceRoot":"","sources":["../../../../src/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,qBAAa,yBAA0B,SAAQ,0BAA0B;IACvE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAY;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAM;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAK;IAEpC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO;IAI3B,OAAO,CAClB,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,UAAU,CAAC;IAoBf,iBAAiB,IAAI,OAAO;CAGpC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EncryptedPrivateKeyLegacy = void 0;
|
|
4
|
+
const buffer_1 = require("buffer");
|
|
5
|
+
const CryptoAdapter_1 = require("../CryptoAdapter");
|
|
6
|
+
const PrivateKey_1 = require("../PrivateKey");
|
|
7
|
+
const CryptoDerivation_1 = require("./CryptoDerivation");
|
|
8
|
+
const EncryptedPrivateKeyVersion_1 = require("./EncryptedPrivateKeyVersion");
|
|
9
|
+
class EncryptedPrivateKeyLegacy extends EncryptedPrivateKeyVersion_1.EncryptedPrivateKeyVersion {
|
|
10
|
+
static LEGACY_ITERATIONS = 100000;
|
|
11
|
+
static LEGACY_ALGORITHM = 'sha256';
|
|
12
|
+
static KEY_LENGTH = 32;
|
|
13
|
+
static CIPHER = 'aes-256-gcm';
|
|
14
|
+
static EXPECTED_PARTS = 4;
|
|
15
|
+
matches(parts) {
|
|
16
|
+
return parts.length === EncryptedPrivateKeyLegacy.EXPECTED_PARTS;
|
|
17
|
+
}
|
|
18
|
+
async decrypt(parts, password) {
|
|
19
|
+
const [cipherTextB64, ivB64, saltB64, tagB64] = parts;
|
|
20
|
+
const cipherText = buffer_1.Buffer.from(cipherTextB64, 'base64');
|
|
21
|
+
const iv = buffer_1.Buffer.from(ivB64, 'base64');
|
|
22
|
+
const salt = buffer_1.Buffer.from(saltB64, 'base64');
|
|
23
|
+
const tag = buffer_1.Buffer.from(tagB64, 'base64');
|
|
24
|
+
const key = await CryptoDerivation_1.CryptoDerivation.pbkdf2Async(password.valueOf(), salt, EncryptedPrivateKeyLegacy.LEGACY_ITERATIONS, EncryptedPrivateKeyLegacy.KEY_LENGTH, EncryptedPrivateKeyLegacy.LEGACY_ALGORITHM);
|
|
25
|
+
const decrypted = CryptoAdapter_1.CryptoAdapter.decryptAes256Gcm(key, iv, cipherText, tag);
|
|
26
|
+
return new PrivateKey_1.PrivateKey(decrypted.toString());
|
|
27
|
+
}
|
|
28
|
+
needsReEncryption() {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.EncryptedPrivateKeyLegacy = EncryptedPrivateKeyLegacy;
|
|
33
|
+
//# sourceMappingURL=EncryptedPrivateKeyLegacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EncryptedPrivateKeyLegacy.js","sourceRoot":"","sources":["../../../../src/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAGhC,oDAAiD;AACjD,8CAA2C;AAC3C,yDAAsD;AACtD,6EAA0E;AAE1E,MAAa,yBAA0B,SAAQ,uDAA0B;IAC/D,MAAM,CAAU,iBAAiB,GAAG,MAAM,CAAC;IAC3C,MAAM,CAAU,gBAAgB,GAAG,QAAQ,CAAC;IAC5C,MAAM,CAAU,UAAU,GAAG,EAAE,CAAC;IAChC,MAAM,CAAU,MAAM,GAAG,aAAa,CAAC;IACvC,MAAM,CAAU,cAAc,GAAG,CAAC,CAAC;IAEpC,OAAO,CAAC,KAAe;QAC5B,OAAO,KAAK,CAAC,MAAM,KAAK,yBAAyB,CAAC,cAAc,CAAC;IACnE,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,KAAe,EACf,QAAoC;QAEpC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;QACtD,MAAM,UAAU,GAAG,eAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,eAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,eAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE1C,MAAM,GAAG,GAAG,MAAM,mCAAgB,CAAC,WAAW,CAC5C,QAAQ,CAAC,OAAO,EAAE,EAClB,IAAI,EACJ,yBAAyB,CAAC,iBAAiB,EAC3C,yBAAyB,CAAC,UAAU,EACpC,yBAAyB,CAAC,gBAAgB,CAC3C,CAAC;QAEF,MAAM,SAAS,GAAG,6BAAa,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAE3E,OAAO,IAAI,uBAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9C,CAAC;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;;AApCH,8DAqCC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { StringValueObject } from '../../StringValueObject';
|
|
2
|
+
import { PrivateKey } from '../PrivateKey';
|
|
3
|
+
import { EncryptedPrivateKeyVersion } from './EncryptedPrivateKeyVersion';
|
|
4
|
+
export declare class EncryptedPrivateKeyV2 extends EncryptedPrivateKeyVersion {
|
|
5
|
+
private static readonly VERSION;
|
|
6
|
+
private static readonly KDF;
|
|
7
|
+
private static readonly SCRYPT_N;
|
|
8
|
+
private static readonly SCRYPT_R;
|
|
9
|
+
private static readonly SCRYPT_P;
|
|
10
|
+
private static readonly SALT_ENTROPY;
|
|
11
|
+
private static readonly IV_ENTROPY;
|
|
12
|
+
private static readonly KEY_LENGTH;
|
|
13
|
+
private static readonly CIPHER;
|
|
14
|
+
private static readonly EXPECTED_PARTS;
|
|
15
|
+
private static hasSupportedScryptParameters;
|
|
16
|
+
static encrypt(privateKey: PrivateKey, password: string | StringValueObject): Promise<string>;
|
|
17
|
+
matches(parts: string[]): boolean;
|
|
18
|
+
decrypt(parts: string[], password: string | StringValueObject): Promise<PrivateKey>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=EncryptedPrivateKeyV2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EncryptedPrivateKeyV2.d.ts","sourceRoot":"","sources":["../../../../src/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,qBAAa,qBAAsB,SAAQ,0BAA0B;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAQ;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAY;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAS;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAK;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAK;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAM;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAM;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAM;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAK;IAE3C,OAAO,CAAC,MAAM,CAAC,4BAA4B;WAQvB,OAAO,CACzB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,MAAM,CAAC;IAoCX,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO;IAS3B,OAAO,CAClB,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,UAAU,CAAC;CAwBvB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EncryptedPrivateKeyV2 = void 0;
|
|
4
|
+
const buffer_1 = require("buffer");
|
|
5
|
+
const CryptoAdapter_1 = require("../CryptoAdapter");
|
|
6
|
+
const PrivateKey_1 = require("../PrivateKey");
|
|
7
|
+
const CryptoDerivation_1 = require("./CryptoDerivation");
|
|
8
|
+
const EncryptedPrivateKeyVersion_1 = require("./EncryptedPrivateKeyVersion");
|
|
9
|
+
class EncryptedPrivateKeyV2 extends EncryptedPrivateKeyVersion_1.EncryptedPrivateKeyVersion {
|
|
10
|
+
static VERSION = 'v2';
|
|
11
|
+
static KDF = 'scrypt';
|
|
12
|
+
static SCRYPT_N = 16384;
|
|
13
|
+
static SCRYPT_R = 8;
|
|
14
|
+
static SCRYPT_P = 1;
|
|
15
|
+
static SALT_ENTROPY = 16;
|
|
16
|
+
static IV_ENTROPY = 12;
|
|
17
|
+
static KEY_LENGTH = 32;
|
|
18
|
+
static CIPHER = 'aes-256-gcm';
|
|
19
|
+
static EXPECTED_PARTS = 9;
|
|
20
|
+
static hasSupportedScryptParameters(parts) {
|
|
21
|
+
return (parts[2] === `N${EncryptedPrivateKeyV2.SCRYPT_N}` &&
|
|
22
|
+
parts[3] === `r${EncryptedPrivateKeyV2.SCRYPT_R}` &&
|
|
23
|
+
parts[4] === `p${EncryptedPrivateKeyV2.SCRYPT_P}`);
|
|
24
|
+
}
|
|
25
|
+
static async encrypt(privateKey, password) {
|
|
26
|
+
const salt = await CryptoDerivation_1.CryptoDerivation.randomBytesAsync(EncryptedPrivateKeyV2.SALT_ENTROPY);
|
|
27
|
+
const key = await CryptoDerivation_1.CryptoDerivation.scryptAsync(password.valueOf(), salt, EncryptedPrivateKeyV2.KEY_LENGTH, {
|
|
28
|
+
N: EncryptedPrivateKeyV2.SCRYPT_N,
|
|
29
|
+
p: EncryptedPrivateKeyV2.SCRYPT_P,
|
|
30
|
+
r: EncryptedPrivateKeyV2.SCRYPT_R,
|
|
31
|
+
});
|
|
32
|
+
const iv = await CryptoDerivation_1.CryptoDerivation.randomBytesAsync(EncryptedPrivateKeyV2.IV_ENTROPY);
|
|
33
|
+
const { cipherText, tag } = CryptoAdapter_1.CryptoAdapter.encryptAes256Gcm(key, iv, buffer_1.Buffer.from(privateKey.valueOf()));
|
|
34
|
+
return [
|
|
35
|
+
EncryptedPrivateKeyV2.VERSION,
|
|
36
|
+
EncryptedPrivateKeyV2.KDF,
|
|
37
|
+
`N${EncryptedPrivateKeyV2.SCRYPT_N}`,
|
|
38
|
+
`r${EncryptedPrivateKeyV2.SCRYPT_R}`,
|
|
39
|
+
`p${EncryptedPrivateKeyV2.SCRYPT_P}`,
|
|
40
|
+
salt.toString('base64'),
|
|
41
|
+
iv.toString('base64'),
|
|
42
|
+
buffer_1.Buffer.from(tag).toString('base64'),
|
|
43
|
+
buffer_1.Buffer.from(cipherText).toString('base64'),
|
|
44
|
+
].join('.');
|
|
45
|
+
}
|
|
46
|
+
matches(parts) {
|
|
47
|
+
return (parts.length === EncryptedPrivateKeyV2.EXPECTED_PARTS &&
|
|
48
|
+
parts[0] === EncryptedPrivateKeyV2.VERSION &&
|
|
49
|
+
parts[1] === EncryptedPrivateKeyV2.KDF &&
|
|
50
|
+
EncryptedPrivateKeyV2.hasSupportedScryptParameters(parts));
|
|
51
|
+
}
|
|
52
|
+
async decrypt(parts, password) {
|
|
53
|
+
if (!EncryptedPrivateKeyV2.hasSupportedScryptParameters(parts)) {
|
|
54
|
+
throw new Error('Unsupported encrypted private key parameters');
|
|
55
|
+
}
|
|
56
|
+
const N = parseInt(parts[2].slice(1), 10);
|
|
57
|
+
const r = parseInt(parts[3].slice(1), 10);
|
|
58
|
+
const p = parseInt(parts[4].slice(1), 10);
|
|
59
|
+
const salt = buffer_1.Buffer.from(parts[5], 'base64');
|
|
60
|
+
const iv = buffer_1.Buffer.from(parts[6], 'base64');
|
|
61
|
+
const tag = buffer_1.Buffer.from(parts[7], 'base64');
|
|
62
|
+
const cipherText = buffer_1.Buffer.from(parts[8], 'base64');
|
|
63
|
+
const key = await CryptoDerivation_1.CryptoDerivation.scryptAsync(password.valueOf(), salt, EncryptedPrivateKeyV2.KEY_LENGTH, { N, p, r });
|
|
64
|
+
const decrypted = CryptoAdapter_1.CryptoAdapter.decryptAes256Gcm(key, iv, cipherText, tag);
|
|
65
|
+
return new PrivateKey_1.PrivateKey(decrypted.toString());
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.EncryptedPrivateKeyV2 = EncryptedPrivateKeyV2;
|
|
69
|
+
//# sourceMappingURL=EncryptedPrivateKeyV2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EncryptedPrivateKeyV2.js","sourceRoot":"","sources":["../../../../src/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { StringValueObject } from '../../StringValueObject';
|
|
2
|
+
import { PrivateKey } from '../PrivateKey';
|
|
3
|
+
export declare abstract class EncryptedPrivateKeyVersion {
|
|
4
|
+
abstract matches(parts: string[]): boolean;
|
|
5
|
+
abstract decrypt(parts: string[], password: string | StringValueObject): Promise<PrivateKey>;
|
|
6
|
+
needsReEncryption(): boolean;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=EncryptedPrivateKeyVersion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EncryptedPrivateKeyVersion.d.ts","sourceRoot":"","sources":["../../../../src/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,8BAAsB,0BAA0B;aAC9B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO;aACjC,OAAO,CACrB,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,UAAU,CAAC;IAEf,iBAAiB,IAAI,OAAO;CAGpC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EncryptedPrivateKeyVersion = void 0;
|
|
4
|
+
class EncryptedPrivateKeyVersion {
|
|
5
|
+
needsReEncryption() {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.EncryptedPrivateKeyVersion = EncryptedPrivateKeyVersion;
|
|
10
|
+
//# sourceMappingURL=EncryptedPrivateKeyVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EncryptedPrivateKeyVersion.js","sourceRoot":"","sources":["../../../../src/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.ts"],"names":[],"mappings":";;;AAGA,MAAsB,0BAA0B;IAOvC,iBAAiB;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAVD,gEAUC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hash.d.ts","sourceRoot":"","sources":["../../../src/value-objects/hashes/Hash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Hash.d.ts","sourceRoot":"","sources":["../../../src/value-objects/hashes/Hash.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,8BAAsB,IAAK,SAAQ,WAAW,CAAC,MAAM,CAAC;gBACxC,MAAM,EAAE,MAAM,GAAG,iBAAiB;IAQvC,QAAQ,IAAI,iBAAiB;CAKrC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Hash = void 0;
|
|
4
|
+
const buffer_1 = require("buffer");
|
|
4
5
|
const NullObject_1 = require("../NullObject");
|
|
5
6
|
const StringValueObject_1 = require("../StringValueObject");
|
|
6
7
|
const ValueObject_1 = require("../ValueObject");
|
|
@@ -12,7 +13,7 @@ class Hash extends ValueObject_1.ValueObject {
|
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
15
|
toBase64() {
|
|
15
|
-
return new StringValueObject_1.StringValueObject(Buffer.from(this.valueOf(), 'hex').toString('base64'));
|
|
16
|
+
return new StringValueObject_1.StringValueObject(buffer_1.Buffer.from(this.valueOf(), 'hex').toString('base64'));
|
|
16
17
|
}
|
|
17
18
|
}
|
|
18
19
|
exports.Hash = Hash;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hash.js","sourceRoot":"","sources":["../../../src/value-objects/hashes/Hash.ts"],"names":[],"mappings":";;;AAAA,8CAA2C;AAC3C,4DAAyD;AACzD,gDAA6C;AAE7C,MAAsB,IAAK,SAAQ,yBAAmB;IACpD,YAAY,MAAkC;QAC5C,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAEzB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,qCAAiB,CAC1B,
|
|
1
|
+
{"version":3,"file":"Hash.js","sourceRoot":"","sources":["../../../src/value-objects/hashes/Hash.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,8CAA2C;AAC3C,4DAAyD;AACzD,gDAA6C;AAE7C,MAAsB,IAAK,SAAQ,yBAAmB;IACpD,YAAY,MAAkC;QAC5C,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAEzB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,qCAAiB,CAC1B,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACtD,CAAC;IACJ,CAAC;CACF;AAdD,oBAcC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MD5Hash.d.ts","sourceRoot":"","sources":["../../../src/value-objects/hashes/MD5Hash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MD5Hash.d.ts","sourceRoot":"","sources":["../../../src/value-objects/hashes/MD5Hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,OAAQ,SAAQ,IAAI;WACjB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,OAAO;WAIlD,IAAI,CAChB,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,KAAK,GAAG,MAAM,GAClD,OAAO;gBAIE,MAAM,EAAE,MAAM,GAAG,iBAAiB;CAY/C"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MD5Hash = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const node_crypto_1 = tslib_1.__importDefault(require("node:crypto"));
|
|
6
4
|
const InvalidHashError_1 = require("../../errors/InvalidHashError");
|
|
7
5
|
const patterns_1 = require("../../patterns");
|
|
6
|
+
const CryptoAdapter_1 = require("../crypto/CryptoAdapter");
|
|
8
7
|
const NullObject_1 = require("../NullObject");
|
|
9
8
|
const Hash_1 = require("./Hash");
|
|
10
9
|
class MD5Hash extends Hash_1.Hash {
|
|
@@ -12,7 +11,7 @@ class MD5Hash extends Hash_1.Hash {
|
|
|
12
11
|
return !!hash.valueOf().match(/^[a-f0-9]{32}$/);
|
|
13
12
|
}
|
|
14
13
|
static from(buffer) {
|
|
15
|
-
return new MD5Hash(
|
|
14
|
+
return new MD5Hash(CryptoAdapter_1.CryptoAdapter.hash('md5', buffer.valueOf()));
|
|
16
15
|
}
|
|
17
16
|
constructor(source) {
|
|
18
17
|
super(source?.valueOf());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MD5Hash.js","sourceRoot":"","sources":["../../../src/value-objects/hashes/MD5Hash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MD5Hash.js","sourceRoot":"","sources":["../../../src/value-objects/hashes/MD5Hash.ts"],"names":[],"mappings":";;;AAEA,oEAAiE;AACjE,6CAAwC;AACxC,2DAAwD;AAExD,8CAA2C;AAE3C,iCAA8B;AAE9B,MAAa,OAAQ,SAAQ,WAAI;IACxB,MAAM,CAAC,OAAO,CAAC,IAAgC;QACpD,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC;IAEM,MAAM,CAAC,IAAI,CAChB,MAAmD;QAEnD,OAAO,IAAI,OAAO,CAAC,6BAAa,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,YAAY,MAAkC;QAC5C,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAEzB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAA,iBAAM,EACJ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAC/B,IAAI,mCAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAC9C,CAAC;IACJ,CAAC;CACF;AAvBD,0BAuBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SHA256Hash.d.ts","sourceRoot":"","sources":["../../../src/value-objects/hashes/SHA256Hash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SHA256Hash.d.ts","sourceRoot":"","sources":["../../../src/value-objects/hashes/SHA256Hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,UAAW,SAAQ,WAAW,CAAC,MAAM,CAAC;WACnC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,OAAO;WAIlD,IAAI,CAChB,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,KAAK,GAAG,MAAM,GAClD,UAAU;gBAID,MAAM,EAAE,MAAM,GAAG,iBAAiB;IAavC,QAAQ,IAAI,iBAAiB;CAKrC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SHA256Hash = void 0;
|
|
4
|
-
const
|
|
4
|
+
const buffer_1 = require("buffer");
|
|
5
5
|
const InvalidHashError_1 = require("../../errors/InvalidHashError");
|
|
6
6
|
const patterns_1 = require("../../patterns");
|
|
7
|
+
const CryptoAdapter_1 = require("../crypto/CryptoAdapter");
|
|
7
8
|
const NullObject_1 = require("../NullObject");
|
|
8
9
|
const StringValueObject_1 = require("../StringValueObject");
|
|
9
10
|
const ValueObject_1 = require("../ValueObject");
|
|
@@ -12,7 +13,7 @@ class SHA256Hash extends ValueObject_1.ValueObject {
|
|
|
12
13
|
return !!hash.valueOf().match(/^[a-f0-9]{64}$/i);
|
|
13
14
|
}
|
|
14
15
|
static from(buffer) {
|
|
15
|
-
return new SHA256Hash(
|
|
16
|
+
return new SHA256Hash(CryptoAdapter_1.CryptoAdapter.hash('sha256', buffer.valueOf()));
|
|
16
17
|
}
|
|
17
18
|
constructor(source) {
|
|
18
19
|
super(source?.valueOf());
|
|
@@ -22,7 +23,7 @@ class SHA256Hash extends ValueObject_1.ValueObject {
|
|
|
22
23
|
(0, patterns_1.assert)(SHA256Hash.isValid(this.valueOf()), new InvalidHashError_1.InvalidHashError('SHA256', source.valueOf()));
|
|
23
24
|
}
|
|
24
25
|
toBase64() {
|
|
25
|
-
return new StringValueObject_1.StringValueObject(Buffer.from(this.valueOf(), 'hex').toString('base64'));
|
|
26
|
+
return new StringValueObject_1.StringValueObject(buffer_1.Buffer.from(this.valueOf(), 'hex').toString('base64'));
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
exports.SHA256Hash = SHA256Hash;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SHA256Hash.js","sourceRoot":"","sources":["../../../src/value-objects/hashes/SHA256Hash.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"SHA256Hash.js","sourceRoot":"","sources":["../../../src/value-objects/hashes/SHA256Hash.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,oEAAiE;AACjE,6CAAwC;AACxC,2DAAwD;AAExD,8CAA2C;AAC3C,4DAAyD;AACzD,gDAA6C;AAE7C,MAAa,UAAW,SAAQ,yBAAmB;IAC1C,MAAM,CAAC,OAAO,CAAC,IAAgC;QACpD,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,IAAI,CAChB,MAAmD;QAEnD,OAAO,IAAI,UAAU,CAAC,6BAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,YAAY,MAAkC;QAC5C,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAEzB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAA,iBAAM,EACJ,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAClC,IAAI,mCAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CACjD,CAAC;IACJ,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,qCAAiB,CAC1B,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACtD,CAAC;IACJ,CAAC;CACF;AA7BD,gCA6BC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SHA512Hash.d.ts","sourceRoot":"","sources":["../../../src/value-objects/hashes/SHA512Hash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SHA512Hash.d.ts","sourceRoot":"","sources":["../../../src/value-objects/hashes/SHA512Hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,UAAW,SAAQ,WAAW,CAAC,MAAM,CAAC;WACnC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,OAAO;WAIlD,IAAI,CAChB,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,KAAK,GAAG,MAAM,GAClD,UAAU;gBAID,MAAM,EAAE,MAAM,GAAG,iBAAiB;IAavC,QAAQ,IAAI,iBAAiB;CAKrC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SHA512Hash = void 0;
|
|
4
|
-
const
|
|
4
|
+
const buffer_1 = require("buffer");
|
|
5
5
|
const InvalidHashError_1 = require("../../errors/InvalidHashError");
|
|
6
6
|
const patterns_1 = require("../../patterns");
|
|
7
|
+
const CryptoAdapter_1 = require("../crypto/CryptoAdapter");
|
|
7
8
|
const NullObject_1 = require("../NullObject");
|
|
8
9
|
const StringValueObject_1 = require("../StringValueObject");
|
|
9
10
|
const ValueObject_1 = require("../ValueObject");
|
|
@@ -12,7 +13,7 @@ class SHA512Hash extends ValueObject_1.ValueObject {
|
|
|
12
13
|
return !!hash.valueOf().match(/^[a-f0-9]{128}$/i);
|
|
13
14
|
}
|
|
14
15
|
static from(buffer) {
|
|
15
|
-
return new SHA512Hash(
|
|
16
|
+
return new SHA512Hash(CryptoAdapter_1.CryptoAdapter.hash('sha512', buffer.valueOf()));
|
|
16
17
|
}
|
|
17
18
|
constructor(source) {
|
|
18
19
|
super(source?.valueOf());
|
|
@@ -22,7 +23,7 @@ class SHA512Hash extends ValueObject_1.ValueObject {
|
|
|
22
23
|
(0, patterns_1.assert)(SHA512Hash.isValid(this.valueOf()), new InvalidHashError_1.InvalidHashError('SHA512', source.valueOf()));
|
|
23
24
|
}
|
|
24
25
|
toBase64() {
|
|
25
|
-
return new StringValueObject_1.StringValueObject(Buffer.from(this.valueOf(), 'hex').toString('base64'));
|
|
26
|
+
return new StringValueObject_1.StringValueObject(buffer_1.Buffer.from(this.valueOf(), 'hex').toString('base64'));
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
exports.SHA512Hash = SHA512Hash;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SHA512Hash.js","sourceRoot":"","sources":["../../../src/value-objects/hashes/SHA512Hash.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"SHA512Hash.js","sourceRoot":"","sources":["../../../src/value-objects/hashes/SHA512Hash.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,oEAAiE;AACjE,6CAAwC;AACxC,2DAAwD;AAExD,8CAA2C;AAC3C,4DAAyD;AACzD,gDAA6C;AAE7C,MAAa,UAAW,SAAQ,yBAAmB;IAC1C,MAAM,CAAC,OAAO,CAAC,IAAgC;QACpD,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,IAAI,CAChB,MAAmD;QAEnD,OAAO,IAAI,UAAU,CAAC,6BAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,YAAY,MAAkC;QAC5C,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAEzB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAA,iBAAM,EACJ,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAClC,IAAI,mCAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CACjD,CAAC;IACJ,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,qCAAiB,CAC1B,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACtD,CAAC;IACJ,CAAC;CACF;AA7BD,gCA6BC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/value-objects/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/value-objects/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC"}
|
|
@@ -15,5 +15,6 @@ tslib_1.__exportStar(require("./NumberValueObject"), exports);
|
|
|
15
15
|
tslib_1.__exportStar(require("./PositiveNumber"), exports);
|
|
16
16
|
tslib_1.__exportStar(require("./StringValueObject"), exports);
|
|
17
17
|
tslib_1.__exportStar(require("./NullObject"), exports);
|
|
18
|
+
tslib_1.__exportStar(require("./UniqueObjectArray"), exports);
|
|
18
19
|
tslib_1.__exportStar(require("./ValueObject"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/value-objects/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,mDAAyB;AACzB,mDAAyB;AACzB,gDAAsB;AACtB,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,kDAAwB;AACxB,iDAAuB;AACvB,oDAA0B;AAC1B,8DAAoC;AACpC,2DAAiC;AACjC,8DAAoC;AACpC,uDAA6B;AAC7B,wDAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/value-objects/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,mDAAyB;AACzB,mDAAyB;AACzB,gDAAsB;AACtB,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,kDAAwB;AACxB,iDAAuB;AACvB,oDAA0B;AAC1B,8DAAoC;AACpC,2DAAiC;AACjC,8DAAoC;AACpC,uDAA6B;AAC7B,8DAAoC;AACpC,wDAA8B"}
|