@civiq/entity-resolution 0.1.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 (81) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +135 -0
  3. package/data/bioguide-fec-mapping.json +4186 -0
  4. package/data/sec-sic-data.json +10427 -0
  5. package/dist/__tests__/company-entity-resolver.test.d.ts +6 -0
  6. package/dist/__tests__/company-entity-resolver.test.d.ts.map +1 -0
  7. package/dist/__tests__/company-entity-resolver.test.js +267 -0
  8. package/dist/__tests__/company-entity-resolver.test.js.map +1 -0
  9. package/dist/__tests__/entity-resolution.test.d.ts +2 -0
  10. package/dist/__tests__/entity-resolution.test.d.ts.map +1 -0
  11. package/dist/__tests__/entity-resolution.test.js +296 -0
  12. package/dist/__tests__/entity-resolution.test.js.map +1 -0
  13. package/dist/__tests__/fec-entity-resolution.test.d.ts +2 -0
  14. package/dist/__tests__/fec-entity-resolution.test.d.ts.map +1 -0
  15. package/dist/__tests__/fec-entity-resolution.test.js +49 -0
  16. package/dist/__tests__/fec-entity-resolution.test.js.map +1 -0
  17. package/dist/bioguide-fec-mapping.d.ts +27 -0
  18. package/dist/bioguide-fec-mapping.d.ts.map +1 -0
  19. package/dist/bioguide-fec-mapping.js +57 -0
  20. package/dist/bioguide-fec-mapping.js.map +1 -0
  21. package/dist/cache.d.ts +18 -0
  22. package/dist/cache.d.ts.map +1 -0
  23. package/dist/cache.js +18 -0
  24. package/dist/cache.js.map +1 -0
  25. package/dist/committee-agency-map.d.ts +58 -0
  26. package/dist/committee-agency-map.d.ts.map +1 -0
  27. package/dist/committee-agency-map.js +658 -0
  28. package/dist/committee-agency-map.js.map +1 -0
  29. package/dist/committee-alias-table.d.ts +11 -0
  30. package/dist/committee-alias-table.d.ts.map +1 -0
  31. package/dist/committee-alias-table.js +191 -0
  32. package/dist/committee-alias-table.js.map +1 -0
  33. package/dist/company-alias-table.d.ts +36 -0
  34. package/dist/company-alias-table.d.ts.map +1 -0
  35. package/dist/company-alias-table.js +1307 -0
  36. package/dist/company-alias-table.js.map +1 -0
  37. package/dist/company-entity-resolver.d.ts +94 -0
  38. package/dist/company-entity-resolver.d.ts.map +1 -0
  39. package/dist/company-entity-resolver.js +282 -0
  40. package/dist/company-entity-resolver.js.map +1 -0
  41. package/dist/configure.d.ts +15 -0
  42. package/dist/configure.d.ts.map +1 -0
  43. package/dist/configure.js +19 -0
  44. package/dist/configure.js.map +1 -0
  45. package/dist/fec-entity-resolution.d.ts +88 -0
  46. package/dist/fec-entity-resolution.d.ts.map +1 -0
  47. package/dist/fec-entity-resolution.js +407 -0
  48. package/dist/fec-entity-resolution.js.map +1 -0
  49. package/dist/index.d.ts +30 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +33 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/industry-taxonomy.d.ts +90 -0
  54. package/dist/industry-taxonomy.d.ts.map +1 -0
  55. package/dist/industry-taxonomy.js +1026 -0
  56. package/dist/industry-taxonomy.js.map +1 -0
  57. package/dist/lda-issue-policy-map.d.ts +13 -0
  58. package/dist/lda-issue-policy-map.d.ts.map +1 -0
  59. package/dist/lda-issue-policy-map.js +193 -0
  60. package/dist/lda-issue-policy-map.js.map +1 -0
  61. package/dist/lobbying-committee-resolver.d.ts +23 -0
  62. package/dist/lobbying-committee-resolver.d.ts.map +1 -0
  63. package/dist/lobbying-committee-resolver.js +158 -0
  64. package/dist/lobbying-committee-resolver.js.map +1 -0
  65. package/dist/logger.d.ts +20 -0
  66. package/dist/logger.d.ts.map +1 -0
  67. package/dist/logger.js +20 -0
  68. package/dist/logger.js.map +1 -0
  69. package/dist/sic-sector-map.d.ts +32 -0
  70. package/dist/sic-sector-map.d.ts.map +1 -0
  71. package/dist/sic-sector-map.js +109 -0
  72. package/dist/sic-sector-map.js.map +1 -0
  73. package/dist/ticker-industry-resolver.d.ts +22 -0
  74. package/dist/ticker-industry-resolver.d.ts.map +1 -0
  75. package/dist/ticker-industry-resolver.js +254 -0
  76. package/dist/ticker-industry-resolver.js.map +1 -0
  77. package/dist/types.d.ts +30 -0
  78. package/dist/types.d.ts.map +1 -0
  79. package/dist/types.js +6 -0
  80. package/dist/types.js.map +1 -0
  81. package/package.json +51 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"company-alias-table.js","sourceRoot":"","sources":["../src/company-alias-table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Copyright (c) 2019-2025 Mark Sandford
3
+ * Licensed under the MIT License. See LICENSE and NOTICE files.
4
+ */
5
+ /**
6
+ * Unified Company Entity Resolution
7
+ *
8
+ * Consolidates duplicate name normalization and matching logic from:
9
+ * - fec-entity-resolution.ts (cleanNameForMatching, expandAbbreviation, levenshteinDistance)
10
+ * - influence-chain-analyzer.ts (normalizeOrgName, validateTokenOverlap, levenshteinDistance)
11
+ *
12
+ * Single canonical implementation for cross-API company name matching
13
+ * across EPA, OSHA, CFPB, SEC, FEC, and LDA data sources.
14
+ */
15
+ import { IndustrySector } from './industry-taxonomy';
16
+ export interface ResolvedCompany {
17
+ canonicalName: string;
18
+ normalizedName: string;
19
+ aliases: string[];
20
+ sicCodes: string[];
21
+ naicsCodes: string[];
22
+ sector: IndustrySector | null;
23
+ cik: string | null;
24
+ confidence: number;
25
+ }
26
+ /**
27
+ * Normalize a company name for matching.
28
+ *
29
+ * Consolidates cleanNameForMatching() (fec-entity-resolution.ts) and
30
+ * normalizeOrgName() (influence-chain-analyzer.ts) into a single pipeline:
31
+ *
32
+ * 1. Trim and uppercase
33
+ * 2. Strip corporate suffixes (word boundary, all occurrences)
34
+ * 3. Normalize & to AND
35
+ * 4. Remove non-word non-space characters
36
+ * 5. Collapse whitespace
37
+ * 6. Expand abbreviations (JNJ -> JOHNSON AND JOHNSON)
38
+ */
39
+ export declare function normalizeCompanyName(name: string): string;
40
+ /**
41
+ * Compute similarity ratio between two strings (0-1).
42
+ * 1.0 = identical, 0.0 = completely different.
43
+ */
44
+ export declare function similarityRatio(a: string, b: string): number;
45
+ /**
46
+ * Validate that two normalized names share enough word tokens.
47
+ *
48
+ * Catches false positives that Levenshtein misses. For example:
49
+ * "American Health Association" vs "American Heart Association" = 0.90 Levenshtein
50
+ * But "Health" vs "Heart" = 0.6 token similarity -> correctly rejected.
51
+ *
52
+ * Each token from the shorter name must find a close match (>= 0.75
53
+ * similarity) in the longer name. At least `threshold` fraction of the
54
+ * shorter name's tokens must match.
55
+ */
56
+ export declare function validateTokenOverlap(a: string, b: string, threshold?: number): boolean;
57
+ /**
58
+ * Check whether two company names refer to the same entity.
59
+ *
60
+ * Pipeline:
61
+ * 1. Normalize both names
62
+ * 2. Check alias table for canonical matches
63
+ * 3. Levenshtein similarity with token overlap validation
64
+ * 4. Optional SIC code cross-validation boost
65
+ */
66
+ export declare function companiesMatch(a: string, b: string, context?: {
67
+ sicCodeA?: string;
68
+ sicCodeB?: string;
69
+ }): {
70
+ match: boolean;
71
+ confidence: number;
72
+ };
73
+ /**
74
+ * Resolve a raw company name to its canonical form.
75
+ * Uses alias table lookup and SIC/NAICS cross-validation.
76
+ */
77
+ export declare function resolveCompanyName(rawName: string, context?: {
78
+ sicCode?: string;
79
+ naicsCode?: string;
80
+ state?: string;
81
+ }): ResolvedCompany | null;
82
+ /**
83
+ * Batch resolve company names, deduplicating entries that resolve to the same entity.
84
+ */
85
+ export declare function resolveCompanyNames(entries: Array<{
86
+ name: string;
87
+ source: string;
88
+ context?: {
89
+ sicCode?: string;
90
+ naicsCode?: string;
91
+ state?: string;
92
+ };
93
+ }>): Map<string, ResolvedCompany>;
94
+ //# sourceMappingURL=company-entity-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"company-entity-resolver.d.ts","sourceRoot":"","sources":["../src/company-entity-resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAsCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBzD;AA6CD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5D;AAKD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,GAAE,MAAY,GAAG,OAAO,CAc3F;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAuCxC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACjE,eAAe,GAAG,IAAI,CA4BxB;AA2BD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE,CAAC,GACD,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAoC9B"}
@@ -0,0 +1,282 @@
1
+ /**
2
+ * Copyright (c) 2019-2025 Mark Sandford
3
+ * Licensed under the MIT License. See LICENSE and NOTICE files.
4
+ */
5
+ import { sicToSector } from './sic-sector-map';
6
+ import { findCompanyByAlias } from './company-alias-table';
7
+ /**
8
+ * Common abbreviations used in FEC/lobbying data.
9
+ * Maps normalized short forms to canonical uppercase names.
10
+ * Consolidated from fec-entity-resolution.ts.
11
+ */
12
+ const COMMON_ABBREVIATIONS = {
13
+ jnj: 'JOHNSON AND JOHNSON',
14
+ jj: 'JOHNSON AND JOHNSON',
15
+ 'j and j': 'JOHNSON AND JOHNSON',
16
+ gm: 'GENERAL MOTORS',
17
+ ge: 'GENERAL ELECTRIC',
18
+ ibm: 'INTERNATIONAL BUSINESS MACHINES',
19
+ att: 'AT AND T',
20
+ 'at t': 'AT AND T',
21
+ jpmorgan: 'JPMORGAN CHASE',
22
+ jpm: 'JPMORGAN CHASE',
23
+ bofa: 'BANK OF AMERICA',
24
+ pg: 'PROCTER AND GAMBLE',
25
+ 'p and g': 'PROCTER AND GAMBLE',
26
+ msft: 'MICROSOFT',
27
+ amzn: 'AMAZON',
28
+ goog: 'ALPHABET',
29
+ aapl: 'APPLE',
30
+ pfizer: 'PFIZER',
31
+ raytheon: 'RAYTHEON TECHNOLOGIES',
32
+ lockmart: 'LOCKHEED MARTIN',
33
+ ba: 'BOEING',
34
+ };
35
+ /**
36
+ * Corporate suffixes to strip from company names.
37
+ * Word-boundary matching catches them anywhere in the string.
38
+ */
39
+ const SUFFIX_PATTERN = /\b(inc|llc|llp|corp|lp|ltd|co|company|corporation|incorporated|limited|holding|holdings|group|plc|sa|ag|gmbh)\b\.?/gi;
40
+ /**
41
+ * Normalize a company name for matching.
42
+ *
43
+ * Consolidates cleanNameForMatching() (fec-entity-resolution.ts) and
44
+ * normalizeOrgName() (influence-chain-analyzer.ts) into a single pipeline:
45
+ *
46
+ * 1. Trim and uppercase
47
+ * 2. Strip corporate suffixes (word boundary, all occurrences)
48
+ * 3. Normalize & to AND
49
+ * 4. Remove non-word non-space characters
50
+ * 5. Collapse whitespace
51
+ * 6. Expand abbreviations (JNJ -> JOHNSON AND JOHNSON)
52
+ */
53
+ export function normalizeCompanyName(name) {
54
+ let normalized = name
55
+ .trim()
56
+ .toUpperCase()
57
+ .replace(SUFFIX_PATTERN, '')
58
+ .replace(/&/g, ' AND ')
59
+ .replace(/[^\w\s]/g, '')
60
+ .replace(/\s+/g, ' ')
61
+ .trim();
62
+ // Expand known abbreviations
63
+ const lower = normalized.toLowerCase();
64
+ if (COMMON_ABBREVIATIONS[lower]) {
65
+ normalized = COMMON_ABBREVIATIONS[lower];
66
+ }
67
+ return normalized;
68
+ }
69
+ /**
70
+ * Compute Levenshtein distance between two strings.
71
+ * Uses Int32Array flat matrix for memory efficiency.
72
+ *
73
+ * Consolidated from both fec-entity-resolution.ts and
74
+ * influence-chain-analyzer.ts (Int32Array version).
75
+ */
76
+ function levenshteinDistance(a, b) {
77
+ const m = a.length;
78
+ const n = b.length;
79
+ if (m === 0)
80
+ return n;
81
+ if (n === 0)
82
+ return m;
83
+ const width = n + 1;
84
+ const flat = new Int32Array((m + 1) * width);
85
+ const get = (i, j) => flat[i * width + j];
86
+ const set = (i, j, v) => {
87
+ flat[i * width + j] = v;
88
+ };
89
+ for (let i = 0; i <= m; i++)
90
+ set(i, 0, i);
91
+ for (let j = 0; j <= n; j++)
92
+ set(0, j, j);
93
+ for (let i = 1; i <= m; i++) {
94
+ for (let j = 1; j <= n; j++) {
95
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
96
+ set(i, j, Math.min(get(i - 1, j) + 1, // deletion
97
+ get(i, j - 1) + 1, // insertion
98
+ get(i - 1, j - 1) + cost // substitution
99
+ ));
100
+ }
101
+ }
102
+ return get(m, n);
103
+ }
104
+ /**
105
+ * Compute similarity ratio between two strings (0-1).
106
+ * 1.0 = identical, 0.0 = completely different.
107
+ */
108
+ export function similarityRatio(a, b) {
109
+ const maxLen = Math.max(a.length, b.length);
110
+ if (maxLen === 0)
111
+ return 1.0;
112
+ return 1 - levenshteinDistance(a, b) / maxLen;
113
+ }
114
+ /** Minimum token-level similarity to count as a match (handles typos like northrop/northrup) */
115
+ const TOKEN_SIMILARITY_THRESHOLD = 0.75;
116
+ /**
117
+ * Validate that two normalized names share enough word tokens.
118
+ *
119
+ * Catches false positives that Levenshtein misses. For example:
120
+ * "American Health Association" vs "American Heart Association" = 0.90 Levenshtein
121
+ * But "Health" vs "Heart" = 0.6 token similarity -> correctly rejected.
122
+ *
123
+ * Each token from the shorter name must find a close match (>= 0.75
124
+ * similarity) in the longer name. At least `threshold` fraction of the
125
+ * shorter name's tokens must match.
126
+ */
127
+ export function validateTokenOverlap(a, b, threshold = 0.7) {
128
+ const tokensA = a.split(/\s+/).filter(t => t.length > 0);
129
+ const tokensB = b.split(/\s+/).filter(t => t.length > 0);
130
+ if (tokensA.length === 0 || tokensB.length === 0)
131
+ return false;
132
+ const [shorter, longer] = tokensA.length <= tokensB.length ? [tokensA, tokensB] : [tokensB, tokensA];
133
+ const matches = shorter.filter(token => longer.some(other => similarityRatio(token, other) >= TOKEN_SIMILARITY_THRESHOLD)).length;
134
+ return matches / shorter.length >= threshold;
135
+ }
136
+ /**
137
+ * Check whether two company names refer to the same entity.
138
+ *
139
+ * Pipeline:
140
+ * 1. Normalize both names
141
+ * 2. Check alias table for canonical matches
142
+ * 3. Levenshtein similarity with token overlap validation
143
+ * 4. Optional SIC code cross-validation boost
144
+ */
145
+ export function companiesMatch(a, b, context) {
146
+ const normA = normalizeCompanyName(a);
147
+ const normB = normalizeCompanyName(b);
148
+ // Exact match after normalization
149
+ if (normA === normB) {
150
+ return { match: true, confidence: 1.0 };
151
+ }
152
+ // Alias table lookup: if both resolve to the same canonical name
153
+ const aliasA = findCompanyByAlias(a);
154
+ const aliasB = findCompanyByAlias(b);
155
+ if (aliasA && aliasB && aliasA.canonicalName === aliasB.canonicalName) {
156
+ return { match: true, confidence: 0.95 };
157
+ }
158
+ // Levenshtein similarity
159
+ const ratio = similarityRatio(normA, normB);
160
+ if (ratio < 0.8) {
161
+ return { match: false, confidence: ratio };
162
+ }
163
+ // Token overlap validation (catches false positives)
164
+ if (!validateTokenOverlap(normA, normB)) {
165
+ return { match: false, confidence: ratio * 0.5 };
166
+ }
167
+ // SIC code cross-validation boost
168
+ let sicBoost = 0;
169
+ if (context?.sicCodeA && context?.sicCodeB) {
170
+ const sectorA = sicToSector(context.sicCodeA);
171
+ const sectorB = sicToSector(context.sicCodeB);
172
+ if (sectorA && sectorB && sectorA === sectorB) {
173
+ sicBoost = 0.05;
174
+ }
175
+ }
176
+ const confidence = Math.min(ratio + sicBoost, 1.0);
177
+ return { match: confidence >= 0.8, confidence };
178
+ }
179
+ /**
180
+ * Resolve a raw company name to its canonical form.
181
+ * Uses alias table lookup and SIC/NAICS cross-validation.
182
+ */
183
+ export function resolveCompanyName(rawName, context) {
184
+ if (!rawName?.trim())
185
+ return null;
186
+ const normalizedName = normalizeCompanyName(rawName);
187
+ if (normalizedName.length === 0)
188
+ return null;
189
+ // Look up in alias table
190
+ const alias = findCompanyByAlias(rawName);
191
+ if (alias) {
192
+ return resolveFromAlias(alias, normalizedName, context);
193
+ }
194
+ // No alias match: return normalized form with lower confidence
195
+ let sector = null;
196
+ if (context?.sicCode) {
197
+ sector = sicToSector(context.sicCode);
198
+ }
199
+ return {
200
+ canonicalName: normalizedName,
201
+ normalizedName,
202
+ aliases: [rawName],
203
+ sicCodes: context?.sicCode ? [context.sicCode] : [],
204
+ naicsCodes: context?.naicsCode ? [context.naicsCode] : [],
205
+ sector,
206
+ cik: null,
207
+ confidence: 0.5,
208
+ };
209
+ }
210
+ function resolveFromAlias(alias, normalizedName, context) {
211
+ let sectorFromContext = null;
212
+ if (context?.sicCode) {
213
+ sectorFromContext = sicToSector(context.sicCode);
214
+ }
215
+ const sector = sectorFromContext ?? alias.sector;
216
+ const sicMatch = sectorFromContext && alias.sector ? sectorFromContext === alias.sector : true;
217
+ return {
218
+ canonicalName: alias.canonicalName,
219
+ normalizedName,
220
+ aliases: alias.aliases,
221
+ sicCodes: alias.sicCodes,
222
+ naicsCodes: alias.naicsCodes,
223
+ sector,
224
+ cik: alias.cik,
225
+ confidence: sicMatch ? 0.95 : 0.8,
226
+ };
227
+ }
228
+ /**
229
+ * Batch resolve company names, deduplicating entries that resolve to the same entity.
230
+ */
231
+ export function resolveCompanyNames(entries) {
232
+ const results = new Map();
233
+ for (const entry of entries) {
234
+ const resolved = resolveCompanyName(entry.name, entry.context);
235
+ if (!resolved)
236
+ continue;
237
+ const key = resolved.canonicalName;
238
+ const existing = results.get(key);
239
+ if (existing) {
240
+ mergeInto(existing, entry.name, resolved);
241
+ continue;
242
+ }
243
+ // Check if this matches an existing entry by name similarity
244
+ let merged = false;
245
+ for (const [existingKey, existingResolved] of results) {
246
+ const matchResult = companiesMatch(resolved.canonicalName, existingKey, {
247
+ sicCodeA: resolved.sicCodes[0],
248
+ sicCodeB: existingResolved.sicCodes[0],
249
+ });
250
+ if (matchResult.match) {
251
+ mergeInto(existingResolved, entry.name, resolved);
252
+ existingResolved.confidence = Math.max(existingResolved.confidence, matchResult.confidence);
253
+ merged = true;
254
+ break;
255
+ }
256
+ }
257
+ if (!merged) {
258
+ results.set(key, resolved);
259
+ }
260
+ }
261
+ return results;
262
+ }
263
+ function mergeInto(target, newAlias, source) {
264
+ if (!target.aliases.includes(newAlias)) {
265
+ target.aliases.push(newAlias);
266
+ }
267
+ for (const sic of source.sicCodes) {
268
+ if (!target.sicCodes.includes(sic)) {
269
+ target.sicCodes.push(sic);
270
+ }
271
+ }
272
+ for (const naics of source.naicsCodes) {
273
+ if (!target.naicsCodes.includes(naics)) {
274
+ target.naicsCodes.push(naics);
275
+ }
276
+ }
277
+ target.confidence = Math.max(target.confidence, source.confidence);
278
+ if (!target.cik && source.cik) {
279
+ target.cik = source.cik;
280
+ }
281
+ }
282
+ //# sourceMappingURL=company-entity-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"company-entity-resolver.js","sourceRoot":"","sources":["../src/company-entity-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Copyright (c) 2019-2025 Mark Sandford
3
+ * Licensed under the MIT License. See LICENSE and NOTICE files.
4
+ */
5
+ import { type Logger } from './logger';
6
+ import { type CacheAdapter } from './cache';
7
+ /**
8
+ * Configure the entity-resolution package with app-specific dependencies.
9
+ * Call once at application startup before using any resolution functions.
10
+ */
11
+ export declare function configure(options: {
12
+ logger?: Logger;
13
+ cache?: CacheAdapter;
14
+ }): void;
15
+ //# sourceMappingURL=configure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAEtD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,YAAY,CAAA;CAAE,GAAG,IAAI,CAOlF"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright (c) 2019-2025 Mark Sandford
3
+ * Licensed under the MIT License. See LICENSE and NOTICE files.
4
+ */
5
+ import { setLogger } from './logger';
6
+ import { setCache } from './cache';
7
+ /**
8
+ * Configure the entity-resolution package with app-specific dependencies.
9
+ * Call once at application startup before using any resolution functions.
10
+ */
11
+ export function configure(options) {
12
+ if (options.logger) {
13
+ setLogger(options.logger);
14
+ }
15
+ if (options.cache) {
16
+ setCache(options.cache);
17
+ }
18
+ }
19
+ //# sourceMappingURL=configure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAe,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAqB,MAAM,SAAS,CAAC;AAEtD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,OAAkD;IAC1E,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Copyright (c) 2019-2025 Mark Sandford
3
+ * Licensed under the MIT License. See LICENSE and NOTICE files.
4
+ */
5
+ /**
6
+ * Standardized entity record with normalized name and metadata
7
+ */
8
+ export interface StandardizedEntity {
9
+ normalizedName: string;
10
+ displayName: string;
11
+ rawVariants: string[];
12
+ entityType: 'individual' | 'organization' | 'unknown';
13
+ metadata: {
14
+ employer?: string;
15
+ occupation?: string;
16
+ city?: string;
17
+ state?: string;
18
+ zip?: string;
19
+ };
20
+ }
21
+ /**
22
+ * Entity aggregation with deduplication
23
+ */
24
+ export interface AggregatedEntity extends StandardizedEntity {
25
+ totalAmount: number;
26
+ transactionCount: number;
27
+ transactions: Array<{
28
+ amount: number;
29
+ date: string;
30
+ rawName: string;
31
+ }>;
32
+ }
33
+ /**
34
+ * Check if two entities should be considered the same based on name similarity
35
+ * and metadata matching
36
+ */
37
+ export declare function entitiesMatch(entity1: {
38
+ name: string;
39
+ employer?: string;
40
+ city?: string;
41
+ state?: string;
42
+ zip?: string;
43
+ }, entity2: {
44
+ name: string;
45
+ employer?: string;
46
+ city?: string;
47
+ state?: string;
48
+ zip?: string;
49
+ }, threshold?: number): boolean;
50
+ /**
51
+ * Normalize a single entity name and metadata
52
+ */
53
+ export declare function normalizeEntity(name: string, metadata?: {
54
+ employer?: string;
55
+ occupation?: string;
56
+ city?: string;
57
+ state?: string;
58
+ zip?: string;
59
+ }): StandardizedEntity;
60
+ /**
61
+ * Deduplicate and aggregate contributions by entity
62
+ */
63
+ export declare function deduplicateContributions(contributions: Array<{
64
+ contributor_name: string;
65
+ contributor_employer?: string;
66
+ contributor_occupation?: string;
67
+ contributor_city?: string;
68
+ contributor_state?: string;
69
+ contributor_zip?: string;
70
+ contribution_receipt_amount: number;
71
+ contribution_receipt_date: string;
72
+ }>): AggregatedEntity[];
73
+ /**
74
+ * Deduplicate and aggregate disbursements by recipient
75
+ */
76
+ export declare function deduplicateDisbursements(disbursements: Array<{
77
+ recipient_name: string;
78
+ recipient_city?: string;
79
+ recipient_state?: string;
80
+ disbursement_amount: number;
81
+ disbursement_date: string;
82
+ disbursement_description?: string;
83
+ }>): AggregatedEntity[];
84
+ /**
85
+ * Standardize employer/organization names for industry analysis
86
+ */
87
+ export declare function standardizeEmployerName(employer: string): string;
88
+ //# sourceMappingURL=fec-entity-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fec-entity-resolution.d.ts","sourceRoot":"","sources":["../src/fec-entity-resolution.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuDH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC;IACtD,QAAQ,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,KAAK,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAiID;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE;IACP,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,EACD,OAAO,EAAE;IACP,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,EACD,SAAS,GAAE,MAAa,GACvB,OAAO,CAiET;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE;IACT,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GACA,kBAAkB,CAqBpB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,KAAK,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2BAA2B,EAAE,MAAM,CAAC;IACpC,yBAAyB,EAAE,MAAM,CAAC;CACnC,CAAC,GACD,gBAAgB,EAAE,CA6FpB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,KAAK,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC,GACD,gBAAgB,EAAE,CA8EpB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAchE"}