@digitaldefiance/ecies-lib 4.8.7 → 4.9.1
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 +8 -8
- package/src/builders/member-builder.d.ts +1 -2
- package/src/builders/member-builder.d.ts.map +1 -1
- package/src/builders/member-builder.js.map +1 -1
- package/src/constants.d.ts +1 -1
- package/src/constants.d.ts.map +1 -1
- package/src/constants.js +2 -0
- package/src/constants.js.map +1 -1
- package/src/interfaces/constants.d.ts +1 -1
- package/src/interfaces/constants.d.ts.map +1 -1
- package/src/interfaces/ecies-consts.d.ts +1 -0
- package/src/interfaces/ecies-consts.d.ts.map +1 -1
- package/src/interfaces/index.d.ts +2 -4
- package/src/interfaces/index.d.ts.map +1 -1
- package/src/interfaces/index.js +2 -5
- package/src/interfaces/index.js.map +1 -1
- package/src/interfaces/isolated-private-key-async.d.ts +13 -0
- package/src/interfaces/isolated-private-key-async.d.ts.map +1 -0
- package/src/interfaces/isolated-private-key-async.js +3 -0
- package/src/interfaces/isolated-private-key-async.js.map +1 -0
- package/src/interfaces/isolated-public-key-async.d.ts +17 -0
- package/src/interfaces/isolated-public-key-async.d.ts.map +1 -0
- package/src/interfaces/isolated-public-key-async.js +3 -0
- package/src/interfaces/isolated-public-key-async.js.map +1 -0
- package/src/interfaces/platform-buffer.d.ts +5 -5
- package/src/interfaces/platform-buffer.d.ts.map +1 -1
- package/src/interfaces/voting-service.d.ts +0 -111
- package/src/interfaces/voting-service.d.ts.map +1 -1
- package/src/interfaces/voting-service.js +0 -7
- package/src/interfaces/voting-service.js.map +1 -1
- package/src/lib/id-providers/index.d.ts +1 -0
- package/src/lib/id-providers/index.d.ts.map +1 -1
- package/src/lib/id-providers/index.js +3 -1
- package/src/lib/id-providers/index.js.map +1 -1
- package/src/lib/id-providers/uint8array-provider.d.ts +54 -0
- package/src/lib/id-providers/uint8array-provider.d.ts.map +1 -0
- package/src/lib/id-providers/uint8array-provider.js +97 -0
- package/src/lib/id-providers/uint8array-provider.js.map +1 -0
- package/src/lib/voting/audit.d.ts +4 -38
- package/src/lib/voting/audit.d.ts.map +1 -1
- package/src/lib/voting/audit.js +8 -10
- package/src/lib/voting/audit.js.map +1 -1
- package/src/lib/voting/bulletin-board.d.ts +4 -56
- package/src/lib/voting/bulletin-board.d.ts.map +1 -1
- package/src/lib/voting/bulletin-board.js.map +1 -1
- package/src/lib/voting/encoder.d.ts +2 -1
- package/src/lib/voting/encoder.d.ts.map +1 -1
- package/src/lib/voting/encoder.js +9 -9
- package/src/lib/voting/encoder.js.map +1 -1
- package/src/lib/voting/enumerations/audit-event-type.d.ts +6 -0
- package/src/lib/voting/enumerations/audit-event-type.d.ts.map +1 -0
- package/src/lib/voting/enumerations/audit-event-type.js +10 -0
- package/src/lib/voting/enumerations/audit-event-type.js.map +1 -0
- package/src/lib/voting/enumerations/event-type.d.ts +9 -0
- package/src/lib/voting/enumerations/event-type.d.ts.map +1 -0
- package/src/lib/voting/enumerations/event-type.js +13 -0
- package/src/lib/voting/enumerations/event-type.js.map +1 -0
- package/src/lib/voting/enumerations/index.d.ts +6 -0
- package/src/lib/voting/enumerations/index.d.ts.map +1 -0
- package/src/lib/voting/enumerations/index.js +9 -0
- package/src/lib/voting/enumerations/index.js.map +1 -0
- package/src/lib/voting/enumerations/jurisdictional-level.d.ts +7 -0
- package/src/lib/voting/enumerations/jurisdictional-level.d.ts.map +1 -0
- package/src/lib/voting/enumerations/jurisdictional-level.js +11 -0
- package/src/lib/voting/enumerations/jurisdictional-level.js.map +1 -0
- package/src/lib/voting/enumerations/security-level.d.ts +6 -0
- package/src/lib/voting/enumerations/security-level.d.ts.map +1 -0
- package/src/lib/voting/enumerations/security-level.js +10 -0
- package/src/lib/voting/enumerations/security-level.js.map +1 -0
- package/src/lib/voting/enumerations/voting-method.d.ts +41 -0
- package/src/lib/voting/enumerations/voting-method.d.ts.map +1 -0
- package/src/lib/voting/{types.js → enumerations/voting-method.js} +1 -1
- package/src/lib/voting/enumerations/voting-method.js.map +1 -0
- package/src/lib/voting/event-logger.d.ts +14 -65
- package/src/lib/voting/event-logger.d.ts.map +1 -1
- package/src/lib/voting/event-logger.js +32 -19
- package/src/lib/voting/event-logger.js.map +1 -1
- package/src/lib/voting/factory.d.ts +2 -2
- package/src/lib/voting/factory.d.ts.map +1 -1
- package/src/lib/voting/factory.js +6 -6
- package/src/lib/voting/factory.js.map +1 -1
- package/src/lib/voting/hierarchical-aggregator.d.ts +72 -0
- package/src/lib/voting/hierarchical-aggregator.d.ts.map +1 -0
- package/src/lib/voting/hierarchical-aggregator.js +234 -0
- package/src/lib/voting/hierarchical-aggregator.js.map +1 -0
- package/src/lib/voting/index.d.ts +8 -5
- package/src/lib/voting/index.d.ts.map +1 -1
- package/src/lib/voting/index.js +12 -7
- package/src/lib/voting/index.js.map +1 -1
- package/src/lib/voting/interfaces/aggregated-tally.d.ts +11 -0
- package/src/lib/voting/interfaces/aggregated-tally.d.ts.map +1 -0
- package/src/{interfaces/member-with-mnemonic.js → lib/voting/interfaces/aggregated-tally.js} +1 -1
- package/src/lib/voting/interfaces/aggregated-tally.js.map +1 -0
- package/src/lib/voting/interfaces/audit-entry.d.ts +25 -0
- package/src/lib/voting/interfaces/audit-entry.d.ts.map +1 -0
- package/src/lib/voting/interfaces/audit-entry.js +3 -0
- package/src/lib/voting/interfaces/audit-entry.js.map +1 -0
- package/src/lib/voting/interfaces/audit-log.d.ts +13 -0
- package/src/lib/voting/interfaces/audit-log.d.ts.map +1 -0
- package/src/lib/voting/interfaces/audit-log.js +3 -0
- package/src/lib/voting/interfaces/audit-log.js.map +1 -0
- package/src/lib/voting/interfaces/bulletin-board-entry.d.ts +20 -0
- package/src/lib/voting/interfaces/bulletin-board-entry.d.ts.map +1 -0
- package/src/lib/voting/interfaces/bulletin-board-entry.js +3 -0
- package/src/lib/voting/interfaces/bulletin-board-entry.js.map +1 -0
- package/src/lib/voting/interfaces/bulletin-board.d.ts +24 -0
- package/src/lib/voting/interfaces/bulletin-board.d.ts.map +1 -0
- package/src/lib/voting/interfaces/bulletin-board.js +3 -0
- package/src/lib/voting/interfaces/bulletin-board.js.map +1 -0
- package/src/lib/voting/interfaces/checkpoint-manager-extended.d.ts +14 -0
- package/src/lib/voting/interfaces/checkpoint-manager-extended.d.ts.map +1 -0
- package/src/lib/voting/interfaces/checkpoint-manager-extended.js +3 -0
- package/src/lib/voting/interfaces/checkpoint-manager-extended.js.map +1 -0
- package/src/lib/voting/interfaces/checkpoint-manager.d.ts +8 -0
- package/src/lib/voting/interfaces/checkpoint-manager.d.ts.map +1 -0
- package/src/lib/voting/interfaces/checkpoint-manager.js +3 -0
- package/src/lib/voting/interfaces/checkpoint-manager.js.map +1 -0
- package/src/lib/voting/interfaces/checkpoint-metadata.d.ts +9 -0
- package/src/lib/voting/interfaces/checkpoint-metadata.d.ts.map +1 -0
- package/src/lib/voting/interfaces/checkpoint-metadata.js +3 -0
- package/src/lib/voting/interfaces/checkpoint-metadata.js.map +1 -0
- package/src/lib/voting/interfaces/ecies-service-with-voting.d.ts +55 -0
- package/src/lib/voting/interfaces/ecies-service-with-voting.d.ts.map +1 -0
- package/src/lib/voting/interfaces/ecies-service-with-voting.js +3 -0
- package/src/lib/voting/interfaces/ecies-service-with-voting.js.map +1 -0
- package/src/lib/voting/interfaces/encrypted-vote.d.ts +23 -0
- package/src/lib/voting/interfaces/encrypted-vote.d.ts.map +1 -0
- package/src/lib/voting/interfaces/encrypted-vote.js +3 -0
- package/src/lib/voting/interfaces/encrypted-vote.js.map +1 -0
- package/src/lib/voting/interfaces/event-log-entry.d.ts +24 -0
- package/src/lib/voting/interfaces/event-log-entry.d.ts.map +1 -0
- package/src/lib/voting/interfaces/event-log-entry.js +3 -0
- package/src/lib/voting/interfaces/event-log-entry.js.map +1 -0
- package/src/lib/voting/interfaces/event-logger.d.ts +25 -0
- package/src/lib/voting/interfaces/event-logger.d.ts.map +1 -0
- package/src/lib/voting/interfaces/event-logger.js +3 -0
- package/src/lib/voting/interfaces/event-logger.js.map +1 -0
- package/src/lib/voting/interfaces/index.d.ts +31 -0
- package/src/lib/voting/interfaces/index.d.ts.map +1 -0
- package/src/lib/voting/interfaces/index.js +5 -0
- package/src/lib/voting/interfaces/index.js.map +1 -0
- package/src/lib/voting/interfaces/jurisdiction-config.d.ts +9 -0
- package/src/lib/voting/interfaces/jurisdiction-config.d.ts.map +1 -0
- package/src/lib/voting/interfaces/jurisdiction-config.js +3 -0
- package/src/lib/voting/interfaces/jurisdiction-config.js.map +1 -0
- package/src/lib/voting/interfaces/plaintext-vote.d.ts +18 -0
- package/src/lib/voting/interfaces/plaintext-vote.d.ts.map +1 -0
- package/src/lib/voting/interfaces/plaintext-vote.js +3 -0
- package/src/lib/voting/interfaces/plaintext-vote.js.map +1 -0
- package/src/lib/voting/interfaces/poll-configuration.d.ts +10 -0
- package/src/lib/voting/interfaces/poll-configuration.d.ts.map +1 -0
- package/src/lib/voting/interfaces/poll-configuration.js +3 -0
- package/src/lib/voting/interfaces/poll-configuration.js.map +1 -0
- package/src/lib/voting/interfaces/poll-results.d.ts +25 -0
- package/src/lib/voting/interfaces/poll-results.d.ts.map +1 -0
- package/src/lib/voting/interfaces/poll-results.js +3 -0
- package/src/lib/voting/interfaces/poll-results.js.map +1 -0
- package/src/lib/voting/interfaces/poll-tallier.d.ts +18 -0
- package/src/lib/voting/interfaces/poll-tallier.d.ts.map +1 -0
- package/src/lib/voting/interfaces/poll-tallier.js +3 -0
- package/src/lib/voting/interfaces/poll-tallier.js.map +1 -0
- package/src/lib/voting/interfaces/poll.d.ts +41 -0
- package/src/lib/voting/interfaces/poll.d.ts.map +1 -0
- package/src/lib/voting/interfaces/poll.js +3 -0
- package/src/lib/voting/interfaces/poll.js.map +1 -0
- package/src/lib/voting/interfaces/round-result.d.ts +15 -0
- package/src/lib/voting/interfaces/round-result.d.ts.map +1 -0
- package/src/lib/voting/interfaces/round-result.js +3 -0
- package/src/lib/voting/interfaces/round-result.js.map +1 -0
- package/src/lib/voting/interfaces/state-snapshot.d.ts +9 -0
- package/src/lib/voting/interfaces/state-snapshot.d.ts.map +1 -0
- package/src/lib/voting/interfaces/state-snapshot.js +3 -0
- package/src/lib/voting/interfaces/state-snapshot.js.map +1 -0
- package/src/lib/voting/interfaces/supermajority-config.d.ts +11 -0
- package/src/lib/voting/interfaces/supermajority-config.d.ts.map +1 -0
- package/src/lib/voting/interfaces/supermajority-config.js +3 -0
- package/src/lib/voting/interfaces/supermajority-config.js.map +1 -0
- package/src/lib/voting/interfaces/tally-proof.d.ts +18 -0
- package/src/lib/voting/interfaces/tally-proof.d.ts.map +1 -0
- package/src/lib/voting/interfaces/tally-proof.js +3 -0
- package/src/lib/voting/interfaces/tally-proof.js.map +1 -0
- package/src/lib/voting/interfaces/vote-encoder.d.ts +59 -0
- package/src/lib/voting/interfaces/vote-encoder.d.ts.map +1 -0
- package/src/lib/voting/interfaces/vote-encoder.js +3 -0
- package/src/lib/voting/interfaces/vote-encoder.js.map +1 -0
- package/src/lib/voting/interfaces/vote-logger-extended.d.ts +15 -0
- package/src/lib/voting/interfaces/vote-logger-extended.d.ts.map +1 -0
- package/src/lib/voting/interfaces/vote-logger-extended.js +3 -0
- package/src/lib/voting/interfaces/vote-logger-extended.js.map +1 -0
- package/src/lib/voting/interfaces/vote-logger.d.ts +11 -0
- package/src/lib/voting/interfaces/vote-logger.d.ts.map +1 -0
- package/src/lib/voting/interfaces/vote-logger.js +3 -0
- package/src/lib/voting/interfaces/vote-logger.js.map +1 -0
- package/src/lib/voting/interfaces/voting-consts.d.ts.map +1 -0
- package/src/lib/voting/interfaces/voting-consts.js.map +1 -0
- package/src/lib/voting/interfaces/voting-key-derivation-options.d.ts +26 -0
- package/src/lib/voting/interfaces/voting-key-derivation-options.d.ts.map +1 -0
- package/src/lib/voting/interfaces/voting-key-derivation-options.js +3 -0
- package/src/lib/voting/interfaces/voting-key-derivation-options.js.map +1 -0
- package/src/lib/voting/interfaces/voting-poll-results.d.ts +20 -0
- package/src/lib/voting/interfaces/voting-poll-results.d.ts.map +1 -0
- package/src/lib/voting/interfaces/voting-poll-results.js +3 -0
- package/src/lib/voting/interfaces/voting-poll-results.js.map +1 -0
- package/src/lib/voting/interfaces/voting-receipt.d.ts +18 -0
- package/src/lib/voting/interfaces/voting-receipt.d.ts.map +1 -0
- package/src/lib/voting/interfaces/voting-receipt.js +3 -0
- package/src/lib/voting/interfaces/voting-receipt.js.map +1 -0
- package/src/lib/voting/interfaces/voting-security-validator.d.ts +37 -0
- package/src/lib/voting/interfaces/voting-security-validator.d.ts.map +1 -0
- package/src/lib/voting/interfaces/voting-security-validator.js +3 -0
- package/src/lib/voting/interfaces/voting-security-validator.js.map +1 -0
- package/src/lib/voting/persistent-state.d.ts +21 -0
- package/src/lib/voting/persistent-state.d.ts.map +1 -0
- package/src/lib/voting/persistent-state.js +32 -0
- package/src/lib/voting/persistent-state.js.map +1 -0
- package/src/lib/voting/poll-core.d.ts +3 -3
- package/src/lib/voting/poll-core.d.ts.map +1 -1
- package/src/lib/voting/poll-core.js +6 -7
- package/src/lib/voting/poll-core.js.map +1 -1
- package/src/lib/voting/security.d.ts +2 -6
- package/src/lib/voting/security.d.ts.map +1 -1
- package/src/lib/voting/security.js +25 -28
- package/src/lib/voting/security.js.map +1 -1
- package/src/lib/voting/tallier.d.ts +5 -5
- package/src/lib/voting/tallier.d.ts.map +1 -1
- package/src/lib/voting/tallier.js +26 -26
- package/src/lib/voting/tallier.js.map +1 -1
- package/src/lib/voting/test-voter-pool.d.ts +16 -0
- package/src/lib/voting/test-voter-pool.d.ts.map +1 -0
- package/src/lib/voting/test-voter-pool.js +65 -0
- package/src/lib/voting/test-voter-pool.js.map +1 -0
- package/src/member.d.ts +8 -1
- package/src/member.d.ts.map +1 -1
- package/src/member.js +6 -6
- package/src/member.js.map +1 -1
- package/src/services/ecies/interfaces/decryption-result.d.ts +5 -0
- package/src/services/ecies/interfaces/decryption-result.d.ts.map +1 -0
- package/src/services/ecies/interfaces/decryption-result.js +3 -0
- package/src/services/ecies/interfaces/decryption-result.js.map +1 -0
- package/src/services/ecies/interfaces/encryption-result.d.ts +7 -0
- package/src/services/ecies/interfaces/encryption-result.d.ts.map +1 -0
- package/src/services/ecies/interfaces/encryption-result.js +3 -0
- package/src/services/ecies/interfaces/encryption-result.js.map +1 -0
- package/src/services/ecies/interfaces/index.d.ts +9 -0
- package/src/services/ecies/interfaces/index.d.ts.map +1 -0
- package/src/services/ecies/interfaces/index.js +3 -0
- package/src/services/ecies/interfaces/index.js.map +1 -0
- package/src/services/ecies/interfaces/multi-encrypted-message.d.ts +11 -0
- package/src/services/ecies/interfaces/multi-encrypted-message.d.ts.map +1 -0
- package/src/services/ecies/interfaces/multi-encrypted-message.js +3 -0
- package/src/services/ecies/interfaces/multi-encrypted-message.js.map +1 -0
- package/src/services/ecies/interfaces/multi-encrypted-parsed-header.d.ts +10 -0
- package/src/services/ecies/interfaces/multi-encrypted-parsed-header.d.ts.map +1 -0
- package/src/services/ecies/interfaces/multi-encrypted-parsed-header.js +3 -0
- package/src/services/ecies/interfaces/multi-encrypted-parsed-header.js.map +1 -0
- package/src/services/ecies/interfaces/multi-recipient.d.ts +6 -0
- package/src/services/ecies/interfaces/multi-recipient.d.ts.map +1 -0
- package/src/services/ecies/interfaces/multi-recipient.js +3 -0
- package/src/services/ecies/interfaces/multi-recipient.js.map +1 -0
- package/src/services/ecies/interfaces/simple-keypair.d.ts +5 -0
- package/src/services/ecies/interfaces/simple-keypair.d.ts.map +1 -0
- package/src/services/ecies/interfaces/simple-keypair.js +3 -0
- package/src/services/ecies/interfaces/simple-keypair.js.map +1 -0
- package/src/services/ecies/interfaces/single-encrypted-parsed-header.d.ts +11 -0
- package/src/services/ecies/interfaces/single-encrypted-parsed-header.d.ts.map +1 -0
- package/src/services/ecies/interfaces/single-encrypted-parsed-header.js +3 -0
- package/src/services/ecies/interfaces/single-encrypted-parsed-header.js.map +1 -0
- package/src/services/ecies/interfaces/wallet-seed.d.ts +6 -0
- package/src/services/ecies/interfaces/wallet-seed.d.ts.map +1 -0
- package/src/services/ecies/interfaces/wallet-seed.js +3 -0
- package/src/services/ecies/interfaces/wallet-seed.js.map +1 -0
- package/src/services/ecies/multi-recipient.d.ts.map +1 -1
- package/src/services/ecies/multi-recipient.js +14 -5
- package/src/services/ecies/multi-recipient.js.map +1 -1
- package/src/interfaces/member-with-mnemonic.d.ts +0 -8
- package/src/interfaces/member-with-mnemonic.d.ts.map +0 -1
- package/src/interfaces/member-with-mnemonic.js.map +0 -1
- package/src/interfaces/voting-consts.d.ts.map +0 -1
- package/src/interfaces/voting-consts.js.map +0 -1
- package/src/interfaces/voting-poll.d.ts +0 -455
- package/src/interfaces/voting-poll.d.ts.map +0 -1
- package/src/interfaces/voting-poll.js +0 -54
- package/src/interfaces/voting-poll.js.map +0 -1
- package/src/lib/voting/poll.d.ts +0 -125
- package/src/lib/voting/poll.d.ts.map +0 -1
- package/src/lib/voting/poll.js +0 -323
- package/src/lib/voting/poll.js.map +0 -1
- package/src/lib/voting/types.d.ts +0 -146
- package/src/lib/voting/types.d.ts.map +0 -1
- package/src/lib/voting/types.js.map +0 -1
- package/src/services/ecies/interfaces.d.ts +0 -55
- package/src/services/ecies/interfaces.d.ts.map +0 -1
- package/src/services/ecies/interfaces.js +0 -6
- package/src/services/ecies/interfaces.js.map +0 -1
- /package/src/{interfaces → lib/voting/interfaces}/voting-consts.d.ts +0 -0
- /package/src/{interfaces → lib/voting/interfaces}/voting-consts.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-level.d.ts","sourceRoot":"","sources":["../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/enumerations/security-level.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,gBAAgB,sBAAsB,CAAE,6BAA6B;IACrE,UAAU,gBAAgB,CAAE,mCAAmC;IAC/D,QAAQ,aAAa;CACtB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SecurityLevel = void 0;
|
|
4
|
+
var SecurityLevel;
|
|
5
|
+
(function (SecurityLevel) {
|
|
6
|
+
SecurityLevel["FullyHomomorphic"] = "fully-homomorphic";
|
|
7
|
+
SecurityLevel["MultiRound"] = "multi-round";
|
|
8
|
+
SecurityLevel["Insecure"] = "insecure";
|
|
9
|
+
})(SecurityLevel || (exports.SecurityLevel = SecurityLevel = {}));
|
|
10
|
+
//# sourceMappingURL=security-level.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-level.js","sourceRoot":"","sources":["../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/enumerations/security-level.ts"],"names":[],"mappings":";;;AAAA,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,uDAAsC,CAAA;IACtC,2CAA0B,CAAA;IAC1B,sCAAqB,CAAA;AACvB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Voting methods supported by the poll system.
|
|
3
|
+
*
|
|
4
|
+
* Methods are classified by security level:
|
|
5
|
+
* - Fully Homomorphic: Single-round, privacy-preserving (no intermediate decryption)
|
|
6
|
+
* - Multi-Round: Requires decryption between rounds (less secure)
|
|
7
|
+
* - Insecure: Cannot be made secure with Paillier encryption
|
|
8
|
+
*/
|
|
9
|
+
export declare enum VotingMethod {
|
|
10
|
+
/** First-past-the-post voting - most votes wins */
|
|
11
|
+
Plurality = "plurality",
|
|
12
|
+
/** Approval voting - vote for multiple candidates */
|
|
13
|
+
Approval = "approval",
|
|
14
|
+
/** Weighted voting - stakeholder voting with configurable weights */
|
|
15
|
+
Weighted = "weighted",
|
|
16
|
+
/** Borda count - ranked voting with point allocation */
|
|
17
|
+
Borda = "borda",
|
|
18
|
+
/** Score voting - rate candidates 0-10 */
|
|
19
|
+
Score = "score",
|
|
20
|
+
/** Yes/No referendum */
|
|
21
|
+
YesNo = "yes-no",
|
|
22
|
+
/** Yes/No/Abstain referendum with abstention option */
|
|
23
|
+
YesNoAbstain = "yes-no-abstain",
|
|
24
|
+
/** Supermajority - requires 2/3 or 3/4 threshold */
|
|
25
|
+
Supermajority = "supermajority",
|
|
26
|
+
/** Ranked choice voting (IRV) - instant runoff with elimination */
|
|
27
|
+
RankedChoice = "ranked-choice",
|
|
28
|
+
/** Two-round voting - top 2 runoff election */
|
|
29
|
+
TwoRound = "two-round",
|
|
30
|
+
/** STAR voting - Score Then Automatic Runoff */
|
|
31
|
+
STAR = "star",
|
|
32
|
+
/** Single Transferable Vote - proportional representation */
|
|
33
|
+
STV = "stv",
|
|
34
|
+
/** Quadratic voting - requires sqrt operation (not homomorphic) */
|
|
35
|
+
Quadratic = "quadratic",
|
|
36
|
+
/** Consensus voting - requires 95%+ agreement (no privacy) */
|
|
37
|
+
Consensus = "consensus",
|
|
38
|
+
/** Consent-based voting - sociocracy style (no privacy) */
|
|
39
|
+
ConsentBased = "consent-based"
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=voting-method.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voting-method.d.ts","sourceRoot":"","sources":["../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/enumerations/voting-method.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,oBAAY,YAAY;IAEtB,mDAAmD;IACnD,SAAS,cAAc;IACvB,qDAAqD;IACrD,QAAQ,aAAa;IACrB,qEAAqE;IACrE,QAAQ,aAAa;IACrB,wDAAwD;IACxD,KAAK,UAAU;IACf,0CAA0C;IAC1C,KAAK,UAAU;IACf,wBAAwB;IACxB,KAAK,WAAW;IAChB,uDAAuD;IACvD,YAAY,mBAAmB;IAC/B,oDAAoD;IACpD,aAAa,kBAAkB;IAG/B,mEAAmE;IACnE,YAAY,kBAAkB;IAC9B,+CAA+C;IAC/C,QAAQ,cAAc;IACtB,gDAAgD;IAChD,IAAI,SAAS;IACb,6DAA6D;IAC7D,GAAG,QAAQ;IAGX,mEAAmE;IACnE,SAAS,cAAc;IACvB,8DAA8D;IAC9D,SAAS,cAAc;IACvB,2DAA2D;IAC3D,YAAY,kBAAkB;CAC/B"}
|
|
@@ -45,4 +45,4 @@ var VotingMethod;
|
|
|
45
45
|
/** Consent-based voting - sociocracy style (no privacy) */
|
|
46
46
|
VotingMethod["ConsentBased"] = "consent-based";
|
|
47
47
|
})(VotingMethod || (exports.VotingMethod = VotingMethod = {}));
|
|
48
|
-
//# sourceMappingURL=
|
|
48
|
+
//# sourceMappingURL=voting-method.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voting-method.js","sourceRoot":"","sources":["../../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/enumerations/voting-method.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,IAAY,YAoCX;AApCD,WAAY,YAAY;IACtB,yDAAyD;IACzD,mDAAmD;IACnD,uCAAuB,CAAA;IACvB,qDAAqD;IACrD,qCAAqB,CAAA;IACrB,qEAAqE;IACrE,qCAAqB,CAAA;IACrB,wDAAwD;IACxD,+BAAe,CAAA;IACf,0CAA0C;IAC1C,+BAAe,CAAA;IACf,wBAAwB;IACxB,gCAAgB,CAAA;IAChB,uDAAuD;IACvD,+CAA+B,CAAA;IAC/B,oDAAoD;IACpD,+CAA+B,CAAA;IAE/B,sDAAsD;IACtD,mEAAmE;IACnE,8CAA8B,CAAA;IAC9B,+CAA+C;IAC/C,sCAAsB,CAAA;IACtB,gDAAgD;IAChD,6BAAa,CAAA;IACb,6DAA6D;IAC7D,2BAAW,CAAA;IAEX,4EAA4E;IAC5E,mEAAmE;IACnE,uCAAuB,CAAA;IACvB,8DAA8D;IAC9D,uCAAuB,CAAA;IACvB,2DAA2D;IAC3D,8CAA8B,CAAA;AAChC,CAAC,EApCW,YAAY,4BAAZ,YAAY,QAoCvB"}
|
|
@@ -1,73 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
TallyComputed = "tally_computed",
|
|
7
|
-
AuditRequested = "audit_requested"
|
|
8
|
-
}
|
|
9
|
-
export interface PollConfiguration {
|
|
10
|
-
readonly method: string;
|
|
11
|
-
readonly choices: string[];
|
|
12
|
-
readonly maxWeight?: bigint;
|
|
13
|
-
readonly threshold?: {
|
|
14
|
-
numerator: number;
|
|
15
|
-
denominator: number;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
export interface EventLogEntry {
|
|
19
|
-
/** Sequence number (monotonically increasing) */
|
|
20
|
-
readonly sequence: number;
|
|
21
|
-
/** Event type */
|
|
22
|
-
readonly eventType: EventType;
|
|
23
|
-
/** Microsecond-precision timestamp */
|
|
24
|
-
readonly timestamp: number;
|
|
25
|
-
/** Poll identifier */
|
|
26
|
-
readonly pollId: Uint8Array;
|
|
27
|
-
/** Creator/authority ID (for creation/closure events) */
|
|
28
|
-
readonly creatorId?: Uint8Array;
|
|
29
|
-
/** Anonymized voter token (for vote events) */
|
|
30
|
-
readonly voterToken?: Uint8Array;
|
|
31
|
-
/** Poll configuration (for creation events) */
|
|
32
|
-
readonly configuration?: PollConfiguration;
|
|
33
|
-
/** Final tally hash (for closure events) */
|
|
34
|
-
readonly tallyHash?: Uint8Array;
|
|
35
|
-
/** Additional metadata */
|
|
36
|
-
readonly metadata?: Record<string, unknown>;
|
|
37
|
-
}
|
|
38
|
-
export interface EventLogger {
|
|
39
|
-
/** Log poll creation event */
|
|
40
|
-
logPollCreated(pollId: Uint8Array, creatorId: Uint8Array, configuration: PollConfiguration): EventLogEntry;
|
|
41
|
-
/** Log vote cast event */
|
|
42
|
-
logVoteCast(pollId: Uint8Array, voterToken: Uint8Array, metadata?: Record<string, unknown>): EventLogEntry;
|
|
43
|
-
/** Log poll closure event */
|
|
44
|
-
logPollClosed(pollId: Uint8Array, tallyHash: Uint8Array, metadata?: Record<string, unknown>): EventLogEntry;
|
|
45
|
-
/** Log generic event */
|
|
46
|
-
logEvent(eventType: EventType, pollId: Uint8Array, data?: Partial<Omit<EventLogEntry, 'sequence' | 'timestamp' | 'eventType' | 'pollId'>>): EventLogEntry;
|
|
47
|
-
/** Get all events */
|
|
48
|
-
getEvents(): readonly EventLogEntry[];
|
|
49
|
-
/** Get events for specific poll */
|
|
50
|
-
getEventsForPoll(pollId: Uint8Array): readonly EventLogEntry[];
|
|
51
|
-
/** Get events by type */
|
|
52
|
-
getEventsByType(eventType: EventType): readonly EventLogEntry[];
|
|
53
|
-
/** Verify sequence integrity */
|
|
54
|
-
verifySequence(): boolean;
|
|
55
|
-
/** Export events for archival */
|
|
56
|
-
export(): Uint8Array;
|
|
57
|
-
}
|
|
1
|
+
import type { PlatformID } from '../../interfaces';
|
|
2
|
+
import { EventType } from './enumerations/event-type';
|
|
3
|
+
import { EventLogEntry } from './interfaces/event-log-entry';
|
|
4
|
+
import { EventLogger } from './interfaces/event-logger';
|
|
5
|
+
import { PollConfiguration } from './interfaces/poll-configuration';
|
|
58
6
|
/**
|
|
59
7
|
* Comprehensive event logger with sequence tracking
|
|
60
8
|
*/
|
|
61
|
-
export declare class PollEventLogger implements EventLogger {
|
|
9
|
+
export declare class PollEventLogger<TID extends PlatformID = Uint8Array> implements EventLogger<TID> {
|
|
62
10
|
private readonly events;
|
|
63
11
|
private sequence;
|
|
64
|
-
logPollCreated(pollId:
|
|
65
|
-
logVoteCast(pollId:
|
|
66
|
-
logPollClosed(pollId:
|
|
67
|
-
logEvent(eventType: EventType, pollId:
|
|
68
|
-
getEvents(): readonly EventLogEntry[];
|
|
69
|
-
getEventsForPoll(pollId:
|
|
70
|
-
getEventsByType(eventType: EventType): readonly EventLogEntry[];
|
|
12
|
+
logPollCreated(pollId: TID, creatorId: TID, configuration: PollConfiguration): EventLogEntry<TID>;
|
|
13
|
+
logVoteCast(pollId: TID, voterToken: Uint8Array, metadata?: Record<string, unknown>): EventLogEntry<TID>;
|
|
14
|
+
logPollClosed(pollId: TID, tallyHash: Uint8Array, metadata?: Record<string, unknown>): EventLogEntry<TID>;
|
|
15
|
+
logEvent(eventType: EventType, pollId: TID, data?: Partial<Omit<EventLogEntry<TID>, 'sequence' | 'timestamp' | 'eventType' | 'pollId'>>): EventLogEntry<TID>;
|
|
16
|
+
getEvents(): readonly EventLogEntry<TID>[];
|
|
17
|
+
getEventsForPoll(pollId: TID): readonly EventLogEntry<TID>[];
|
|
18
|
+
getEventsByType(eventType: EventType): readonly EventLogEntry<TID>[];
|
|
71
19
|
verifySequence(): boolean;
|
|
72
20
|
export(): Uint8Array;
|
|
73
21
|
private appendEvent;
|
|
@@ -78,4 +26,5 @@ export declare class PollEventLogger implements EventLogger {
|
|
|
78
26
|
private concat;
|
|
79
27
|
private toHex;
|
|
80
28
|
}
|
|
29
|
+
export { EventType } from './enumerations/event-type';
|
|
81
30
|
//# sourceMappingURL=event-logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-logger.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/event-logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event-logger.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/event-logger.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAuB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE;;GAEG;AACH,qBAAa,eAAe,CAC1B,GAAG,SAAS,UAAU,GAAG,UAAU,CACnC,YAAW,WAAW,CAAC,GAAG,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAK;IAErB,cAAc,CACZ,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,GAAG,EACd,aAAa,EAAE,iBAAiB,GAC/B,aAAa,CAAC,GAAG,CAAC;IASrB,WAAW,CACT,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,UAAU,EACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,aAAa,CAAC,GAAG,CAAC;IASrB,aAAa,CACX,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,UAAU,EACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,aAAa,CAAC,GAAG,CAAC;IASrB,QAAQ,CACN,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,GAAG,EACX,IAAI,CAAC,EAAE,OAAO,CACZ,IAAI,CACF,aAAa,CAAC,GAAG,CAAC,EAClB,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAClD,CACF,GACA,aAAa,CAAC,GAAG,CAAC;IAQrB,SAAS,IAAI,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE;IAI1C,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE;IAiB5D,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE;IAIpE,cAAc,IAAI,OAAO;IASzB,MAAM,IAAI,UAAU;IAYpB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,cAAc;IA2EtB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,KAAK;CAKd;AAGD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
EventType["AuditRequested"] = "audit_requested";
|
|
12
|
-
})(EventType || (exports.EventType = EventType = {}));
|
|
3
|
+
exports.EventType = exports.PollEventLogger = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Event Logger for Government-Grade Voting
|
|
6
|
+
* Implements requirement 1.3: Comprehensive event logging with microsecond timestamps
|
|
7
|
+
*/
|
|
8
|
+
const constants_1 = require("../../constants");
|
|
9
|
+
const event_type_1 = require("./enumerations/event-type");
|
|
10
|
+
const Constants = (0, constants_1.getRuntimeConfiguration)();
|
|
13
11
|
/**
|
|
14
12
|
* Comprehensive event logger with sequence tracking
|
|
15
13
|
*/
|
|
@@ -18,7 +16,7 @@ class PollEventLogger {
|
|
|
18
16
|
sequence = 0;
|
|
19
17
|
logPollCreated(pollId, creatorId, configuration) {
|
|
20
18
|
return this.appendEvent({
|
|
21
|
-
eventType: EventType.PollCreated,
|
|
19
|
+
eventType: event_type_1.EventType.PollCreated,
|
|
22
20
|
pollId,
|
|
23
21
|
creatorId,
|
|
24
22
|
configuration,
|
|
@@ -26,7 +24,7 @@ class PollEventLogger {
|
|
|
26
24
|
}
|
|
27
25
|
logVoteCast(pollId, voterToken, metadata) {
|
|
28
26
|
return this.appendEvent({
|
|
29
|
-
eventType: EventType.VoteCast,
|
|
27
|
+
eventType: event_type_1.EventType.VoteCast,
|
|
30
28
|
pollId,
|
|
31
29
|
voterToken,
|
|
32
30
|
metadata,
|
|
@@ -34,7 +32,7 @@ class PollEventLogger {
|
|
|
34
32
|
}
|
|
35
33
|
logPollClosed(pollId, tallyHash, metadata) {
|
|
36
34
|
return this.appendEvent({
|
|
37
|
-
eventType: EventType.PollClosed,
|
|
35
|
+
eventType: event_type_1.EventType.PollClosed,
|
|
38
36
|
pollId,
|
|
39
37
|
tallyHash,
|
|
40
38
|
metadata,
|
|
@@ -51,8 +49,16 @@ class PollEventLogger {
|
|
|
51
49
|
return Object.freeze([...this.events]);
|
|
52
50
|
}
|
|
53
51
|
getEventsForPoll(pollId) {
|
|
54
|
-
const
|
|
55
|
-
|
|
52
|
+
const pollIdBytes = pollId instanceof Uint8Array
|
|
53
|
+
? pollId
|
|
54
|
+
: Constants.idProvider.toBytes(pollId);
|
|
55
|
+
const pollIdStr = this.toHex(pollIdBytes);
|
|
56
|
+
return Object.freeze(this.events.filter((e) => {
|
|
57
|
+
const eventPollIdBytes = e.pollId instanceof Uint8Array
|
|
58
|
+
? e.pollId
|
|
59
|
+
: Constants.idProvider.toBytes(e.pollId);
|
|
60
|
+
return this.toHex(eventPollIdBytes) === pollIdStr;
|
|
61
|
+
}));
|
|
56
62
|
}
|
|
57
63
|
getEventsByType(eventType) {
|
|
58
64
|
return Object.freeze(this.events.filter((e) => e.eventType === eventType));
|
|
@@ -83,15 +89,19 @@ class PollEventLogger {
|
|
|
83
89
|
return entry;
|
|
84
90
|
}
|
|
85
91
|
serializeEvent(event) {
|
|
92
|
+
const pollIdBytes = Constants.idProvider.toBytes(event.pollId);
|
|
93
|
+
const creatorIdBytes = event.creatorId
|
|
94
|
+
? Constants.idProvider.toBytes(event.creatorId)
|
|
95
|
+
: undefined;
|
|
86
96
|
const parts = [
|
|
87
97
|
this.encodeNumber(event.sequence),
|
|
88
98
|
this.encodeNumber(event.timestamp),
|
|
89
99
|
this.encodeString(event.eventType),
|
|
90
|
-
this.encodeNumber(
|
|
91
|
-
|
|
100
|
+
this.encodeNumber(pollIdBytes.length),
|
|
101
|
+
pollIdBytes,
|
|
92
102
|
];
|
|
93
|
-
if (
|
|
94
|
-
parts.push(this.encodeNumber(1), this.encodeNumber(
|
|
103
|
+
if (creatorIdBytes) {
|
|
104
|
+
parts.push(this.encodeNumber(1), this.encodeNumber(creatorIdBytes.length), creatorIdBytes);
|
|
95
105
|
}
|
|
96
106
|
else {
|
|
97
107
|
parts.push(this.encodeNumber(0));
|
|
@@ -162,4 +172,7 @@ class PollEventLogger {
|
|
|
162
172
|
}
|
|
163
173
|
}
|
|
164
174
|
exports.PollEventLogger = PollEventLogger;
|
|
175
|
+
// Re-export for convenience
|
|
176
|
+
var event_type_2 = require("./enumerations/event-type");
|
|
177
|
+
Object.defineProperty(exports, "EventType", { enumerable: true, get: function () { return event_type_2.EventType; } });
|
|
165
178
|
//# sourceMappingURL=event-logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-logger.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/event-logger.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"event-logger.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/event-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { PlatformID } from '../../interfaces';
|
|
1
|
+
import type { PlatformID } from '../../interfaces';
|
|
2
2
|
import { Member } from '../../member';
|
|
3
|
+
import { VotingMethod } from './enumerations';
|
|
3
4
|
import { Poll } from './poll-core';
|
|
4
|
-
import { VotingMethod } from './types';
|
|
5
5
|
export declare class PollFactory {
|
|
6
6
|
/**
|
|
7
7
|
* Create a new poll with specified method
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/factory.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/factory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,qBAAa,WAAW;IACtB;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,UAAU,EAClC,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,IAAI,CAAC,GAAG,CAAC;IAkBZ;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,SAAS,UAAU,EAC3C,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,GACrB,IAAI,CAAC,GAAG,CAAC;IAIZ;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,SAAS,UAAU,EAC1C,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,GACrB,IAAI,CAAC,GAAG,CAAC;IAIZ;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,SAAS,UAAU,EAC1C,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,EACtB,SAAS,EAAE,MAAM,GAChB,IAAI,CAAC,GAAG,CAAC;IAMZ;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,UAAU,EACvC,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,GACrB,IAAI,CAAC,GAAG,CAAC;IAIZ;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,GAAG,SAAS,UAAU,EAC9C,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,GACrB,IAAI,CAAC,GAAG,CAAC;CAGb"}
|
|
@@ -6,8 +6,8 @@ exports.PollFactory = void 0;
|
|
|
6
6
|
* Browser compatible
|
|
7
7
|
*/
|
|
8
8
|
const constants_1 = require("../../constants");
|
|
9
|
+
const enumerations_1 = require("./enumerations");
|
|
9
10
|
const poll_core_1 = require("./poll-core");
|
|
10
|
-
const types_1 = require("./types");
|
|
11
11
|
class PollFactory {
|
|
12
12
|
/**
|
|
13
13
|
* Create a new poll with specified method
|
|
@@ -24,19 +24,19 @@ class PollFactory {
|
|
|
24
24
|
* Create a plurality poll (simple majority)
|
|
25
25
|
*/
|
|
26
26
|
static createPlurality(choices, authority) {
|
|
27
|
-
return this.create(choices,
|
|
27
|
+
return this.create(choices, enumerations_1.VotingMethod.Plurality, authority);
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Create an approval voting poll
|
|
31
31
|
*/
|
|
32
32
|
static createApproval(choices, authority) {
|
|
33
|
-
return this.create(choices,
|
|
33
|
+
return this.create(choices, enumerations_1.VotingMethod.Approval, authority);
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Create a weighted voting poll
|
|
37
37
|
*/
|
|
38
38
|
static createWeighted(choices, authority, maxWeight) {
|
|
39
|
-
return this.create(choices,
|
|
39
|
+
return this.create(choices, enumerations_1.VotingMethod.Weighted, authority, {
|
|
40
40
|
maxWeight,
|
|
41
41
|
});
|
|
42
42
|
}
|
|
@@ -44,13 +44,13 @@ class PollFactory {
|
|
|
44
44
|
* Create a Borda count poll
|
|
45
45
|
*/
|
|
46
46
|
static createBorda(choices, authority) {
|
|
47
|
-
return this.create(choices,
|
|
47
|
+
return this.create(choices, enumerations_1.VotingMethod.Borda, authority);
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
50
|
* Create a ranked choice (IRV) poll
|
|
51
51
|
*/
|
|
52
52
|
static createRankedChoice(choices, authority) {
|
|
53
|
-
return this.create(choices,
|
|
53
|
+
return this.create(choices, enumerations_1.VotingMethod.RankedChoice, authority);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
exports.PollFactory = PollFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/factory.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,+CAA4C;AAG5C,
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/factory.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,+CAA4C;AAG5C,iDAA8C;AAC9C,2CAAmC;AAEnC,MAAa,WAAW;IACtB;;OAEG;IACH,MAAM,CAAC,MAAM,CACX,OAAiB,EACjB,MAAoB,EACpB,SAAsB,EACtB,OAEC;QAED,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,mBAAmB;QACnB,MAAM,EAAE,GAAG,qBAAS,CAAC,UAAU,CAAC,QAAQ,EAAS,CAAC;QAElD,OAAO,IAAI,gBAAI,CACb,EAAE,EACF,OAAO,EACP,MAAM,EACN,SAAS,EACT,SAAS,CAAC,eAAe,EACzB,OAAO,EAAE,SAAS,CACnB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,OAAiB,EACjB,SAAsB;QAEtB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,2BAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,OAAiB,EACjB,SAAsB;QAEtB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,2BAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,OAAiB,EACjB,SAAsB,EACtB,SAAiB;QAEjB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,2BAAY,CAAC,QAAQ,EAAE,SAAS,EAAE;YAC5D,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAChB,OAAiB,EACjB,SAAsB;QAEtB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,2BAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,kBAAkB,CACvB,OAAiB,EACjB,SAAsB;QAEtB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,2BAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;CACF;AAjFD,kCAiFC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hierarchical Vote Aggregator for U.S. Scale Elections
|
|
3
|
+
* Handles millions of votes through precinct → county → state → national aggregation
|
|
4
|
+
*/
|
|
5
|
+
import type { PublicKey } from 'paillier-bigint';
|
|
6
|
+
import type { IMember, PlatformID } from '../../interfaces';
|
|
7
|
+
import { AggregatedTally } from './interfaces/aggregated-tally';
|
|
8
|
+
import { ICheckpointManager } from './interfaces/checkpoint-manager';
|
|
9
|
+
import { EncryptedVote } from './interfaces/encrypted-vote';
|
|
10
|
+
import { JurisdictionConfig } from './interfaces/jurisdiction-config';
|
|
11
|
+
import { IVoteLogger } from './interfaces/vote-logger';
|
|
12
|
+
import { Poll } from './poll-core';
|
|
13
|
+
/**
|
|
14
|
+
* Precinct-level aggregator - handles ~900 votes in memory
|
|
15
|
+
* Optional persistence via injected logger/checkpoint manager
|
|
16
|
+
*/
|
|
17
|
+
export declare class PrecinctAggregator<TID extends PlatformID = Uint8Array> {
|
|
18
|
+
private readonly poll;
|
|
19
|
+
private readonly config;
|
|
20
|
+
private readonly logger?;
|
|
21
|
+
private readonly checkpointMgr?;
|
|
22
|
+
private checkpointInterval;
|
|
23
|
+
constructor(poll: Poll<TID>, config: JurisdictionConfig<TID>, logger?: IVoteLogger<TID>, checkpointMgr?: ICheckpointManager<TID>);
|
|
24
|
+
vote(voter: IMember<TID>, vote: EncryptedVote<TID>): Promise<void>;
|
|
25
|
+
getTally(): AggregatedTally<TID>;
|
|
26
|
+
close(): void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* County-level aggregator - combines precinct tallies
|
|
30
|
+
*/
|
|
31
|
+
export declare class CountyAggregator<TID extends PlatformID = Uint8Array> {
|
|
32
|
+
private readonly config;
|
|
33
|
+
private readonly precinctTallies;
|
|
34
|
+
private readonly votingPublicKey;
|
|
35
|
+
constructor(config: JurisdictionConfig<TID>, votingPublicKey: PublicKey);
|
|
36
|
+
/**
|
|
37
|
+
* Add precinct tally to county aggregate
|
|
38
|
+
*/
|
|
39
|
+
addPrecinctTally(tally: AggregatedTally<TID>): void;
|
|
40
|
+
/**
|
|
41
|
+
* Get aggregated county tally
|
|
42
|
+
*/
|
|
43
|
+
getTally(): AggregatedTally<TID>;
|
|
44
|
+
private toKey;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* State-level aggregator - combines county tallies
|
|
48
|
+
*/
|
|
49
|
+
export declare class StateAggregator<TID extends PlatformID = Uint8Array> {
|
|
50
|
+
private readonly config;
|
|
51
|
+
private readonly countyTallies;
|
|
52
|
+
private readonly votingPublicKey;
|
|
53
|
+
constructor(config: JurisdictionConfig<TID>, votingPublicKey: PublicKey);
|
|
54
|
+
addCountyTally(tally: AggregatedTally<TID>): void;
|
|
55
|
+
getTally(): AggregatedTally<TID>;
|
|
56
|
+
private toKey;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* National-level aggregator - combines state tallies and decrypts final result
|
|
60
|
+
*/
|
|
61
|
+
export declare class NationalAggregator<TID extends PlatformID = Uint8Array> {
|
|
62
|
+
private readonly config;
|
|
63
|
+
private readonly stateTallies;
|
|
64
|
+
private readonly votingPublicKey;
|
|
65
|
+
constructor(config: JurisdictionConfig<TID>, votingPublicKey: PublicKey);
|
|
66
|
+
addStateTally(tally: AggregatedTally<TID>): void;
|
|
67
|
+
getTally(): AggregatedTally<TID>;
|
|
68
|
+
private toKey;
|
|
69
|
+
}
|
|
70
|
+
export { JurisdictionLevel } from './enumerations/jurisdictional-level';
|
|
71
|
+
export type { JurisdictionConfig } from './interfaces/jurisdiction-config';
|
|
72
|
+
//# sourceMappingURL=hierarchical-aggregator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hierarchical-aggregator.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/hierarchical-aggregator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;GAGG;AACH,qBAAa,kBAAkB,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IACjE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAA0B;IACzD,OAAO,CAAC,kBAAkB,CAAO;gBAG/B,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EACf,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAC/B,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,EACzB,aAAa,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC;IAWnC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAexE,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC;IAoBhC,KAAK,IAAI,IAAI;CAGd;AAED;;GAEG;AACH,qBAAa,gBAAgB,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2C;IAC3E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAY;gBAEhC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,SAAS;IAQvE;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI;IAKnD;;OAEG;IACH,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC;IAmChC,OAAO,CAAC,KAAK;CAQd;AAED;;GAEG;AACH,qBAAa,eAAe,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2C;IACzE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAY;gBAEhC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,SAAS;IAQvE,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI;IAKjD,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC;IAkChC,OAAO,CAAC,KAAK;CAQd;AAED;;GAEG;AACH,qBAAa,kBAAkB,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IACjE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2C;IACxE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAY;gBAEhC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,SAAS;IAQvE,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI;IAKhD,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC;IAkChC,OAAO,CAAC,KAAK;CAQd;AAGD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC"}
|