@botler/1403-form-filler-module 1.0.3 → 1.2.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.
- package/README.md +82 -2
- package/dist/canvasser-data-mapper.d.ts.map +1 -1
- package/dist/canvasser-data-mapper.js +0 -1
- package/dist/canvasser-data-mapper.js.map +1 -1
- package/dist/cli.js +12 -0
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +20 -5
- package/dist/config.js.map +1 -1
- package/dist/csv-exporter/exporter.d.ts +49 -0
- package/dist/csv-exporter/exporter.d.ts.map +1 -0
- package/dist/csv-exporter/exporter.js +153 -0
- package/dist/csv-exporter/exporter.js.map +1 -0
- package/dist/csv-exporter/index.d.ts +6 -0
- package/dist/csv-exporter/index.d.ts.map +1 -0
- package/dist/csv-exporter/index.js +9 -0
- package/dist/csv-exporter/index.js.map +1 -0
- package/dist/csv-exporter/types.d.ts +57 -0
- package/dist/csv-exporter/types.d.ts.map +1 -0
- package/dist/csv-exporter/types.js +9 -0
- package/dist/csv-exporter/types.js.map +1 -0
- package/dist/db/index.d.ts +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +2 -1
- package/dist/db/index.js.map +1 -1
- package/dist/db/queries.d.ts +9 -0
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +17 -0
- package/dist/db/queries.js.map +1 -1
- package/dist/form-filler.d.ts +18 -2
- package/dist/form-filler.d.ts.map +1 -1
- package/dist/form-filler.js +182 -70
- package/dist/form-filler.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/s3/uploader.d.ts +11 -0
- package/dist/s3/uploader.d.ts.map +1 -1
- package/dist/s3/uploader.js +47 -0
- package/dist/s3/uploader.js.map +1 -1
- package/dist/types/config.d.ts +31 -0
- package/dist/types/config.d.ts.map +1 -1
- package/package.json +2 -1
- package/templates/template.pdf +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @botler/1403-form-filler-module
|
|
2
2
|
|
|
3
|
-
Fills Alberta **Form 1403** PDFs for canvassers. Fetches data from Neon PostgreSQL, fills AcroForm fields, overlays cursive signatures, flattens to image-PDFs, merges per-batch, and uploads to AWS S3.
|
|
3
|
+
Fills Alberta **Form 1403** PDFs for canvassers. Fetches data from Neon PostgreSQL, fills AcroForm fields, overlays cursive signatures, flattens to image-PDFs, merges per-batch, generates a CSV manifest of canvasser data, and uploads both to AWS S3.
|
|
4
4
|
|
|
5
5
|
Usable as a **library** (`import { FormFiller }`) or as a **CLI** (`npx fill-1403 --all`).
|
|
6
6
|
|
|
@@ -30,6 +30,10 @@ console.log(result); // { success: true, userId: "user-abc-123", outputPath: "..
|
|
|
30
30
|
// All open batches (fill → flatten → merge → S3 upload)
|
|
31
31
|
const results = await filler.fillAll();
|
|
32
32
|
|
|
33
|
+
// Specific batch by ID (OPEN or FAILED batches only)
|
|
34
|
+
const batchResult = await filler.fillForBatch("clx1abc123");
|
|
35
|
+
console.log(batchResult); // { batchId, success, results, totalUsers, s3Key, ... }
|
|
36
|
+
|
|
33
37
|
// Cleanup (closes DB pool if we created it)
|
|
34
38
|
await filler.destroy();
|
|
35
39
|
```
|
|
@@ -100,21 +104,42 @@ class FormFiller {
|
|
|
100
104
|
/** Process all open EA batches (fill → merge → S3) */
|
|
101
105
|
fillAll(): Promise<ProcessingResult[]>;
|
|
102
106
|
|
|
107
|
+
/** Process a specific batch by ID (OPEN or FAILED only) */
|
|
108
|
+
fillForBatch(batchId: string): Promise<BatchFillResult>;
|
|
109
|
+
|
|
103
110
|
/** Release DB pool (no-op if pool was injected) */
|
|
104
111
|
destroy(): Promise<void>;
|
|
105
112
|
}
|
|
106
113
|
```
|
|
107
114
|
|
|
115
|
+
### `BatchFillResult`
|
|
116
|
+
|
|
117
|
+
```ts
|
|
118
|
+
interface BatchFillResult {
|
|
119
|
+
batchId: string;
|
|
120
|
+
success: boolean;
|
|
121
|
+
results: ProcessingResult[];
|
|
122
|
+
totalUsers: number;
|
|
123
|
+
successfulCount: number;
|
|
124
|
+
failedCount: number;
|
|
125
|
+
s3Key?: string;
|
|
126
|
+
csvS3Key?: string;
|
|
127
|
+
error?: string;
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
108
131
|
## CLI usage
|
|
109
132
|
|
|
110
133
|
```bash
|
|
111
134
|
# Via npx (after install)
|
|
112
135
|
npx fill-1403 --all
|
|
136
|
+
npx fill-1403 --batch-id=clx1abc123
|
|
113
137
|
|
|
114
138
|
# Or during development
|
|
115
139
|
npx tsx src/cli.ts --id=<userId>
|
|
116
140
|
npx tsx src/cli.ts --ids=id1,id2,id3
|
|
117
141
|
npx tsx src/cli.ts --all --dry-run
|
|
142
|
+
npx tsx src/cli.ts --batch-id=<batchId>
|
|
118
143
|
```
|
|
119
144
|
|
|
120
145
|
| Flag | Description |
|
|
@@ -122,6 +147,7 @@ npx tsx src/cli.ts --all --dry-run
|
|
|
122
147
|
| `--id <userId>` | Process a single user by ID |
|
|
123
148
|
| `--ids <id1,id2,…>` | Process multiple users (comma-separated) |
|
|
124
149
|
| `--all` | Process all users from open EA submission batches |
|
|
150
|
+
| `--batch-id <ID>` | Process a specific EA submission batch by ID |
|
|
125
151
|
| `--dry-run` | Preview what would be processed without generating PDFs |
|
|
126
152
|
| `--skip-existing` | Skip users whose PDF already exists (default: `true`) |
|
|
127
153
|
| `--batch-size <N>` | Records per processing batch (default: `10`) |
|
|
@@ -158,10 +184,14 @@ form-filler-module/
|
|
|
158
184
|
│ │ └── index.ts
|
|
159
185
|
│ ├── shared/
|
|
160
186
|
│ │ └── logger.ts # Console logger with level filtering
|
|
187
|
+
│ ├── csv-exporter/ # CSV manifest generator
|
|
188
|
+
│ │ ├── exporter.ts # CsvExporter class (csv-stringify/sync)
|
|
189
|
+
│ │ ├── types.ts # CsvRow, CsvExportResult
|
|
190
|
+
│ │ └── index.ts
|
|
161
191
|
│ ├── pdf-filler/ # Vendored PDF form filler library
|
|
162
192
|
│ ├── pdf-converter/ # MuPDF WASM page rasteriser
|
|
163
193
|
│ ├── pdf-merger/ # pdf-lib page concatenation
|
|
164
|
-
│ ├── s3/ # S3 batch uploader
|
|
194
|
+
│ ├── s3/ # S3 batch uploader (PDF + CSV)
|
|
165
195
|
│ └── db/ # Neon PostgreSQL pool & queries
|
|
166
196
|
│ ├── pool.ts # getPool / setPool / closePool
|
|
167
197
|
│ ├── queries.ts
|
|
@@ -175,6 +205,56 @@ form-filler-module/
|
|
|
175
205
|
└── .env.example
|
|
176
206
|
```
|
|
177
207
|
|
|
208
|
+
## CSV manifest export
|
|
209
|
+
|
|
210
|
+
When processing a batch (`fillForBatch()` or `fillAll()`), the module automatically generates a **CSV manifest** containing the canvasser data used to fill each PDF in the batch.
|
|
211
|
+
|
|
212
|
+
### What's in the CSV?
|
|
213
|
+
|
|
214
|
+
Each row corresponds to one canvasser whose form was successfully filled:
|
|
215
|
+
|
|
216
|
+
| Column | Description |
|
|
217
|
+
| ------------------------ | ------------------------------------------------------ |
|
|
218
|
+
| Surname | Canvasser's last name |
|
|
219
|
+
| Given Name | Canvasser's first name |
|
|
220
|
+
| Middle Name | Middle name (may be empty) |
|
|
221
|
+
| Telephone Number | Formatted phone number |
|
|
222
|
+
| Email Address | Email (may be empty) |
|
|
223
|
+
| Physical Address | Residential street address |
|
|
224
|
+
| Physical Municipality | City/town of physical address |
|
|
225
|
+
| Physical Postal Code | Postal code of physical address |
|
|
226
|
+
| Mailing Address | Mailing street address (empty if same as physical) |
|
|
227
|
+
| Mailing Municipality | City/town of mailing address |
|
|
228
|
+
| Mailing Postal Code | Postal code of mailing address |
|
|
229
|
+
| Canvasser Signature Date | Date canvasser signed (ISO `YYYY-MM-DD`, may be empty) |
|
|
230
|
+
| Proponent Name | Proponent name on the form |
|
|
231
|
+
| Proponent Signature Date | Date proponent signed (ISO `YYYY-MM-DD`, may be empty) |
|
|
232
|
+
|
|
233
|
+
### S3 storage
|
|
234
|
+
|
|
235
|
+
The CSV is uploaded to the **same S3 prefix** as the merged PDF, using the **same batch ID** but with a `.csv` extension:
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
s3://coal-forms/batches/1403/{batchId}.pdf ← merged batch PDF
|
|
239
|
+
s3://coal-forms/batches/1403/{batchId}.csv ← canvasser data manifest
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
The CSV S3 key is returned in `BatchFillResult.csvS3Key`.
|
|
243
|
+
|
|
244
|
+
### Programmatic usage
|
|
245
|
+
|
|
246
|
+
The `CsvExporter` class can also be used standalone:
|
|
247
|
+
|
|
248
|
+
```ts
|
|
249
|
+
import { CsvExporter } from "@botler/1403-form-filler-module";
|
|
250
|
+
|
|
251
|
+
const exporter = new CsvExporter();
|
|
252
|
+
exporter.addRow(canvasserData);
|
|
253
|
+
|
|
254
|
+
const csvString = exporter.toCSV(); // in-memory string
|
|
255
|
+
await exporter.writeToFile("/tmp/manifest.csv"); // write to disk
|
|
256
|
+
```
|
|
257
|
+
|
|
178
258
|
## Development
|
|
179
259
|
|
|
180
260
|
```bash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasser-data-mapper.d.ts","sourceRoot":"","sources":["../src/canvasser-data-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAIhD,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IACjC,yGAAyG;IACzG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC7B;;;;;;;;;;;OAWG;WACW,eAAe,CAC1B,OAAO,EAAE,gBAAgB,EACzB,SAAS,CAAC,EAAE,mBAAmB,GAC/B,aAAa;
|
|
1
|
+
{"version":3,"file":"canvasser-data-mapper.d.ts","sourceRoot":"","sources":["../src/canvasser-data-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAIhD,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IACjC,yGAAyG;IACzG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC7B;;;;;;;;;;;OAWG;WACW,eAAe,CAC1B,OAAO,EAAE,gBAAgB,EACzB,SAAS,CAAC,EAAE,mBAAmB,GAC/B,aAAa;IAiFhB;;;;;OAKG;WACW,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM;IAY/D;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAqBhC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAY/B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAqBrC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAS7B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAY5B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAsBhC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAY/B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;CA+B1B"}
|
|
@@ -70,7 +70,6 @@ class CanvasserDataMapper {
|
|
|
70
70
|
// Canvasser signature — rendered from capitalized first + last name
|
|
71
71
|
canvasserNameForSignature: `${firstName?.trim() || ""} ${lastName?.trim() || ""}`.trim(),
|
|
72
72
|
canvasserActualSignatureDate: signedAtDate,
|
|
73
|
-
// Proponent (Thomas Lukaszuk) signature data
|
|
74
73
|
ThomasName: overrides?.proponentName ?? "Corby Lund",
|
|
75
74
|
proponentNameForSignature: overrides?.proponentSignatureText ?? "Corby Lund",
|
|
76
75
|
proponentSignatureDate: "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasser-data-mapper.js","sourceRoot":"","sources":["../src/canvasser-data-mapper.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAKH,mCAAsC;AAYtC;;;GAGG;AACH,MAAa,mBAAmB;IAC7B;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,eAAe,CAC1B,OAAyB,EACzB,SAA+B;QAE/B,iDAAiD;QACjD,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAErC,8DAA8D;QAC9D,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAC9C,OAAO,CAAC,SAAS,EACjB,mBAAW,CAAC,WAAW,CACzB,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAC1C,OAAO,CAAC,SAAS,EACjB,mBAAW,CAAC,OAAO,CACrB,CAAC;QAEF,iEAAiE;QACjE,MAAM,mBAAmB,GAAG,kBAAkB;YAC3C,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;YAC3C,CAAC,CAAC,EAAE,CAAC;QACR,MAAM,kBAAkB,GAAG,cAAc;YACtC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC;YACvC,CAAC,CAAC,EAAE,CAAC;QAER,0CAA0C;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEtD,iDAAiD;QACjD,MAAM,SAAS,GACZ,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC;QAC/D,MAAM,QAAQ,GACX,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;QAC7D,MAAM,UAAU,GACb,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC;QAEjE,MAAM,UAAU,GAAkB;YAC/B,uBAAuB;YACvB,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YACrC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;YACxC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;YAEnE,uEAAuE;YACvE,eAAe,EAAE,IAAI,CAAC,iBAAiB,CACpC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAC/D;YAED,mCAAmC;YACnC,YAAY,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;YAExC,iCAAiC;YACjC,eAAe,EAAE,mBAAmB;YACpC,oBAAoB,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;YAC5D,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,CACtC,kBAAkB,EAAE,UAAU,IAAI,EAAE,CACtC;YAED,oDAAoD;YACpD,cAAc,EAAE,kBAAkB,IAAI,SAAS;YAC/C,mBAAmB,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS;YAC9D,iBAAiB,EAAE,cAAc;gBAC9B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,UAAU,CAAC;gBAClD,CAAC,CAAC,SAAS;YAEd,6DAA6D;YAC7D,aAAa,EACV,SAAS,EAAE,YAAY;gBACvB,iEAAiE;YAEpE,oEAAoE;YACpE,yBAAyB,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAClD,QAAQ,EAAE,IAAI,EAAE,IAAI,EACvB,EAAE,CAAC,IAAI,EAAE;YACT,4BAA4B,EAAE,YAAY;YAE1C,
|
|
1
|
+
{"version":3,"file":"canvasser-data-mapper.js","sourceRoot":"","sources":["../src/canvasser-data-mapper.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -61,6 +61,18 @@ async function main() {
|
|
|
61
61
|
for (const r of results)
|
|
62
62
|
logResult(r);
|
|
63
63
|
}
|
|
64
|
+
else if (config.batchId) {
|
|
65
|
+
logger_1.logger.info(`🚀 Processing batch ID: ${config.batchId}`);
|
|
66
|
+
const batchResult = await formFiller.fillForBatch(config.batchId);
|
|
67
|
+
results = batchResult.results;
|
|
68
|
+
logger_1.logger.info(`📦 Batch ${batchResult.batchId}: ${batchResult.success ? "✅ SUCCESS" : "❌ FAILED"}`);
|
|
69
|
+
if (batchResult.s3Key) {
|
|
70
|
+
logger_1.logger.info(`📦 S3 key: ${batchResult.s3Key}`);
|
|
71
|
+
}
|
|
72
|
+
if (batchResult.error) {
|
|
73
|
+
logger_1.logger.error(`📦 Error: ${batchResult.error}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
64
76
|
else if (config.processAll) {
|
|
65
77
|
results = await formFiller.fillAll();
|
|
66
78
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAW,MAAM,SAAS,CAAC;AAErD;;GAEG;AACH,qBAAa,MAAM;IAChB,qEAAqE;IACrE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAYpC;IAEF;;;;;;OAMG;WACW,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAW,MAAM,SAAS,CAAC;AAErD;;GAEG;AACH,qBAAa,MAAM;IAChB,qEAAqE;IACrE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAYpC;IAEF;;;;;;OAMG;WACW,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY;IAkFrD;;;;;OAKG;WACiB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CvE;;;;;;OAMG;WACW,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAIzE;;;;;;OAMG;WACW,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAKzE;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAkD3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ;CAwDzB"}
|
package/dist/config.js
CHANGED
|
@@ -104,18 +104,28 @@ class Config {
|
|
|
104
104
|
// Batch mode — process all users from open EA submission batches
|
|
105
105
|
config.processAll = true;
|
|
106
106
|
}
|
|
107
|
+
else if (parsedArgs.batchId || parsedArgs["batch-id"]) {
|
|
108
|
+
// Single batch mode — process a specific batch by ID
|
|
109
|
+
const batchId = (parsedArgs.batchId || parsedArgs["batch-id"]).trim();
|
|
110
|
+
if (!batchId || batchId.length === 0) {
|
|
111
|
+
throw new Error("Invalid batch ID. Must be a non-empty string.");
|
|
112
|
+
}
|
|
113
|
+
config.batchId = batchId;
|
|
114
|
+
}
|
|
107
115
|
else {
|
|
108
116
|
// No mode specified — show helpful error
|
|
109
117
|
const providedArgs = Object.keys(parsedArgs);
|
|
110
|
-
let errorMessage = "Must specify either --id, --ids, or --
|
|
118
|
+
let errorMessage = "Must specify either --id, --ids, --all, or --batch-id. Use --help for usage information.";
|
|
111
119
|
if (providedArgs.length === 0) {
|
|
112
120
|
errorMessage += "\n\nNo arguments provided. Available options:\n";
|
|
113
|
-
errorMessage += " --id=<ID>
|
|
121
|
+
errorMessage += " --id=<ID> Process single user\n";
|
|
114
122
|
errorMessage +=
|
|
115
|
-
" --ids=<IDs>
|
|
123
|
+
" --ids=<IDs> Process multiple users (comma-separated)\n";
|
|
116
124
|
errorMessage +=
|
|
117
|
-
" --all
|
|
118
|
-
errorMessage +=
|
|
125
|
+
" --all Process all users from open EA batches\n";
|
|
126
|
+
errorMessage +=
|
|
127
|
+
" --batch-id=<ID> Process a specific batch by ID\n";
|
|
128
|
+
errorMessage += " --help Show help information";
|
|
119
129
|
}
|
|
120
130
|
else {
|
|
121
131
|
errorMessage += `\n\nReceived arguments: ${providedArgs.join(", ")}`;
|
|
@@ -254,6 +264,8 @@ OPTIONS:
|
|
|
254
264
|
--ids <id1,id2,id3> Process multiple users by comma-separated IDs
|
|
255
265
|
--ids=<id1,id2,id3> Alternative format
|
|
256
266
|
--all Process all users from open EA submission batches
|
|
267
|
+
--batch-id <batchId> Process a specific EA submission batch by ID
|
|
268
|
+
--batch-id=<batchId> Alternative format
|
|
257
269
|
--dry-run Show what would be processed without generating PDFs
|
|
258
270
|
--skip-existing Skip users with existing PDF files (default: true)
|
|
259
271
|
--batch-size <N> Number of records to process in each batch (default: 10)
|
|
@@ -273,6 +285,9 @@ EXAMPLES:
|
|
|
273
285
|
# Dry-run all open EA submission batches
|
|
274
286
|
npx tsx src/index.ts --all --dry-run
|
|
275
287
|
|
|
288
|
+
# Process a specific batch
|
|
289
|
+
npx tsx src/index.ts --batch-id=clx1abc123
|
|
290
|
+
|
|
276
291
|
# Process all with custom batch size
|
|
277
292
|
npx tsx src/index.ts --all --batch-size=20
|
|
278
293
|
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,4CAA8B;AAC9B,gDAAkC;AAGlC;;GAEG;AACH,MAAa,MAAM;IAChB,qEAAqE;IAC7D,MAAM,CAAU,cAAc,GAGlC;QACD,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,6BAA6B,CAAC;QACxE,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC;QACjE,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,KAAK;QACb,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,KAAK;KACjB,CAAC;IAEF;;;;;;OAMG;IACI,MAAM,CAAC,SAAS,CAAC,IAAc;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE3C,kCAAkC;QAClC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAiB;YAC1B,GAAG,IAAI,CAAC,cAAc;YACtB,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK;YAC3D,YAAY,EACT,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,eAAe,CAAC,IAAI,IAAI;YACjE,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC5B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC;gBAC5D,CAAC,CAAC,EAAE;YACP,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,KAAK;SACnE,CAAC;QAEF,+CAA+C;QAC/C,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;YACjB,mBAAmB;YACnB,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CACZ,oBAAoB,UAAU,CAAC,EAAE,+BAA+B,CAClE,CAAC;YACL,CAAC;YACD,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;QACtB,CAAC;aAAM,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;YACzB,sBAAsB;YACtB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG;iBACtB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;iBACtB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CACZ,4DAA4D,CAC9D,CAAC;YACL,CAAC;YACD,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;QACxB,CAAC;aAAM,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;YACzB,iEAAiE;YACjE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,CAAC;YACL,yCAAyC;YACzC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,YAAY,GACb,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* csv-exporter/exporter.ts — CSV manifest generator for batch canvasser data
|
|
3
|
+
*
|
|
4
|
+
* Accumulates CanvasserData records during batch processing, then
|
|
5
|
+
* serialises them to a CSV string using csv-stringify/sync.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```ts
|
|
9
|
+
* const exporter = new CsvExporter();
|
|
10
|
+
* exporter.addRow(canvasserData);
|
|
11
|
+
* const csvString = exporter.toCSV();
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
import type { CanvasserData } from "../pdf-filler";
|
|
15
|
+
import type { CsvExportResult } from "./types";
|
|
16
|
+
/**
|
|
17
|
+
* Accumulates canvasser data rows and serialises them to CSV.
|
|
18
|
+
*
|
|
19
|
+
* One instance should be created per batch. After all rows are added,
|
|
20
|
+
* call `toCSV()` to get the CSV string or `writeToFile()` to write
|
|
21
|
+
* it to disk directly.
|
|
22
|
+
*/
|
|
23
|
+
export declare class CsvExporter {
|
|
24
|
+
private rows;
|
|
25
|
+
/**
|
|
26
|
+
* Map a CanvasserData record to a CSV row and add it to the buffer.
|
|
27
|
+
*
|
|
28
|
+
* @param data - The mapped canvasser data from the PDF filling step
|
|
29
|
+
*/
|
|
30
|
+
addRow(data: CanvasserData): void;
|
|
31
|
+
/**
|
|
32
|
+
* Serialise all accumulated rows to a CSV string (with header row).
|
|
33
|
+
*
|
|
34
|
+
* @returns The full CSV content including headers
|
|
35
|
+
*/
|
|
36
|
+
toCSV(): string;
|
|
37
|
+
/**
|
|
38
|
+
* Write the CSV content to a local file.
|
|
39
|
+
*
|
|
40
|
+
* @param outputPath - Absolute path to the output CSV file
|
|
41
|
+
* @returns CsvExportResult with file metadata
|
|
42
|
+
*/
|
|
43
|
+
writeToFile(outputPath: string): Promise<CsvExportResult>;
|
|
44
|
+
/** Number of accumulated rows. */
|
|
45
|
+
get length(): number;
|
|
46
|
+
/** Clear all accumulated rows. */
|
|
47
|
+
reset(): void;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=exporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../../src/csv-exporter/exporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAU,eAAe,EAAE,MAAM,SAAS,CAAC;AAiDvD;;;;;;GAMG;AACH,qBAAa,WAAW;IACrB,OAAO,CAAC,IAAI,CAAgB;IAE5B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAyBjC;;;;OAIG;IACH,KAAK,IAAI,MAAM;IAOf;;;;;OAKG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAiC/D,kCAAkC;IAClC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,kCAAkC;IAClC,KAAK,IAAI,IAAI;CAGf"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* csv-exporter/exporter.ts — CSV manifest generator for batch canvasser data
|
|
4
|
+
*
|
|
5
|
+
* Accumulates CanvasserData records during batch processing, then
|
|
6
|
+
* serialises them to a CSV string using csv-stringify/sync.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* ```ts
|
|
10
|
+
* const exporter = new CsvExporter();
|
|
11
|
+
* exporter.addRow(canvasserData);
|
|
12
|
+
* const csvString = exporter.toCSV();
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
16
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.CsvExporter = void 0;
|
|
20
|
+
const sync_1 = require("csv-stringify/sync");
|
|
21
|
+
const fs_1 = __importDefault(require("fs"));
|
|
22
|
+
const logger_1 = require("../shared/logger");
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Helpers
|
|
25
|
+
// ============================================================================
|
|
26
|
+
/**
|
|
27
|
+
* Convert a MMDDYY signature date string to ISO YYYY-MM-DD format.
|
|
28
|
+
*
|
|
29
|
+
* @param mmddyy - Date in MMDDYY format (e.g. "020926")
|
|
30
|
+
* @returns ISO date string (e.g. "2026-02-09"), or the original string if unparseable
|
|
31
|
+
*/
|
|
32
|
+
function formatSignatureDate(mmddyy) {
|
|
33
|
+
if (mmddyy.length !== 6)
|
|
34
|
+
return mmddyy;
|
|
35
|
+
const mm = mmddyy.slice(0, 2);
|
|
36
|
+
const dd = mmddyy.slice(2, 4);
|
|
37
|
+
const yy = mmddyy.slice(4, 6);
|
|
38
|
+
const century = parseInt(yy, 10) >= 50 ? "19" : "20";
|
|
39
|
+
return `${century}${yy}-${mm}-${dd}`;
|
|
40
|
+
}
|
|
41
|
+
// ============================================================================
|
|
42
|
+
// Column definition — order matters for CSV output
|
|
43
|
+
// ============================================================================
|
|
44
|
+
/** Ordered CSV column headers. */
|
|
45
|
+
const CSV_COLUMNS = [
|
|
46
|
+
"Surname",
|
|
47
|
+
"Given Name",
|
|
48
|
+
"Middle Name",
|
|
49
|
+
"Telephone Number",
|
|
50
|
+
"Email Address",
|
|
51
|
+
"Physical Address",
|
|
52
|
+
"Physical Municipality",
|
|
53
|
+
"Physical Postal Code",
|
|
54
|
+
"Mailing Address",
|
|
55
|
+
"Mailing Municipality",
|
|
56
|
+
"Mailing Postal Code",
|
|
57
|
+
"Canvasser Signature Date",
|
|
58
|
+
"Proponent Name",
|
|
59
|
+
"Proponent Signature Date",
|
|
60
|
+
];
|
|
61
|
+
// ============================================================================
|
|
62
|
+
// CsvExporter
|
|
63
|
+
// ============================================================================
|
|
64
|
+
/**
|
|
65
|
+
* Accumulates canvasser data rows and serialises them to CSV.
|
|
66
|
+
*
|
|
67
|
+
* One instance should be created per batch. After all rows are added,
|
|
68
|
+
* call `toCSV()` to get the CSV string or `writeToFile()` to write
|
|
69
|
+
* it to disk directly.
|
|
70
|
+
*/
|
|
71
|
+
class CsvExporter {
|
|
72
|
+
rows = [];
|
|
73
|
+
/**
|
|
74
|
+
* Map a CanvasserData record to a CSV row and add it to the buffer.
|
|
75
|
+
*
|
|
76
|
+
* @param data - The mapped canvasser data from the PDF filling step
|
|
77
|
+
*/
|
|
78
|
+
addRow(data) {
|
|
79
|
+
const row = {
|
|
80
|
+
Surname: data.surname,
|
|
81
|
+
"Given Name": data.givenName,
|
|
82
|
+
"Middle Name": data.middleName ?? "",
|
|
83
|
+
"Telephone Number": data.telephoneNumber,
|
|
84
|
+
"Email Address": data.emailAddress ?? "",
|
|
85
|
+
"Physical Address": data.physicalAddress,
|
|
86
|
+
"Physical Municipality": data.physicalMunicipality,
|
|
87
|
+
"Physical Postal Code": data.physicalPostalCode,
|
|
88
|
+
"Mailing Address": data.mailingAddress ?? "",
|
|
89
|
+
"Mailing Municipality": data.mailingMunicipality ?? "",
|
|
90
|
+
"Mailing Postal Code": data.mailingPostalCode ?? "",
|
|
91
|
+
"Canvasser Signature Date": data.canvasserActualSignatureDate
|
|
92
|
+
? data.canvasserActualSignatureDate.toISOString().split("T")[0]
|
|
93
|
+
: "",
|
|
94
|
+
"Proponent Name": data.proponentName,
|
|
95
|
+
"Proponent Signature Date": data.proponentSignatureDate
|
|
96
|
+
? formatSignatureDate(data.proponentSignatureDate)
|
|
97
|
+
: "",
|
|
98
|
+
};
|
|
99
|
+
this.rows.push(row);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Serialise all accumulated rows to a CSV string (with header row).
|
|
103
|
+
*
|
|
104
|
+
* @returns The full CSV content including headers
|
|
105
|
+
*/
|
|
106
|
+
toCSV() {
|
|
107
|
+
return (0, sync_1.stringify)(this.rows, {
|
|
108
|
+
header: true,
|
|
109
|
+
columns: CSV_COLUMNS,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Write the CSV content to a local file.
|
|
114
|
+
*
|
|
115
|
+
* @param outputPath - Absolute path to the output CSV file
|
|
116
|
+
* @returns CsvExportResult with file metadata
|
|
117
|
+
*/
|
|
118
|
+
async writeToFile(outputPath) {
|
|
119
|
+
try {
|
|
120
|
+
const csvContent = this.toCSV();
|
|
121
|
+
await fs_1.default.promises.writeFile(outputPath, csvContent, "utf-8");
|
|
122
|
+
const stats = await fs_1.default.promises.stat(outputPath);
|
|
123
|
+
logger_1.logger.info(`📄 CSV manifest written: ${this.rows.length} row(s), ${(stats.size / 1024).toFixed(1)} KB → ${outputPath}`);
|
|
124
|
+
return {
|
|
125
|
+
success: true,
|
|
126
|
+
outputPath,
|
|
127
|
+
rowCount: this.rows.length,
|
|
128
|
+
sizeBytes: stats.size,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
133
|
+
logger_1.logger.error(`❌ CSV export failed: ${message}`);
|
|
134
|
+
return {
|
|
135
|
+
success: false,
|
|
136
|
+
outputPath,
|
|
137
|
+
rowCount: this.rows.length,
|
|
138
|
+
sizeBytes: 0,
|
|
139
|
+
error: message,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/** Number of accumulated rows. */
|
|
144
|
+
get length() {
|
|
145
|
+
return this.rows.length;
|
|
146
|
+
}
|
|
147
|
+
/** Clear all accumulated rows. */
|
|
148
|
+
reset() {
|
|
149
|
+
this.rows = [];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.CsvExporter = CsvExporter;
|
|
153
|
+
//# sourceMappingURL=exporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporter.js","sourceRoot":"","sources":["../../src/csv-exporter/exporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/csv-exporter/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CsvExporter = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* csv-exporter/index.ts — Barrel export for the CSV exporter module
|
|
6
|
+
*/
|
|
7
|
+
var exporter_1 = require("./exporter");
|
|
8
|
+
Object.defineProperty(exports, "CsvExporter", { enumerable: true, get: function () { return exporter_1.CsvExporter; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/csv-exporter/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,uCAAyC;AAAhC,uGAAA,WAAW,OAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* csv-exporter/types.ts — Type definitions for the CSV exporter module
|
|
3
|
+
*
|
|
4
|
+
* Defines the CSV column mapping and export result types used
|
|
5
|
+
* when generating a CSV manifest of canvasser data per batch.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Human-readable CSV column headers mapped from CanvasserData fields.
|
|
9
|
+
* Only domain-relevant fields are included — internal signature paths
|
|
10
|
+
* and rendering metadata are excluded.
|
|
11
|
+
*/
|
|
12
|
+
export interface CsvRow {
|
|
13
|
+
/** Canvasser's last name */
|
|
14
|
+
Surname: string;
|
|
15
|
+
/** Canvasser's first name */
|
|
16
|
+
"Given Name": string;
|
|
17
|
+
/** Canvasser's middle name (may be empty) */
|
|
18
|
+
"Middle Name": string;
|
|
19
|
+
/** Formatted telephone number */
|
|
20
|
+
"Telephone Number": string;
|
|
21
|
+
/** Email address (may be empty) */
|
|
22
|
+
"Email Address": string;
|
|
23
|
+
/** Physical/residential street address */
|
|
24
|
+
"Physical Address": string;
|
|
25
|
+
/** Physical address municipality (city/town) */
|
|
26
|
+
"Physical Municipality": string;
|
|
27
|
+
/** Physical address postal code */
|
|
28
|
+
"Physical Postal Code": string;
|
|
29
|
+
/** Mailing street address (may be empty if same as physical) */
|
|
30
|
+
"Mailing Address": string;
|
|
31
|
+
/** Mailing address municipality (may be empty) */
|
|
32
|
+
"Mailing Municipality": string;
|
|
33
|
+
/** Mailing address postal code (may be empty) */
|
|
34
|
+
"Mailing Postal Code": string;
|
|
35
|
+
/** Date the canvasser signed (ISO format, may be empty) */
|
|
36
|
+
"Canvasser Signature Date": string;
|
|
37
|
+
/** Proponent name on the form */
|
|
38
|
+
"Proponent Name": string;
|
|
39
|
+
/** Date the proponent signed (ISO format, may be empty) */
|
|
40
|
+
"Proponent Signature Date": string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Result of generating a CSV export for a batch.
|
|
44
|
+
*/
|
|
45
|
+
export interface CsvExportResult {
|
|
46
|
+
/** Whether the CSV was generated successfully */
|
|
47
|
+
success: boolean;
|
|
48
|
+
/** Local file path where the CSV was written */
|
|
49
|
+
outputPath: string;
|
|
50
|
+
/** Number of data rows (excluding header) */
|
|
51
|
+
rowCount: number;
|
|
52
|
+
/** Size of the generated CSV in bytes */
|
|
53
|
+
sizeBytes: number;
|
|
54
|
+
/** Error message if generation failed */
|
|
55
|
+
error?: string;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/csv-exporter/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACpB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mCAAmC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,uBAAuB,EAAE,MAAM,CAAC;IAChC,mCAAmC;IACnC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,gEAAgE;IAChE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iDAAiD;IACjD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,2DAA2D;IAC3D,0BAA0B,EAAE,MAAM,CAAC;IACnC,iCAAiC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,0BAA0B,EAAE,MAAM,CAAC;CACrC;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC7B,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* csv-exporter/types.ts — Type definitions for the CSV exporter module
|
|
4
|
+
*
|
|
5
|
+
* Defines the CSV column mapping and export result types used
|
|
6
|
+
* when generating a CSV manifest of canvasser data per batch.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/csv-exporter/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|