@digitaldefiance/ecies-lib 3.0.7 → 3.7.2
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 +8 -0
- package/package.json +4 -3
- package/src/builders/ecies-builder.js +5 -9
- package/src/builders/ecies-builder.js.map +1 -1
- package/src/builders/index.js +2 -5
- package/src/builders/index.js.map +1 -1
- package/src/builders/member-builder.js +12 -16
- package/src/builders/member-builder.js.map +1 -1
- package/src/constants.d.ts +14 -0
- package/src/constants.d.ts.map +1 -1
- package/src/constants.js +150 -74
- package/src/constants.js.map +1 -1
- package/src/core/errors/crypto-error.js +10 -14
- package/src/core/errors/crypto-error.js.map +1 -1
- package/src/core/index.js +2 -5
- package/src/core/index.js.map +1 -1
- package/src/core/types/result.js +1 -5
- package/src/core/types/result.js.map +1 -1
- package/src/email-string.js +8 -13
- package/src/email-string.js.map +1 -1
- package/src/enumerations/disposed-error-type.d.ts +12 -0
- package/src/enumerations/disposed-error-type.d.ts.map +1 -0
- package/src/enumerations/disposed-error-type.js +13 -0
- package/src/enumerations/disposed-error-type.js.map +1 -0
- package/src/enumerations/ecies-encryption-type.js +20 -27
- package/src/enumerations/ecies-encryption-type.js.map +1 -1
- package/src/enumerations/ecies-error-type.js +2 -5
- package/src/enumerations/ecies-error-type.js.map +1 -1
- package/src/enumerations/ecies-string-key.d.ts +19 -1
- package/src/enumerations/ecies-string-key.d.ts.map +1 -1
- package/src/enumerations/ecies-string-key.js +21 -5
- package/src/enumerations/ecies-string-key.js.map +1 -1
- package/src/enumerations/guid-brand-type.d.ts +27 -0
- package/src/enumerations/guid-brand-type.d.ts.map +1 -0
- package/src/enumerations/guid-brand-type.js +28 -0
- package/src/enumerations/guid-brand-type.js.map +1 -0
- package/src/enumerations/guid-error-type.d.ts +7 -0
- package/src/enumerations/guid-error-type.d.ts.map +1 -0
- package/src/enumerations/guid-error-type.js +8 -0
- package/src/enumerations/guid-error-type.js.map +1 -0
- package/src/enumerations/id-provider-error-type.d.ts +43 -0
- package/src/enumerations/id-provider-error-type.d.ts.map +1 -0
- package/src/enumerations/id-provider-error-type.js +44 -0
- package/src/enumerations/id-provider-error-type.js.map +1 -0
- package/src/enumerations/index.d.ts +3 -0
- package/src/enumerations/index.d.ts.map +1 -1
- package/src/enumerations/index.js +15 -15
- package/src/enumerations/index.js.map +1 -1
- package/src/enumerations/invalid-email-type.js +2 -5
- package/src/enumerations/invalid-email-type.js.map +1 -1
- package/src/enumerations/length-encoding-type.js +2 -5
- package/src/enumerations/length-encoding-type.js.map +1 -1
- package/src/enumerations/length-error-type.js +2 -5
- package/src/enumerations/length-error-type.js.map +1 -1
- package/src/enumerations/member-error-type.js +3 -6
- package/src/enumerations/member-error-type.js.map +1 -1
- package/src/enumerations/member-type.js +3 -6
- package/src/enumerations/member-type.js.map +1 -1
- package/src/enumerations/password-login-error-type.js +2 -5
- package/src/enumerations/password-login-error-type.js.map +1 -1
- package/src/enumerations/pbkdf2-error-type.js +2 -5
- package/src/enumerations/pbkdf2-error-type.js.map +1 -1
- package/src/enumerations/pbkdf2-profile.js +2 -5
- package/src/enumerations/pbkdf2-profile.js.map +1 -1
- package/src/enumerations/secure-storage-error-type.js +2 -5
- package/src/enumerations/secure-storage-error-type.js.map +1 -1
- package/src/errors/disposed.d.ts +20 -2
- package/src/errors/disposed.d.ts.map +1 -1
- package/src/errors/disposed.js +24 -17
- package/src/errors/disposed.js.map +1 -1
- package/src/errors/ecies.d.ts +46 -1
- package/src/errors/ecies.d.ts.map +1 -1
- package/src/errors/ecies.js +65 -10
- package/src/errors/ecies.js.map +1 -1
- package/src/errors/guid.d.ts +44 -0
- package/src/errors/guid.d.ts.map +1 -0
- package/src/errors/guid.js +81 -0
- package/src/errors/guid.js.map +1 -0
- package/src/errors/id-provider.d.ts +23 -0
- package/src/errors/id-provider.d.ts.map +1 -0
- package/src/errors/id-provider.js +29 -0
- package/src/errors/id-provider.js.map +1 -0
- package/src/errors/index.d.ts +3 -0
- package/src/errors/index.d.ts.map +1 -1
- package/src/errors/index.js +9 -10
- package/src/errors/index.js.map +1 -1
- package/src/errors/invalid-email.js +5 -9
- package/src/errors/invalid-email.js.map +1 -1
- package/src/errors/length.js +5 -9
- package/src/errors/length.js.map +1 -1
- package/src/errors/member.js +5 -9
- package/src/errors/member.js.map +1 -1
- package/src/errors/pbkdf2.js +5 -9
- package/src/errors/pbkdf2.js.map +1 -1
- package/src/errors/secure-storage.js +6 -10
- package/src/errors/secure-storage.js.map +1 -1
- package/src/errors/simple-ecies.js +6 -10
- package/src/errors/simple-ecies.js.map +1 -1
- package/src/errors/simple-test-error.js +1 -5
- package/src/errors/simple-test-error.js.map +1 -1
- package/src/i18n-setup.js +29 -37
- package/src/i18n-setup.js.map +1 -1
- package/src/index.d.ts +10 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +44 -57
- package/src/index.js.map +1 -1
- package/src/interfaces/checksum-config.js +1 -2
- package/src/interfaces/checksum-consts.js +1 -2
- package/src/interfaces/configuration-provenance.d.ts +51 -0
- package/src/interfaces/configuration-provenance.d.ts.map +1 -0
- package/src/interfaces/configuration-provenance.js +23 -0
- package/src/interfaces/configuration-provenance.js.map +1 -0
- package/src/interfaces/constants.d.ts +27 -1
- package/src/interfaces/constants.d.ts.map +1 -1
- package/src/interfaces/constants.js +1 -2
- package/src/interfaces/ecies-config.js +1 -2
- package/src/interfaces/ecies-consts.js +1 -2
- package/src/interfaces/ecies-file-service.js +1 -2
- package/src/interfaces/encrypted-chunk.js +1 -4
- package/src/interfaces/encrypted-chunk.js.map +1 -1
- package/src/interfaces/encryption-state.js +1 -4
- package/src/interfaces/encryption-state.js.map +1 -1
- package/src/interfaces/frontend-member-operational.js +1 -2
- package/src/interfaces/guid.d.ts +78 -0
- package/src/interfaces/guid.d.ts.map +1 -0
- package/src/interfaces/guid.js +2 -0
- package/src/interfaces/guid.js.map +1 -0
- package/src/interfaces/id-provider.d.ts +83 -0
- package/src/interfaces/id-provider.d.ts.map +1 -0
- package/src/interfaces/id-provider.js +35 -0
- package/src/interfaces/id-provider.js.map +1 -0
- package/src/interfaces/index.d.ts +1 -0
- package/src/interfaces/index.d.ts.map +1 -1
- package/src/interfaces/index.js +13 -15
- package/src/interfaces/index.js.map +1 -1
- package/src/interfaces/invariant.d.ts +46 -0
- package/src/interfaces/invariant.d.ts.map +1 -0
- package/src/interfaces/invariant.js +18 -0
- package/src/interfaces/invariant.js.map +1 -0
- package/src/interfaces/library-error.js +1 -2
- package/src/interfaces/member-storage.js +1 -2
- package/src/interfaces/member-with-mnemonic.js +1 -2
- package/src/interfaces/multi-recipient-chunk.d.ts +36 -12
- package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -1
- package/src/interfaces/multi-recipient-chunk.js +36 -14
- package/src/interfaces/multi-recipient-chunk.js.map +1 -1
- package/src/interfaces/pbkdf2-config.js +1 -2
- package/src/interfaces/pbkdf2-consts.js +1 -2
- package/src/interfaces/pbkdf2-result.js +1 -2
- package/src/interfaces/stream-config.js +1 -4
- package/src/interfaces/stream-config.js.map +1 -1
- package/src/interfaces/stream-header.js +1 -4
- package/src/interfaces/stream-header.js.map +1 -1
- package/src/interfaces/stream-progress.js +1 -2
- package/src/lib/crypto-container.js +9 -13
- package/src/lib/crypto-container.js.map +1 -1
- package/src/lib/guid.d.ts +344 -0
- package/src/lib/guid.d.ts.map +1 -0
- package/src/lib/guid.js +914 -0
- package/src/lib/guid.js.map +1 -0
- package/src/lib/id-providers/custom-provider.d.ts +69 -0
- package/src/lib/id-providers/custom-provider.d.ts.map +1 -0
- package/src/lib/id-providers/custom-provider.js +128 -0
- package/src/lib/id-providers/custom-provider.js.map +1 -0
- package/src/lib/id-providers/guidv4-provider.d.ts +46 -0
- package/src/lib/id-providers/guidv4-provider.d.ts.map +1 -0
- package/src/lib/id-providers/guidv4-provider.js +105 -0
- package/src/lib/id-providers/guidv4-provider.js.map +1 -0
- package/src/lib/id-providers/index.d.ts +30 -0
- package/src/lib/id-providers/index.d.ts.map +1 -0
- package/src/lib/id-providers/index.js +29 -0
- package/src/lib/id-providers/index.js.map +1 -0
- package/src/lib/id-providers/objectid-provider.d.ts +33 -0
- package/src/lib/id-providers/objectid-provider.d.ts.map +1 -0
- package/src/lib/id-providers/objectid-provider.js +79 -0
- package/src/lib/id-providers/objectid-provider.js.map +1 -0
- package/src/lib/id-providers/uuid-provider.d.ts +42 -0
- package/src/lib/id-providers/uuid-provider.d.ts.map +1 -0
- package/src/lib/id-providers/uuid-provider.js +96 -0
- package/src/lib/id-providers/uuid-provider.js.map +1 -0
- package/src/lib/index.d.ts +1 -0
- package/src/lib/index.d.ts.map +1 -1
- package/src/lib/index.js +2 -4
- package/src/lib/index.js.map +1 -1
- package/src/lib/invariant-validator.d.ts +59 -0
- package/src/lib/invariant-validator.d.ts.map +1 -0
- package/src/lib/invariant-validator.js +97 -0
- package/src/lib/invariant-validator.js.map +1 -0
- package/src/lib/invariants/encryption-algorithm-consistency.d.ts +17 -0
- package/src/lib/invariants/encryption-algorithm-consistency.d.ts.map +1 -0
- package/src/lib/invariants/encryption-algorithm-consistency.js +49 -0
- package/src/lib/invariants/encryption-algorithm-consistency.js.map +1 -0
- package/src/lib/invariants/index.d.ts +4 -0
- package/src/lib/invariants/index.d.ts.map +1 -0
- package/src/lib/invariants/index.js +4 -0
- package/src/lib/invariants/index.js.map +1 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.d.ts +16 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.d.ts.map +1 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.js +58 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.js.map +1 -0
- package/src/lib/invariants/recipient-id-consistency.d.ts +18 -0
- package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
- package/src/lib/invariants/recipient-id-consistency.js +31 -0
- package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
- package/src/member.js +43 -48
- package/src/member.js.map +1 -1
- package/src/pbkdf2-profiles.js +1 -2
- package/src/phone-number.js +7 -11
- package/src/phone-number.js.map +1 -1
- package/src/regexes.js +3 -6
- package/src/regexes.js.map +1 -1
- package/src/secure-buffer.d.ts +17 -1
- package/src/secure-buffer.d.ts.map +1 -1
- package/src/secure-buffer.js +40 -22
- package/src/secure-buffer.js.map +1 -1
- package/src/secure-string.js +20 -24
- package/src/secure-string.js.map +1 -1
- package/src/services/aes-gcm.js +21 -25
- package/src/services/aes-gcm.js.map +1 -1
- package/src/services/chunk-processor.js +32 -36
- package/src/services/chunk-processor.js.map +1 -1
- package/src/services/ecies/crypto-core.js +33 -37
- package/src/services/ecies/crypto-core.js.map +1 -1
- package/src/services/ecies/example.js +37 -44
- package/src/services/ecies/example.js.map +1 -1
- package/src/services/ecies/file.js +1 -5
- package/src/services/ecies/file.js.map +1 -1
- package/src/services/ecies/index.js +10 -15
- package/src/services/ecies/index.js.map +1 -1
- package/src/services/ecies/integration.js +23 -28
- package/src/services/ecies/integration.js.map +1 -1
- package/src/services/ecies/interfaces.js +1 -2
- package/src/services/ecies/interfaces.js.map +1 -1
- package/src/services/ecies/manual-test.js +26 -34
- package/src/services/ecies/manual-test.js.map +1 -1
- package/src/services/ecies/multi-recipient.js +47 -51
- package/src/services/ecies/multi-recipient.js.map +1 -1
- package/src/services/ecies/service.js +27 -31
- package/src/services/ecies/service.js.map +1 -1
- package/src/services/ecies/signature.js +9 -13
- package/src/services/ecies/signature.js.map +1 -1
- package/src/services/ecies/single-recipient.js +42 -46
- package/src/services/ecies/single-recipient.js.map +1 -1
- package/src/services/encryption-stream.d.ts +3 -1
- package/src/services/encryption-stream.d.ts.map +1 -1
- package/src/services/encryption-stream.js +46 -48
- package/src/services/encryption-stream.js.map +1 -1
- package/src/services/index.js +5 -8
- package/src/services/index.js.map +1 -1
- package/src/services/multi-recipient-processor.d.ts +12 -2
- package/src/services/multi-recipient-processor.d.ts.map +1 -1
- package/src/services/multi-recipient-processor.js +65 -56
- package/src/services/multi-recipient-processor.js.map +1 -1
- package/src/services/password-login.js +33 -37
- package/src/services/password-login.js.map +1 -1
- package/src/services/pbkdf2.js +8 -12
- package/src/services/pbkdf2.js.map +1 -1
- package/src/services/progress-tracker.js +5 -9
- package/src/services/progress-tracker.js.map +1 -1
- package/src/services/resumable-encryption.js +24 -28
- package/src/services/resumable-encryption.js.map +1 -1
- package/src/services/xor.js +1 -5
- package/src/services/xor.js.map +1 -1
- package/src/test-mocks/index.js +1 -4
- package/src/test-mocks/index.js.map +1 -1
- package/src/test-mocks/mock-frontend-member.js +20 -24
- package/src/test-mocks/mock-frontend-member.js.map +1 -1
- package/src/testing.js +1 -4
- package/src/testing.js.map +1 -1
- package/src/translations/de.d.ts +2 -1
- package/src/translations/de.d.ts.map +1 -1
- package/src/translations/de.js +190 -170
- package/src/translations/de.js.map +1 -1
- package/src/translations/en-US.d.ts +2 -1
- package/src/translations/en-US.d.ts.map +1 -1
- package/src/translations/en-US.js +190 -170
- package/src/translations/en-US.js.map +1 -1
- package/src/translations/es.d.ts +2 -1
- package/src/translations/es.d.ts.map +1 -1
- package/src/translations/es.js +190 -170
- package/src/translations/es.js.map +1 -1
- package/src/translations/fr.d.ts +2 -1
- package/src/translations/fr.d.ts.map +1 -1
- package/src/translations/fr.js +190 -170
- package/src/translations/fr.js.map +1 -1
- package/src/translations/ja.d.ts +2 -1
- package/src/translations/ja.d.ts.map +1 -1
- package/src/translations/ja.js +189 -170
- package/src/translations/ja.js.map +1 -1
- package/src/translations/uk.d.ts +2 -1
- package/src/translations/uk.d.ts.map +1 -1
- package/src/translations/uk.js +192 -170
- package/src/translations/uk.js.map +1 -1
- package/src/translations/zh-cn.d.ts +2 -1
- package/src/translations/zh-cn.d.ts.map +1 -1
- package/src/translations/zh-cn.js +189 -170
- package/src/translations/zh-cn.js.map +1 -1
- package/src/types/deep-partial.js +1 -2
- package/src/types.d.ts +31 -0
- package/src/types.d.ts.map +1 -1
- package/src/types.js +1 -2
- package/src/utils.js +59 -77
- package/src/utils.js.map +1 -1
package/src/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* ECIES Library v2.0 - Modern Architecture
|
|
4
3
|
*
|
|
@@ -9,67 +8,55 @@
|
|
|
9
8
|
* - Result pattern
|
|
10
9
|
* - i18n 2.0 integration
|
|
11
10
|
*/
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.ENCRYPTION_STATE_VERSION = exports.ResumableEncryption = exports.ProgressTracker = exports.EncryptionStream = exports.ChunkProcessor = exports.ConstantsRegistry = exports.Constants = exports.SecureBuffer = exports.SecureString = exports.EmailString = exports.Pbkdf2ProfileEnum = exports.MemberType = exports.EciesStringKey = exports.EciesComponentId = exports.EciesI18nEngineKey = exports.safeEciesTranslation = exports.getEciesTranslation = exports.resetEciesI18nEngine = exports.getEciesI18nEngine = void 0;
|
|
14
|
-
const tslib_1 = require("tslib");
|
|
15
11
|
// Core v2 exports
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
export * from './core';
|
|
13
|
+
export * from './builders';
|
|
14
|
+
export * from './lib';
|
|
19
15
|
// i18n v2
|
|
20
|
-
|
|
21
|
-
Object.defineProperty(exports, "getEciesI18nEngine", { enumerable: true, get: function () { return i18n_setup_1.getEciesI18nEngine; } });
|
|
22
|
-
Object.defineProperty(exports, "resetEciesI18nEngine", { enumerable: true, get: function () { return i18n_setup_1.resetEciesI18nEngine; } });
|
|
23
|
-
Object.defineProperty(exports, "getEciesTranslation", { enumerable: true, get: function () { return i18n_setup_1.getEciesTranslation; } });
|
|
24
|
-
Object.defineProperty(exports, "safeEciesTranslation", { enumerable: true, get: function () { return i18n_setup_1.safeEciesTranslation; } });
|
|
25
|
-
Object.defineProperty(exports, "EciesI18nEngineKey", { enumerable: true, get: function () { return i18n_setup_1.EciesI18nEngineKey; } });
|
|
26
|
-
Object.defineProperty(exports, "EciesComponentId", { enumerable: true, get: function () { return i18n_setup_1.EciesComponentId; } });
|
|
16
|
+
export { getEciesI18nEngine, resetEciesI18nEngine, getEciesTranslation, safeEciesTranslation, EciesI18nEngineKey, EciesComponentId, } from './i18n-setup';
|
|
27
17
|
// Re-export existing types and enums (unchanged)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
Object.defineProperty(exports, "MemberType", { enumerable: true, get: function () { return member_type_1.MemberType; } });
|
|
32
|
-
var pbkdf2_profile_1 = require("./enumerations/pbkdf2-profile");
|
|
33
|
-
Object.defineProperty(exports, "Pbkdf2ProfileEnum", { enumerable: true, get: function () { return pbkdf2_profile_1.Pbkdf2ProfileEnum; } });
|
|
18
|
+
export { EciesStringKey } from './enumerations/ecies-string-key';
|
|
19
|
+
export { MemberType } from './enumerations/member-type';
|
|
20
|
+
export { Pbkdf2ProfileEnum } from './enumerations/pbkdf2-profile';
|
|
34
21
|
// Re-export value objects (unchanged)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
Object.defineProperty(exports, "SecureString", { enumerable: true, get: function () { return secure_string_1.SecureString; } });
|
|
39
|
-
var secure_buffer_1 = require("./secure-buffer");
|
|
40
|
-
Object.defineProperty(exports, "SecureBuffer", { enumerable: true, get: function () { return secure_buffer_1.SecureBuffer; } });
|
|
22
|
+
export { EmailString } from './email-string';
|
|
23
|
+
export { SecureString } from './secure-string';
|
|
24
|
+
export { SecureBuffer } from './secure-buffer';
|
|
41
25
|
// Re-export constants (unchanged)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
26
|
+
export { Constants, ConstantsRegistry } from './constants';
|
|
27
|
+
// ID Provider system
|
|
28
|
+
export * from './lib/id-providers';
|
|
29
|
+
export { BaseIdProvider } from './interfaces/id-provider';
|
|
30
|
+
// Invariant validation system
|
|
31
|
+
export { InvariantValidator } from './lib/invariant-validator';
|
|
32
|
+
export { BaseInvariant } from './interfaces/invariant';
|
|
33
|
+
export * from './lib/invariants';
|
|
34
|
+
// Configuration helpers
|
|
35
|
+
export { createRuntimeConfiguration, registerRuntimeConfiguration, unregisterRuntimeConfiguration, clearRuntimeConfigurations, getRuntimeConfiguration, } from './constants';
|
|
36
|
+
export { calculateConfigChecksum, captureCreationStack } from './interfaces/configuration-provenance';
|
|
45
37
|
// Note: Existing services will be re-exported once migrated to v2
|
|
46
38
|
// For now, import from main index.ts for backward compatibility
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
Object.defineProperty(exports, "ResumableEncryption", { enumerable: true, get: function () { return resumable_encryption_1.ResumableEncryption; } });
|
|
71
|
-
var encryption_state_1 = require("./interfaces/encryption-state");
|
|
72
|
-
Object.defineProperty(exports, "ENCRYPTION_STATE_VERSION", { enumerable: true, get: function () { return encryption_state_1.ENCRYPTION_STATE_VERSION; } });
|
|
73
|
-
tslib_1.__exportStar(require("./types"), exports);
|
|
74
|
-
tslib_1.__exportStar(require("./utils"), exports);
|
|
39
|
+
export * from './constants';
|
|
40
|
+
export * from './email-string';
|
|
41
|
+
export * from './enumerations';
|
|
42
|
+
export * from './errors';
|
|
43
|
+
export * from './i18n-setup';
|
|
44
|
+
export * from './interfaces';
|
|
45
|
+
export * from './interfaces/stream-config';
|
|
46
|
+
export * from './interfaces/encrypted-chunk';
|
|
47
|
+
export * from './interfaces/stream-progress';
|
|
48
|
+
export * from './interfaces/stream-header';
|
|
49
|
+
export * from './member';
|
|
50
|
+
export * from './pbkdf2-profiles';
|
|
51
|
+
export * from './phone-number';
|
|
52
|
+
export * from './secure-buffer';
|
|
53
|
+
export * from './secure-string';
|
|
54
|
+
export * from './services';
|
|
55
|
+
export { ChunkProcessor } from './services/chunk-processor';
|
|
56
|
+
export { EncryptionStream } from './services/encryption-stream';
|
|
57
|
+
export { ProgressTracker } from './services/progress-tracker';
|
|
58
|
+
export { ResumableEncryption } from './services/resumable-encryption';
|
|
59
|
+
export { ENCRYPTION_STATE_VERSION } from './interfaces/encryption-state';
|
|
60
|
+
export * from './types';
|
|
61
|
+
export * from './utils';
|
|
75
62
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,kBAAkB;AAClB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AAEtB,UAAU;AACV,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,iDAAiD;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,sCAAsC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,kCAAkC;AAClC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAG3D,qBAAqB;AACrB,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,8BAA8B;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,cAAc,kBAAkB,CAAC;AAEjC,wBAAwB;AACxB,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,8BAA8B,EAC9B,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAEtG,kEAAkE;AAClE,gEAAgE;AAEhE,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAOtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { IConstants } from './constants';
|
|
2
|
+
import { DeepPartial } from '../types/deep-partial';
|
|
3
|
+
/**
|
|
4
|
+
* Provenance information for a configuration.
|
|
5
|
+
* Tracks who created it, when, and what modifications were made.
|
|
6
|
+
*/
|
|
7
|
+
export interface IConfigurationProvenance {
|
|
8
|
+
/**
|
|
9
|
+
* The base configuration key this was derived from
|
|
10
|
+
*/
|
|
11
|
+
readonly baseConfigKey: string;
|
|
12
|
+
/**
|
|
13
|
+
* Overrides applied to the base configuration
|
|
14
|
+
*/
|
|
15
|
+
readonly overrides: DeepPartial<IConstants>;
|
|
16
|
+
/**
|
|
17
|
+
* When this configuration was created
|
|
18
|
+
*/
|
|
19
|
+
readonly timestamp: Date;
|
|
20
|
+
/**
|
|
21
|
+
* Source of the configuration
|
|
22
|
+
* - 'default': The built-in Constants
|
|
23
|
+
* - 'runtime': Created via createRuntimeConfiguration
|
|
24
|
+
* - 'custom': User-provided full configuration
|
|
25
|
+
*/
|
|
26
|
+
readonly source: 'default' | 'runtime' | 'custom';
|
|
27
|
+
/**
|
|
28
|
+
* SHA-256 checksum of the final configuration
|
|
29
|
+
* Useful for verifying configuration hasn't been tampered with
|
|
30
|
+
*/
|
|
31
|
+
readonly checksum: string;
|
|
32
|
+
/**
|
|
33
|
+
* Optional description or notes about this configuration
|
|
34
|
+
*/
|
|
35
|
+
readonly description?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Stack trace showing where the configuration was created
|
|
38
|
+
* Useful for debugging unexpected configurations
|
|
39
|
+
*/
|
|
40
|
+
readonly creationStack?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Calculates a checksum for a configuration object.
|
|
44
|
+
* Uses SHA-256 of JSON representation.
|
|
45
|
+
*/
|
|
46
|
+
export declare function calculateConfigChecksum(config: IConstants): string;
|
|
47
|
+
/**
|
|
48
|
+
* Captures a stack trace for provenance tracking
|
|
49
|
+
*/
|
|
50
|
+
export declare function captureCreationStack(): string;
|
|
51
|
+
//# sourceMappingURL=configuration-provenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration-provenance.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/configuration-provenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IAEzB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAElD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAKlE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAO7C"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createHash } from 'crypto';
|
|
2
|
+
/**
|
|
3
|
+
* Calculates a checksum for a configuration object.
|
|
4
|
+
* Uses SHA-256 of JSON representation.
|
|
5
|
+
*/
|
|
6
|
+
export function calculateConfigChecksum(config) {
|
|
7
|
+
// Create a stable JSON representation with BigInt support
|
|
8
|
+
const replacer = (key, value) => (typeof value === 'bigint' ? value.toString() : value);
|
|
9
|
+
const stable = JSON.stringify(config, replacer);
|
|
10
|
+
return createHash('sha256').update(stable).digest('hex');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Captures a stack trace for provenance tracking
|
|
14
|
+
*/
|
|
15
|
+
export function captureCreationStack() {
|
|
16
|
+
const stack = new Error().stack;
|
|
17
|
+
if (!stack)
|
|
18
|
+
return 'stack unavailable';
|
|
19
|
+
// Remove the first two lines (Error message and this function)
|
|
20
|
+
const lines = stack.split('\n').slice(2);
|
|
21
|
+
return lines.join('\n');
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=configuration-provenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration-provenance.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/configuration-provenance.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAgDpC;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAkB;IACxD,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrG,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,OAAO,mBAAmB,CAAC;IAEvC,+DAA+D;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { Pbkdf2Profiles } from '../pbkdf2-profiles';
|
|
|
2
2
|
import { IChecksumConsts } from './checksum-consts';
|
|
3
3
|
import { IECIESConstants } from './ecies-consts';
|
|
4
4
|
import { IPBkdf2Consts } from './pbkdf2-consts';
|
|
5
|
+
import { IIdProvider } from './id-provider';
|
|
5
6
|
export interface IConstants {
|
|
6
7
|
UINT8_SIZE: number;
|
|
7
8
|
UINT16_SIZE: number;
|
|
@@ -12,9 +13,34 @@ export interface IConstants {
|
|
|
12
13
|
UINT64_MAX: bigint;
|
|
13
14
|
HEX_RADIX: number;
|
|
14
15
|
/**
|
|
15
|
-
* The length of
|
|
16
|
+
* The length of user IDs in the system.
|
|
17
|
+
* This is dynamically determined by the configured ID provider.
|
|
18
|
+
* @deprecated Use idProvider.byteLength instead for direct access
|
|
19
|
+
*/
|
|
20
|
+
MEMBER_ID_LENGTH: number;
|
|
21
|
+
/**
|
|
22
|
+
* The length of a raw object ID (not the hex string representation).
|
|
23
|
+
* Standard MongoDB ObjectID is 12 bytes.
|
|
24
|
+
* @deprecated Use idProvider.byteLength instead for direct access
|
|
16
25
|
*/
|
|
17
26
|
OBJECT_ID_LENGTH: number;
|
|
27
|
+
/**
|
|
28
|
+
* ID provider for recipient identification in multi-recipient encryption.
|
|
29
|
+
* This determines the format and size of recipient IDs used throughout the system.
|
|
30
|
+
*
|
|
31
|
+
* Default: ObjectIdProvider (12 bytes, MongoDB compatible)
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* import { GuidV4Provider } from './lib/id-providers';
|
|
36
|
+
*
|
|
37
|
+
* // Use GUIDs instead of ObjectIDs
|
|
38
|
+
* const config = createRuntimeConfiguration({
|
|
39
|
+
* idProvider: new GuidV4Provider()
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
idProvider: IIdProvider;
|
|
18
44
|
CHECKSUM: IChecksumConsts;
|
|
19
45
|
ECIES: IECIESConstants;
|
|
20
46
|
PBKDF2: IPBkdf2Consts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;;;;;;;;;;;;OAeG;IACH,UAAU,EAAE,WAAW,CAAC;IAExB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,eAAe,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CHUNK_CONSTANTS = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Constants for chunk format
|
|
6
3
|
*/
|
|
7
|
-
|
|
4
|
+
export const CHUNK_CONSTANTS = {
|
|
8
5
|
MAGIC: 0x45434945, // "ECIE"
|
|
9
6
|
VERSION: 0x0001,
|
|
10
7
|
HEADER_SIZE: 32,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encrypted-chunk.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/encrypted-chunk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"encrypted-chunk.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/encrypted-chunk.ts"],"names":[],"mappings":"AA8CA;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,UAAU,EAAE,SAAS;IAC5B,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,IAAI;IACvB,aAAa,EAAE,EAAE,EAAE,UAAU;CACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption-state.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/encryption-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"encryption-state.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/encryption-state.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Base64Guid, BigIntGuid, FullHexGuid, RawGuidBuffer, ShortHexGuid } from '../types';
|
|
2
|
+
export interface IGuidV4 {
|
|
3
|
+
/**
|
|
4
|
+
* Returns the GUID as a raw buffer.
|
|
5
|
+
*/
|
|
6
|
+
get asRawGuidBuffer(): RawGuidBuffer;
|
|
7
|
+
/**
|
|
8
|
+
* Returns the GUID as a full hex string.
|
|
9
|
+
*/
|
|
10
|
+
get asFullHexGuid(): FullHexGuid;
|
|
11
|
+
/**
|
|
12
|
+
* Returns the GUID as a Uint8Array.
|
|
13
|
+
*/
|
|
14
|
+
get asUint8Array(): Uint8Array;
|
|
15
|
+
/**
|
|
16
|
+
* Returns the GUID as a short hex string.
|
|
17
|
+
*/
|
|
18
|
+
get asShortHexGuid(): ShortHexGuid;
|
|
19
|
+
/**
|
|
20
|
+
* Returns the GUID as a BigInt.
|
|
21
|
+
*/
|
|
22
|
+
get asBigIntGuid(): BigIntGuid;
|
|
23
|
+
/**
|
|
24
|
+
* Returns the GUID as a Base64 string.
|
|
25
|
+
*/
|
|
26
|
+
get asBase64Guid(): Base64Guid;
|
|
27
|
+
/**
|
|
28
|
+
* Returns the GUID as a base64 string
|
|
29
|
+
*/
|
|
30
|
+
serialize(): string;
|
|
31
|
+
/**
|
|
32
|
+
* Returns the GUID as a JSON string
|
|
33
|
+
*/
|
|
34
|
+
toJson(): string;
|
|
35
|
+
/**
|
|
36
|
+
* Returns the GUID as a Base64 string
|
|
37
|
+
*/
|
|
38
|
+
toString(): Base64Guid;
|
|
39
|
+
/**
|
|
40
|
+
* Compares this GUID to another GUID
|
|
41
|
+
* @param other The GUID to compare to (can be null/undefined)
|
|
42
|
+
* @param constantTime Use constant-time comparison to prevent timing attacks
|
|
43
|
+
*/
|
|
44
|
+
equals(other: IGuidV4 | null | undefined, constantTime?: boolean): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Creates a new GuidV4 instance with the same value as this one.
|
|
47
|
+
* @returns A new GuidV4 instance with identical value
|
|
48
|
+
*/
|
|
49
|
+
clone(): IGuidV4;
|
|
50
|
+
/**
|
|
51
|
+
* Returns the hash code for this GUID based on its buffer content.
|
|
52
|
+
* Useful for using GUIDs as Map/Set keys.
|
|
53
|
+
* @returns A numeric hash code
|
|
54
|
+
*/
|
|
55
|
+
hashCode(): number;
|
|
56
|
+
/**
|
|
57
|
+
* Checks if this GUID is empty (all zeros).
|
|
58
|
+
* @returns True if the GUID is all zeros, false otherwise
|
|
59
|
+
*/
|
|
60
|
+
isEmpty(): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Extracts the RFC 4122 version from the GUID.
|
|
63
|
+
* @returns The version number (1-5) or undefined
|
|
64
|
+
*/
|
|
65
|
+
getVersion(): number | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Validates that this GUID is a proper v4 GUID according to RFC 4122.
|
|
68
|
+
* @returns True if valid v4 GUID or boundary value, false otherwise
|
|
69
|
+
*/
|
|
70
|
+
isValidV4(): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Compares two GUIDs for ordering.
|
|
73
|
+
* @param other The other GUID to compare to
|
|
74
|
+
* @returns -1 if this < other, 0 if equal, 1 if this > other
|
|
75
|
+
*/
|
|
76
|
+
compareTo(other: IGuidV4): number;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=guid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guid.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/guid.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EAEV,WAAW,EACX,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,IAAI,eAAe,IAAI,aAAa,CAAC;IACrC;;OAEG;IACH,IAAI,aAAa,IAAI,WAAW,CAAC;IACjC;;OAEG;IACH,IAAI,YAAY,IAAI,UAAU,CAAC;IAC/B;;OAEG;IACH,IAAI,cAAc,IAAI,YAAY,CAAC;IACnC;;OAEG;IACH,IAAI,YAAY,IAAI,UAAU,CAAC;IAC/B;;OAEG;IACH,IAAI,YAAY,IAAI,UAAU,CAAC;IAE/B;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,IAAI,UAAU,CAAC;IACvB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC3E;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC;IACjB;;;;OAIG;IACH,QAAQ,IAAI,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC;IACnB;;;OAGG;IACH,UAAU,IAAI,MAAM,GAAG,SAAS,CAAC;IACjC;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guid.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/guid.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interface for ID providers that supply recipient identifiers.
|
|
3
|
+
* This allows the library to support various ID formats (ObjectID, GUID, UUID, custom).
|
|
4
|
+
*/
|
|
5
|
+
export interface IIdProvider {
|
|
6
|
+
/**
|
|
7
|
+
* The fixed byte length of IDs produced by this provider.
|
|
8
|
+
* This determines the size of recipient ID fields in encrypted messages.
|
|
9
|
+
*/
|
|
10
|
+
readonly byteLength: number;
|
|
11
|
+
/**
|
|
12
|
+
* A human-readable name for this ID provider type.
|
|
13
|
+
* Examples: 'ObjectID', 'GUIDv4', 'UUIDv4', 'Custom'
|
|
14
|
+
*/
|
|
15
|
+
readonly name: string;
|
|
16
|
+
/**
|
|
17
|
+
* Generate a new random ID.
|
|
18
|
+
* @returns A newly generated ID as a Uint8Array of length `byteLength`
|
|
19
|
+
*/
|
|
20
|
+
generate(): Uint8Array;
|
|
21
|
+
/**
|
|
22
|
+
* Validate that a given buffer is a properly formatted ID for this provider.
|
|
23
|
+
* This should check length, format constraints, and any version bits if applicable.
|
|
24
|
+
* @param id The ID buffer to validate
|
|
25
|
+
* @returns True if the ID is valid for this provider, false otherwise
|
|
26
|
+
*/
|
|
27
|
+
validate(id: Uint8Array): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Serialize an ID buffer to a human-readable string representation.
|
|
30
|
+
* Examples: hex string, base64, ObjectID hex, UUID format with dashes
|
|
31
|
+
* @param id The ID buffer to serialize
|
|
32
|
+
* @returns A string representation of the ID
|
|
33
|
+
* @throws Error if the ID is invalid
|
|
34
|
+
*/
|
|
35
|
+
serialize(id: Uint8Array): string;
|
|
36
|
+
/**
|
|
37
|
+
* Deserialize a string representation back to an ID buffer.
|
|
38
|
+
* This is the inverse of `serialize`.
|
|
39
|
+
* @param str The string representation of the ID
|
|
40
|
+
* @returns The ID as a Uint8Array of length `byteLength`
|
|
41
|
+
* @throws Error if the string is not a valid representation
|
|
42
|
+
*/
|
|
43
|
+
deserialize(str: string): Uint8Array;
|
|
44
|
+
/**
|
|
45
|
+
* Compare two IDs for equality.
|
|
46
|
+
* Default implementation uses constant-time comparison.
|
|
47
|
+
* @param a First ID
|
|
48
|
+
* @param b Second ID
|
|
49
|
+
* @returns True if IDs are equal, false otherwise
|
|
50
|
+
*/
|
|
51
|
+
equals(a: Uint8Array, b: Uint8Array): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Clone an ID buffer.
|
|
54
|
+
* Default implementation creates a defensive copy.
|
|
55
|
+
* @param id The ID to clone
|
|
56
|
+
* @returns A new Uint8Array with the same contents
|
|
57
|
+
*/
|
|
58
|
+
clone(id: Uint8Array): Uint8Array;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Base class for ID providers with common utility methods.
|
|
62
|
+
*/
|
|
63
|
+
export declare abstract class BaseIdProvider implements IIdProvider {
|
|
64
|
+
abstract readonly byteLength: number;
|
|
65
|
+
abstract readonly name: string;
|
|
66
|
+
abstract generate(): Uint8Array;
|
|
67
|
+
abstract validate(id: Uint8Array): boolean;
|
|
68
|
+
abstract serialize(id: Uint8Array): string;
|
|
69
|
+
abstract deserialize(str: string): Uint8Array;
|
|
70
|
+
/**
|
|
71
|
+
* Constant-time comparison to prevent timing attacks.
|
|
72
|
+
*/
|
|
73
|
+
equals(a: Uint8Array, b: Uint8Array): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Create a defensive copy of an ID.
|
|
76
|
+
*/
|
|
77
|
+
clone(id: Uint8Array): Uint8Array;
|
|
78
|
+
/**
|
|
79
|
+
* Validate ID length matches expected byte length.
|
|
80
|
+
*/
|
|
81
|
+
protected validateLength(id: Uint8Array, context: string): void;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=id-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-provider.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/id-provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,IAAI,UAAU,CAAC;IAEvB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC;IAElC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,CAAC;IAElC;;;;;;OAMG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;IAErC;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAE9C;;;;;OAKG;IACH,KAAK,CAAC,EAAE,EAAE,UAAU,GAAG,UAAU,CAAC;CACnC;AAED;;GAEG;AACH,8BAAsB,cAAe,YAAW,WAAW;IACzD,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B,QAAQ,CAAC,QAAQ,IAAI,UAAU;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAC1C,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAE7C;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO;IAY7C;;OAEG;IACH,KAAK,CAAC,EAAE,EAAE,UAAU,GAAG,UAAU;IAIjC;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;CAYhE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for ID providers with common utility methods.
|
|
3
|
+
*/
|
|
4
|
+
export class BaseIdProvider {
|
|
5
|
+
/**
|
|
6
|
+
* Constant-time comparison to prevent timing attacks.
|
|
7
|
+
*/
|
|
8
|
+
equals(a, b) {
|
|
9
|
+
if (a.length !== b.length) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
let diff = 0;
|
|
13
|
+
for (let i = 0; i < a.length; i++) {
|
|
14
|
+
diff |= a[i] ^ b[i];
|
|
15
|
+
}
|
|
16
|
+
return diff === 0;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create a defensive copy of an ID.
|
|
20
|
+
*/
|
|
21
|
+
clone(id) {
|
|
22
|
+
return new Uint8Array(id);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Validate ID length matches expected byte length.
|
|
26
|
+
*/
|
|
27
|
+
validateLength(id, context) {
|
|
28
|
+
if (id.length !== this.byteLength) {
|
|
29
|
+
const { IdProviderError } = require('../errors/id-provider');
|
|
30
|
+
const { IdProviderErrorType } = require('../enumerations/id-provider-error-type');
|
|
31
|
+
throw new IdProviderError(IdProviderErrorType.InvalidLength, undefined, undefined, { context, expected: this.byteLength, actual: id.length });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=id-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-provider.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/id-provider.ts"],"names":[],"mappings":"AAmEA;;GAEG;AACH,MAAM,OAAgB,cAAc;IASlC;;OAEG;IACH,MAAM,CAAC,CAAa,EAAE,CAAa;QACjC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,KAAK,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,EAAc;QAClB,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACO,cAAc,CAAC,EAAc,EAAE,OAAe;QACtD,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAC7D,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;YAClF,MAAM,IAAI,eAAe,CACvB,mBAAmB,CAAC,aAAa,EACjC,SAAS,EACT,SAAS,EACT,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -5,6 +5,7 @@ export * from './ecies-config';
|
|
|
5
5
|
export * from './ecies-consts';
|
|
6
6
|
export * from './ecies-file-service';
|
|
7
7
|
export * from './frontend-member-operational';
|
|
8
|
+
export * from './guid';
|
|
8
9
|
export * from './member-storage';
|
|
9
10
|
export * from './member-with-mnemonic';
|
|
10
11
|
export * from './pbkdf2-config';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
|
package/src/interfaces/index.js
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
tslib_1.__exportStar(require("./pbkdf2-consts"), exports);
|
|
15
|
-
tslib_1.__exportStar(require("./pbkdf2-result"), exports);
|
|
1
|
+
export * from './checksum-config';
|
|
2
|
+
export * from './checksum-consts';
|
|
3
|
+
export * from './constants';
|
|
4
|
+
export * from './ecies-config';
|
|
5
|
+
export * from './ecies-consts';
|
|
6
|
+
export * from './ecies-file-service';
|
|
7
|
+
export * from './frontend-member-operational';
|
|
8
|
+
export * from './guid';
|
|
9
|
+
export * from './member-storage';
|
|
10
|
+
export * from './member-with-mnemonic';
|
|
11
|
+
export * from './pbkdf2-config';
|
|
12
|
+
export * from './pbkdf2-consts';
|
|
13
|
+
export * from './pbkdf2-result';
|
|
16
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
|