@digitaldefiance/node-ecies-lib 4.5.19 → 4.6.3
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/package.json +2 -2
- package/src/builders/ecies-builder.d.ts +11 -0
- package/src/builders/ecies-builder.d.ts.map +1 -0
- package/src/builders/ecies-builder.js +26 -0
- package/src/builders/ecies-builder.js.map +1 -0
- package/src/builders/index.d.ts +3 -0
- package/src/builders/index.d.ts.map +1 -0
- package/src/builders/index.js +6 -0
- package/src/builders/index.js.map +1 -0
- package/src/builders/member-builder.d.ts +47 -0
- package/src/builders/member-builder.d.ts.map +1 -0
- package/src/builders/member-builder.js +99 -0
- package/src/builders/member-builder.js.map +1 -0
- package/src/constants.d.ts +38 -0
- package/src/constants.d.ts.map +1 -0
- package/src/constants.js +191 -0
- package/src/constants.js.map +1 -0
- package/src/core/errors/crypto-error.d.ts +6 -0
- package/src/core/errors/crypto-error.d.ts.map +1 -0
- package/src/core/errors/crypto-error.js +15 -0
- package/src/core/errors/crypto-error.js.map +1 -0
- package/src/core/index.d.ts +3 -0
- package/src/core/index.d.ts.map +1 -0
- package/src/core/index.js +6 -0
- package/src/core/index.js.map +1 -0
- package/src/core/types/result.d.ts +8 -0
- package/src/core/types/result.d.ts.map +1 -0
- package/src/core/types/result.js +3 -0
- package/src/core/types/result.js.map +1 -0
- package/src/enumerations/index.d.ts +3 -0
- package/src/enumerations/index.d.ts.map +1 -0
- package/src/enumerations/index.js +6 -0
- package/src/enumerations/index.js.map +1 -0
- package/src/enumerations/pbkdf2-profile.d.ts +9 -0
- package/src/enumerations/pbkdf2-profile.d.ts.map +1 -0
- package/src/enumerations/pbkdf2-profile.js +13 -0
- package/src/enumerations/pbkdf2-profile.js.map +1 -0
- package/src/enumerations/voting-error-type.d.ts +37 -0
- package/src/enumerations/voting-error-type.d.ts.map +1 -0
- package/src/enumerations/voting-error-type.js +48 -0
- package/src/enumerations/voting-error-type.js.map +1 -0
- package/src/errors/index.d.ts +2 -0
- package/src/errors/index.d.ts.map +1 -0
- package/src/errors/index.js +5 -0
- package/src/errors/index.js.map +1 -0
- package/src/errors/voting.d.ts +16 -0
- package/src/errors/voting.d.ts.map +1 -0
- package/src/errors/voting.js +27 -0
- package/src/errors/voting.js.map +1 -0
- package/src/i18n/ecies-i18n-factory.d.ts +28 -0
- package/src/i18n/ecies-i18n-factory.d.ts.map +1 -0
- package/src/i18n/ecies-i18n-factory.js +90 -0
- package/src/i18n/ecies-i18n-factory.js.map +1 -0
- package/src/i18n/index.d.ts +3 -0
- package/src/i18n/index.d.ts.map +1 -0
- package/src/i18n/index.js +8 -0
- package/src/i18n/index.js.map +1 -0
- package/src/i18n/node-ecies-i18n-setup.d.ts +5 -0
- package/src/i18n/node-ecies-i18n-setup.d.ts.map +1 -0
- package/src/i18n/node-ecies-i18n-setup.js +48 -0
- package/src/i18n/node-ecies-i18n-setup.js.map +1 -0
- package/src/i18n/node-keys.d.ts +57 -0
- package/src/i18n/node-keys.d.ts.map +1 -0
- package/src/i18n/node-keys.js +67 -0
- package/src/i18n/node-keys.js.map +1 -0
- package/src/i18n/translations/de.d.ts +3 -0
- package/src/i18n/translations/de.d.ts.map +1 -0
- package/src/i18n/translations/de.js +57 -0
- package/src/i18n/translations/de.js.map +1 -0
- package/src/i18n/translations/en-GB.d.ts +3 -0
- package/src/i18n/translations/en-GB.d.ts.map +1 -0
- package/src/i18n/translations/en-GB.js +61 -0
- package/src/i18n/translations/en-GB.js.map +1 -0
- package/src/i18n/translations/en-US.d.ts +6 -0
- package/src/i18n/translations/en-US.d.ts.map +1 -0
- package/src/i18n/translations/en-US.js +65 -0
- package/src/i18n/translations/en-US.js.map +1 -0
- package/src/i18n/translations/es.d.ts +3 -0
- package/src/i18n/translations/es.d.ts.map +1 -0
- package/src/i18n/translations/es.js +57 -0
- package/src/i18n/translations/es.js.map +1 -0
- package/src/i18n/translations/fr.d.ts +3 -0
- package/src/i18n/translations/fr.d.ts.map +1 -0
- package/src/i18n/translations/fr.js +57 -0
- package/src/i18n/translations/fr.js.map +1 -0
- package/src/i18n/translations/index.d.ts +9 -0
- package/src/i18n/translations/index.d.ts.map +1 -0
- package/src/i18n/translations/index.js +20 -0
- package/src/i18n/translations/index.js.map +1 -0
- package/src/i18n/translations/ja.d.ts +3 -0
- package/src/i18n/translations/ja.d.ts.map +1 -0
- package/src/i18n/translations/ja.js +57 -0
- package/src/i18n/translations/ja.js.map +1 -0
- package/src/i18n/translations/uk.d.ts +3 -0
- package/src/i18n/translations/uk.d.ts.map +1 -0
- package/src/i18n/translations/uk.js +57 -0
- package/src/i18n/translations/uk.js.map +1 -0
- package/src/i18n/translations/zh-cn.d.ts +3 -0
- package/src/i18n/translations/zh-cn.d.ts.map +1 -0
- package/src/i18n/translations/zh-cn.js +57 -0
- package/src/i18n/translations/zh-cn.js.map +1 -0
- package/src/i18n-setup.d.ts +26 -0
- package/src/i18n-setup.d.ts.map +1 -0
- package/src/i18n-setup.js +111 -0
- package/src/i18n-setup.js.map +1 -0
- package/src/index.d.ts +21 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +36 -0
- package/src/index.js.map +1 -0
- package/src/interfaces/authenticated-cipher.d.ts +12 -0
- package/src/interfaces/authenticated-cipher.d.ts.map +1 -0
- package/src/interfaces/authenticated-cipher.js +3 -0
- package/src/interfaces/authenticated-cipher.js.map +1 -0
- package/src/interfaces/authenticated-decipher.d.ts +11 -0
- package/src/interfaces/authenticated-decipher.d.ts.map +1 -0
- package/src/interfaces/authenticated-decipher.js +3 -0
- package/src/interfaces/authenticated-decipher.js.map +1 -0
- package/src/interfaces/backend-member-operational.d.ts +48 -0
- package/src/interfaces/backend-member-operational.d.ts.map +1 -0
- package/src/interfaces/backend-member-operational.js +3 -0
- package/src/interfaces/backend-member-operational.js.map +1 -0
- package/src/interfaces/checksum-config.d.ts +5 -0
- package/src/interfaces/checksum-config.d.ts.map +1 -0
- package/src/interfaces/checksum-config.js +3 -0
- package/src/interfaces/checksum-config.js.map +1 -0
- package/src/interfaces/checksum-consts.d.ts +11 -0
- package/src/interfaces/checksum-consts.d.ts.map +1 -0
- package/src/interfaces/checksum-consts.js +3 -0
- package/src/interfaces/checksum-consts.js.map +1 -0
- package/src/interfaces/constants.d.ts +52 -0
- package/src/interfaces/constants.d.ts.map +1 -0
- package/src/interfaces/constants.js +3 -0
- package/src/interfaces/constants.js.map +1 -0
- package/src/interfaces/ecies-consts.d.ts +88 -0
- package/src/interfaces/ecies-consts.d.ts.map +1 -0
- package/src/interfaces/ecies-consts.js +3 -0
- package/src/interfaces/ecies-consts.js.map +1 -0
- package/src/interfaces/encrypted-chunk.d.ts +12 -0
- package/src/interfaces/encrypted-chunk.d.ts.map +1 -0
- package/src/interfaces/encrypted-chunk.js +3 -0
- package/src/interfaces/encrypted-chunk.js.map +1 -0
- package/src/interfaces/encryption-consts.d.ts +11 -0
- package/src/interfaces/encryption-consts.d.ts.map +1 -0
- package/src/interfaces/encryption-consts.js +3 -0
- package/src/interfaces/encryption-consts.js.map +1 -0
- package/src/interfaces/index.d.ts +31 -0
- package/src/interfaces/index.d.ts.map +1 -0
- package/src/interfaces/index.js +33 -0
- package/src/interfaces/index.js.map +1 -0
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts +6 -0
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts.map +1 -0
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js +3 -0
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js.map +1 -0
- package/src/interfaces/keyring-consts.d.ts +6 -0
- package/src/interfaces/keyring-consts.d.ts.map +1 -0
- package/src/interfaces/keyring-consts.js +3 -0
- package/src/interfaces/keyring-consts.js.map +1 -0
- package/src/interfaces/member-with-mnemonic.d.ts +7 -0
- package/src/interfaces/member-with-mnemonic.d.ts.map +1 -0
- package/src/interfaces/member-with-mnemonic.js +3 -0
- package/src/interfaces/member-with-mnemonic.js.map +1 -0
- package/src/interfaces/member.d.ts +47 -0
- package/src/interfaces/member.d.ts.map +1 -0
- package/src/interfaces/member.js +3 -0
- package/src/interfaces/member.js.map +1 -0
- package/src/interfaces/multi-encrypted-message.d.ts +8 -0
- package/src/interfaces/multi-encrypted-message.d.ts.map +1 -0
- package/src/interfaces/multi-encrypted-message.js +3 -0
- package/src/interfaces/multi-encrypted-message.js.map +1 -0
- package/src/interfaces/multi-encrypted-parsed-header.d.ts +27 -0
- package/src/interfaces/multi-encrypted-parsed-header.d.ts.map +1 -0
- package/src/interfaces/multi-encrypted-parsed-header.js +3 -0
- package/src/interfaces/multi-encrypted-parsed-header.js.map +1 -0
- package/src/interfaces/multi-recipient-chunk.d.ts +26 -0
- package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -0
- package/src/interfaces/multi-recipient-chunk.js +15 -0
- package/src/interfaces/multi-recipient-chunk.js.map +1 -0
- package/src/interfaces/pbkdf-profiles.d.ts +6 -0
- package/src/interfaces/pbkdf-profiles.d.ts.map +1 -0
- package/src/interfaces/pbkdf-profiles.js +3 -0
- package/src/interfaces/pbkdf-profiles.js.map +1 -0
- package/src/interfaces/pbkdf2-result.d.ts +6 -0
- package/src/interfaces/pbkdf2-result.d.ts.map +1 -0
- package/src/interfaces/pbkdf2-result.js +3 -0
- package/src/interfaces/pbkdf2-result.js.map +1 -0
- package/src/interfaces/signing-key-private-key-info.d.ts +11 -0
- package/src/interfaces/signing-key-private-key-info.d.ts.map +1 -0
- package/src/interfaces/signing-key-private-key-info.js +3 -0
- package/src/interfaces/signing-key-private-key-info.js.map +1 -0
- package/src/interfaces/simple-keypair-buffer.d.ts +6 -0
- package/src/interfaces/simple-keypair-buffer.d.ts.map +1 -0
- package/src/interfaces/simple-keypair-buffer.js +3 -0
- package/src/interfaces/simple-keypair-buffer.js.map +1 -0
- package/src/interfaces/simple-keypair.d.ts +6 -0
- package/src/interfaces/simple-keypair.d.ts.map +1 -0
- package/src/interfaces/simple-keypair.js +3 -0
- package/src/interfaces/simple-keypair.js.map +1 -0
- package/src/interfaces/simple-public-key-only-buffer.d.ts +4 -0
- package/src/interfaces/simple-public-key-only-buffer.d.ts.map +1 -0
- package/src/interfaces/simple-public-key-only-buffer.js +3 -0
- package/src/interfaces/simple-public-key-only-buffer.js.map +1 -0
- package/src/interfaces/simple-public-key-only.d.ts +4 -0
- package/src/interfaces/simple-public-key-only.d.ts.map +1 -0
- package/src/interfaces/simple-public-key-only.js +3 -0
- package/src/interfaces/simple-public-key-only.js.map +1 -0
- package/src/interfaces/single-encrypted-parsed-header.d.ts +35 -0
- package/src/interfaces/single-encrypted-parsed-header.d.ts.map +1 -0
- package/src/interfaces/single-encrypted-parsed-header.js +3 -0
- package/src/interfaces/single-encrypted-parsed-header.js.map +1 -0
- package/src/interfaces/stream-config.d.ts +6 -0
- package/src/interfaces/stream-config.d.ts.map +1 -0
- package/src/interfaces/stream-config.js +8 -0
- package/src/interfaces/stream-config.js.map +1 -0
- package/src/interfaces/stream-progress.d.ts +22 -0
- package/src/interfaces/stream-progress.d.ts.map +1 -0
- package/src/interfaces/stream-progress.js +3 -0
- package/src/interfaces/stream-progress.js.map +1 -0
- package/src/interfaces/voting-consts.d.ts +86 -0
- package/src/interfaces/voting-consts.d.ts.map +1 -0
- package/src/interfaces/voting-consts.js +27 -0
- package/src/interfaces/voting-consts.js.map +1 -0
- package/src/interfaces/wallet-seed.d.ts +7 -0
- package/src/interfaces/wallet-seed.d.ts.map +1 -0
- package/src/interfaces/wallet-seed.js +3 -0
- package/src/interfaces/wallet-seed.js.map +1 -0
- package/src/interfaces/wrapped-key-consts.d.ts +7 -0
- package/src/interfaces/wrapped-key-consts.d.ts.map +1 -0
- package/src/interfaces/wrapped-key-consts.js +3 -0
- package/src/interfaces/wrapped-key-consts.js.map +1 -0
- package/src/isolated-private.d.ts +62 -0
- package/src/isolated-private.d.ts.map +1 -0
- package/src/isolated-private.js +139 -0
- package/src/isolated-private.js.map +1 -0
- package/src/isolated-public.d.ts +118 -0
- package/src/isolated-public.d.ts.map +1 -0
- package/src/isolated-public.js +317 -0
- package/src/isolated-public.js.map +1 -0
- package/src/lib/crypto-container.d.ts +13 -0
- package/src/lib/crypto-container.d.ts.map +1 -0
- package/src/lib/crypto-container.js +32 -0
- package/src/lib/crypto-container.js.map +1 -0
- package/src/lib/index.d.ts +4 -0
- package/src/lib/index.d.ts.map +1 -0
- package/src/lib/index.js +7 -0
- package/src/lib/index.js.map +1 -0
- package/src/lib/invariant-validator.d.ts +69 -0
- package/src/lib/invariant-validator.d.ts.map +1 -0
- package/src/lib/invariant-validator.js +98 -0
- package/src/lib/invariant-validator.js.map +1 -0
- package/src/lib/invariants/index.d.ts +8 -0
- package/src/lib/invariants/index.d.ts.map +1 -0
- package/src/lib/invariants/index.js +12 -0
- package/src/lib/invariants/index.js.map +1 -0
- package/src/lib/invariants/recipient-id-consistency.d.ts +41 -0
- package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
- package/src/lib/invariants/recipient-id-consistency.js +75 -0
- package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
- package/src/member.d.ts +100 -0
- package/src/member.d.ts.map +1 -0
- package/src/member.js +345 -0
- package/src/member.js.map +1 -0
- package/src/services/aes-gcm.d.ts +66 -0
- package/src/services/aes-gcm.d.ts.map +1 -0
- package/src/services/aes-gcm.js +161 -0
- package/src/services/aes-gcm.js.map +1 -0
- package/src/services/chunk-processor.d.ts +15 -0
- package/src/services/chunk-processor.d.ts.map +1 -0
- package/src/services/chunk-processor.js +36 -0
- package/src/services/chunk-processor.js.map +1 -0
- package/src/services/ecies/crypto-core.d.ts +104 -0
- package/src/services/ecies/crypto-core.d.ts.map +1 -0
- package/src/services/ecies/crypto-core.js +234 -0
- package/src/services/ecies/crypto-core.js.map +1 -0
- package/src/services/ecies/file.d.ts +30 -0
- package/src/services/ecies/file.d.ts.map +1 -0
- package/src/services/ecies/file.js +112 -0
- package/src/services/ecies/file.js.map +1 -0
- package/src/services/ecies/index.d.ts +8 -0
- package/src/services/ecies/index.d.ts.map +1 -0
- package/src/services/ecies/index.js +11 -0
- package/src/services/ecies/index.js.map +1 -0
- package/src/services/ecies/multi-recipient.d.ts +84 -0
- package/src/services/ecies/multi-recipient.d.ts.map +1 -0
- package/src/services/ecies/multi-recipient.js +502 -0
- package/src/services/ecies/multi-recipient.js.map +1 -0
- package/src/services/ecies/service.d.ts +75 -0
- package/src/services/ecies/service.d.ts.map +1 -0
- package/src/services/ecies/service.js +152 -0
- package/src/services/ecies/service.js.map +1 -0
- package/src/services/ecies/signature.d.ts +38 -0
- package/src/services/ecies/signature.d.ts.map +1 -0
- package/src/services/ecies/signature.js +70 -0
- package/src/services/ecies/signature.js.map +1 -0
- package/src/services/ecies/single-recipient.d.ts +83 -0
- package/src/services/ecies/single-recipient.d.ts.map +1 -0
- package/src/services/ecies/single-recipient.js +452 -0
- package/src/services/ecies/single-recipient.js.map +1 -0
- package/src/services/ecies/utilities.d.ts +33 -0
- package/src/services/ecies/utilities.d.ts.map +1 -0
- package/src/services/ecies/utilities.js +91 -0
- package/src/services/ecies/utilities.js.map +1 -0
- package/src/services/encryption-stream.d.ts +33 -0
- package/src/services/encryption-stream.d.ts.map +1 -0
- package/src/services/encryption-stream.js +211 -0
- package/src/services/encryption-stream.js.map +1 -0
- package/src/services/index.d.ts +9 -0
- package/src/services/index.d.ts.map +1 -0
- package/src/services/index.js +14 -0
- package/src/services/index.js.map +1 -0
- package/src/services/multi-recipient-processor.d.ts +72 -0
- package/src/services/multi-recipient-processor.d.ts.map +1 -0
- package/src/services/multi-recipient-processor.js +325 -0
- package/src/services/multi-recipient-processor.js.map +1 -0
- package/src/services/pbkdf2.d.ts +105 -0
- package/src/services/pbkdf2.d.ts.map +1 -0
- package/src/services/pbkdf2.js +191 -0
- package/src/services/pbkdf2.js.map +1 -0
- package/src/services/progress-tracker.d.ts +14 -0
- package/src/services/progress-tracker.d.ts.map +1 -0
- package/src/services/progress-tracker.js +94 -0
- package/src/services/progress-tracker.js.map +1 -0
- package/src/services/voting.service.d.ts +262 -0
- package/src/services/voting.service.d.ts.map +1 -0
- package/src/services/voting.service.js +791 -0
- package/src/services/voting.service.js.map +1 -0
- package/src/test-mocks/index.d.ts +2 -0
- package/src/test-mocks/index.d.ts.map +1 -0
- package/src/test-mocks/index.js +5 -0
- package/src/test-mocks/index.js.map +1 -0
- package/src/test-mocks/mock-backend-member.d.ts +76 -0
- package/src/test-mocks/mock-backend-member.d.ts.map +1 -0
- package/src/test-mocks/mock-backend-member.js +139 -0
- package/src/test-mocks/mock-backend-member.js.map +1 -0
- package/src/testing.d.ts +2 -0
- package/src/testing.d.ts.map +1 -0
- package/src/testing.js +6 -0
- package/src/testing.js.map +1 -0
- package/src/types/id-guards.d.ts +39 -0
- package/src/types/id-guards.d.ts.map +1 -0
- package/src/types/id-guards.js +91 -0
- package/src/types/id-guards.js.map +1 -0
- package/src/types/index.d.ts +2 -0
- package/src/types/index.d.ts.map +1 -0
- package/src/types/index.js +5 -0
- package/src/types/index.js.map +1 -0
- package/src/types.d.ts +26 -0
- package/src/types.d.ts.map +1 -0
- package/src/types.js +6 -0
- package/src/types.js.map +1 -0
- package/src/utils.d.ts +11 -0
- package/src/utils.d.ts.map +1 -0
- package/src/utils.js +82 -0
- package/src/utils.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryption-stream.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/encryption-stream.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAEL,aAAa,EACd,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAGtE,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;CAClD;AAED,qBAAa,gBAAgB;IAMzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;gBAGhC,KAAK,EAAE,YAAY,EACnB,MAAM,GAAE,aAAqC,EAC9D,SAAS,CAAC,EAAE,cAAc,EAC1B,uBAAuB,CAAC,EAAE,uBAAuB;IASrC,aAAa,CACzB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,qBAA0B,GAClC,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC;IA2GnC,qBAAqB,CACjC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAC7B,UAAU,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,EACpD,OAAO,GAAE,qBAA0B,GAClC,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAE,OAAO,CAAC;IAuIxC,aAAa,CACzB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAC7B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,qBAA0B,GAClC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;IAyD1B,qBAAqB,CACjC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAC7B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,qBAA0B,GAClC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;CAoEzC"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EncryptionStream = void 0;
|
|
4
|
+
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
5
|
+
/* eslint-disable @typescript-eslint/no-require-imports */
|
|
6
|
+
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
7
|
+
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
8
|
+
const ecies_i18n_factory_1 = require("../i18n/ecies-i18n-factory");
|
|
9
|
+
const node_ecies_i18n_setup_1 = require("../i18n/node-ecies-i18n-setup");
|
|
10
|
+
const stream_config_1 = require("../interfaces/stream-config");
|
|
11
|
+
const chunk_processor_1 = require("./chunk-processor");
|
|
12
|
+
const multi_recipient_processor_1 = require("./multi-recipient-processor");
|
|
13
|
+
const progress_tracker_1 = require("./progress-tracker");
|
|
14
|
+
class EncryptionStream {
|
|
15
|
+
ecies;
|
|
16
|
+
config;
|
|
17
|
+
processor;
|
|
18
|
+
multiRecipientProcessor;
|
|
19
|
+
engine = (0, node_ecies_i18n_setup_1.getNodeEciesI18nEngine)();
|
|
20
|
+
constructor(ecies, config = stream_config_1.DEFAULT_STREAM_CONFIG, processor, multiRecipientProcessor) {
|
|
21
|
+
this.ecies = ecies;
|
|
22
|
+
this.config = config;
|
|
23
|
+
// Use injected dependencies or create defaults
|
|
24
|
+
this.processor = processor ?? new chunk_processor_1.ChunkProcessor(ecies);
|
|
25
|
+
this.multiRecipientProcessor =
|
|
26
|
+
multiRecipientProcessor ??
|
|
27
|
+
new multi_recipient_processor_1.MultiRecipientProcessor(ecies.core, ecies.core.consts);
|
|
28
|
+
}
|
|
29
|
+
async *encryptStream(source, publicKey, options = {}) {
|
|
30
|
+
if (!publicKey || (publicKey.length !== 65 && publicKey.length !== 33)) {
|
|
31
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_InvalidPublicKeyLength));
|
|
32
|
+
}
|
|
33
|
+
const chunkSize = options.chunkSize ?? this.config.chunkSize;
|
|
34
|
+
const includeChecksums = options.includeChecksums ?? this.config.includeChecksums;
|
|
35
|
+
const signal = options.signal;
|
|
36
|
+
const onProgress = options.onProgress;
|
|
37
|
+
let buffer = Buffer.alloc(0);
|
|
38
|
+
let chunkIndex = 0;
|
|
39
|
+
let lastYieldedChunk = null;
|
|
40
|
+
let tracker;
|
|
41
|
+
const maxSingleChunk = 100 * 1024 * 1024;
|
|
42
|
+
for await (const data of source) {
|
|
43
|
+
if (signal?.aborted) {
|
|
44
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_EncryptionCancelled));
|
|
45
|
+
}
|
|
46
|
+
if (data.length > maxSingleChunk) {
|
|
47
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_BufferOverflow));
|
|
48
|
+
}
|
|
49
|
+
buffer = Buffer.concat([buffer, data]);
|
|
50
|
+
if (!tracker && onProgress) {
|
|
51
|
+
tracker = new progress_tracker_1.ProgressTracker();
|
|
52
|
+
}
|
|
53
|
+
while (buffer.length >= chunkSize) {
|
|
54
|
+
if (signal?.aborted) {
|
|
55
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_EncryptionCancelled));
|
|
56
|
+
}
|
|
57
|
+
const chunkData = buffer.subarray(0, chunkSize);
|
|
58
|
+
buffer = buffer.subarray(chunkSize);
|
|
59
|
+
const encryptedChunk = await this.processor.encryptChunk(chunkData, publicKey, chunkIndex++, false, includeChecksums);
|
|
60
|
+
lastYieldedChunk = encryptedChunk;
|
|
61
|
+
yield encryptedChunk;
|
|
62
|
+
if (tracker && onProgress) {
|
|
63
|
+
onProgress(tracker.update(chunkSize));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (buffer.length > 0) {
|
|
68
|
+
if (signal?.aborted) {
|
|
69
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_EncryptionCancelled));
|
|
70
|
+
}
|
|
71
|
+
const encryptedChunk = await this.processor.encryptChunk(buffer, publicKey, chunkIndex, true, includeChecksums);
|
|
72
|
+
yield encryptedChunk;
|
|
73
|
+
if (tracker && onProgress) {
|
|
74
|
+
onProgress(tracker.update(buffer.length));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else if (chunkIndex === 0) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
else if (lastYieldedChunk) {
|
|
81
|
+
lastYieldedChunk.isLast = true;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async *encryptStreamMultiple(source, recipients, options = {}) {
|
|
85
|
+
if (recipients.length === 0) {
|
|
86
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_AtLeastOneRecipientRequired));
|
|
87
|
+
}
|
|
88
|
+
if (recipients.length > 65535) {
|
|
89
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_MaxRecipientsExceeded));
|
|
90
|
+
}
|
|
91
|
+
for (const recipient of recipients) {
|
|
92
|
+
if (!recipient.publicKey ||
|
|
93
|
+
(recipient.publicKey.length !== 65 && recipient.publicKey.length !== 33)) {
|
|
94
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_InvalidRecipientPublicKeyLength));
|
|
95
|
+
}
|
|
96
|
+
if (!recipient.id ||
|
|
97
|
+
recipient.id.length !==
|
|
98
|
+
this.ecies.core.consts.MULTIPLE.RECIPIENT_ID_SIZE) {
|
|
99
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_InvalidRecipientIdLength));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
const chunkSize = options.chunkSize ?? this.config.chunkSize;
|
|
103
|
+
const signal = options.signal;
|
|
104
|
+
const onProgress = options.onProgress;
|
|
105
|
+
const symmetricKey = Buffer.from(require('crypto').randomBytes(32));
|
|
106
|
+
let buffer = Buffer.alloc(0);
|
|
107
|
+
let chunkIndex = 0;
|
|
108
|
+
let tracker;
|
|
109
|
+
const maxSingleChunk = 100 * 1024 * 1024;
|
|
110
|
+
for await (const data of source) {
|
|
111
|
+
if (signal?.aborted) {
|
|
112
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_EncryptionCancelled));
|
|
113
|
+
}
|
|
114
|
+
if (data.length > maxSingleChunk) {
|
|
115
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_BufferOverflow));
|
|
116
|
+
}
|
|
117
|
+
buffer = Buffer.concat([buffer, data]);
|
|
118
|
+
if (!tracker && onProgress) {
|
|
119
|
+
tracker = new progress_tracker_1.ProgressTracker();
|
|
120
|
+
}
|
|
121
|
+
while (buffer.length >= chunkSize) {
|
|
122
|
+
if (signal?.aborted) {
|
|
123
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_EncryptionCancelled));
|
|
124
|
+
}
|
|
125
|
+
const chunkData = buffer.subarray(0, chunkSize);
|
|
126
|
+
buffer = buffer.subarray(chunkSize);
|
|
127
|
+
const encryptedChunk = await this.multiRecipientProcessor.encryptChunk(chunkData, recipients, chunkIndex++, false, symmetricKey);
|
|
128
|
+
yield encryptedChunk;
|
|
129
|
+
if (tracker && onProgress) {
|
|
130
|
+
onProgress(tracker.update(chunkSize));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (buffer.length > 0) {
|
|
135
|
+
if (signal?.aborted) {
|
|
136
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_EncryptionCancelled));
|
|
137
|
+
}
|
|
138
|
+
const encryptedChunk = await this.multiRecipientProcessor.encryptChunk(buffer, recipients, chunkIndex, true, symmetricKey);
|
|
139
|
+
yield encryptedChunk;
|
|
140
|
+
if (tracker && onProgress) {
|
|
141
|
+
onProgress(tracker.update(buffer.length));
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
async *decryptStream(source, privateKey, options = {}) {
|
|
146
|
+
if (!privateKey || privateKey.length !== 32) {
|
|
147
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_InvalidPrivateKeyLength));
|
|
148
|
+
}
|
|
149
|
+
const signal = options.signal;
|
|
150
|
+
const onProgress = options.onProgress;
|
|
151
|
+
let expectedIndex = 0;
|
|
152
|
+
let tracker;
|
|
153
|
+
if (onProgress) {
|
|
154
|
+
tracker = new progress_tracker_1.ProgressTracker();
|
|
155
|
+
}
|
|
156
|
+
for await (const chunkData of source) {
|
|
157
|
+
if (signal?.aborted) {
|
|
158
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_DecryptionCancelled));
|
|
159
|
+
}
|
|
160
|
+
const { data, header } = await this.processor.decryptChunk(chunkData, privateKey);
|
|
161
|
+
if (header.index !== expectedIndex) {
|
|
162
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_ChunkSequenceError));
|
|
163
|
+
}
|
|
164
|
+
expectedIndex++;
|
|
165
|
+
yield data;
|
|
166
|
+
if (tracker && onProgress) {
|
|
167
|
+
onProgress(tracker.update(data.length));
|
|
168
|
+
}
|
|
169
|
+
const isLast = (header.flags & 0x01) !== 0;
|
|
170
|
+
if (isLast) {
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
async *decryptStreamMultiple(source, recipientId, privateKey, options = {}) {
|
|
176
|
+
if (!recipientId ||
|
|
177
|
+
recipientId.length !== this.ecies.core.consts.MULTIPLE.RECIPIENT_ID_SIZE) {
|
|
178
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_InvalidRecipientIdLength));
|
|
179
|
+
}
|
|
180
|
+
if (!privateKey || privateKey.length !== 32) {
|
|
181
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_InvalidPrivateKeyLength));
|
|
182
|
+
}
|
|
183
|
+
const signal = options.signal;
|
|
184
|
+
const onProgress = options.onProgress;
|
|
185
|
+
let expectedIndex = 0;
|
|
186
|
+
let tracker;
|
|
187
|
+
if (onProgress) {
|
|
188
|
+
tracker = new progress_tracker_1.ProgressTracker();
|
|
189
|
+
}
|
|
190
|
+
for await (const chunkData of source) {
|
|
191
|
+
if (signal?.aborted) {
|
|
192
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_DecryptionCancelled));
|
|
193
|
+
}
|
|
194
|
+
const { data, header } = await this.multiRecipientProcessor.decryptChunk(chunkData, recipientId, privateKey);
|
|
195
|
+
if (header.chunkIndex !== expectedIndex) {
|
|
196
|
+
throw new Error(this.engine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_Stream_ChunkSequenceError));
|
|
197
|
+
}
|
|
198
|
+
expectedIndex++;
|
|
199
|
+
yield data;
|
|
200
|
+
if (tracker && onProgress) {
|
|
201
|
+
onProgress(tracker.update(data.length));
|
|
202
|
+
}
|
|
203
|
+
const isLast = (header.flags & 0x01) !== 0;
|
|
204
|
+
if (isLast) {
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
exports.EncryptionStream = EncryptionStream;
|
|
211
|
+
//# sourceMappingURL=encryption-stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryption-stream.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/encryption-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './aes-gcm';
|
|
2
|
+
export * from './chunk-processor';
|
|
3
|
+
export * from './ecies';
|
|
4
|
+
export * from './encryption-stream';
|
|
5
|
+
export * from './multi-recipient-processor';
|
|
6
|
+
export * from './pbkdf2';
|
|
7
|
+
export * from './progress-tracker';
|
|
8
|
+
export { VotingService } from './voting.service';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VotingService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
tslib_1.__exportStar(require("./aes-gcm"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./chunk-processor"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./ecies"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./encryption-stream"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./multi-recipient-processor"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./pbkdf2"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./progress-tracker"), exports);
|
|
12
|
+
var voting_service_1 = require("./voting.service");
|
|
13
|
+
Object.defineProperty(exports, "VotingService", { enumerable: true, get: function () { return voting_service_1.VotingService; } });
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/index.ts"],"names":[],"mappings":";;;;AAAA,oDAA0B;AAC1B,4DAAkC;AAClC,kDAAwB;AACxB,8DAAoC;AACpC,sEAA4C;AAC5C,mDAAyB;AACzB,6DAAmC;AACnC,mDAAiD;AAAxC,+GAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { IECIESConstants } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { IMultiRecipientChunk, IMultiRecipientChunkHeader } from '../interfaces/multi-recipient-chunk';
|
|
3
|
+
import { AESGCMService } from './aes-gcm';
|
|
4
|
+
import { EciesCryptoCore } from './ecies/crypto-core';
|
|
5
|
+
import { EciesMultiRecipient } from './ecies/multi-recipient';
|
|
6
|
+
export interface IMultiRecipient {
|
|
7
|
+
id: Buffer;
|
|
8
|
+
publicKey: Buffer;
|
|
9
|
+
}
|
|
10
|
+
export interface IMultiEncryptedMessage {
|
|
11
|
+
dataLength: number;
|
|
12
|
+
recipientCount: number;
|
|
13
|
+
recipientIds: Buffer[];
|
|
14
|
+
recipientKeys: Buffer[];
|
|
15
|
+
encryptedMessage: Buffer;
|
|
16
|
+
headerSize: number;
|
|
17
|
+
ephemeralPublicKey?: Buffer;
|
|
18
|
+
}
|
|
19
|
+
export declare class MultiRecipientProcessor {
|
|
20
|
+
private readonly aesGcm;
|
|
21
|
+
private readonly cryptoCore;
|
|
22
|
+
private readonly consts;
|
|
23
|
+
private readonly eciesMultiRecipient;
|
|
24
|
+
private readonly constants;
|
|
25
|
+
private readonly recipientIdSize;
|
|
26
|
+
constructor(cryptoCore: EciesCryptoCore, consts?: IECIESConstants, aesGcm?: AESGCMService, eciesMultiRecipient?: EciesMultiRecipient);
|
|
27
|
+
/**
|
|
28
|
+
* Encrypts a message for multiple recipients.
|
|
29
|
+
* Wrapper around EciesMultiRecipient.encryptMultiple for backward compatibility.
|
|
30
|
+
*/
|
|
31
|
+
encryptMultiple(recipients: IMultiRecipient[], message: Buffer, preamble?: Buffer): Promise<IMultiEncryptedMessage>;
|
|
32
|
+
/**
|
|
33
|
+
* Builds the header for a message encrypted for multiple recipients.
|
|
34
|
+
* Wrapper around EciesMultiRecipient.buildECIESMultipleRecipientHeader for backward compatibility.
|
|
35
|
+
*/
|
|
36
|
+
buildHeader(data: IMultiEncryptedMessage): Buffer;
|
|
37
|
+
encryptChunk(data: Buffer, recipients: IMultiRecipient[], chunkIndex: number, isLast: boolean, symmetricKey: Buffer, senderPrivateKey?: Buffer): Promise<IMultiRecipientChunk>;
|
|
38
|
+
decryptChunk(chunkData: Buffer, recipientId: Buffer, privateKey: Buffer, senderPublicKey?: Buffer): Promise<{
|
|
39
|
+
data: Buffer;
|
|
40
|
+
header: IMultiRecipientChunkHeader;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* Decrypts a message encrypted with multiple ECIE for a recipient.
|
|
44
|
+
* Wrapper around EciesMultiRecipient.decryptMultipleECIEForRecipient for backward compatibility.
|
|
45
|
+
*/
|
|
46
|
+
decryptMultipleForRecipient(encryptedData: IMultiEncryptedMessage, recipientId: Buffer, privateKey: Buffer, senderPublicKey?: Buffer): Promise<Buffer>;
|
|
47
|
+
/**
|
|
48
|
+
* Parses a multi-encrypted header.
|
|
49
|
+
* Wrapper around EciesMultiRecipient.parseMultiEncryptedHeader for backward compatibility.
|
|
50
|
+
*/
|
|
51
|
+
parseHeader(data: Buffer): Omit<IMultiEncryptedMessage, 'encryptedMessage'> & {
|
|
52
|
+
headerSize: number;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Parses a multi-encrypted buffer into its components.
|
|
56
|
+
* Wrapper around EciesMultiRecipient.parseMultiEncryptedBuffer for backward compatibility.
|
|
57
|
+
*/
|
|
58
|
+
parseMessage(data: Buffer): IMultiEncryptedMessage;
|
|
59
|
+
/**
|
|
60
|
+
* Encrypts a symmetric key for a recipient.
|
|
61
|
+
* Generates a new ephemeral key pair.
|
|
62
|
+
* Returns [EphemeralPublicKey][EncryptedKey]
|
|
63
|
+
*/
|
|
64
|
+
encryptKey(recipientPublicKey: Buffer, symmetricKey: Buffer): Promise<Buffer>;
|
|
65
|
+
/**
|
|
66
|
+
* Decrypts a symmetric key.
|
|
67
|
+
* Expects [EphemeralPublicKey][EncryptedKey]
|
|
68
|
+
*/
|
|
69
|
+
decryptKey(privateKey: Buffer, encryptedData: Buffer): Promise<Buffer>;
|
|
70
|
+
getHeaderSize(recipientCount: number): number;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=multi-recipient-processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-recipient-processor.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/multi-recipient-processor.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,eAAe,EAEhB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAEL,oBAAoB,EACpB,0BAA0B,EAE3B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAGvC,UAAU,EAAE,eAAe,EAC3B,MAAM,GAAE,eAAiC,EACzC,MAAM,CAAC,EAAE,aAAa,EACtB,mBAAmB,CAAC,EAAE,mBAAmB;IAY3C;;;OAGG;IACU,eAAe,CAC1B,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAwB,GACjC,OAAO,CAAC,sBAAsB,CAAC;IAelC;;;OAGG;IACI,WAAW,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM;IAI3C,YAAY,CACvB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,eAAe,EAAE,EAC7B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,MAAM,EACpB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,oBAAoB,CAAC;IA4JnB,YAAY,CACvB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,0BAA0B,CAAA;KAAE,CAAC;IA8IhE;;;OAGG;IACU,2BAA2B,CACtC,aAAa,EAAE,sBAAsB,EACrC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC;IAclB;;;OAGG;IACI,WAAW,CAChB,IAAI,EAAE,MAAM,GACX,IAAI,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE;IAK5E;;;OAGG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB;IAKzD;;;;OAIG;IACU,UAAU,CACrB,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC;IA2BlB;;;OAGG;IACU,UAAU,CACrB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC;IAeX,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;CAGrD"}
|