@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/dist/s3/uploader.js
CHANGED
|
@@ -98,6 +98,53 @@ class BatchS3Uploader {
|
|
|
98
98
|
};
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Upload a local CSV file to S3 for the given batch.
|
|
103
|
+
*
|
|
104
|
+
* Uses the same key convention as PDF uploads but with a `.csv` extension
|
|
105
|
+
* and `text/csv` content type.
|
|
106
|
+
*
|
|
107
|
+
* @param localPath - Absolute path to the CSV file on disk
|
|
108
|
+
* @param batchId - The batch ID, used to derive the S3 key
|
|
109
|
+
* @returns S3UploadResult with the key, URI, and size
|
|
110
|
+
*/
|
|
111
|
+
async uploadCsv(localPath, batchId) {
|
|
112
|
+
const key = `${this.keyPrefix}/${batchId}.csv`;
|
|
113
|
+
try {
|
|
114
|
+
const fileBuffer = await fs_1.default.promises.readFile(localPath);
|
|
115
|
+
const sizeBytes = fileBuffer.length;
|
|
116
|
+
logger_1.logger.info(`☁️ Uploading CSV ${(sizeBytes / 1024).toFixed(0)} KB → s3://${this.bucket}/${key}`);
|
|
117
|
+
const command = new client_s3_1.PutObjectCommand({
|
|
118
|
+
Bucket: this.bucket,
|
|
119
|
+
Key: key,
|
|
120
|
+
Body: fileBuffer,
|
|
121
|
+
ContentType: "text/csv",
|
|
122
|
+
ContentDisposition: "inline",
|
|
123
|
+
});
|
|
124
|
+
await this.s3Client.send(command);
|
|
125
|
+
const uri = `s3://${this.bucket}/${key}`;
|
|
126
|
+
logger_1.logger.info(`☁️ CSV upload complete: ${uri}`);
|
|
127
|
+
return {
|
|
128
|
+
success: true,
|
|
129
|
+
bucket: this.bucket,
|
|
130
|
+
key,
|
|
131
|
+
sizeBytes,
|
|
132
|
+
uri,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
137
|
+
logger_1.logger.error(`❌ S3 CSV upload failed for batch ${batchId}: ${message}`);
|
|
138
|
+
return {
|
|
139
|
+
success: false,
|
|
140
|
+
bucket: this.bucket,
|
|
141
|
+
key,
|
|
142
|
+
sizeBytes: 0,
|
|
143
|
+
uri: "",
|
|
144
|
+
error: message,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
}
|
|
101
148
|
/**
|
|
102
149
|
* Build the S3 key for a given batch ID without uploading.
|
|
103
150
|
*
|
package/dist/s3/uploader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploader.js","sourceRoot":"","sources":["../../src/s3/uploader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"uploader.js","sourceRoot":"","sources":["../../src/s3/uploader.ts"],"names":[],"mappings":"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"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { Pool } from "pg";
|
|
8
8
|
import type { SignatureConfig } from "../pdf-filler";
|
|
9
|
+
import type { CanvasserData } from "../pdf-filler";
|
|
9
10
|
/**
|
|
10
11
|
* Configuration accepted by the `FormFiller` class when used as a library.
|
|
11
12
|
* Every field is optional — sensible defaults are applied internally.
|
|
@@ -66,6 +67,8 @@ export interface ScriptConfig {
|
|
|
66
67
|
userIds?: string[];
|
|
67
68
|
/** Process all users from open EA submission batches (--all mode) */
|
|
68
69
|
processAll?: boolean;
|
|
70
|
+
/** Process a specific batch by ID (--batch-id mode) */
|
|
71
|
+
batchId?: string;
|
|
69
72
|
/** Path to the 1403 PDF template file */
|
|
70
73
|
templatePath: string;
|
|
71
74
|
/** Directory where filled PDFs are written */
|
|
@@ -118,12 +121,40 @@ export interface ProcessingResult {
|
|
|
118
121
|
skipped?: boolean;
|
|
119
122
|
/** Reason for skipping */
|
|
120
123
|
reason?: string;
|
|
124
|
+
/** Mapped canvasser data used to fill the PDF (present on success, used for CSV export) */
|
|
125
|
+
canvasserData?: CanvasserData;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Result of processing a single EA submission batch.
|
|
129
|
+
* Returned by `FormFiller.fillForBatch()`.
|
|
130
|
+
*/
|
|
131
|
+
export interface BatchFillResult {
|
|
132
|
+
/** The batch ID that was processed */
|
|
133
|
+
batchId: string;
|
|
134
|
+
/** Whether the overall batch processing succeeded */
|
|
135
|
+
success: boolean;
|
|
136
|
+
/** Per-user processing results within this batch */
|
|
137
|
+
results: ProcessingResult[];
|
|
138
|
+
/** Number of unique users in the batch */
|
|
139
|
+
totalUsers: number;
|
|
140
|
+
/** Number of successfully generated PDFs */
|
|
141
|
+
successfulCount: number;
|
|
142
|
+
/** Number of failed PDFs */
|
|
143
|
+
failedCount: number;
|
|
144
|
+
/** S3 key of the merged batch PDF (when successful) */
|
|
145
|
+
s3Key?: string;
|
|
146
|
+
/** S3 key of the CSV manifest (when successful) */
|
|
147
|
+
csvS3Key?: string;
|
|
148
|
+
/** Error message if the overall batch failed */
|
|
149
|
+
error?: string;
|
|
121
150
|
}
|
|
122
151
|
/** Raw CLI argument key-value map */
|
|
123
152
|
export interface CLIArgs {
|
|
124
153
|
id?: string;
|
|
125
154
|
ids?: string;
|
|
126
155
|
all?: boolean;
|
|
156
|
+
batchId?: string;
|
|
157
|
+
"batch-id"?: string;
|
|
127
158
|
dryRun?: boolean;
|
|
128
159
|
"dry-run"?: boolean;
|
|
129
160
|
skipExisting?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAMnD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAE9B,6EAA6E;IAC7E,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,eAAe,CAAC;IAGlC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACrB;AAMD,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC1B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,qEAAqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IAExB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,MAAM,EAAE,OAAO,CAAC;IAChB,iDAAiD;IACjD,YAAY,EAAE,OAAO,CAAC;IAEtB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IAEnB,yEAAyE;IACzE,QAAQ,EAAE,OAAO,CAAC;CACpB;AAED,uCAAuC;AACvC,MAAM,WAAW,eAAe;IAC7B,oDAAoD;IACpD,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IACtC,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,SAAS,EAAE,IAAI,CAAC;IAChB,mCAAmC;IACnC,mBAAmB,CAAC,EAAE,IAAI,CAAC;CAC7B;AAED,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC9B,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,aAAa,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC7B,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,eAAe,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qCAAqC;AACrC,MAAM,WAAW,OAAO;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CACjB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botler/1403-form-filler-module",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"description": "Fills Alberta Form 1403 PDFs for canvassers. Fetches data from Neon PostgreSQL, fills PDF form fields, overlays cursive signatures, flattens to image-PDFs, merges per-batch, and uploads to S3.",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@aws-sdk/client-s3": "^3.859.0",
|
|
39
39
|
"@vercel/og": "^0.8.5",
|
|
40
|
+
"csv-stringify": "^6.6.0",
|
|
40
41
|
"dotenv": "latest",
|
|
41
42
|
"mupdf": "^1.27.0",
|
|
42
43
|
"pdf-lib": "^1.17.1",
|
package/templates/template.pdf
CHANGED
|
Binary file
|