stated-protocol-parser 1.0.6 → 5.0.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 (109) hide show
  1. package/README.md +231 -22
  2. package/dist/constants.d.ts +193 -15
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +197 -20
  5. package/dist/constants.js.map +1 -1
  6. package/dist/esm/constants.d.ts +193 -15
  7. package/dist/esm/constants.d.ts.map +1 -1
  8. package/dist/esm/{hash.browser.d.ts → hash.d.ts} +11 -5
  9. package/dist/esm/hash.d.ts.map +1 -0
  10. package/dist/esm/index.d.ts +4 -42
  11. package/dist/esm/index.d.ts.map +1 -1
  12. package/dist/esm/index.js +2102 -641
  13. package/dist/esm/index.js.map +7 -1
  14. package/dist/esm/protocol.d.ts +30 -0
  15. package/dist/esm/protocol.d.ts.map +1 -0
  16. package/dist/esm/signature.d.ts +49 -0
  17. package/dist/esm/signature.d.ts.map +1 -0
  18. package/dist/esm/types.d.ts +26 -60
  19. package/dist/esm/types.d.ts.map +1 -1
  20. package/dist/esm/utils.d.ts +10 -0
  21. package/dist/esm/utils.d.ts.map +1 -1
  22. package/dist/{hash.browser.d.ts → hash.d.ts} +11 -5
  23. package/dist/hash.d.ts.map +1 -0
  24. package/dist/{hash.browser.js → hash.js} +44 -10
  25. package/dist/hash.js.map +1 -0
  26. package/dist/index.d.ts +4 -42
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +4 -674
  29. package/dist/index.js.map +1 -1
  30. package/dist/protocol.d.ts +30 -0
  31. package/dist/protocol.d.ts.map +1 -0
  32. package/dist/protocol.js +677 -0
  33. package/dist/protocol.js.map +1 -0
  34. package/dist/signature.d.ts +49 -0
  35. package/dist/signature.d.ts.map +1 -0
  36. package/dist/signature.js +169 -0
  37. package/dist/signature.js.map +1 -0
  38. package/dist/types.d.ts +26 -60
  39. package/dist/types.d.ts.map +1 -1
  40. package/dist/types.js +27 -0
  41. package/dist/types.js.map +1 -1
  42. package/dist/utils.d.ts +10 -0
  43. package/dist/utils.d.ts.map +1 -1
  44. package/dist/utils.js +79 -11
  45. package/dist/utils.js.map +1 -1
  46. package/package.json +25 -16
  47. package/src/constants.ts +228 -44
  48. package/src/fixtures.test.ts +236 -0
  49. package/src/hash.test.ts +217 -215
  50. package/src/hash.ts +99 -0
  51. package/src/index.ts +5 -678
  52. package/src/organisation-verification.test.ts +50 -0
  53. package/src/person-verification.test.ts +55 -0
  54. package/src/poll.test.ts +28 -0
  55. package/src/protocol.ts +871 -0
  56. package/src/rating.test.ts +25 -0
  57. package/src/signature.test.ts +200 -0
  58. package/src/signature.ts +159 -0
  59. package/src/statement.test.ts +101 -0
  60. package/src/types.ts +155 -156
  61. package/src/utils.test.ts +140 -0
  62. package/src/utils.ts +102 -16
  63. package/dist/esm/constants.js +0 -47
  64. package/dist/esm/constants.js.map +0 -1
  65. package/dist/esm/hash.browser.d.ts.map +0 -1
  66. package/dist/esm/hash.browser.js +0 -58
  67. package/dist/esm/hash.browser.js.map +0 -1
  68. package/dist/esm/hash.node.d.ts +0 -31
  69. package/dist/esm/hash.node.d.ts.map +0 -1
  70. package/dist/esm/hash.node.js +0 -43
  71. package/dist/esm/hash.node.js.map +0 -1
  72. package/dist/esm/hash.test.d.ts +0 -2
  73. package/dist/esm/hash.test.d.ts.map +0 -1
  74. package/dist/esm/hash.test.js +0 -181
  75. package/dist/esm/hash.test.js.map +0 -1
  76. package/dist/esm/index.test.d.ts +0 -2
  77. package/dist/esm/index.test.d.ts.map +0 -1
  78. package/dist/esm/index.test.js +0 -293
  79. package/dist/esm/index.test.js.map +0 -1
  80. package/dist/esm/types.js +0 -2
  81. package/dist/esm/types.js.map +0 -1
  82. package/dist/esm/utils.js +0 -23
  83. package/dist/esm/utils.js.map +0 -1
  84. package/dist/esm/v3.d.ts +0 -5
  85. package/dist/esm/v3.d.ts.map +0 -1
  86. package/dist/esm/v3.js +0 -60
  87. package/dist/esm/v3.js.map +0 -1
  88. package/dist/hash.browser.d.ts.map +0 -1
  89. package/dist/hash.browser.js.map +0 -1
  90. package/dist/hash.node.d.ts +0 -31
  91. package/dist/hash.node.d.ts.map +0 -1
  92. package/dist/hash.node.js +0 -53
  93. package/dist/hash.node.js.map +0 -1
  94. package/dist/hash.test.d.ts +0 -2
  95. package/dist/hash.test.d.ts.map +0 -1
  96. package/dist/hash.test.js +0 -183
  97. package/dist/hash.test.js.map +0 -1
  98. package/dist/index.test.d.ts +0 -2
  99. package/dist/index.test.d.ts.map +0 -1
  100. package/dist/index.test.js +0 -295
  101. package/dist/index.test.js.map +0 -1
  102. package/dist/v3.d.ts +0 -5
  103. package/dist/v3.d.ts.map +0 -1
  104. package/dist/v3.js +0 -64
  105. package/dist/v3.js.map +0 -1
  106. package/src/hash.browser.ts +0 -65
  107. package/src/hash.node.ts +0 -47
  108. package/src/index.test.ts +0 -378
  109. package/src/v3.ts +0 -62
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Universal signature utilities using @noble/ed25519
3
+ * Works in both browser and Node.js environments
4
+ */
5
+ import type { CryptographicallySignedStatement } from './types';
6
+ /**
7
+ * Generate a new Ed25519 key pair for signing statements
8
+ * @returns Object containing publicKey and privateKey as URL-safe base64
9
+ */
10
+ export declare const generateKeyPair: () => Promise<{
11
+ publicKey: string;
12
+ privateKey: string;
13
+ }>;
14
+ /**
15
+ * Sign a statement with a private key
16
+ * @param statement - The statement text to sign
17
+ * @param privateKeyUrlSafe - Private key in URL-safe base64 format
18
+ * @returns URL-safe base64-encoded signature
19
+ */
20
+ export declare const signStatement: (statement: string, privateKeyUrlSafe: string) => Promise<string>;
21
+ /**
22
+ * Verify a statement signature
23
+ * @param statement - The statement text that was signed
24
+ * @param signatureUrlSafe - URL-safe base64-encoded signature
25
+ * @param publicKeyUrlSafe - Public key in URL-safe base64 format
26
+ * @returns true if signature is valid, false otherwise
27
+ */
28
+ export declare const verifySignature: (statement: string, signatureUrlSafe: string, publicKeyUrlSafe: string) => Promise<boolean>;
29
+ /**
30
+ * Build a signed statement
31
+ * @param statement - The statement text to sign
32
+ * @param privateKeyUrlSafe - Private key in URL-safe base64 format
33
+ * @param publicKeyUrlSafe - Public key in URL-safe base64 format
34
+ * @returns Signed statement with appended signature fields
35
+ */
36
+ export declare const buildSignedStatement: (statement: string, privateKeyUrlSafe: string, publicKeyUrlSafe: string) => Promise<string>;
37
+ /**
38
+ * Parse a signed statement
39
+ * @param signedStatement - The signed statement text
40
+ * @returns Parsed CryptographicallySignedStatement object or null if invalid
41
+ */
42
+ export declare const parseSignedStatement: (signedStatement: string) => CryptographicallySignedStatement | null;
43
+ /**
44
+ * Verify a signed statement
45
+ * @param signedStatement - The signed statement text
46
+ * @returns true if signature is valid, false otherwise
47
+ */
48
+ export declare const verifySignedStatement: (signedStatement: string) => Promise<boolean>;
49
+ //# sourceMappingURL=signature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,SAAS,CAAC;AAOhE;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAQzF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GACxB,WAAW,MAAM,EACjB,mBAAmB,MAAM,KACxB,OAAO,CAAC,MAAM,CAOhB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAC1B,WAAW,MAAM,EACjB,kBAAkB,MAAM,EACxB,kBAAkB,MAAM,KACvB,OAAO,CAAC,OAAO,CAUjB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,WAAW,MAAM,EACjB,mBAAmB,MAAM,EACzB,kBAAkB,MAAM,KACvB,OAAO,CAAC,MAAM,CAWhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,iBAAiB,MAAM,KACtB,gCAAgC,GAAG,IA+BrC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAU,iBAAiB,MAAM,KAAG,OAAO,CAAC,OAAO,CAKpF,CAAC"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ /**
3
+ * Universal signature utilities using @noble/ed25519
4
+ * Works in both browser and Node.js environments
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.verifySignedStatement = exports.parseSignedStatement = exports.buildSignedStatement = exports.verifySignature = exports.signStatement = exports.generateKeyPair = void 0;
41
+ const ed = __importStar(require("@noble/ed25519"));
42
+ const sha2_js_1 = require("@noble/hashes/sha2.js");
43
+ const hash_1 = require("./hash");
44
+ // Set up sha512 for @noble/ed25519
45
+ ed.hashes.sha512 = (message) => (0, sha2_js_1.sha512)(message);
46
+ const ALGORITHM = 'Ed25519'; // Fully specifies: EdDSA signature scheme with Curve25519
47
+ /**
48
+ * Generate a new Ed25519 key pair for signing statements
49
+ * @returns Object containing publicKey and privateKey as URL-safe base64
50
+ */
51
+ const generateKeyPair = async () => {
52
+ const privateKey = ed.utils.randomSecretKey();
53
+ const publicKey = await ed.getPublicKey(privateKey);
54
+ return {
55
+ publicKey: (0, hash_1.toUrlSafeBase64)(bytesToBase64(publicKey)),
56
+ privateKey: (0, hash_1.toUrlSafeBase64)(bytesToBase64(privateKey)),
57
+ };
58
+ };
59
+ exports.generateKeyPair = generateKeyPair;
60
+ /**
61
+ * Sign a statement with a private key
62
+ * @param statement - The statement text to sign
63
+ * @param privateKeyUrlSafe - Private key in URL-safe base64 format
64
+ * @returns URL-safe base64-encoded signature
65
+ */
66
+ const signStatement = async (statement, privateKeyUrlSafe) => {
67
+ const privateKeyBytes = (0, hash_1.base64ToBytes)((0, hash_1.fromUrlSafeBase64)(privateKeyUrlSafe));
68
+ const messageBytes = new TextEncoder().encode(statement);
69
+ const signature = await ed.sign(messageBytes, privateKeyBytes);
70
+ return (0, hash_1.toUrlSafeBase64)(bytesToBase64(signature));
71
+ };
72
+ exports.signStatement = signStatement;
73
+ /**
74
+ * Verify a statement signature
75
+ * @param statement - The statement text that was signed
76
+ * @param signatureUrlSafe - URL-safe base64-encoded signature
77
+ * @param publicKeyUrlSafe - Public key in URL-safe base64 format
78
+ * @returns true if signature is valid, false otherwise
79
+ */
80
+ const verifySignature = async (statement, signatureUrlSafe, publicKeyUrlSafe) => {
81
+ try {
82
+ const publicKeyBytes = (0, hash_1.base64ToBytes)((0, hash_1.fromUrlSafeBase64)(publicKeyUrlSafe));
83
+ const signatureBytes = (0, hash_1.base64ToBytes)((0, hash_1.fromUrlSafeBase64)(signatureUrlSafe));
84
+ const messageBytes = new TextEncoder().encode(statement);
85
+ return await ed.verify(signatureBytes, messageBytes, publicKeyBytes);
86
+ }
87
+ catch (error) {
88
+ return false;
89
+ }
90
+ };
91
+ exports.verifySignature = verifySignature;
92
+ /**
93
+ * Build a signed statement
94
+ * @param statement - The statement text to sign
95
+ * @param privateKeyUrlSafe - Private key in URL-safe base64 format
96
+ * @param publicKeyUrlSafe - Public key in URL-safe base64 format
97
+ * @returns Signed statement with appended signature fields
98
+ */
99
+ const buildSignedStatement = async (statement, privateKeyUrlSafe, publicKeyUrlSafe) => {
100
+ const statementHash = (0, hash_1.sha256)(statement);
101
+ const signature = await (0, exports.signStatement)(statement, privateKeyUrlSafe);
102
+ return (statement +
103
+ `---\n` +
104
+ `Statement hash: ${statementHash}\n` +
105
+ `Public key: ${publicKeyUrlSafe}\n` +
106
+ `Signature: ${signature}\n` +
107
+ `Algorithm: ${ALGORITHM}\n`);
108
+ };
109
+ exports.buildSignedStatement = buildSignedStatement;
110
+ /**
111
+ * Parse a signed statement
112
+ * @param signedStatement - The signed statement text
113
+ * @returns Parsed CryptographicallySignedStatement object or null if invalid
114
+ */
115
+ const parseSignedStatement = (signedStatement) => {
116
+ const regex = /^([\s\S]+?)---\nStatement hash: ([A-Za-z0-9_-]+)\nPublic key: ([A-Za-z0-9_-]+)\nSignature: ([A-Za-z0-9_-]+)\nAlgorithm: ([^\n]+)\n$/;
117
+ const match = signedStatement.match(regex);
118
+ if (!match)
119
+ return null;
120
+ const statement = match[1];
121
+ const statementHash = match[2];
122
+ const publicKey = match[3];
123
+ const signature = match[4];
124
+ const algorithm = match[5];
125
+ // Verify statement hash matches
126
+ const computedHash = (0, hash_1.sha256)(statement);
127
+ if (computedHash !== statementHash) {
128
+ return null;
129
+ }
130
+ // Verify algorithm is supported
131
+ if (algorithm !== ALGORITHM) {
132
+ return null;
133
+ }
134
+ return {
135
+ statement,
136
+ publicKey,
137
+ signature,
138
+ statementHash,
139
+ algorithm,
140
+ };
141
+ };
142
+ exports.parseSignedStatement = parseSignedStatement;
143
+ /**
144
+ * Verify a signed statement
145
+ * @param signedStatement - The signed statement text
146
+ * @returns true if signature is valid, false otherwise
147
+ */
148
+ const verifySignedStatement = async (signedStatement) => {
149
+ const parsed = (0, exports.parseSignedStatement)(signedStatement);
150
+ if (!parsed)
151
+ return false;
152
+ return await (0, exports.verifySignature)(parsed.statement, parsed.signature, parsed.publicKey);
153
+ };
154
+ exports.verifySignedStatement = verifySignedStatement;
155
+ /**
156
+ * Convert bytes to base64 string
157
+ * @param bytes - Uint8Array to convert
158
+ * @returns Base64 string
159
+ */
160
+ function bytesToBase64(bytes) {
161
+ // Use btoa if available (browser), otherwise use Buffer (Node.js)
162
+ if (typeof btoa !== 'undefined') {
163
+ return btoa(String.fromCharCode(...Array.from(bytes)));
164
+ }
165
+ else {
166
+ return Buffer.from(bytes).toString('base64');
167
+ }
168
+ }
169
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,10 @@
1
- export type StatementTypeValue = 'statement' | 'quotation' | 'organisation_verification' | 'person_verification' | 'poll' | 'vote' | 'response' | 'dispute_statement_content' | 'dispute_statement_authenticity' | 'boycott' | 'observation' | 'rating' | 'sign_pdf' | 'bounty';
1
+ import type { SupportedLanguage } from './constants';
2
+ export type LegalForm = 'local government' | 'state government' | 'foreign affairs ministry' | 'corporation';
3
+ export type PeopleCountBucket = '0-10' | '10-100' | '100-1000' | '1000-10,000' | '10,000-100,000' | '100,000+' | '1,000,000+' | '10,000,000+';
4
+ export declare function isLegalForm(value: string): value is LegalForm;
5
+ export declare function isPeopleCountBucket(value: string): value is PeopleCountBucket;
6
+ export declare function isRatingValue(value: number): value is RatingValue;
7
+ export type StatementTypeValue = 'statement' | 'organisation_verification' | 'person_verification' | 'poll' | 'vote' | 'response' | 'dispute_statement_content' | 'dispute_statement_authenticity' | 'rating' | 'sign_pdf';
2
8
  export type Statement = {
3
9
  domain: string;
4
10
  author: string;
@@ -8,52 +14,42 @@ export type Statement = {
8
14
  representative?: string;
9
15
  supersededStatement?: string;
10
16
  formatVersion?: string;
17
+ translations?: Partial<Record<SupportedLanguage, string>>;
18
+ attachments?: string[];
11
19
  };
12
- export type Quotation = {
13
- originalAuthor: string;
14
- authorVerification: string;
15
- originalTime?: string;
16
- source?: string;
17
- quotation?: string;
18
- paraphrasedStatement?: string;
19
- picture?: string;
20
- confidence?: string;
20
+ export type CryptographicallySignedStatement = {
21
+ statement: string;
22
+ statementHash: string;
23
+ publicKey: string;
24
+ signature: string;
25
+ algorithm: string;
21
26
  };
22
27
  export type Poll = {
23
- country: string | undefined;
24
- city: string | undefined;
25
- legalEntity: string | undefined;
26
- domainScope: string[] | undefined;
27
- judges?: string;
28
28
  deadline: Date | undefined;
29
29
  poll: string;
30
30
  scopeDescription?: string;
31
- scopeQueryLink?: string;
32
31
  options: string[];
33
32
  allowArbitraryVote?: boolean;
34
- requiredProperty?: string;
35
- requiredPropertyValue?: string;
36
- requiredPropertyObserver?: string;
37
- requiredMinConfidence?: number;
38
33
  };
39
34
  export type OrganisationVerification = {
40
35
  name: string;
41
36
  englishName?: string;
42
37
  country: string;
43
- city: string;
44
- province: string;
45
- legalForm: string;
38
+ city?: string;
39
+ province?: string;
40
+ legalForm: LegalForm;
46
41
  department?: string;
47
42
  domain: string;
48
- foreignDomain: string;
49
- serialNumber: string;
43
+ foreignDomain?: string;
44
+ serialNumber?: string;
50
45
  confidence?: number;
51
46
  reliabilityPolicy?: string;
52
- employeeCount?: string;
47
+ employeeCount?: PeopleCountBucket;
53
48
  pictureHash?: string;
54
49
  latitude?: number;
55
50
  longitude?: number;
56
- population?: string;
51
+ population?: PeopleCountBucket;
52
+ publicKey?: string;
57
53
  };
58
54
  export type withOwnDomain = {
59
55
  ownDomain: string;
@@ -74,6 +70,7 @@ export type PersonVerification = {
74
70
  confidence?: number;
75
71
  picture?: string;
76
72
  reliabilityPolicy?: string;
73
+ publicKey?: string;
77
74
  } & (withOwnDomain | withForeignDomain);
78
75
  export type Vote = {
79
76
  pollHash: string;
@@ -98,12 +95,13 @@ export type PDFSigning = {
98
95
  hash: string;
99
96
  };
100
97
  export type RatingSubjectTypeValue = 'Organisation' | 'Policy proposal' | 'Treaty draft' | 'Research publication' | 'Regulation' | 'Product';
98
+ export type RatingValue = 1 | 2 | 3 | 4 | 5;
101
99
  export type Rating = {
102
100
  subjectType?: RatingSubjectTypeValue;
103
101
  subjectName: string;
104
102
  subjectReference?: string;
105
103
  documentFileHash?: string;
106
- rating: number;
104
+ rating: RatingValue;
107
105
  quality?: string;
108
106
  comment?: string;
109
107
  };
@@ -114,36 +112,4 @@ export type Bounty = {
114
112
  judge: string;
115
113
  judgePay?: string;
116
114
  };
117
- export type Observation = {
118
- description?: string;
119
- approach?: string;
120
- confidence?: number;
121
- reliabilityPolicy?: string;
122
- subject: string;
123
- subjectReference?: string;
124
- observationReference?: string;
125
- property: string;
126
- value?: string;
127
- };
128
- export type PollV3 = {
129
- country: string | undefined;
130
- city: string | undefined;
131
- legalEntity: string | undefined;
132
- domainScope: string[] | undefined;
133
- judges?: string;
134
- deadline: Date;
135
- poll: string;
136
- scopeDescription?: string;
137
- scopeQueryLink?: string;
138
- scopeProperty?: string;
139
- propertyScopeObserver?: string;
140
- pollType?: string;
141
- options: string[];
142
- };
143
- export type Boycott = {
144
- description?: string;
145
- reliabilityPolicy?: string;
146
- subject: string;
147
- subjectReference?: string;
148
- };
149
115
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GACxB,WAAW,GACX,WAAW,GACX,2BAA2B,GAC3B,qBAAqB,GACrB,MAAM,GACN,MAAM,GACN,UAAU,GACV,2BAA2B,GAC3B,gCAAgC,GAChC,SAAS,GACT,aAAa,GACb,QAAQ,GACR,UAAU,GACV,QAAQ,CAAA;AAEd,MAAM,MAAM,SAAS,GAAG;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,IAAI,GAAG;IACf,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,qBAAqB,CAAC,EAAE,MAAM,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC7B,GAAG,CAAC,aAAa,GAAG,iBAAiB,CAAC,CAAA;AAEvC,MAAM,MAAM,IAAI,GAAG;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACrB,IAAI,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,sBAAsB,GAC5B,cAAc,GACd,iBAAiB,GACjB,cAAc,GACd,sBAAsB,GACtB,YAAY,GACZ,SAAS,CAAA;AAEf,MAAM,MAAM,MAAM,GAAG;IACjB,WAAW,CAAC,EAAE,sBAAsB,CAAA;IACpC,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACjB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,IAAI,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,3 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isLegalForm = isLegalForm;
4
+ exports.isPeopleCountBucket = isPeopleCountBucket;
5
+ exports.isRatingValue = isRatingValue;
6
+ // Type guards
7
+ function isLegalForm(value) {
8
+ return [
9
+ 'local government',
10
+ 'state government',
11
+ 'foreign affairs ministry',
12
+ 'corporation',
13
+ ].includes(value);
14
+ }
15
+ function isPeopleCountBucket(value) {
16
+ return [
17
+ '0-10',
18
+ '10-100',
19
+ '100-1000',
20
+ '1000-10,000',
21
+ '10,000-100,000',
22
+ '100,000+',
23
+ '1,000,000+',
24
+ '10,000,000+',
25
+ ].includes(value);
26
+ }
27
+ function isRatingValue(value) {
28
+ return [1, 2, 3, 4, 5].includes(value);
29
+ }
3
30
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAmBA,kCAOC;AAED,kDAWC;AAED,sCAEC;AAzBD,cAAc;AACd,SAAgB,WAAW,CAAC,KAAa;IACvC,OAAO;QACL,kBAAkB;QAClB,kBAAkB;QAClB,0BAA0B;QAC1B,aAAa;KACd,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,OAAO;QACL,MAAM;QACN,QAAQ;QACR,UAAU;QACV,aAAa;QACb,gBAAgB;QAChB,UAAU;QACV,YAAY;QACZ,aAAa;KACd,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC"}
package/dist/utils.d.ts CHANGED
@@ -1,3 +1,13 @@
1
+ export declare const generateFileHash: (fileContent: Buffer | string) => string;
2
+ export declare const validateFileHash: (fileContent: Buffer | string, expectedHash: string) => boolean;
3
+ export declare const generateStatementContentHash: (statementContent: string) => string;
4
+ export declare const validateStatementContentHash: (statementContent: string, expectedHash: string) => boolean;
5
+ export declare const generateStatementHash: (statement: string) => string;
6
+ export declare const validateStatementHash: (statement: string, expectedHash: string) => boolean;
7
+ export declare const generateStatementsFile: (statements: string[]) => string;
8
+ export declare const parseStatementsFile: (statementsFileContent: string) => string[];
9
+ export declare const generateStatementFilename: (statement: string) => string;
10
+ export declare const generateAttachmentFilename: (fileContent: Buffer | string, extension: string) => string;
1
11
  export declare const minPeopleCountToRange: (n: number) => string | undefined;
2
12
  export declare const monthIndex: (month: string) => number;
3
13
  export declare const birthDateFormat: RegExp;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,GAAI,GAAG,MAAM,KAAG,MAAM,GAAG,SAS1D,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAEO,CAAA;AAElD,eAAO,MAAM,eAAe,EAAE,MAAgG,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,GAAG,MAAM,KAAG,MAE/D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,GAAG,MAAM,EAAE,cAAc,MAAM,KAAG,OAErF,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,kBAAkB,MAAM,KAAG,MAEvE,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,kBAAkB,MAAM,EACxB,cAAc,MAAM,KACnB,OAEF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,WAAW,MAAM,KAAG,MASzD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,WAAW,MAAM,EAAE,cAAc,MAAM,KAAG,OAG/E,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,YAAY,MAAM,EAAE,KAAG,MAE7D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,uBAAuB,MAAM,KAAG,MAAM,EA0BzE,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,WAAW,MAAM,KAAG,MAG7D,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,aAAa,MAAM,GAAG,MAAM,EAC5B,WAAW,MAAM,KAChB,MAIF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,GAAG,MAAM,KAAG,MAAM,GAAG,SAS1D,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAGxC,CAAC;AAEJ,eAAO,MAAM,eAAe,EAAE,MAC2D,CAAC"}
package/dist/utils.js CHANGED
@@ -1,28 +1,96 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.birthDateFormat = exports.monthIndex = exports.minPeopleCountToRange = void 0;
3
+ exports.birthDateFormat = exports.monthIndex = exports.minPeopleCountToRange = exports.generateAttachmentFilename = exports.generateStatementFilename = exports.parseStatementsFile = exports.generateStatementsFile = exports.validateStatementHash = exports.generateStatementHash = exports.validateStatementContentHash = exports.generateStatementContentHash = exports.validateFileHash = exports.generateFileHash = void 0;
4
4
  const constants_1 = require("./constants");
5
+ const hash_1 = require("./hash");
6
+ const protocol_1 = require("./protocol");
7
+ const generateFileHash = (fileContent) => {
8
+ return (0, hash_1.sha256)(fileContent);
9
+ };
10
+ exports.generateFileHash = generateFileHash;
11
+ const validateFileHash = (fileContent, expectedHash) => {
12
+ return (0, hash_1.verify)(fileContent, expectedHash);
13
+ };
14
+ exports.validateFileHash = validateFileHash;
15
+ const generateStatementContentHash = (statementContent) => {
16
+ return (0, hash_1.sha256)(statementContent);
17
+ };
18
+ exports.generateStatementContentHash = generateStatementContentHash;
19
+ const validateStatementContentHash = (statementContent, expectedHash) => {
20
+ return (0, hash_1.verify)(statementContent, expectedHash);
21
+ };
22
+ exports.validateStatementContentHash = validateStatementContentHash;
23
+ const generateStatementHash = (statement) => {
24
+ const signatureRegex = /^([\s\S]+?)---\n[\s\S]+$/;
25
+ const match = statement.match(signatureRegex);
26
+ if (match && match[1]) {
27
+ return (0, hash_1.sha256)(match[1]);
28
+ }
29
+ return (0, hash_1.sha256)(statement);
30
+ };
31
+ exports.generateStatementHash = generateStatementHash;
32
+ const validateStatementHash = (statement, expectedHash) => {
33
+ const computedHash = (0, exports.generateStatementHash)(statement);
34
+ return computedHash === expectedHash;
35
+ };
36
+ exports.validateStatementHash = validateStatementHash;
37
+ const generateStatementsFile = (statements) => {
38
+ return statements.join('\n\n');
39
+ };
40
+ exports.generateStatementsFile = generateStatementsFile;
41
+ const parseStatementsFile = (statementsFileContent) => {
42
+ const statementParts = statementsFileContent.split(/\n\nStated protocol version: /);
43
+ const statements = [];
44
+ for (let i = 0; i < statementParts.length; i++) {
45
+ let statement = statementParts[i];
46
+ if (i === 0 && statement.trim().length === 0)
47
+ continue;
48
+ if (i > 0) {
49
+ statement = 'Stated protocol version: ' + statement;
50
+ }
51
+ statement = statement.replace(/\n+$/, '\n');
52
+ try {
53
+ (0, protocol_1.parseStatement)({ statement });
54
+ statements.push(statement);
55
+ }
56
+ catch (error) {
57
+ throw new Error(`Invalid statement at index ${i}: ${error instanceof Error ? error.message : String(error)}`);
58
+ }
59
+ }
60
+ return statements;
61
+ };
62
+ exports.parseStatementsFile = parseStatementsFile;
63
+ const generateStatementFilename = (statement) => {
64
+ const hash = (0, exports.generateStatementHash)(statement);
65
+ return `${hash}.txt`;
66
+ };
67
+ exports.generateStatementFilename = generateStatementFilename;
68
+ const generateAttachmentFilename = (fileContent, extension) => {
69
+ const hash = (0, exports.generateFileHash)(fileContent);
70
+ const ext = extension.startsWith('.') ? extension.substring(1) : extension;
71
+ return `${hash}.${ext}`;
72
+ };
73
+ exports.generateAttachmentFilename = generateAttachmentFilename;
5
74
  const minPeopleCountToRange = (n) => {
6
75
  if (n >= 10000000)
7
- return constants_1.peopleCountBuckets["10000000"];
76
+ return constants_1.peopleCountBuckets['10000000'];
8
77
  if (n >= 1000000)
9
- return constants_1.peopleCountBuckets["1000000"];
78
+ return constants_1.peopleCountBuckets['1000000'];
10
79
  if (n >= 100000)
11
- return constants_1.peopleCountBuckets["100000"];
80
+ return constants_1.peopleCountBuckets['100000'];
12
81
  if (n >= 10000)
13
- return constants_1.peopleCountBuckets["10000"];
82
+ return constants_1.peopleCountBuckets['10000'];
14
83
  if (n >= 1000)
15
- return constants_1.peopleCountBuckets["1000"];
84
+ return constants_1.peopleCountBuckets['1000'];
16
85
  if (n >= 100)
17
- return constants_1.peopleCountBuckets["100"];
86
+ return constants_1.peopleCountBuckets['100'];
18
87
  if (n >= 10)
19
- return constants_1.peopleCountBuckets["10"];
88
+ return constants_1.peopleCountBuckets['10'];
20
89
  if (n >= 0)
21
- return constants_1.peopleCountBuckets["0"];
90
+ return constants_1.peopleCountBuckets['0'];
22
91
  };
23
92
  exports.minPeopleCountToRange = minPeopleCountToRange;
24
- const monthIndex = (month) => ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"]
25
- .indexOf(month.toLowerCase().substr(0, 3));
93
+ const monthIndex = (month) => ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'].indexOf(month.toLowerCase().substr(0, 3));
26
94
  exports.monthIndex = monthIndex;
27
95
  exports.birthDateFormat = /(?<d>\d{1,2})\s(?<month>Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?<y>\d{4})/;
28
96
  //# sourceMappingURL=utils.js.map