tn-elections-mcp 0.5.0 → 0.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.
@@ -27,7 +27,16 @@ export declare function searchCandidates(params: CandidateSearchParams): Promise
27
27
  export declare function getCandidateReports(candidateId: number, ownerName: string): Promise<TncampReport[]>;
28
28
  export declare function getReportDetail(reportId: number): Promise<TncampReportDetail>;
29
29
  export interface ContributionSearchParams {
30
- candName?: string;
30
+ /**
31
+ * Filter by the candidate/PAC that RECEIVED the contribution.
32
+ *
33
+ * ⚠️ There is deliberately NO `candName` here. tncamp IGNORES `candName` on the contributions
34
+ * form — measured 2026-08-29, `candName=HANCOCK` and `candName=ZZQXNONEXISTENT` both returned
35
+ * the identical unfiltered 912-record set. Omitting it from the type turns a silently wrong
36
+ * result into a compile error. `candName` remains valid on ExpenditureSearchParams, where it
37
+ * genuinely filters.
38
+ */
39
+ recipientName?: string;
31
40
  contributorName?: string;
32
41
  employer?: string;
33
42
  occupation?: string;
@@ -215,7 +215,9 @@ function buildCeFormData(searchType, params) {
215
215
  const form = new URLSearchParams();
216
216
  form.set('searchType', searchType);
217
217
  form.set('toType', 'both');
218
- form.set('candName', params.candName || '');
218
+ // candName is expenditure-only; it is inert on the contributions form (see
219
+ // ContributionSearchParams). Set per-branch below rather than off the union.
220
+ form.set('candName', '');
219
221
  form.set('yearSelection', params.year);
220
222
  form.set('electionYearSelection', params.electionYearId || '');
221
223
  form.set('typeOf', params.typeOf || 'all');
@@ -242,7 +244,11 @@ function buildCeFormData(searchType, params) {
242
244
  if (searchType === 'contributions') {
243
245
  const cp = params;
244
246
  form.set('contributorName', cp.contributorName || '');
245
- form.set('recipientName', '');
247
+ // The contributions form filters by recipient via `recipientName`, NOT `candName`.
248
+ // `candName` is inert here (see ContributionSearchParams). Verified 2026-08-29 against
249
+ // apps.tn.gov: recipientName=HANCOCK -> 148 records, recipientName=ZZQXNONEXISTENT -> none,
250
+ // while candName varied not at all from the 912-record unfiltered baseline.
251
+ form.set('recipientName', cp.recipientName || '');
246
252
  form.set('employer', cp.employer || '');
247
253
  form.set('occupation', cp.occupation || '');
248
254
  form.set('zipCode', cp.zipCode || '');
@@ -261,6 +267,7 @@ function buildCeFormData(searchType, params) {
261
267
  }
262
268
  else {
263
269
  const ep = params;
270
+ form.set('candName', ep.candName || '');
264
271
  form.set('contributorName', '');
265
272
  form.set('recipientName', '');
266
273
  form.set('employer', '');
@@ -1 +1 @@
1
- {"version":3,"file":"tncamp-client.js","sourceRoot":"","sources":["../../src/api/tncamp-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tncamp-client.js","sourceRoot":"","sources":["../../src/api/tncamp-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAEhF,MAAM,IAAI,GAAG,mCAAmC,CAAA;AAChD,MAAM,WAAW,GAAG,uCAAuC,CAAA;AAC3D,MAAM,UAAU,GAAG,MAAM,CAAA;AACzB,MAAM,SAAS,GAAG,EAAE,CAAA;AACpB,MAAM,aAAa,GAAG,GAAG,CAAA;AAYzB,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,UAAuB,EAAE;IACpE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAA;IAChE,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;IACpE,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAkB;IAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAA;IAC3C,OAAO,IAAI,WAAW,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACvD,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAkB;IAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;IAC1D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;IACtD,OAAO,KAAK,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAChD,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,WAAmB,cAAc;IAC3D,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAA;IAC9D,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,CAAA;AACnB,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,OAAuB,EACvB,QAAgB,EAChB,MAAuB;IAEvB,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,GAAG,IAAI,IAAI,QAAQ,EAAE,EAAE;QACjE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,mCAAmC;YACnD,QAAQ,EAAE,OAAO,CAAC,MAAM;YACxB,SAAS,EAAE,GAAG,IAAI,IAAI,QAAQ,EAAE;SACjC;QACD,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE;QACvB,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAA;IAEF,uEAAuE;IACvE,iGAAiG;IACjG,IAAI,YAAY,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,CAAA;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtH,MAAM,IAAI,KAAK,CAAC,wIAAwI,CAAC,CAAA;QAC3J,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,UAAU,CAAC,YAAY,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,QAAQ,EAAE,CAAA;IAE5F,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE;QACzD,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE;KACtC,CAAC,CAAA;IAEF,OAAO,UAAU,CAAC,eAAe,CAAC,CAAA;AACpC,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,OAAuB,EACvB,WAAmB,EACnB,IAAY,EACZ,eAAuB;IAEvB,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,WAAW,IAAI,eAAe,IAAI,IAAI,EAAE,CAAA;IAC/D,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;QAC3C,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE;KACtC,CAAC,CAAA;IACF,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,+DAA+D;AAC/D,sEAAsE;AACtE,+DAA+D;AAE/D,MAAM,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAEjF,+DAA+D;AAC/D,6DAA6D;AAC7D,+DAA+D;AAE/D,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,aAAa;AACtD,IAAI,gBAAgB,GAA0D,IAAI,CAAA;AAClF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAyD,CAAA;AAEtF,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,gBAAgB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,SAAS,GAAG,iBAAiB,EAAE,CAAC;QACpF,OAAO,gBAAgB,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,IAAI,eAAe,CAAC,CAAA;IAC/D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAEtC,gBAAgB,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;IAC3D,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC1C,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,iBAAiB,EAAE,CAAC;QAChE,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IAED,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,IAAI,2BAA2B,QAAQ,EAAE,EAAE;QACpF,MAAM,EAAE,MAAM;KACf,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAClC,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAEpD,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACvE,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB;IAClD,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAA;IACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;IAChC,2BAA2B;IAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;IACzD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IACrB,kCAAkC;IAClC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,SAAiB;IACvE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC9C,qBAAqB;IACrB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAA;IACpD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IACrB,+BAA+B;IAC/B,MAAM,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;IACjC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,CAAA;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAe;IACvD,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAA;IACtC,qBAAqB;IACrB,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;IAC9D,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IACrB,oDAAoD;IACpD,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAA;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAA;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;IACzD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IACrB,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;IAChC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AAC5E,CAAC;AAeD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAA6B;IAClE,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAA;IAEpC,+DAA+D;IAC/D,uEAAuE;IACvE,8CAA8C;IAC9C,MAAM,cAAc,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAA;IACtD,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAA;IAExD,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;IAClC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAClC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IACnC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAClD,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IACpD,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;IAC9D,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IAChD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IAC7B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAC9B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IACjC,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;IACrC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAE/B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,CAAA;IAC5D,IAAI,UAAU,GAAG,iBAAiB,CAAkB,IAAI,EAAE,WAAW,CAAC,CAAA;IACtE,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAE5C,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAC5C,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;YAC9E,MAAM,KAAK,CAAC,aAAa,CAAC,CAAA;YAC1B,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,CAAA;YAC5F,UAAU,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAkB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,IAAI,MAAM,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;QACtC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAA;IAC7E,CAAC;SAAM,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QACvC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAA;IAC7E,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB,EAAE,SAAiB;IAC9E,iDAAiD;IACjD,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAA;IACpC,MAAM,GAAG,GAAG,GAAG,IAAI,mBAAmB,WAAW,UAAU,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAA;IAC1F,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;QAC3C,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE;KACtC,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAA;IACvC,OAAO,iBAAiB,CAAe,IAAI,EAAE,QAAQ,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,qDAAqD;IACrD,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAA;IACpC,MAAM,GAAG,GAAG,GAAG,WAAW,6BAA6B,QAAQ,EAAE,CAAA;IACjE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;QAC3C,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE;KACtC,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAA;IACvC,OAAO,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;AAC1C,CAAC;AAoCD,SAAS,eAAe,CACtB,UAA4C,EAC5C,MAA0D;IAE1D,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;IAClC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAClC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC1B,2EAA2E;IAC3E,6EAA6E;IAC7E,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACxB,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;IAC9D,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,CAAA;IAE1C,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;QACvD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;QAC5B,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,eAAe,IAAI,SAAS,CAAC,CAAA;IAClE,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;QAC7B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;QAC3B,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,qBAAqB,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IACjC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC3B,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;IAClC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;IACpC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACzB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAE3B,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,MAAkC,CAAA;QAC7C,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC,CAAA;QACrD,mFAAmF;QACnF,uFAAuF;QACvF,4FAA4F;QAC5F,4EAA4E;QAC5E,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,CAAA;QACjD,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;QACvC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;QAC1B,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;QAC7B,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QACvB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAC7B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QAC/B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAC7B,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;QACrC,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;QACxC,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAA;QAC3C,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAA;QAC9C,IAAI,CAAC,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,GAAG,MAAiC,CAAA;QAC5C,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;QACvC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;QAC/B,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;QAC7B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QACxB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;QAC1B,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QACvB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,CAAA;QACjD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAC7B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QAC/B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAC7B,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;QACnC,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QAChC,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAC/B,OAAO,IAAI,CAAA;AACb,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,OAAuB,EACvB,aAAqB,EACrB,WAAmB,EACnB,SAAyC;IAEzC,MAAM,KAAK,GAAG,iBAAiB,CAAI,aAAa,EAAE,SAAS,CAAC,CAAA;IAC5D,MAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAA;IACrD,MAAM,UAAU,GAAG,UAAU,EAAE,UAAU,IAAI,KAAK,CAAC,MAAM,CAAA;IAEzD,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QAC/D,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;YAChD,MAAM,KAAK,CAAC,aAAa,CAAC,CAAA;YAC1B,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,CAAA;YACxF,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAI,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;IACxE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAgC;IAEhC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,eAAe,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IACrD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,CAAA;IAC5D,OAAO,aAAa,CAAqB,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,cAAc,CAAC,CAAA;AAC1F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAA+B;IAE/B,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IACpD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,CAAA;IAC5D,OAAO,aAAa,CAAoB,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,aAAa,CAAC,CAAA;AACxF,CAAC"}
@@ -2,12 +2,6 @@
2
2
  * tncamp report_full.htm parser.
3
3
  * Extracts financial aggregates and itemized line items from h-tag sections.
4
4
  */
5
- function parseDollar(text) {
6
- const match = text.match(/\$([\d,]+\.?\d*)/);
7
- if (!match)
8
- return 0;
9
- return parseFloat(match[1].replace(/,/g, '')) || 0;
10
- }
11
5
  /**
12
6
  * Extract a dollar amount following a label in the full text.
13
7
  * Looks for patterns like "TOTAL CONTRIBUTIONS ... $38,910.00"
@@ -22,98 +16,201 @@ function extractAggregate(fullText, label) {
22
16
  return 0;
23
17
  }
24
18
  /**
25
- * Split HTML content into sections based on h3 tags.
26
- * Returns array of { header, bodyText } pairs.
19
+ * Itemized line items are read from the page's data tables, located by section heading and
20
+ * selected by header signature. See `sectionTable` for the two rules that must not be simplified
21
+ * away (no id lookups, no positional selection) and the evidence behind each.
22
+ *
23
+ * Confirmed unpaginated to at least 587 rows: the full row set renders inline, with no `p=2` link
24
+ * and no "displaying N of M" banner. The `d-…-p=` params on the column headers are sort links.
27
25
  */
28
- function splitSections(html) {
29
- const sections = [];
30
- // Split on h3 tags (which tncamp uses for section headers)
31
- const parts = html.split(/<h3[^>]*>/i);
32
- for (let i = 1; i < parts.length; i++) {
33
- const closeTag = parts[i].indexOf('</h3>');
34
- if (closeTag === -1)
35
- continue;
36
- const header = parts[i].substring(0, closeTag).replace(/<[^>]+>/g, '').trim();
37
- const body = parts[i].substring(closeTag + 5);
38
- // Get text until next h-tag or end
39
- const nextH = body.match(/<h[2-5][^>]*>/i);
40
- const bodyHtml = nextH ? body.substring(0, nextH.index) : body;
41
- const bodyText = bodyHtml.replace(/<[^>]+>/g, ' ').replace(/\s+/g, ' ').trim();
42
- sections.push({ header, bodyText });
43
- }
44
- return sections;
26
+ function cellText(td) {
27
+ // ⚠️ Only <br> is a line break. The source HTML is pretty-printed, so a single logical line
28
+ // ("ADELMAN" + ", WILLIAM") arrives split across several raw newlines — collapsing ALL
29
+ // whitespace first and splitting only on a <br> sentinel is what keeps names intact.
30
+ // Strip any literal U+0001 from the source first, so real data can never be mistaken for the
31
+ // <br> sentinel. No fixture contains one; this closes the hole rather than relying on that.
32
+ const BR = '\u0001';
33
+ return td
34
+ .replace(/\u0001/g, '')
35
+ .replace(/<br\s*\/?>/gi, BR)
36
+ .replace(/<[^>]+>/g, ' ')
37
+ .replace(/&nbsp;/g, ' ')
38
+ // ⚠️ tncamp emits the LEADING-ZERO numeric form `&#039;`, which a literal `&#39;` rule misses —
39
+ // real data carries "Daddy&#039;s Dogs", "AMERIGO&#039;S", "LOVE&#039;S TRAVEL STOP". Decode
40
+ // numeric entities generically, and decode &amp; LAST so `&amp;#039;` cannot double-decode.
41
+ .replace(/&#x([0-9a-f]+);/gi, (_, h) => String.fromCodePoint(parseInt(h, 16)))
42
+ .replace(/&#(\d+);/g, (_, d) => String.fromCodePoint(parseInt(d, 10)))
43
+ .replace(/&apos;/g, "'")
44
+ .replace(/&quot;/g, '"')
45
+ .replace(/&lt;/g, '<')
46
+ .replace(/&gt;/g, '>')
47
+ .replace(/&amp;/g, '&')
48
+ .replace(/\s+/g, ' ')
49
+ .split(BR)
50
+ .map((l) => l.replace(/\s+,/g, ',').replace(/,\s+/g, ', ').trim())
51
+ .filter(Boolean)
52
+ .join('\n')
53
+ .trim();
45
54
  }
46
55
  /**
47
- * Parse itemized line items from section body text.
48
- * Each entry follows a pattern: Name, Address, optional fields, Date, Amount
56
+ * Locate a section's data table: scope to the section by its <h2> heading, then pick the first
57
+ * table inside it whose HEADER ROW carries the expected entity column.
58
+ *
59
+ * ⚠️ TWO RULES, each learned from a real defect. Do not simplify either away.
60
+ *
61
+ * 1. DO NOT select by `id`. Ids here are neither unique nor semantic — `report-louallen-126212`
62
+ * carries TWO `id="contribution"` tables (Receipts and In-Kind), so an id lookup returns
63
+ * Receipts twice and drops In-Kind.
64
+ * 2. DO NOT take the first table in the section. A section routinely opens with a table that is
65
+ * NOT the itemized list:
66
+ * - Disbursements may open with an "Expenditures, Unitemized" breakdown `{purpose, amount}`
67
+ * (reportId 100136: 6 rows; 72153: 11 rows), or with Loan Payments
68
+ * `{loan source, payment}` (86229).
69
+ * - Receipts may contain a Loans Received table `{loan source, ...}` (72153).
70
+ * Taking position 1 returned 6 junk rows totalling $1,153.13 for report 100136 and DROPPED its
71
+ * real 111-row, $218,578.55 itemized list; on 86229 it fabricated loan rows as expenditures.
72
+ *
73
+ * Header signatures observed across 7 real reports:
74
+ * Receipts itemized {contributor, c/p, rec'd for, date, amount, aggregate}
75
+ * In-Kind itemized {contributor, c/p, rec'd for, DETAILS, date, amount, aggregate} (7 cols)
76
+ * Disbursements {vendor, c/p, purpose, date, amount}
77
+ * Unitemized {purpose, amount} <- not an itemized list
78
+ * Loans Received {loan source, election rec'd for, date, amount}
79
+ * Loan Payments {loan source, payment}
80
+ * Outstanding Loans {loans, beg balance, paid, end balance*}
81
+ *
82
+ * A section whose tables match no signature yields [] rather than junk — failing empty is safe,
83
+ * failing plausible is not.
84
+ *
85
+ * NOTE the first matching table is taken deliberately: "Expenditures, Adjustments" renders as a
86
+ * LATER table with headers identical to the itemized list. Merging them would double-count and
87
+ * mis-sign (adjustments render positive). Itemized + Unitemized ties to TOTAL EXPENDITURES;
88
+ * adjustments sit outside it.
49
89
  */
50
- function parseLineItems(bodyText) {
51
- const items = [];
52
- if (!bodyText || !bodyText.includes('$'))
53
- return items;
54
- // Remove the summary lines (Unitemized, TOTAL, etc.)
55
- const cleanText = bodyText
56
- .replace(/Monetary Contributions,\s*Unitemized\s*\$[\d,.]+/gi, '')
57
- .replace(/Monetary Contributions,\s*Itemized/gi, '')
58
- .replace(/Expenditures,\s*Unitemized\s*\$[\d,.]+/gi, '')
59
- .replace(/Expenditures,\s*Itemized/gi, '')
60
- .replace(/TOTAL[^$]*\$[\d,.]+/gi, '')
61
- .replace(/Contribution Adjustments[^$]*\$[\d,.]+/gi, '')
62
- .replace(/Loans? Received[^$]*\$[\d,.]+/gi, '')
63
- .replace(/Interest Received[^$]*\$[\d,.]+/gi, '')
64
- .replace(/Loan Payments[^$]*\$[\d,.]+/gi, '')
65
- .replace(/Obligation Payments[^$]*\$[\d,.]+/gi, '')
66
- .replace(/Expenditures?, Adjustments[^$]*\$[\d,.]+/gi, '')
67
- .replace(/Unitemized\s*\$[\d,.]+/gi, '')
68
- .replace(/Itemized\s*\$[\d,.]+/gi, '')
69
- .replace(/Obligations?, Outstanding from Previous[^$]*\$[\d,.]+/gi, '')
70
- .trim();
71
- if (!cleanText)
72
- return items;
73
- // Split on patterns that look like: date followed by dollar amount
74
- // Each itemized entry ends with a date (MM/DD/YYYY) and amount ($X,XXX.XX)
75
- // There may also be an aggregate amount after the contribution amount
76
- const entryPattern = /(\d{2}\/\d{2}\/\d{4})\s+\$([\d,]+\.?\d*)/g;
77
- let match;
78
- let lastEnd = 0;
79
- const entries = [];
80
- while ((match = entryPattern.exec(cleanText)) !== null) {
81
- const textBefore = cleanText.substring(lastEnd, match.index).trim();
82
- entries.push({
83
- textBefore,
84
- date: match[1],
85
- amount: parseFloat(match[2].replace(/,/g, '')) || 0,
86
- });
87
- // Skip past the amount and any aggregate that follows
88
- lastEnd = match.index + match[0].length;
89
- // Check if there's an aggregate amount right after (e.g., "$1,500.00 $1,500.00")
90
- const afterMatch = cleanText.substring(lastEnd).match(/^\s+\$([\d,]+\.?\d*)/);
91
- if (afterMatch) {
92
- lastEnd += afterMatch[0].length;
90
+ function sectionTable(html, heading, entityColumns) {
91
+ const headings = [...html.matchAll(/<h2[^>]*>([\s\S]*?)<\/h2>/gi)];
92
+ for (let i = 0; i < headings.length; i++) {
93
+ const text = headings[i][1].replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();
94
+ if (!heading.test(text))
95
+ continue;
96
+ const from = headings[i].index + headings[i][0].length;
97
+ const to = i + 1 < headings.length ? headings[i + 1].index : html.length;
98
+ for (const t of html.slice(from, to).matchAll(/<table[^>]*>([\s\S]*?)<\/table>/gi)) {
99
+ const headers = tableHeaders(t[1]);
100
+ if (entityColumns.some((c) => headers.includes(c)))
101
+ return t[1];
93
102
  }
103
+ return null; // section present, no table matching the signature = genuinely empty
94
104
  }
95
- for (const entry of entries) {
96
- if (!entry.textBefore)
105
+ return null;
106
+ }
107
+ /** Header cell labels, lowercased, in column order. */
108
+ function tableHeaders(tableHtml) {
109
+ const headRow = tableHtml.match(/<tr[^>]*>([\s\S]*?)<\/tr>/i);
110
+ if (!headRow || !/<th[\s>]/i.test(headRow[1]))
111
+ return [];
112
+ return [...headRow[1].matchAll(/<th[^>]*>([\s\S]*?)<\/th>/gi)].map((m) => cellText(m[1]).toLowerCase().replace(/\*+$/, '').trim());
113
+ }
114
+ /** Split a table body into rows of cell text. Header rows (`<th>`) are skipped. */
115
+ function tableRows(tableHtml) {
116
+ const rows = [];
117
+ for (const rowMatch of tableHtml.matchAll(/<tr[^>]*>([\s\S]*?)<\/tr>/gi)) {
118
+ const row = rowMatch[1];
119
+ if (/<th[\s>]/i.test(row))
97
120
  continue;
98
- // The text before the date contains: Name, Address, optional Occupation/Employer
99
- // Split into lines by looking for state+zip patterns or C/P markers
100
- const parts = entry.textBefore.split(/(?:Contributor|Vendor|C\/P|Rec'd For|Primary|General)\s*/i);
101
- const mainText = parts[0] || entry.textBefore;
102
- // Try to extract name and address
103
- // Name is typically all caps, address follows
104
- // Address often contains state abbreviation + zip
105
- const addrMatch = mainText.match(/(.+?)\s+((?:\d+|P\.?O\.?\s*BOX).+)/i);
106
- let name = mainText;
107
- let address = '';
108
- if (addrMatch) {
109
- name = addrMatch[1].trim();
110
- address = addrMatch[2].trim();
121
+ const cells = [...row.matchAll(/<td[^>]*>([\s\S]*?)<\/td>/gi)].map((m) => cellText(m[1]));
122
+ if (cells.length)
123
+ rows.push(cells);
124
+ }
125
+ return rows;
126
+ }
127
+ /**
128
+ * The first cell packs name and address into one <td> separated by <br>. Occupation and employer,
129
+ * when present, trail the address lines.
130
+ */
131
+ function splitEntity(cell, expectExtras) {
132
+ const lines = cell.split('\n').map((l) => l.trim()).filter(Boolean);
133
+ const name = (lines.shift() || '').replace(/\s*,\s*/, ', ').trim();
134
+ // Address runs to the line carrying "CITY, ST ZIP"; anything after is occupation/employer.
135
+ // ⚠️ The COMMA IS LOAD-BEARING — do not drop it to be "permissive". Without it, "P.O. BOX 12255"
136
+ // matches ("OX" + " " + "12255" reads as ST + ZIP), so a PO-box entity has its real city line
137
+ // demoted to occupation. ZIP+4 is allowed.
138
+ let cut = lines.findIndex((l) => /,\s*[A-Z]{2}\s+\d{5}(-\d{4})?\s*$/.test(l));
139
+ if (cut === -1) {
140
+ // No recognisable ZIP line. Only contribution-shaped tables carry trailing occupation and
141
+ // employer lines, so on those assume the last two are the extras rather than swallowing them
142
+ // into the address. Expenditure and loan tables have no extras to lose, so take every line.
143
+ cut = expectExtras && lines.length > 2 ? lines.length - 3 : lines.length - 1;
144
+ }
145
+ return {
146
+ name,
147
+ address: lines.slice(0, Math.max(cut + 1, 0)).join('\n'),
148
+ extra: lines.slice(cut + 1),
149
+ };
150
+ }
151
+ function parseMoney(text) {
152
+ // Accept a leading decimal point ("$.50") as well as "$1,234.56". Requiring a leading digit
153
+ // turned $.50 into 50 — a 100x error.
154
+ const hit = text.match(/(\d[\d,]*(?:\.\d+)?|\.\d+)/);
155
+ if (!hit)
156
+ return 0;
157
+ const n = parseFloat(hit[1].replace(/,/g, '')) || 0;
158
+ // Negatives render as -$100.00, $-100.00, ($100.00) or (100.00) — parentheses count with or
159
+ // without a dollar sign. No negative amount appears in any real report seen so far, so this is
160
+ // defensive and is covered by unit tests rather than by a fixture.
161
+ const negative = /-\s*\$?\s*[\d.,]/.test(text) || /\(\s*\$?\s*[\d.,]/.test(text);
162
+ return negative ? -n : n;
163
+ }
164
+ /**
165
+ * Parse one section's table into line items, resolving columns BY HEADER NAME.
166
+ *
167
+ * ⚠️ Column positions are NOT stable across sections. Receipts has 6 columns while In-Kind has 7
168
+ * (it inserts a "Details" column at index 3), so positional indexing read In-Kind's date as
169
+ * "Event Fee Rental" and parsed "03/07/2026" into an amount of 3. Loans has no Date column at all
170
+ * and its money column is "End Balance". Reading the <th> row keeps all of them correct, and keeps
171
+ * Obligations working even though no captured fixture contains one.
172
+ */
173
+ function parseSection(html, heading, entityColumns) {
174
+ const table = sectionTable(html, heading, entityColumns);
175
+ if (!table)
176
+ return [];
177
+ const headers = tableHeaders(table);
178
+ const col = (...names) => {
179
+ for (const n of names) {
180
+ const i = headers.findIndex((h) => h === n);
181
+ if (i !== -1)
182
+ return i;
183
+ }
184
+ for (const n of names) {
185
+ const i = headers.findIndex((h) => h.includes(n));
186
+ if (i !== -1)
187
+ return i;
111
188
  }
189
+ return -1;
190
+ };
191
+ const iDate = col('date');
192
+ // "end balance" is the loans table's money column; prefer a plain "amount" where both exist.
193
+ const iAmount = col('amount', 'end balance');
194
+ const iPurpose = col('purpose');
195
+ const iDetails = col('details');
196
+ // Only contribution-shaped tables (Contributor / Aggregate) carry occupation + employer lines.
197
+ const expectExtras = headers.includes('contributor');
198
+ const items = [];
199
+ for (const cells of tableRows(table)) {
200
+ if (!cells.length)
201
+ continue;
202
+ const { name, address, extra } = splitEntity(cells[0] || '', expectExtras);
203
+ if (!name)
204
+ continue;
205
+ const purposeText = iPurpose !== -1 ? cells[iPurpose] : iDetails !== -1 ? cells[iDetails] : '';
112
206
  items.push({
113
207
  name,
114
208
  address,
115
- date: entry.date,
116
- amount: entry.amount,
209
+ date: iDate !== -1 ? cells[iDate] || '' : '',
210
+ amount: iAmount !== -1 ? parseMoney(cells[iAmount] || '') : 0,
211
+ ...(extra[0] ? { occupation: extra[0] } : {}),
212
+ ...(extra[1] ? { employer: extra[1] } : {}),
213
+ ...(purposeText ? { purpose: purposeText } : {}),
117
214
  });
118
215
  }
119
216
  return items;
@@ -122,16 +219,27 @@ export function parseReportDetail(html, reportId) {
122
219
  // Extract full text for aggregate searching
123
220
  const fullText = html.replace(/<[^>]+>/g, ' ').replace(/\s+/g, ' ');
124
221
  // Extract candidate name and report title from the page
125
- const titleMatch = html.match(/<h2[^>]*>(.*?)<\/h2>/is);
222
+ // ⚠️ The report title is in <h1>. The page's <h2> tags are section headings
223
+ // ("Beginning Balance", "Receipts", ...), so matching h2 here returned "Beginning Balance"
224
+ // and left candidateName empty on EVERY report. Fall back to h2 for older page shapes.
225
+ const titleMatch = html.match(/<h1[^>]*>([\s\S]*?)<\/h1>/i) || html.match(/<h2[^>]*>([\s\S]*?)<\/h2>/i);
126
226
  let candidateName = '';
127
227
  let reportTitle = '';
228
+ let amended = false;
128
229
  if (titleMatch) {
129
- const titleText = titleMatch[1].replace(/<[^>]+>/g, ' ').replace(/\s+/g, ' ').trim();
230
+ // Decode entities here too — tncamp emits `&#039;`, so an O'NEAL or a "SMITH & JONES PAC"
231
+ // would otherwise surface still-encoded in candidateName.
232
+ const titleText = cellText(titleMatch[1]).replace(/\s+/g, ' ').trim();
130
233
  // Format: "2028 \n Annual Year End Supplemental \n (2025) \n for BILL POWERS submitted on 02/02/2026"
131
234
  const forMatch = titleText.match(/for\s+(.+?)\s+submitted/i);
132
235
  if (forMatch)
133
236
  candidateName = forMatch[1].trim();
134
- const reportMatch = titleText.match(/^\d{4}\s+(.*?)(?:\(\d{4}\))?(?:\s+for)/i);
237
+ // ⚠️ The title may be prefixed "Amended", e.g. "Amended 2026 1st Quarter for JOHN LOUALLEN".
238
+ // Anchoring on a leading 4-digit year dropped reportTitle to '' on every amended filing.
239
+ // Capture the amendment separately rather than discarding it — an amended report supersedes
240
+ // its original, which matters when comparing filings.
241
+ amended = /^\s*amended\b/i.test(titleText);
242
+ const reportMatch = titleText.match(/^(?:amended\s+)?\d{4}\s+(.*?)(?:\s*\(\d{4}\))?\s+for\s/i);
135
243
  if (reportMatch)
136
244
  reportTitle = reportMatch[1].trim();
137
245
  }
@@ -143,35 +251,20 @@ export function parseReportDetail(html, reportId) {
143
251
  const totalDisbursements = extractAggregate(fullText, 'TOTAL DISBURSEMENTS');
144
252
  const endingBalance = extractAggregate(fullText, 'ENDING BALANCE');
145
253
  const totalOutstandingLoans = extractAggregate(fullText, 'TOTAL OUTSTANDING LOAN BALANCE');
146
- // Extract itemized sections
147
- const sections = splitSections(html);
148
- let receipts = [];
149
- let disbursements = [];
150
- let inKindContributions = [];
151
- let loans = [];
152
- let obligations = [];
153
- for (const section of sections) {
154
- const h = section.header.toLowerCase();
155
- if (h.includes('receipt')) {
156
- receipts = parseLineItems(section.bodyText);
157
- }
158
- else if (h.includes('disbursement')) {
159
- disbursements = parseLineItems(section.bodyText);
160
- }
161
- else if (h.includes('in-kind')) {
162
- inKindContributions = parseLineItems(section.bodyText);
163
- }
164
- else if (h.includes('outstanding loan')) {
165
- loans = parseLineItems(section.bodyText);
166
- }
167
- else if (h.includes('obligation')) {
168
- obligations = parseLineItems(section.bodyText);
169
- }
170
- }
254
+ // Itemized line items come straight from the tables (see parser note above — the old
255
+ // h3-section walk matched nothing because the page has no h3 tags).
256
+ const receipts = parseSection(html, /^receipts$/i, ['contributor']);
257
+ const disbursements = parseSection(html, /^disbursements$/i, ['vendor']);
258
+ const inKindContributions = parseSection(html, /in-?kind/i, ['contributor']);
259
+ const loans = parseSection(html, /outstanding loans/i, ['loans']);
260
+ // ⚠️ No captured report has a nonzero Obligations table, so its header shape is UNVERIFIED.
261
+ // Accepting either entity column means an unexpected shape yields [] rather than junk.
262
+ const obligations = parseSection(html, /^obligations$/i, ['contributor', 'vendor']);
171
263
  return {
172
264
  reportId,
173
265
  candidateName,
174
266
  reportTitle,
267
+ amended,
175
268
  beginningBalance,
176
269
  totalContributions,
177
270
  totalReceipts,
@@ -1 +1 @@
1
- {"version":3,"file":"tncamp-report.js","sourceRoot":"","sources":["../../src/parsers/tncamp-report.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAA;IACpB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;AACpD,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,QAAgB,EAAE,KAAa;IACvD,yEAAyE;IACzE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;IAC5D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,GAAG,sBAAsB,EAAE,GAAG,CAAC,CAAA;IAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,KAAK;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;IAC7D,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,QAAQ,GAAgD,EAAE,CAAA;IAChE,2DAA2D;IAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC1C,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,SAAQ;QAE7B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;QAC7C,mCAAmC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QAE9E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;IACrC,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,KAAK,GAAqB,EAAE,CAAA;IAClC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IAEtD,qDAAqD;IACrD,MAAM,SAAS,GAAG,QAAQ;SACvB,OAAO,CAAC,oDAAoD,EAAE,EAAE,CAAC;SACjE,OAAO,CAAC,sCAAsC,EAAE,EAAE,CAAC;SACnD,OAAO,CAAC,0CAA0C,EAAE,EAAE,CAAC;SACvD,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC;SACzC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;SACpC,OAAO,CAAC,0CAA0C,EAAE,EAAE,CAAC;SACvD,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC;SAC9C,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC;SAChD,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC;SAC5C,OAAO,CAAC,qCAAqC,EAAE,EAAE,CAAC;SAClD,OAAO,CAAC,4CAA4C,EAAE,EAAE,CAAC;SACzD,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC;SACvC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC;SACrC,OAAO,CAAC,yDAAyD,EAAE,EAAE,CAAC;SACtE,IAAI,EAAE,CAAA;IAET,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAE5B,mEAAmE;IACnE,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,YAAY,GAAG,2CAA2C,CAAA;IAChE,IAAI,KAA6B,CAAA;IACjC,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,MAAM,OAAO,GAAgE,EAAE,CAAA;IAE/E,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACvD,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;QACnE,OAAO,CAAC,IAAI,CAAC;YACX,UAAU;YACV,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;SACpD,CAAC,CAAA;QACF,sDAAsD;QACtD,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QACvC,iFAAiF;QACjF,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAC7E,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QACjC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,UAAU;YAAE,SAAQ;QAE/B,iFAAiF;QACjF,oEAAoE;QACpE,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAA;QACjG,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAA;QAE7C,kCAAkC;QAClC,8CAA8C;QAC9C,kDAAkD;QAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAA;QAEvE,IAAI,IAAI,GAAG,QAAQ,CAAA;QACnB,IAAI,OAAO,GAAG,EAAE,CAAA;QAEhB,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAC1B,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC/B,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,IAAI;YACJ,OAAO;YACP,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAgB;IAC9D,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAEnE,wDAAwD;IACxD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;IACvD,IAAI,aAAa,GAAG,EAAE,CAAA;IACtB,IAAI,WAAW,GAAG,EAAE,CAAA;IACpB,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QACpF,sGAAsG;QACtG,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC5D,IAAI,QAAQ;YAAE,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAChD,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;QAC9E,IAAI,WAAW;YAAE,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACtD,CAAC;IAED,qBAAqB;IACrB,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAA;IACxE,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAA;IAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;IAClE,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAA;IAC1E,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAA;IAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;IAClE,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,QAAQ,EAAE,gCAAgC,CAAC,CAAA;IAE1F,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,QAAQ,GAAqB,EAAE,CAAA;IACnC,IAAI,aAAa,GAAqB,EAAE,CAAA;IACxC,IAAI,mBAAmB,GAAqB,EAAE,CAAA;IAC9C,IAAI,KAAK,GAAqB,EAAE,CAAA;IAChC,IAAI,WAAW,GAAqB,EAAE,CAAA;IAEtC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;QACtC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC7C,CAAC;aAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACtC,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAClD,CAAC;aAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,mBAAmB,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACxD,CAAC;aAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC1C,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC1C,CAAC;aAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACpC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ;QACR,aAAa;QACb,WAAW;QACX,gBAAgB;QAChB,kBAAkB;QAClB,aAAa;QACb,iBAAiB;QACjB,kBAAkB;QAClB,aAAa;QACb,qBAAqB;QACrB,QAAQ;QACR,aAAa;QACb,mBAAmB;QACnB,KAAK;QACL,WAAW;KACZ,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"tncamp-report.js","sourceRoot":"","sources":["../../src/parsers/tncamp-report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};