@digitaldefiance/node-ecies-lib 4.6.4 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/package.json +2 -2
  2. package/src/constants.d.ts.map +1 -1
  3. package/src/constants.js.map +1 -1
  4. package/src/index.d.ts +1 -1
  5. package/src/index.d.ts.map +1 -1
  6. package/src/index.js +0 -1
  7. package/src/index.js.map +1 -1
  8. package/src/lib/index.d.ts +1 -0
  9. package/src/lib/index.d.ts.map +1 -1
  10. package/src/lib/index.js +1 -0
  11. package/src/lib/index.js.map +1 -1
  12. package/src/lib/voting/audit.d.ts +44 -0
  13. package/src/lib/voting/audit.d.ts.map +1 -0
  14. package/src/lib/voting/audit.js +129 -0
  15. package/src/lib/voting/audit.js.map +1 -0
  16. package/src/lib/voting/encoder.d.ts +22 -0
  17. package/src/lib/voting/encoder.d.ts.map +1 -0
  18. package/src/lib/voting/encoder.js +115 -0
  19. package/src/lib/voting/encoder.js.map +1 -0
  20. package/src/lib/voting/factory.d.ts +14 -0
  21. package/src/lib/voting/factory.d.ts.map +1 -0
  22. package/src/lib/voting/factory.js +36 -0
  23. package/src/lib/voting/factory.js.map +1 -0
  24. package/src/lib/voting/index.d.ts +11 -0
  25. package/src/lib/voting/index.d.ts.map +1 -0
  26. package/src/lib/voting/index.js +24 -0
  27. package/src/lib/voting/index.js.map +1 -0
  28. package/src/lib/voting/poll-core.d.ts +34 -0
  29. package/src/lib/voting/poll-core.d.ts.map +1 -0
  30. package/src/lib/voting/poll-core.js +183 -0
  31. package/src/lib/voting/poll-core.js.map +1 -0
  32. package/src/lib/voting/security.d.ts +21 -0
  33. package/src/lib/voting/security.d.ts.map +1 -0
  34. package/src/lib/voting/security.js +54 -0
  35. package/src/lib/voting/security.js.map +1 -0
  36. package/src/lib/voting/tallier.d.ts +27 -0
  37. package/src/lib/voting/tallier.d.ts.map +1 -0
  38. package/src/lib/voting/tallier.js +373 -0
  39. package/src/lib/voting/tallier.js.map +1 -0
  40. package/src/lib/voting/types.d.ts +66 -0
  41. package/src/lib/voting/types.d.ts.map +1 -0
  42. package/src/lib/voting/types.js +29 -0
  43. package/src/lib/voting/types.js.map +1 -0
  44. package/src/services/ecies/service.d.ts +4 -4
  45. package/src/services/progress-tracker.d.ts.map +1 -1
  46. package/src/services/progress-tracker.js.map +1 -1
  47. package/src/services/voting.service.d.ts +0 -3
  48. package/src/services/voting.service.d.ts.map +1 -1
  49. package/src/services/voting.service.js +2 -3
  50. package/src/services/voting.service.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digitaldefiance/node-ecies-lib",
3
- "version": "4.6.4",
3
+ "version": "4.7.0",
4
4
  "description": "Digital Defiance Node ECIES Library",
5
5
  "homepage": "https://github.com/Digital-Defiance/node-ecies-lib",
6
6
  "repository": {
@@ -65,7 +65,7 @@
65
65
  }
66
66
  },
67
67
  "dependencies": {
68
- "@digitaldefiance/ecies-lib": "4.6.3",
68
+ "@digitaldefiance/ecies-lib": "4.7.0",
69
69
  "@digitaldefiance/express-suite-test-utils": "1.0.14",
70
70
  "@digitaldefiance/i18n-lib": "3.8.16",
71
71
  "@ethereumjs/wallet": "^10.0.0",
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACV,UAAU,IAAI,cAAc,EAC5B,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAIL,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAQpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGzE;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,eAE1C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,cAAc,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAC3C,OAAO,4BAA4B,CACpC,CAAC,CAAC,CAAC,CAAC;AAEL,eAAO,MAAM,uBAAuB,EAAE,oBAIpC,CAAC;AAOH,wBAAgB,2BAA2B,IAAI,wBAAwB,CAEtE;AAED,wBAAgB,gCAAgC,CAC9C,iBAAiB,CAAC,EAAE,oBAAoB,GAAG,wBAAwB,EACnE,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC,CAAC,GAC3D,wBAAwB,CAoB1B;AAED,eAAO,MAAM,QAAQ,EAAE,eAA0C,CAAC;AAElE,eAAO,MAAM,OAAO,EAAE,cAIX,CAAC;AAEZ,eAAO,MAAM,MAAM,EAAE,aAAsC,CAAC;AAE5D,eAAO,MAAM,eAAe,EAAE,aAwCnB,CAAC;AAEZ,eAAO,MAAM,WAAW,EAAE,iBAKf,CAAC;AAEZ,eAAO,MAAM,+BAA+B,EACoB,cAAc,CAAC;AAQ/E;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,iBAGd,CAAC;AAEZ,eAAO,MAAM,SAAS,EAAE,UA8Db,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACV,UAAU,IAAI,cAAc,EAC5B,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAIL,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAQpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEzE;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,eAE1C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,cAAc,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAC3C,OAAO,4BAA4B,CACpC,CAAC,CAAC,CAAC,CAAC;AAEL,eAAO,MAAM,uBAAuB,EAAE,oBAIpC,CAAC;AAOH,wBAAgB,2BAA2B,IAAI,wBAAwB,CAEtE;AAED,wBAAgB,gCAAgC,CAC9C,iBAAiB,CAAC,EAAE,oBAAoB,GAAG,wBAAwB,EACnE,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC,CAAC,GAC3D,wBAAwB,CAoB1B;AAED,eAAO,MAAM,QAAQ,EAAE,eAA0C,CAAC;AAElE,eAAO,MAAM,OAAO,EAAE,cAIX,CAAC;AAEZ,eAAO,MAAM,MAAM,EAAE,aAAsC,CAAC;AAE5D,eAAO,MAAM,eAAe,EAAE,aAwCnB,CAAC;AAEZ,eAAO,MAAM,WAAW,EAAE,iBAKf,CAAC;AAEZ,eAAO,MAAM,+BAA+B,EACoB,cAAc,CAAC;AAQ/E;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,iBAGd,CAAC;AAEZ,eAAO,MAAM,SAAS,EAAE,UA8Db,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/constants.ts"],"names":[],"mappings":"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"}
package/src/index.d.ts CHANGED
@@ -4,7 +4,7 @@ export * from './lib';
4
4
  export * from './constants';
5
5
  export * from './enumerations';
6
6
  export * from './i18n';
7
- export * from './interfaces';
7
+ export type { IMember } from './interfaces';
8
8
  export * from './member';
9
9
  export * from './types';
10
10
  export { AESGCMService } from './services/aes-gcm';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AAGtB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,YAAY,EACV,UAAU,EACV,SAAS,EACT,OAAO,IAAI,eAAe,GAC3B,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AAGtB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,YAAY,EACV,UAAU,EACV,SAAS,EACT,OAAO,IAAI,eAAe,GAC3B,MAAM,iBAAiB,CAAC"}
package/src/index.js CHANGED
@@ -10,7 +10,6 @@ tslib_1.__exportStar(require("./lib"), exports);
10
10
  tslib_1.__exportStar(require("./constants"), exports);
11
11
  tslib_1.__exportStar(require("./enumerations"), exports);
12
12
  tslib_1.__exportStar(require("./i18n"), exports);
13
- tslib_1.__exportStar(require("./interfaces"), exports);
14
13
  tslib_1.__exportStar(require("./member"), exports);
15
14
  tslib_1.__exportStar(require("./types"), exports);
16
15
  // Services - explicit exports to avoid conflicts
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":";;;;AAAA,0BAA0B;AAC1B,qDAA2B;AAC3B,iDAAuB;AACvB,gDAAsB;AAEtB,4CAA4C;AAC5C,sDAA4B;AAC5B,yDAA+B;AAC/B,iDAAuB;AACvB,uDAA6B;AAC7B,mDAAyB;AACzB,kDAAwB;AAExB,iDAAiD;AACjD,8CAAmD;AAA1C,wGAAA,aAAa,OAAA;AACtB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,2DAAiC;AACjC,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,kFAA+E;AAAtE,oIAAA,uBAAuB,OAAA;AAChC,4CAAkD;AAAzC,uGAAA,aAAa,OAAA;AACtB,gEAA8D;AAArD,mHAAA,eAAe,OAAA;AACxB,oEAA0C;AAE1C,kCAAkC;AAClC,qDAAsD;AAA7C,oHAAA,iBAAiB,OAAA;AAC1B,uDAAwD;AAA/C,sHAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":";;;;AAAA,0BAA0B;AAC1B,qDAA2B;AAC3B,iDAAuB;AACvB,gDAAsB;AAEtB,4CAA4C;AAC5C,sDAA4B;AAC5B,yDAA+B;AAC/B,iDAAuB;AAEvB,mDAAyB;AACzB,kDAAwB;AAExB,iDAAiD;AACjD,8CAAmD;AAA1C,wGAAA,aAAa,OAAA;AACtB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,2DAAiC;AACjC,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,kFAA+E;AAAtE,oIAAA,uBAAuB,OAAA;AAChC,4CAAkD;AAAzC,uGAAA,aAAa,OAAA;AACtB,gEAA8D;AAArD,mHAAA,eAAe,OAAA;AACxB,oEAA0C;AAE1C,kCAAkC;AAClC,qDAAsD;AAA7C,oHAAA,iBAAiB,OAAA;AAC1B,uDAAwD;AAA/C,sHAAA,kBAAkB,OAAA"}
@@ -1,4 +1,5 @@
1
1
  export * from './crypto-container';
2
2
  export * from './invariant-validator';
3
3
  export * from './invariants';
4
+ export * from './voting';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
package/src/lib/index.js CHANGED
@@ -4,4 +4,5 @@ const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./crypto-container"), exports);
5
5
  tslib_1.__exportStar(require("./invariant-validator"), exports);
6
6
  tslib_1.__exportStar(require("./invariants"), exports);
7
+ tslib_1.__exportStar(require("./voting"), exports);
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,gEAAsC;AACtC,uDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,gEAAsC;AACtC,uDAA6B;AAC7B,mDAAyB"}
@@ -0,0 +1,44 @@
1
+ import type { IMember } from '../../interfaces/member';
2
+ export declare enum AuditEventType {
3
+ PollCreated = "poll_created",
4
+ VoteCast = "vote_cast",
5
+ PollClosed = "poll_closed"
6
+ }
7
+ export interface AuditEntry {
8
+ readonly sequence: number;
9
+ readonly eventType: AuditEventType;
10
+ readonly timestamp: number;
11
+ readonly pollId: Buffer;
12
+ readonly voterIdHash?: Buffer;
13
+ readonly authorityId?: Buffer;
14
+ readonly previousHash: Buffer;
15
+ readonly entryHash: Buffer;
16
+ readonly signature: Buffer;
17
+ readonly metadata?: Record<string, unknown>;
18
+ }
19
+ export interface AuditLog {
20
+ getEntries(): readonly AuditEntry[];
21
+ getEntriesForPoll(pollId: Buffer): readonly AuditEntry[];
22
+ verifyChain(): boolean;
23
+ verifyEntry(entry: AuditEntry): boolean;
24
+ }
25
+ export declare class ImmutableAuditLog implements AuditLog {
26
+ private readonly entries;
27
+ private readonly authority;
28
+ private sequence;
29
+ constructor(authority: IMember);
30
+ recordPollCreated(pollId: Buffer, metadata?: Record<string, unknown>): AuditEntry;
31
+ recordVoteCast(pollId: Buffer, voterIdHash: Buffer, metadata?: Record<string, unknown>): AuditEntry;
32
+ recordPollClosed(pollId: Buffer, metadata?: Record<string, unknown>): AuditEntry;
33
+ getEntries(): readonly AuditEntry[];
34
+ getEntriesForPoll(pollId: Buffer): readonly AuditEntry[];
35
+ verifyChain(): boolean;
36
+ verifyEntry(entry: AuditEntry): boolean;
37
+ private appendEntry;
38
+ private computeEntryHash;
39
+ private serializeEntryForHashing;
40
+ private serializeEntryForSigning;
41
+ private getMicrosecondTimestamp;
42
+ private encodeNumber;
43
+ }
44
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/audit.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,oBAAY,cAAc;IACxB,WAAW,iBAAiB;IAC5B,QAAQ,cAAc;IACtB,UAAU,gBAAgB;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,IAAI,SAAS,UAAU,EAAE,CAAC;IACpC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE,CAAC;IACzD,WAAW,IAAI,OAAO,CAAC;IACvB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;CACzC;AAED,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAK;gBAET,SAAS,EAAE,OAAO;IAI9B,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,UAAU;IASb,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,UAAU;IASb,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,UAAU;IASb,UAAU,IAAI,SAAS,UAAU,EAAE;IAInC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE;IAOxD,WAAW,IAAI,OAAO;IAetB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAQvC,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,YAAY;CAKrB"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ImmutableAuditLog = exports.AuditEventType = void 0;
4
+ /**
5
+ * Immutable Audit Log for Government-Grade Voting
6
+ * Node.js optimized with native crypto
7
+ */
8
+ const crypto_1 = require("crypto");
9
+ const perf_hooks_1 = require("perf_hooks");
10
+ var AuditEventType;
11
+ (function (AuditEventType) {
12
+ AuditEventType["PollCreated"] = "poll_created";
13
+ AuditEventType["VoteCast"] = "vote_cast";
14
+ AuditEventType["PollClosed"] = "poll_closed";
15
+ })(AuditEventType || (exports.AuditEventType = AuditEventType = {}));
16
+ class ImmutableAuditLog {
17
+ entries = [];
18
+ authority;
19
+ sequence = 0;
20
+ constructor(authority) {
21
+ this.authority = authority;
22
+ }
23
+ recordPollCreated(pollId, metadata) {
24
+ return this.appendEntry({
25
+ eventType: AuditEventType.PollCreated,
26
+ pollId,
27
+ authorityId: this.authority.id,
28
+ metadata,
29
+ });
30
+ }
31
+ recordVoteCast(pollId, voterIdHash, metadata) {
32
+ return this.appendEntry({
33
+ eventType: AuditEventType.VoteCast,
34
+ pollId,
35
+ voterIdHash,
36
+ metadata,
37
+ });
38
+ }
39
+ recordPollClosed(pollId, metadata) {
40
+ return this.appendEntry({
41
+ eventType: AuditEventType.PollClosed,
42
+ pollId,
43
+ authorityId: this.authority.id,
44
+ metadata,
45
+ });
46
+ }
47
+ getEntries() {
48
+ return Object.freeze([...this.entries]);
49
+ }
50
+ getEntriesForPoll(pollId) {
51
+ const pollIdStr = pollId.toString('hex');
52
+ return Object.freeze(this.entries.filter((e) => e.pollId.toString('hex') === pollIdStr));
53
+ }
54
+ verifyChain() {
55
+ if (this.entries.length === 0)
56
+ return true;
57
+ for (let i = 0; i < this.entries.length; i++) {
58
+ const entry = this.entries[i];
59
+ const computedHash = this.computeEntryHash(entry);
60
+ if (!computedHash.equals(entry.entryHash))
61
+ return false;
62
+ if (!this.verifyEntry(entry))
63
+ return false;
64
+ if (i > 0) {
65
+ const prevEntry = this.entries[i - 1];
66
+ if (!entry.previousHash.equals(prevEntry.entryHash))
67
+ return false;
68
+ }
69
+ }
70
+ return true;
71
+ }
72
+ verifyEntry(entry) {
73
+ const data = this.serializeEntryForSigning(entry);
74
+ return this.authority.verify(entry.signature, data);
75
+ }
76
+ appendEntry(partial) {
77
+ const previousHash = this.entries.length > 0
78
+ ? this.entries[this.entries.length - 1].entryHash
79
+ : Buffer.alloc(32);
80
+ const entry = {
81
+ sequence: this.sequence++,
82
+ timestamp: this.getMicrosecondTimestamp(),
83
+ previousHash,
84
+ ...partial,
85
+ };
86
+ const entryHash = this.computeEntryHash(entry);
87
+ const data = this.serializeEntryForSigning({ ...entry, entryHash });
88
+ const signature = this.authority.sign(data);
89
+ const finalEntry = { ...entry, entryHash, signature };
90
+ this.entries.push(finalEntry);
91
+ return finalEntry;
92
+ }
93
+ computeEntryHash(entry) {
94
+ const data = this.serializeEntryForHashing(entry);
95
+ return (0, crypto_1.createHash)('sha256').update(data).digest();
96
+ }
97
+ serializeEntryForHashing(entry) {
98
+ const parts = [
99
+ this.encodeNumber(entry.sequence),
100
+ Buffer.from(entry.eventType, 'utf8'),
101
+ this.encodeNumber(entry.timestamp),
102
+ entry.pollId,
103
+ entry.previousHash,
104
+ ];
105
+ if (entry.voterIdHash)
106
+ parts.push(entry.voterIdHash);
107
+ if (entry.authorityId)
108
+ parts.push(entry.authorityId);
109
+ if (entry.metadata)
110
+ parts.push(Buffer.from(JSON.stringify(entry.metadata), 'utf8'));
111
+ return Buffer.concat(parts);
112
+ }
113
+ serializeEntryForSigning(entry) {
114
+ return Buffer.concat([
115
+ this.serializeEntryForHashing(entry),
116
+ entry.entryHash,
117
+ ]);
118
+ }
119
+ getMicrosecondTimestamp() {
120
+ return Math.floor(perf_hooks_1.performance.now() * 1000) + Date.now() * 1000;
121
+ }
122
+ encodeNumber(n) {
123
+ const buf = Buffer.alloc(8);
124
+ buf.writeBigUInt64BE(BigInt(n));
125
+ return buf;
126
+ }
127
+ }
128
+ exports.ImmutableAuditLog = ImmutableAuditLog;
129
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Vote Encoder - Encrypts votes using Paillier homomorphic encryption
3
+ * Node.js optimized
4
+ */
5
+ import type { PublicKey } from 'paillier-bigint';
6
+ import { VotingMethod, type EncryptedVote } from './types';
7
+ export declare class VoteEncoder {
8
+ private readonly votingPublicKey;
9
+ constructor(votingPublicKey: PublicKey);
10
+ encodePlurality(choiceIndex: number, choiceCount: number): EncryptedVote;
11
+ encodeApproval(choices: number[], choiceCount: number): EncryptedVote;
12
+ encodeWeighted(choiceIndex: number, weight: bigint, choiceCount: number): EncryptedVote;
13
+ encodeBorda(rankings: number[], choiceCount: number): EncryptedVote;
14
+ encodeRankedChoice(rankings: number[], choiceCount: number): EncryptedVote;
15
+ encode(method: VotingMethod, data: {
16
+ choiceIndex?: number;
17
+ choices?: number[];
18
+ rankings?: number[];
19
+ weight?: bigint;
20
+ }, choiceCount: number): EncryptedVote;
21
+ }
22
+ //# sourceMappingURL=encoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/encoder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAE3D,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,SAAS;IAEvD,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;IAYxE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;IAarE,cAAc,CACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,aAAa;IAYhB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;IAgBnE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;IAc1E,MAAM,CACJ,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE;QACJ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,EACD,WAAW,EAAE,MAAM,GAClB,aAAa;CA+CjB"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VoteEncoder = void 0;
4
+ const types_1 = require("./types");
5
+ class VoteEncoder {
6
+ votingPublicKey;
7
+ constructor(votingPublicKey) {
8
+ this.votingPublicKey = votingPublicKey;
9
+ }
10
+ encodePlurality(choiceIndex, choiceCount) {
11
+ const encrypted = [];
12
+ for (let i = 0; i < choiceCount; i++) {
13
+ encrypted.push(i === choiceIndex
14
+ ? this.votingPublicKey.encrypt(1n)
15
+ : this.votingPublicKey.encrypt(0n));
16
+ }
17
+ return { choiceIndex, encrypted };
18
+ }
19
+ encodeApproval(choices, choiceCount) {
20
+ const choiceSet = new Set(choices);
21
+ const encrypted = [];
22
+ for (let i = 0; i < choiceCount; i++) {
23
+ encrypted.push(choiceSet.has(i)
24
+ ? this.votingPublicKey.encrypt(1n)
25
+ : this.votingPublicKey.encrypt(0n));
26
+ }
27
+ return { choices, encrypted };
28
+ }
29
+ encodeWeighted(choiceIndex, weight, choiceCount) {
30
+ const encrypted = [];
31
+ for (let i = 0; i < choiceCount; i++) {
32
+ encrypted.push(i === choiceIndex
33
+ ? this.votingPublicKey.encrypt(weight)
34
+ : this.votingPublicKey.encrypt(0n));
35
+ }
36
+ return { choiceIndex, weight, encrypted };
37
+ }
38
+ encodeBorda(rankings, choiceCount) {
39
+ const encrypted = new Array(choiceCount);
40
+ const points = BigInt(rankings.length);
41
+ for (let i = 0; i < choiceCount; i++) {
42
+ encrypted[i] = this.votingPublicKey.encrypt(0n);
43
+ }
44
+ for (let rank = 0; rank < rankings.length; rank++) {
45
+ const choiceIndex = rankings[rank];
46
+ const choicePoints = points - BigInt(rank);
47
+ encrypted[choiceIndex] = this.votingPublicKey.encrypt(choicePoints);
48
+ }
49
+ return { rankings, encrypted };
50
+ }
51
+ encodeRankedChoice(rankings, choiceCount) {
52
+ const encrypted = new Array(choiceCount);
53
+ for (let i = 0; i < choiceCount; i++) {
54
+ encrypted[i] = this.votingPublicKey.encrypt(0n);
55
+ }
56
+ for (let rank = 0; rank < rankings.length; rank++) {
57
+ const choiceIndex = rankings[rank];
58
+ encrypted[choiceIndex] = this.votingPublicKey.encrypt(BigInt(rank + 1));
59
+ }
60
+ return { rankings, encrypted };
61
+ }
62
+ encode(method, data, choiceCount) {
63
+ switch (method) {
64
+ case types_1.VotingMethod.Plurality:
65
+ if (data.choiceIndex === undefined)
66
+ throw new Error('Choice required');
67
+ return this.encodePlurality(data.choiceIndex, choiceCount);
68
+ case types_1.VotingMethod.Approval:
69
+ if (!data.choices)
70
+ throw new Error('Choices required');
71
+ return this.encodeApproval(data.choices, choiceCount);
72
+ case types_1.VotingMethod.Weighted:
73
+ if (data.choiceIndex === undefined || !data.weight) {
74
+ throw new Error('Choice and weight required');
75
+ }
76
+ return this.encodeWeighted(data.choiceIndex, data.weight, choiceCount);
77
+ case types_1.VotingMethod.Borda:
78
+ if (!data.rankings)
79
+ throw new Error('Rankings required');
80
+ return this.encodeBorda(data.rankings, choiceCount);
81
+ case types_1.VotingMethod.RankedChoice:
82
+ if (!data.rankings)
83
+ throw new Error('Rankings required');
84
+ return this.encodeRankedChoice(data.rankings, choiceCount);
85
+ case types_1.VotingMethod.Quadratic:
86
+ if (data.choiceIndex === undefined || !data.weight) {
87
+ throw new Error('Choice and weight required');
88
+ }
89
+ return this.encodeWeighted(data.choiceIndex, data.weight, choiceCount);
90
+ case types_1.VotingMethod.Consensus:
91
+ if (data.choiceIndex === undefined)
92
+ throw new Error('Choice required');
93
+ return this.encodePlurality(data.choiceIndex, choiceCount);
94
+ case types_1.VotingMethod.ConsentBased: {
95
+ if (data.choiceIndex === undefined)
96
+ throw new Error('Choice required');
97
+ const encrypted = [];
98
+ for (let i = 0; i < choiceCount; i++) {
99
+ encrypted.push(i === data.choiceIndex
100
+ ? this.votingPublicKey.encrypt(data.weight || 1n)
101
+ : this.votingPublicKey.encrypt(0n));
102
+ }
103
+ return {
104
+ choiceIndex: data.choiceIndex,
105
+ weight: data.weight,
106
+ encrypted,
107
+ };
108
+ }
109
+ default:
110
+ throw new Error('Unknown voting method');
111
+ }
112
+ }
113
+ }
114
+ exports.VoteEncoder = VoteEncoder;
115
+ //# sourceMappingURL=encoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/encoder.ts"],"names":[],"mappings":";;;AAMA,mCAA2D;AAE3D,MAAa,WAAW;IACO;IAA7B,YAA6B,eAA0B;QAA1B,oBAAe,GAAf,eAAe,CAAW;IAAG,CAAC;IAE3D,eAAe,CAAC,WAAmB,EAAE,WAAmB;QACtD,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CACZ,CAAC,KAAK,WAAW;gBACf,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CACrC,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;IACpC,CAAC;IAED,cAAc,CAAC,OAAiB,EAAE,WAAmB;QACnD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CACZ,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACd,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CACrC,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,cAAc,CACZ,WAAmB,EACnB,MAAc,EACd,WAAmB;QAEnB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CACZ,CAAC,KAAK,WAAW;gBACf,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;gBACtC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CACrC,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC5C,CAAC;IAED,WAAW,CAAC,QAAkB,EAAE,WAAmB;QACjD,MAAM,SAAS,GAAa,IAAI,KAAK,CAAC,WAAW,CAAa,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAW,CAAC;QAC5D,CAAC;QACD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YAClD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CACnD,YAAY,CACH,CAAC;QACd,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,kBAAkB,CAAC,QAAkB,EAAE,WAAmB;QACxD,MAAM,SAAS,GAAa,IAAI,KAAK,CAAC,WAAW,CAAa,CAAC;QAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAW,CAAC;QAC5D,CAAC;QACD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YAClD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CACnD,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CACP,CAAC;QACd,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,CACJ,MAAoB,EACpB,IAKC,EACD,WAAmB;QAEnB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,oBAAY,CAAC,SAAS;gBACzB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACvE,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAC7D,KAAK,oBAAY,CAAC,QAAQ;gBACxB,IAAI,CAAC,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACvD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACxD,KAAK,oBAAY,CAAC,QAAQ;gBACxB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACnD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAChD,CAAC;gBACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACzE,KAAK,oBAAY,CAAC,KAAK;gBACrB,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACzD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACtD,KAAK,oBAAY,CAAC,YAAY;gBAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACzD,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC7D,KAAK,oBAAY,CAAC,SAAS;gBACzB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACnD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAChD,CAAC;gBACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACzE,KAAK,oBAAY,CAAC,SAAS;gBACzB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACvE,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAC7D,KAAK,oBAAY,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC/B,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACvE,MAAM,SAAS,GAAa,EAAE,CAAC;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrC,SAAS,CAAC,IAAI,CACZ,CAAC,KAAK,IAAI,CAAC,WAAW;wBACpB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;wBACjD,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CACrC,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,SAAS;iBACV,CAAC;YACJ,CAAC;YACD;gBACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF;AAlID,kCAkIC"}
@@ -0,0 +1,14 @@
1
+ import type { IMember } from '../../interfaces/member';
2
+ import { Poll } from './poll-core';
3
+ import { VotingMethod } from './types';
4
+ export declare class PollFactory {
5
+ static create(choices: string[], method: VotingMethod, authority: IMember, options?: {
6
+ maxWeight?: bigint;
7
+ }): Poll;
8
+ static createPlurality(choices: string[], authority: IMember): Poll;
9
+ static createApproval(choices: string[], authority: IMember): Poll;
10
+ static createWeighted(choices: string[], authority: IMember, maxWeight: bigint): Poll;
11
+ static createBorda(choices: string[], authority: IMember): Poll;
12
+ static createRankedChoice(choices: string[], authority: IMember): Poll;
13
+ }
14
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/factory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,qBAAa,WAAW;IACtB,MAAM,CAAC,MAAM,CACX,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/B,IAAI;IAcP,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAInE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAIlE,MAAM,CAAC,cAAc,CACnB,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,MAAM,GAChB,IAAI;IAMP,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAI/D,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;CAGvE"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PollFactory = void 0;
4
+ /**
5
+ * Poll Factory - Node.js optimized
6
+ */
7
+ const crypto_1 = require("crypto");
8
+ const poll_core_1 = require("./poll-core");
9
+ const types_1 = require("./types");
10
+ class PollFactory {
11
+ static create(choices, method, authority, options) {
12
+ if (!authority.votingPublicKey)
13
+ throw new Error('Authority must have voting public key');
14
+ const id = (0, crypto_1.randomBytes)(16);
15
+ return new poll_core_1.Poll(id, choices, method, authority, authority.votingPublicKey, options?.maxWeight);
16
+ }
17
+ static createPlurality(choices, authority) {
18
+ return this.create(choices, types_1.VotingMethod.Plurality, authority);
19
+ }
20
+ static createApproval(choices, authority) {
21
+ return this.create(choices, types_1.VotingMethod.Approval, authority);
22
+ }
23
+ static createWeighted(choices, authority, maxWeight) {
24
+ return this.create(choices, types_1.VotingMethod.Weighted, authority, {
25
+ maxWeight,
26
+ });
27
+ }
28
+ static createBorda(choices, authority) {
29
+ return this.create(choices, types_1.VotingMethod.Borda, authority);
30
+ }
31
+ static createRankedChoice(choices, authority) {
32
+ return this.create(choices, types_1.VotingMethod.RankedChoice, authority);
33
+ }
34
+ }
35
+ exports.PollFactory = PollFactory;
36
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/factory.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,mCAAqC;AAIrC,2CAAmC;AACnC,mCAAuC;AAEvC,MAAa,WAAW;IACtB,MAAM,CAAC,MAAM,CACX,OAAiB,EACjB,MAAoB,EACpB,SAAkB,EAClB,OAAgC;QAEhC,IAAI,CAAC,SAAS,CAAC,eAAe;YAC5B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,MAAM,EAAE,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC;QAC3B,OAAO,IAAI,gBAAI,CACb,EAAE,EACF,OAAO,EACP,MAAM,EACN,SAAS,EACT,SAAS,CAAC,eAAe,EACzB,OAAO,EAAE,SAAS,CACnB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,SAAkB;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,OAAiB,EAAE,SAAkB;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,cAAc,CACnB,OAAiB,EACjB,SAAkB,EAClB,SAAiB;QAEjB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAY,CAAC,QAAQ,EAAE,SAAS,EAAE;YAC5D,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAiB,EAAE,SAAkB;QACtD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,OAAiB,EAAE,SAAkB;QAC7D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;CACF;AA7CD,kCA6CC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Secure Voting System - Node.js Optimized
3
+ */
4
+ export { Poll } from './poll-core';
5
+ export { VoteEncoder } from './encoder';
6
+ export { PollTallier } from './tallier';
7
+ export { PollFactory } from './factory';
8
+ export { VotingSecurityValidator, VOTING_SECURITY, SecurityLevel, } from './security';
9
+ export { ImmutableAuditLog, AuditEventType, type AuditEntry, type AuditLog, } from './audit';
10
+ export { VotingMethod, type VoteReceipt, type PollResults, type RoundResult, type EncryptedVote, type SupermajorityConfig, type PlaintextVote, } from './types';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,KAAK,UAAU,EACf,KAAK,QAAQ,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * Secure Voting System - Node.js Optimized
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.VotingMethod = exports.AuditEventType = exports.ImmutableAuditLog = exports.SecurityLevel = exports.VOTING_SECURITY = exports.VotingSecurityValidator = exports.PollFactory = exports.PollTallier = exports.VoteEncoder = exports.Poll = void 0;
7
+ var poll_core_1 = require("./poll-core");
8
+ Object.defineProperty(exports, "Poll", { enumerable: true, get: function () { return poll_core_1.Poll; } });
9
+ var encoder_1 = require("./encoder");
10
+ Object.defineProperty(exports, "VoteEncoder", { enumerable: true, get: function () { return encoder_1.VoteEncoder; } });
11
+ var tallier_1 = require("./tallier");
12
+ Object.defineProperty(exports, "PollTallier", { enumerable: true, get: function () { return tallier_1.PollTallier; } });
13
+ var factory_1 = require("./factory");
14
+ Object.defineProperty(exports, "PollFactory", { enumerable: true, get: function () { return factory_1.PollFactory; } });
15
+ var security_1 = require("./security");
16
+ Object.defineProperty(exports, "VotingSecurityValidator", { enumerable: true, get: function () { return security_1.VotingSecurityValidator; } });
17
+ Object.defineProperty(exports, "VOTING_SECURITY", { enumerable: true, get: function () { return security_1.VOTING_SECURITY; } });
18
+ Object.defineProperty(exports, "SecurityLevel", { enumerable: true, get: function () { return security_1.SecurityLevel; } });
19
+ var audit_1 = require("./audit");
20
+ Object.defineProperty(exports, "ImmutableAuditLog", { enumerable: true, get: function () { return audit_1.ImmutableAuditLog; } });
21
+ Object.defineProperty(exports, "AuditEventType", { enumerable: true, get: function () { return audit_1.AuditEventType; } });
22
+ var types_1 = require("./types");
23
+ Object.defineProperty(exports, "VotingMethod", { enumerable: true, get: function () { return types_1.VotingMethod; } });
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yCAAmC;AAA1B,iGAAA,IAAI,OAAA;AACb,qCAAwC;AAA/B,sGAAA,WAAW,OAAA;AACpB,qCAAwC;AAA/B,sGAAA,WAAW,OAAA;AACpB,qCAAwC;AAA/B,sGAAA,WAAW,OAAA;AACpB,uCAIoB;AAHlB,mHAAA,uBAAuB,OAAA;AACvB,2GAAA,eAAe,OAAA;AACf,yGAAA,aAAa,OAAA;AAEf,iCAKiB;AAJf,0GAAA,iBAAiB,OAAA;AACjB,uGAAA,cAAc,OAAA;AAIhB,iCAQiB;AAPf,qGAAA,YAAY,OAAA"}
@@ -0,0 +1,34 @@
1
+ import type { PublicKey } from 'paillier-bigint';
2
+ import type { IMember } from '../../interfaces/member';
3
+ import { type AuditLog } from './audit';
4
+ import { VotingMethod, type VoteReceipt, type EncryptedVote } from './types';
5
+ export declare class Poll {
6
+ private readonly _id;
7
+ private readonly _choices;
8
+ private readonly _method;
9
+ private readonly _authority;
10
+ private readonly ___votingPublicKey;
11
+ private readonly _votes;
12
+ private readonly _receipts;
13
+ private readonly _createdAt;
14
+ private _closedAt?;
15
+ private _maxWeight?;
16
+ private readonly _auditLog;
17
+ constructor(id: Buffer, choices: string[], method: VotingMethod, authority: IMember, votingPublicKey: PublicKey, maxWeight?: bigint, allowInsecure?: boolean);
18
+ get id(): Buffer;
19
+ get choices(): ReadonlyArray<string>;
20
+ get method(): VotingMethod;
21
+ get isClosed(): boolean;
22
+ get voterCount(): number;
23
+ get createdAt(): number;
24
+ get closedAt(): number | undefined;
25
+ get auditLog(): AuditLog;
26
+ vote(voter: IMember, vote: EncryptedVote): VoteReceipt;
27
+ verifyReceipt(voter: IMember, receipt: VoteReceipt): boolean;
28
+ close(): void;
29
+ getEncryptedVotes(): ReadonlyMap<string, readonly bigint[]>;
30
+ private _validateVote;
31
+ private _generateReceipt;
32
+ private _receiptData;
33
+ }
34
+ //# sourceMappingURL=poll-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll-core.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/poll-core.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7E,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;gBAG5C,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,OAAO,EAClB,eAAe,EAAE,SAAS,EAC1B,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,OAAO;IAqBzB,IAAI,EAAE,IAAI,MAAM,CAEf;IACD,IAAI,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAEnC;IACD,IAAI,MAAM,IAAI,YAAY,CAEzB;IACD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,UAAU,IAAI,MAAM,CAEvB;IACD,IAAI,SAAS,IAAI,MAAM,CAEtB;IACD,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IACD,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW;IAatD,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO;IAW5D,KAAK,IAAI,IAAI;IASb,iBAAiB,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAmB3D,OAAO,CAAC,aAAa;IAuCrB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,YAAY;CAUrB"}