@mrfylke/nsr-barcode-generator 1.1.0 → 1.3.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 CHANGED
@@ -45,11 +45,12 @@ All three generation methods share these options:
45
45
  ```typescript
46
46
  interface PdfGenerationOptions {
47
47
  outputDirectory: string;
48
+ assetsDirectory?: string; // copied package assets for bundled executables
48
49
  format?: "A4" | "A3" | "Letter"; // default "A4"
49
50
  orientation?: "landscape" | "portrait"; // default "landscape"
50
51
  style?: PdfStyleConfig; // colors/logo, see below
51
52
  overwrite?: boolean; // replace existing files (default false = skip)
52
- onProgress?: (event: PdfProgressEvent) => void;
53
+ onProgress?: (event: PdfProgressEvent) => void; // see "Result & progress" below
53
54
 
54
55
  // Custom QR payload. Called once metadata is resolved; the returned
55
56
  // string is used verbatim (no rewriting). Must be an absolute http(s)
@@ -74,6 +75,11 @@ interface PdfStyleConfig {
74
75
  }
75
76
  ```
76
77
 
78
+ When bundling the API into an executable, copy this package's `assets/`
79
+ directory alongside the application and pass its absolute path as
80
+ `assetsDirectory`. This avoids build-time `__dirname` rewriting by bundlers
81
+ such as Bun while leaving regular Node.js package resolution unchanged.
82
+
77
83
  `generateSinglePdf` additionally takes `nsrId: string`, plus `name?`/`transportMode?` shortcuts (see below). `processFile` takes `filePath: string` instead of a stop-place array.
78
84
 
79
85
  ### Supplying stop place data (skip Entur)
@@ -111,7 +117,27 @@ interface PdfGenerationResult {
111
117
  outputDirectory: string;
112
118
  }
113
119
 
114
- interface PdfProgressEvent {
120
+ // Discriminated union on `type`. Fetching events precede generation events.
121
+ type PdfProgressEvent =
122
+ | DataFetchingProgressEvent
123
+ | DataFetchingBatchProgressEvent
124
+ | GenerationProgressEvent;
125
+
126
+ interface DataFetchingProgressEvent {
127
+ type: "data-fetching";
128
+ current: number; total: number; nsrId: string;
129
+ status: "fetched" | "error";
130
+ error?: string;
131
+ }
132
+
133
+ // Fired once per batch of Entur lookups, right before the delay ahead of the next batch.
134
+ interface DataFetchingBatchProgressEvent {
135
+ type: "data-fetching-batch";
136
+ batchNumber: number; totalBatches: number; delayMs: number;
137
+ }
138
+
139
+ interface GenerationProgressEvent {
140
+ type: "generation";
115
141
  current: number; total: number; nsrId: string;
116
142
  outputPath?: string;
117
143
  status: "generated" | "skipped" | "error";
@@ -119,11 +145,11 @@ interface PdfProgressEvent {
119
145
  }
120
146
  ```
121
147
 
122
- `onProgress` fires once per requested ID. One item failing never aborts the batch.
148
+ `onProgress` first fires once per ID needing an Entur lookup (`type: "data-fetching"`), with a `type: "data-fetching-batch"` event between batches while fetches are throttled, then once per requested ID as PDFs are written (`type: "generation"`). One item failing never aborts the batch. Fetching events (including batch events) are only emitted for the built-in Entur client - a custom `stopPlaceFetcher` does not report fetch progress.
123
149
 
124
150
  ### Types
125
151
 
126
- `ProcessFileOptions/Result`, `GenerateSinglePdfOptions/Result`, `PdfGenerationOptions/Result`, `PdfProgressEvent`, `PdfStyleConfig`, `StopPlaceQrContext`, `StopPlaceId`/`StopPlaceInput`/`StopPlaceRequest`, `ValidationResult`, `IdParseResult`/`IdParseError` are all exported.
152
+ `ProcessFileOptions/Result`, `GenerateSinglePdfOptions/Result`, `PdfGenerationOptions/Result`, `PdfProgressEvent`, `DataFetchingProgressEvent`, `DataFetchingBatchProgressEvent`, `GenerationProgressEvent`, `PdfStyleConfig`, `StopPlaceQrContext`, `StopPlaceId`/`StopPlaceInput`/`StopPlaceRequest`, `ValidationResult`, `IdParseResult`/`IdParseError` are all exported.
127
153
 
128
154
  ### NSR ID format & filenames
129
155
 
@@ -143,6 +169,8 @@ nsr-barcode validate NSR:StopPlace:39598 # check ID format only
143
169
  nsr-barcode parse ids.txt # list unique IDs, no PDFs
144
170
  ```
145
171
 
172
+ `file` and `id` print one line per `onProgress` event as they happen - Entur lookups first (`[fetching n/total] ...`), with a `Processed batch n/total. Waiting <ms>ms before next batch...` line whenever fetches are large enough to be throttled into batches, then PDF writes (`[generating n/total] ...`) - followed by the final summary.
173
+
146
174
  ## Embeddability
147
175
 
148
176
  Fonts (bundled Poppins) and images resolve relative to the package's own install location, not `process.cwd()` - safe inside a packaged desktop app with a read-only install dir. Nothing is downloaded or cached to disk at runtime; a bundled font that fails to read falls back to Helvetica.
package/dist/api.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { formatIdCountResult, IdParseError, IdParseResult } from "./utils/idParser";
2
- import { PdfGenerationOptions, PdfGenerationResult, PdfGenerationItemResult, PdfGenerationFailure, PdfProgressEvent, PdfStyleConfig, StopPlaceQrContext, StopPlaceId, StopPlaceInput, StopPlaceRequest } from "./utils/pdfGenerator";
3
2
  import { extractStopPlaceNumber } from "./utils/nsrId";
3
+ import { DataFetchingBatchProgressEvent, DataFetchingProgressEvent, GenerationProgressEvent, PdfGenerationFailure, PdfGenerationItemResult, PdfGenerationOptions, PdfGenerationResult, PdfProgressEvent, PdfStyleConfig, StopPlaceId, StopPlaceInput, StopPlaceQrContext, StopPlaceRequest } from "./utils/pdfGenerator";
4
4
  interface CommonPdfOptions {
5
+ assetsDirectory?: string;
5
6
  format?: "A4" | "A3" | "Letter";
6
7
  orientation?: "landscape" | "portrait";
7
8
  style?: PdfStyleConfig;
@@ -35,14 +36,20 @@ export interface ValidationResult {
35
36
  isValid: boolean;
36
37
  error?: string;
37
38
  }
38
- export declare class NsrBarcodeApi {
39
- static processFile(options: ProcessFileOptions): Promise<ProcessFileResult>;
40
- static generateSinglePdf(options: GenerateSinglePdfOptions): Promise<GenerateSinglePdfResult>;
41
- static generateMultiplePdfs(stopPlaces: StopPlaceRequest[], options: PdfGenerationOptions): Promise<PdfGenerationResult>;
42
- static validateNsrId(nsrId: string): ValidationResult;
43
- static parseIds(content: string): Promise<IdParseResult>;
44
- static parseIdsFromFile(filePath: string): Promise<IdParseResult>;
45
- }
46
- export { IdParseResult, IdParseError, PdfGenerationOptions, PdfGenerationResult, PdfGenerationItemResult, PdfGenerationFailure, PdfProgressEvent, PdfStyleConfig, StopPlaceQrContext, StopPlaceId, StopPlaceInput, StopPlaceRequest, formatIdCountResult, extractStopPlaceNumber, };
39
+ declare function validateNsrId(nsrId: string): ValidationResult;
40
+ declare function processFile(options: ProcessFileOptions): Promise<ProcessFileResult>;
41
+ declare function generateSinglePdf(options: GenerateSinglePdfOptions): Promise<GenerateSinglePdfResult>;
42
+ declare function generateMultiplePdfs(stopPlaces: StopPlaceRequest[], options: PdfGenerationOptions): Promise<PdfGenerationResult>;
43
+ declare function parseIds(content: string): Promise<IdParseResult>;
44
+ declare function parseIdsFromFile(filePath: string): Promise<IdParseResult>;
45
+ export declare const NsrBarcodeApi: {
46
+ processFile: typeof processFile;
47
+ generateSinglePdf: typeof generateSinglePdf;
48
+ generateMultiplePdfs: typeof generateMultiplePdfs;
49
+ validateNsrId: typeof validateNsrId;
50
+ parseIds: typeof parseIds;
51
+ parseIdsFromFile: typeof parseIdsFromFile;
52
+ };
53
+ export { DataFetchingBatchProgressEvent, DataFetchingProgressEvent, extractStopPlaceNumber, formatIdCountResult, GenerationProgressEvent, IdParseError, IdParseResult, PdfGenerationFailure, PdfGenerationItemResult, PdfGenerationOptions, PdfGenerationResult, PdfProgressEvent, PdfStyleConfig, StopPlaceId, StopPlaceInput, StopPlaceQrContext, StopPlaceRequest, };
47
54
  export default NsrBarcodeApi;
48
55
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAyB,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAM9E,UAAU,gBAAgB;IAExB,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;IAEhC,WAAW,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;IAEvC,KAAK,CAAC,EAAE,cAAc,CAAC;IAKvB,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,kBAAkB,KAAK,MAAM,CAAC;IAE1D,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE/C,gBAAgB,CAAC,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAS5D,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAKD,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAE1D,QAAQ,EAAE,MAAM,CAAC;IAEjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAKD,MAAM,WAAW,iBAAiB;IAEhC,WAAW,EAAE,aAAa,CAAC;IAE3B,SAAS,EAAE,mBAAmB,CAAC;IAE/B,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAEhE,KAAK,EAAE,MAAM,CAAC;IAEd,eAAe,EAAE,MAAM,CAAC;IAKxB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAKD,MAAM,WAAW,uBAAuB;IAEtC,SAAS,EAAE,mBAAmB,CAAC;IAE/B,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,MAAM,WAAW,gBAAgB;IAE/B,OAAO,EAAE,OAAO,CAAC;IAEjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyCD,qBAAa,aAAa;IAMxB,OAAa,WAAW,CACtB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAqC5B;IAOD,OAAa,iBAAiB,CAC5B,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAiClC;IAYD,OAAa,oBAAoB,CAC/B,UAAU,EAAE,gBAAgB,EAAE,EAC9B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAW9B;IAOD,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAiBpD;IAOD,OAAa,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAE7D;IAOD,OAAa,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAGtE;CACF;AAGD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GACvB,CAAC;eAGa,aAAa"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,aAAa,EAEd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAyB,MAAM,eAAe,CAAC;AAC9E,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,uBAAuB,EAEvB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAM9B,UAAU,gBAAgB;IAExB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;IAEhC,WAAW,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;IAEvC,KAAK,CAAC,EAAE,cAAc,CAAC;IAKvB,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,kBAAkB,KAAK,MAAM,CAAC;IAE1D,SAAS,CAAC,EAAE,OAAO,CAAC;IAOpB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE/C,gBAAgB,CAAC,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAS5D,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAKD,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAE1D,QAAQ,EAAE,MAAM,CAAC;IAEjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAKD,MAAM,WAAW,iBAAiB;IAEhC,WAAW,EAAE,aAAa,CAAC;IAE3B,SAAS,EAAE,mBAAmB,CAAC;IAE/B,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAEhE,KAAK,EAAE,MAAM,CAAC;IAEd,eAAe,EAAE,MAAM,CAAC;IAKxB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAKD,MAAM,WAAW,uBAAuB;IAEtC,SAAS,EAAE,mBAAmB,CAAC;IAE/B,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,MAAM,WAAW,gBAAgB;IAE/B,OAAO,EAAE,OAAO,CAAC;IAEjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA8CD,iBAAS,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAiBtD;AAOD,iBAAe,WAAW,CACxB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAwC5B;AAOD,iBAAe,iBAAiB,CAC9B,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAkClC;AAYD,iBAAe,oBAAoB,CACjC,UAAU,EAAE,gBAAgB,EAAE,EAC9B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAW9B;AAOD,iBAAe,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAE/D;AAOD,iBAAe,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAGxE;AAKD,eAAO,MAAM,aAAa;;;;;;;CAOzB,CAAC;AAGF,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,CAAC;eAGa,aAAa"}
package/dist/api.js CHANGED
@@ -1,14 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractStopPlaceNumber = exports.formatIdCountResult = exports.NsrBarcodeApi = void 0;
3
+ exports.formatIdCountResult = exports.extractStopPlaceNumber = exports.NsrBarcodeApi = void 0;
4
4
  const fileReader_1 = require("./utils/fileReader");
5
5
  const idParser_1 = require("./utils/idParser");
6
6
  Object.defineProperty(exports, "formatIdCountResult", { enumerable: true, get: function () { return idParser_1.formatIdCountResult; } });
7
- const pdfGenerator_1 = require("./utils/pdfGenerator");
8
7
  const nsrId_1 = require("./utils/nsrId");
9
8
  Object.defineProperty(exports, "extractStopPlaceNumber", { enumerable: true, get: function () { return nsrId_1.extractStopPlaceNumber; } });
9
+ const pdfGenerator_1 = require("./utils/pdfGenerator");
10
10
  function buildPdfOptions(outputDirectory, options) {
11
11
  const pdfOptions = { outputDirectory };
12
+ if (options.assetsDirectory) {
13
+ pdfOptions.assetsDirectory = options.assetsDirectory;
14
+ }
12
15
  if (options.format) {
13
16
  pdfOptions.format = options.format;
14
17
  }
@@ -35,99 +38,104 @@ function buildPdfOptions(outputDirectory, options) {
35
38
  }
36
39
  return pdfOptions;
37
40
  }
38
- class NsrBarcodeApi {
39
- static async processFile(options) {
40
- const { filePath, outputDirectory } = options;
41
- try {
42
- const content = await (0, fileReader_1.readFile)(filePath);
43
- const parseResult = await (0, idParser_1.parseUniqueIds)(content);
44
- const uniqueIdsArray = Array.from(parseResult.uniqueIds);
45
- for (const nsrId of uniqueIdsArray) {
46
- const validation = this.validateNsrId(nsrId);
47
- if (!validation.isValid) {
48
- throw new Error(`Invalid NSR ID "${nsrId}": ${validation.error}`);
49
- }
50
- }
51
- const pdfOptions = buildPdfOptions(outputDirectory, options);
52
- const pdfResult = await (0, pdfGenerator_1.generatePdfsForStopPlaces)(uniqueIdsArray, pdfOptions);
53
- const parseSummary = (0, idParser_1.formatIdCountResult)(parseResult);
54
- const pdfSummary = `Generated ${pdfResult.totalGenerated} PDF files in ${pdfResult.outputDirectory}`;
55
- const summary = `${parseSummary}\n\n${pdfSummary}`;
56
- return {
57
- parseResult,
58
- pdfResult,
59
- summary,
60
- };
61
- }
62
- catch (error) {
63
- if (error instanceof Error) {
64
- throw error;
65
- }
66
- throw new Error("An unexpected error occurred during file processing");
67
- }
41
+ function validateNsrId(nsrId) {
42
+ if (!nsrId) {
43
+ return {
44
+ isValid: false,
45
+ error: "NSR ID cannot be empty",
46
+ };
68
47
  }
69
- static async generateSinglePdf(options) {
70
- const { nsrId, outputDirectory, name, transportMode } = options;
71
- try {
72
- const validation = this.validateNsrId(nsrId);
73
- if (!validation.isValid) {
74
- throw new Error(validation.error);
75
- }
76
- const request = name
77
- ? { id: nsrId, name, ...(transportMode ? { transportMode } : {}) }
78
- : nsrId;
79
- const pdfOptions = buildPdfOptions(outputDirectory, options);
80
- const pdfResult = await (0, pdfGenerator_1.generatePdfsForStopPlaces)([request], pdfOptions);
81
- const success = pdfResult.totalGenerated > 0 || pdfResult.skipped.length > 0;
82
- const summary = success
83
- ? `Successfully generated PDF for ${nsrId} in ${pdfResult.outputDirectory}`
84
- : `Failed to generate PDF for ${nsrId}`;
85
- return {
86
- pdfResult,
87
- success,
88
- summary,
89
- };
90
- }
91
- catch (error) {
92
- if (error instanceof Error) {
93
- throw error;
94
- }
95
- throw new Error("An unexpected error occurred during PDF generation");
96
- }
48
+ if (!(0, nsrId_1.isValidNsrStopPlaceId)(nsrId)) {
49
+ return {
50
+ isValid: false,
51
+ error: "Invalid NSR ID format. Expected format: NSR:StopPlace:<digits> with no extra whitespace or characters",
52
+ };
97
53
  }
98
- static async generateMultiplePdfs(stopPlaces, options) {
99
- for (const request of stopPlaces) {
100
- const nsrId = typeof request === "string" ? request : request.id;
101
- const validation = this.validateNsrId(nsrId);
54
+ return { isValid: true };
55
+ }
56
+ async function processFile(options) {
57
+ const { filePath, outputDirectory } = options;
58
+ try {
59
+ const content = await (0, fileReader_1.readFile)(filePath);
60
+ const parseResult = await (0, idParser_1.parseUniqueIds)(content);
61
+ const uniqueIdsArray = Array.from(parseResult.uniqueIds);
62
+ for (const nsrId of uniqueIdsArray) {
63
+ const validation = validateNsrId(nsrId);
102
64
  if (!validation.isValid) {
103
65
  throw new Error(`Invalid NSR ID "${nsrId}": ${validation.error}`);
104
66
  }
105
67
  }
106
- return (0, pdfGenerator_1.generatePdfsForStopPlaces)(stopPlaces, options);
107
- }
108
- static validateNsrId(nsrId) {
109
- if (!nsrId) {
110
- return {
111
- isValid: false,
112
- error: "NSR ID cannot be empty",
113
- };
68
+ const pdfOptions = buildPdfOptions(outputDirectory, options);
69
+ const pdfResult = await (0, pdfGenerator_1.generatePdfsForStopPlaces)(uniqueIdsArray, pdfOptions);
70
+ const parseSummary = (0, idParser_1.formatIdCountResult)(parseResult);
71
+ const pdfSummary = `Generated ${pdfResult.totalGenerated} PDF files in ${pdfResult.outputDirectory}`;
72
+ const summary = `${parseSummary}\n\n${pdfSummary}`;
73
+ return {
74
+ parseResult,
75
+ pdfResult,
76
+ summary,
77
+ };
78
+ }
79
+ catch (error) {
80
+ if (error instanceof Error) {
81
+ throw error;
114
82
  }
115
- if (!(0, nsrId_1.isValidNsrStopPlaceId)(nsrId)) {
116
- return {
117
- isValid: false,
118
- error: "Invalid NSR ID format. Expected format: NSR:StopPlace:<digits> with no extra whitespace or characters",
119
- };
83
+ throw new Error("An unexpected error occurred during file processing");
84
+ }
85
+ }
86
+ async function generateSinglePdf(options) {
87
+ const { nsrId, outputDirectory, name, transportMode } = options;
88
+ try {
89
+ const validation = validateNsrId(nsrId);
90
+ if (!validation.isValid) {
91
+ throw new Error(validation.error);
120
92
  }
121
- return { isValid: true };
93
+ const request = name
94
+ ? { id: nsrId, name, ...(transportMode ? { transportMode } : {}) }
95
+ : nsrId;
96
+ const pdfOptions = buildPdfOptions(outputDirectory, options);
97
+ const pdfResult = await (0, pdfGenerator_1.generatePdfsForStopPlaces)([request], pdfOptions);
98
+ const success = pdfResult.totalGenerated > 0 || pdfResult.skipped.length > 0;
99
+ const summary = success
100
+ ? `Successfully generated PDF for ${nsrId} in ${pdfResult.outputDirectory}`
101
+ : `Failed to generate PDF for ${nsrId}`;
102
+ return {
103
+ pdfResult,
104
+ success,
105
+ summary,
106
+ };
122
107
  }
123
- static async parseIds(content) {
124
- return (0, idParser_1.parseUniqueIds)(content);
108
+ catch (error) {
109
+ if (error instanceof Error) {
110
+ throw error;
111
+ }
112
+ throw new Error("An unexpected error occurred during PDF generation");
125
113
  }
126
- static async parseIdsFromFile(filePath) {
127
- const content = await (0, fileReader_1.readFile)(filePath);
128
- return (0, idParser_1.parseUniqueIds)(content);
114
+ }
115
+ async function generateMultiplePdfs(stopPlaces, options) {
116
+ for (const request of stopPlaces) {
117
+ const nsrId = typeof request === "string" ? request : request.id;
118
+ const validation = validateNsrId(nsrId);
119
+ if (!validation.isValid) {
120
+ throw new Error(`Invalid NSR ID "${nsrId}": ${validation.error}`);
121
+ }
129
122
  }
123
+ return (0, pdfGenerator_1.generatePdfsForStopPlaces)(stopPlaces, options);
124
+ }
125
+ async function parseIds(content) {
126
+ return (0, idParser_1.parseUniqueIds)(content);
127
+ }
128
+ async function parseIdsFromFile(filePath) {
129
+ const content = await (0, fileReader_1.readFile)(filePath);
130
+ return (0, idParser_1.parseUniqueIds)(content);
130
131
  }
131
- exports.NsrBarcodeApi = NsrBarcodeApi;
132
- exports.default = NsrBarcodeApi;
132
+ exports.NsrBarcodeApi = {
133
+ processFile,
134
+ generateSinglePdf,
135
+ generateMultiplePdfs,
136
+ validateNsrId,
137
+ parseIds,
138
+ parseIdsFromFile,
139
+ };
140
+ exports.default = exports.NsrBarcodeApi;
133
141
  //# sourceMappingURL=api.js.map
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -2,9 +2,32 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const commander_1 = require("commander");
5
- const api_1 = require("./api");
6
5
  const package_json_1 = require("../package.json");
6
+ const api_1 = require("./api");
7
7
  const program = new commander_1.Command();
8
+ function logProgress(event) {
9
+ if (event.type === "data-fetching") {
10
+ if (event.status === "error") {
11
+ console.log(`[fetching ${event.current}/${event.total}] ${event.nsrId} - failed: ${event.error}`);
12
+ }
13
+ return;
14
+ }
15
+ if (event.type === "data-fetching-batch") {
16
+ console.log(`Processed batch ${event.batchNumber}/${event.totalBatches}. Waiting ${event.delayMs}ms before next batch...`);
17
+ return;
18
+ }
19
+ switch (event.status) {
20
+ case "generated":
21
+ console.log(`[generating ${event.current}/${event.total}] ${event.nsrId} -> ${event.outputPath}`);
22
+ break;
23
+ case "skipped":
24
+ console.log(`[generating ${event.current}/${event.total}] ${event.nsrId} - skipped (already exists)`);
25
+ break;
26
+ case "error":
27
+ console.log(`[generating ${event.current}/${event.total}] ${event.nsrId} - failed: ${event.error}`);
28
+ break;
29
+ }
30
+ }
8
31
  program
9
32
  .name("nsr-barcode")
10
33
  .description("Generate PDF files for unique IDs from input files")
@@ -61,6 +84,7 @@ program
61
84
  const processOptions = {
62
85
  filePath,
63
86
  outputDirectory: options.output,
87
+ onProgress: logProgress,
64
88
  };
65
89
  if (format && format !== "A4") {
66
90
  processOptions.format = format;
@@ -75,7 +99,7 @@ program
75
99
  processOptions.overwrite = true;
76
100
  }
77
101
  const result = await api_1.NsrBarcodeApi.processFile(processOptions);
78
- console.log("\n" + result.summary);
102
+ console.log(`\n${result.summary}`);
79
103
  const uniqueIdsCount = result.parseResult.uniqueIds.size;
80
104
  if (result.pdfResult.totalGenerated !== uniqueIdsCount) {
81
105
  console.warn(`\nWarning: Only ${result.pdfResult.totalGenerated} of ${uniqueIdsCount} PDFs were generated successfully`);
@@ -137,6 +161,7 @@ program
137
161
  const generateOptions = {
138
162
  nsrId,
139
163
  outputDirectory: options.output,
164
+ onProgress: logProgress,
140
165
  };
141
166
  if (format && format !== "A4") {
142
167
  generateOptions.format = format;
@@ -151,7 +176,7 @@ program
151
176
  generateOptions.overwrite = true;
152
177
  }
153
178
  const result = await api_1.NsrBarcodeApi.generateSinglePdf(generateOptions);
154
- console.log("\n" + result.summary);
179
+ console.log(`\n${result.summary}`);
155
180
  if (!result.success) {
156
181
  console.error(`Error: Failed to generate PDF for ID: ${nsrId}`);
157
182
  process.exit(1);
@@ -184,7 +209,7 @@ program
184
209
  console.log(`Parsing file: ${filePath}`);
185
210
  const result = await api_1.NsrBarcodeApi.parseIdsFromFile(filePath);
186
211
  const summary = require("./utils/idParser").formatIdCountResult(result);
187
- console.log("\n" + summary);
212
+ console.log(`\n${summary}`);
188
213
  console.log(`\nUnique IDs found:`);
189
214
  Array.from(result.uniqueIds).forEach((id, index) => {
190
215
  console.log(`${index + 1}. ${id}`);
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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"}
@@ -1,2 +1,3 @@
1
1
  export declare function getAssetPath(...segments: string[]): string;
2
+ export declare function resolveAssetPath(assetsDirectory: string | undefined, ...segments: string[]): string;
2
3
  //# sourceMappingURL=assets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AAiBA,wBAAgB,YAAY,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAE1D"}
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AAiBA,wBAAgB,YAAY,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAE1D;AAOD,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,GAAG,QAAQ,EAAE,MAAM,EAAE,GACpB,MAAM,CAIR"}
@@ -1,11 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAssetPath = getAssetPath;
4
- const path_1 = require("path");
4
+ exports.resolveAssetPath = resolveAssetPath;
5
+ const node_path_1 = require("node:path");
5
6
  function getPackageRoot() {
6
- return (0, path_1.join)(__dirname, "..", "..");
7
+ return (0, node_path_1.join)(__dirname, "..", "..");
7
8
  }
8
9
  function getAssetPath(...segments) {
9
- return (0, path_1.join)(getPackageRoot(), "assets", ...segments);
10
+ return (0, node_path_1.join)(getPackageRoot(), "assets", ...segments);
11
+ }
12
+ function resolveAssetPath(assetsDirectory, ...segments) {
13
+ return assetsDirectory
14
+ ? (0, node_path_1.join)(assetsDirectory, ...segments)
15
+ : getAssetPath(...segments);
10
16
  }
11
17
  //# sourceMappingURL=assets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAa5B,SAAS,cAAc;IACrB,OAAO,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,sBAA6B,GAAG,QAAkB;IAChD,OAAO,IAAA,WAAI,EAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":";;;;AAAA,yCAAiC;AAajC,SAAS,cAAc;IACrB,OAAO,IAAA,gBAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,sBAA6B,GAAG,QAAkB;IAChD,OAAO,IAAA,gBAAI,EAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC;AACvD,CAAC;AAOD,0BACE,eAAmC,EACnC,GAAG,QAAkB;IAErB,OAAO,eAAe;QACpB,CAAC,CAAC,IAAA,gBAAI,EAAC,eAAe,EAAE,GAAG,QAAQ,CAAC;QACpC,CAAC,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,CAAC;AAChC,CAAC"}
@@ -21,6 +21,18 @@ export interface RetryConfig {
21
21
  maxDelay: number;
22
22
  backoffMultiplier: number;
23
23
  }
24
+ export interface StopPlaceFetchProgressEvent {
25
+ current: number;
26
+ total: number;
27
+ nsrId: string;
28
+ status: "fetched" | "error";
29
+ error?: string;
30
+ }
31
+ export interface StopPlaceBatchProgressEvent {
32
+ batchNumber: number;
33
+ totalBatches: number;
34
+ delayMs: number;
35
+ }
24
36
  export declare class EnturApiClient {
25
37
  private readonly baseUrl;
26
38
  private readonly clientName;
@@ -33,6 +45,8 @@ export declare class EnturApiClient {
33
45
  batchSize?: number;
34
46
  delayBetweenBatches?: number;
35
47
  concurrency?: number;
48
+ onProgress?: (event: StopPlaceFetchProgressEvent) => void;
49
+ onBatchComplete?: (event: StopPlaceBatchProgressEvent) => void;
36
50
  }): Promise<(StopPlaceInfo | null)[]>;
37
51
  private processBatchWithConcurrency;
38
52
  private parseStopPlaceResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"enturApi.d.ts","sourceRoot":"","sources":["../../src/utils/enturApi.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,IAAI,EACA,WAAW,GACX,WAAW,GACX,eAAe,GACf,YAAY,GACZ,cAAc,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAKD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAE1C,YACE,UAAU,GAAE,MAAgC,EAC5C,WAAW,GAAE,OAAO,CAAC,WAAW,CAAM,EAUvC;YAMa,KAAK;IAUnB,OAAO,CAAC,mBAAmB;IAkBrB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA8I9D;IAQK,qBAAqB,CACzB,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;KACjB,GACL,OAAO,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,CAgCnC;YAQa,2BAA2B;IA0CzC,OAAO,CAAC,sBAAsB;CAoD/B;AAQD,wBAAgB,6BAA6B,CAC3C,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CAOhB;AAKD,eAAO,MAAM,QAAQ,gBAAuB,CAAC"}
1
+ {"version":3,"file":"enturApi.d.ts","sourceRoot":"","sources":["../../src/utils/enturApi.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,IAAI,EACA,WAAW,GACX,WAAW,GACX,eAAe,GACf,YAAY,GACZ,cAAc,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AA0BD,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAE1C,YACE,UAAU,GAAE,MAAgC,EAC5C,WAAW,GAAE,OAAO,CAAC,WAAW,CAAM,EAUvC;YAMa,KAAK;IAUnB,OAAO,CAAC,mBAAmB;IAkBrB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA6I9D;IAQK,qBAAqB,CACzB,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;QAE1D,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;KAC3D,GACL,OAAO,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,CAkDnC;YAQa,2BAA2B;IAiDzC,OAAO,CAAC,sBAAsB;CAuD/B;AAQD,wBAAgB,6BAA6B,CAC3C,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CAOhB;AAKD,eAAO,MAAM,QAAQ,gBAAuB,CAAC"}