@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 +32 -4
- package/dist/api.d.ts +17 -10
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +93 -85
- package/dist/api.js.map +1 -1
- package/dist/cli.js +29 -4
- package/dist/cli.js.map +1 -1
- package/dist/utils/assets.d.ts +1 -0
- package/dist/utils/assets.d.ts.map +1 -1
- package/dist/utils/assets.js +9 -3
- package/dist/utils/assets.js.map +1 -1
- package/dist/utils/enturApi.d.ts +14 -0
- package/dist/utils/enturApi.d.ts.map +1 -1
- package/dist/utils/enturApi.js +32 -13
- package/dist/utils/enturApi.js.map +1 -1
- package/dist/utils/fileReader.js +4 -4
- package/dist/utils/fileReader.js.map +1 -1
- package/dist/utils/fontLoader.d.ts +2 -2
- package/dist/utils/fontLoader.d.ts.map +1 -1
- package/dist/utils/fontLoader.js +12 -10
- package/dist/utils/fontLoader.js.map +1 -1
- package/dist/utils/nsrId.js +1 -1
- package/dist/utils/nsrId.js.map +1 -1
- package/dist/utils/pdfGenerator.d.ts +19 -2
- package/dist/utils/pdfGenerator.d.ts.map +1 -1
- package/dist/utils/pdfGenerator.js +355 -327
- package/dist/utils/pdfGenerator.js.map +1 -1
- package/package.json +8 -2
package/dist/utils/enturApi.js
CHANGED
|
@@ -28,7 +28,7 @@ class EnturApiClient {
|
|
|
28
28
|
return Math.min(retryAfter * 1000, this.retryConfig.maxDelay);
|
|
29
29
|
}
|
|
30
30
|
const delay = this.retryConfig.baseDelay *
|
|
31
|
-
|
|
31
|
+
this.retryConfig.backoffMultiplier ** attempt;
|
|
32
32
|
return Math.min(delay, this.retryConfig.maxDelay);
|
|
33
33
|
}
|
|
34
34
|
async getStopPlace(stopPlaceId) {
|
|
@@ -108,7 +108,6 @@ class EnturApiClient {
|
|
|
108
108
|
const delay = this.calculateRetryDelay(attempt);
|
|
109
109
|
console.warn(`Unknown error for stop place ${stopPlaceId}. Retrying in ${delay}ms (attempt ${attempt + 1}/${this.retryConfig.maxRetries})`);
|
|
110
110
|
await this.sleep(delay);
|
|
111
|
-
continue;
|
|
112
111
|
}
|
|
113
112
|
}
|
|
114
113
|
}
|
|
@@ -117,20 +116,38 @@ class EnturApiClient {
|
|
|
117
116
|
throw unknownError;
|
|
118
117
|
}
|
|
119
118
|
async getMultipleStopPlaces(stopPlaceIds, options = {}) {
|
|
120
|
-
const { batchSize = 100, delayBetweenBatches = 1000, concurrency = 5, } = options;
|
|
119
|
+
const { batchSize = 100, delayBetweenBatches = 1000, concurrency = 5, onProgress, onBatchComplete, } = options;
|
|
121
120
|
const results = [];
|
|
121
|
+
const total = stopPlaceIds.length;
|
|
122
|
+
let completed = 0;
|
|
123
|
+
const onItemDone = onProgress
|
|
124
|
+
? (id, status, error) => {
|
|
125
|
+
completed++;
|
|
126
|
+
onProgress({
|
|
127
|
+
current: completed,
|
|
128
|
+
total,
|
|
129
|
+
nsrId: id,
|
|
130
|
+
status,
|
|
131
|
+
...(error ? { error } : {}),
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
: undefined;
|
|
122
135
|
for (let i = 0; i < stopPlaceIds.length; i += batchSize) {
|
|
123
136
|
const batch = stopPlaceIds.slice(i, i + batchSize);
|
|
124
|
-
const batchResults = await this.processBatchWithConcurrency(batch, concurrency);
|
|
137
|
+
const batchResults = await this.processBatchWithConcurrency(batch, concurrency, onItemDone);
|
|
125
138
|
results.push(...batchResults);
|
|
126
139
|
if (i + batchSize < stopPlaceIds.length) {
|
|
127
|
-
|
|
140
|
+
onBatchComplete?.({
|
|
141
|
+
batchNumber: Math.floor(i / batchSize) + 1,
|
|
142
|
+
totalBatches: Math.ceil(stopPlaceIds.length / batchSize),
|
|
143
|
+
delayMs: delayBetweenBatches,
|
|
144
|
+
});
|
|
128
145
|
await this.sleep(delayBetweenBatches);
|
|
129
146
|
}
|
|
130
147
|
}
|
|
131
148
|
return results;
|
|
132
149
|
}
|
|
133
|
-
async processBatchWithConcurrency(stopPlaceIds, concurrency) {
|
|
150
|
+
async processBatchWithConcurrency(stopPlaceIds, concurrency, onItemDone) {
|
|
134
151
|
const results = new Array(stopPlaceIds.length);
|
|
135
152
|
for (let i = 0; i < stopPlaceIds.length; i += concurrency) {
|
|
136
153
|
const chunk = stopPlaceIds.slice(i, i + concurrency);
|
|
@@ -139,10 +156,12 @@ class EnturApiClient {
|
|
|
139
156
|
try {
|
|
140
157
|
const result = await this.getStopPlace(id);
|
|
141
158
|
results[globalIndex] = result;
|
|
159
|
+
onItemDone?.(id, "fetched");
|
|
142
160
|
}
|
|
143
161
|
catch (error) {
|
|
144
162
|
console.warn(`Failed to fetch stop place ${id}:`, error.message);
|
|
145
163
|
results[globalIndex] = null;
|
|
164
|
+
onItemDone?.(id, "error", error.message);
|
|
146
165
|
}
|
|
147
166
|
});
|
|
148
167
|
await Promise.allSettled(chunkPromises);
|
|
@@ -158,18 +177,18 @@ class EnturApiClient {
|
|
|
158
177
|
};
|
|
159
178
|
try {
|
|
160
179
|
if (data) {
|
|
161
|
-
if (data.name
|
|
162
|
-
stopPlace.name = data.name.value;
|
|
163
|
-
}
|
|
164
|
-
else if (typeof data.name === "string") {
|
|
180
|
+
if (typeof data.name === "string") {
|
|
165
181
|
stopPlace.name = data.name;
|
|
166
182
|
}
|
|
167
|
-
if (data.
|
|
168
|
-
stopPlace.
|
|
183
|
+
else if (data.name?.value) {
|
|
184
|
+
stopPlace.name = data.name.value;
|
|
169
185
|
}
|
|
170
|
-
|
|
186
|
+
if (typeof data.description === "string") {
|
|
171
187
|
stopPlace.description = data.description;
|
|
172
188
|
}
|
|
189
|
+
else if (data.description?.value) {
|
|
190
|
+
stopPlace.description = data.description.value;
|
|
191
|
+
}
|
|
173
192
|
if (data.transportMode) {
|
|
174
193
|
stopPlace.transportMode = Array.isArray(data.transportMode)
|
|
175
194
|
? data.transportMode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enturApi.js","sourceRoot":"","sources":["../../src/utils/enturApi.ts"],"names":[],"mappings":";;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"enturApi.js","sourceRoot":"","sources":["../../src/utils/enturApi.ts"],"names":[],"mappings":";;;;;;;AAAA,kDAAkD;AA+ElD;IACmB,OAAO,GAAG,qCAAqC,CAAC;IAChD,UAAU,CAAS;IACnB,WAAW,CAAc;IAE1C,YACE,UAAU,GAAW,uBAAuB,EAC5C,WAAW,GAAyB,EAAE;QAEtC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG;YACjB,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,CAAC;YACpB,GAAG,WAAW;SACf,CAAC;IACJ,CAAC;IAMO,KAAK,CAAC,KAAK,CAAC,EAAU;QAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAQO,mBAAmB,CAAC,OAAe,EAAE,UAAmB;QAC9D,IAAI,UAAU,EAAE,CAAC;YAEf,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAChE,CAAC;QAGD,MAAM,KAAK,GACT,IAAI,CAAC,WAAW,CAAC,SAAS;YAC1B,IAAI,CAAC,WAAW,CAAC,iBAAiB,IAAI,OAAO,CAAC;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAOD,KAAK,CAAC,YAAY,CAAC,WAAmB;QAEpC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,iCAAiC,WAAW,EAAE,CAC9B,CAAC;YACnB,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;YAC1B,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,SAAS,GAAU,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAElD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACxE,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAkB,MAAM,eAAK,CAAC,GAAG,CAC7C,GAAG,IAAI,CAAC,OAAO,qBAAqB,kBAAkB,CAAC,WAAW,CAAC,EAAE,EACrE;oBACE,OAAO,EAAE;wBACP,gBAAgB,EAAE,IAAI,CAAC,UAAU;wBACjC,MAAM,EAAE,kBAAkB;qBAC3B;oBACD,OAAO,EAAE,KAAK;iBACf,CACF,CAAC;gBAEF,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,KAAc,CAAC;gBAE3B,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oBAE9B,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;wBACnC,MAAM,QAAQ,GAAG,IAAI,KAAK,CACxB,yBAAyB,WAAW,EAAE,CACtB,CAAC;wBACnB,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;wBAC5B,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;wBAC1B,MAAM,QAAQ,CAAC;oBACjB,CAAC;oBAGD,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;wBACnC,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;4BAE1C,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;4BAC/D,MAAM,UAAU,GAAG,gBAAgB;gCACjC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC;gCAChC,CAAC,CAAC,SAAS,CAAC;4BAEd,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;4BAE5D,OAAO,CAAC,IAAI,CACV,+BAA+B,WAAW,iBAAiB,KAAK,eAC9D,OAAO,GAAG,CACZ,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,CACnC,CAAC;4BAEF,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BACxB,SAAS;wBACX,CAAC;6BAAM,CAAC;4BAEN,MAAM,cAAc,GAAG,IAAI,KAAK,CAC9B,sCAAsC,WAAW,UAAU,IAAI,CAAC,WAAW,CAAC,UAAU,UAAU,CAChF,CAAC;4BACnB,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC;4BACrC,cAAc,CAAC,UAAU,GAAG,GAAG,CAAC;4BAChC,MAAM,cAAc,CAAC;wBACvB,CAAC;oBACH,CAAC;oBAGD,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;wBAE3B,IACE,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG;4BAC5B,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EACrC,CAAC;4BACD,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;4BAChD,OAAO,CAAC,IAAI,CACV,gBACE,KAAK,CAAC,QAAQ,CAAC,MACjB,mBAAmB,WAAW,iBAAiB,KAAK,eAClD,OAAO,GAAG,CACZ,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,CACnC,CAAC;4BACF,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BACxB,SAAS;wBACX,CAAC;wBAGD,MAAM,QAAQ,GAAG,IAAI,KAAK,CACxB,cAAc,KAAK,CAAC,QAAQ,CAAC,MAAM,MAAM,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CACpD,CAAC;wBACnB,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;wBAC5B,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC5C,MAAM,QAAQ,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBAEN,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;4BAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;4BAChD,OAAO,CAAC,IAAI,CACV,gCAAgC,WAAW,iBAAiB,KAAK,eAC/D,OAAO,GAAG,CACZ,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,CACnC,CAAC;4BACF,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BACxB,SAAS;wBACX,CAAC;wBAED,MAAM,YAAY,GAAG,IAAI,KAAK,CAC5B,kBAAkB,KAAK,CAAC,OAAO,EAAE,CACjB,CAAC;wBACnB,YAAY,CAAC,IAAI,GAAG,eAAe,CAAC;wBACpC,MAAM,YAAY,CAAC;oBACrB,CAAC;gBACH,CAAC;gBAGD,IAAK,KAAuB,CAAC,IAAI,EAAE,CAAC;oBAClC,MAAM,KAAK,CAAC;gBACd,CAAC;gBAGD,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;oBAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;oBAChD,OAAO,CAAC,IAAI,CACV,gCAAgC,WAAW,iBAAiB,KAAK,eAC/D,OAAO,GAAG,CACZ,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,CACnC,CAAC;oBACF,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAGD,MAAM,YAAY,GAAG,IAAI,KAAK,CAC5B,wCAAwC,WAAW,iBAAiB,SAAS,CAAC,OAAO,EAAE,CACvE,CAAC;QACnB,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC;QAChC,MAAM,YAAY,CAAC;IACrB,CAAC;IAQD,KAAK,CAAC,qBAAqB,CACzB,YAAsB,EACtB,OAAO,GAQH,EAAE;QAEN,MAAM,EACJ,SAAS,GAAG,GAAG,EACf,mBAAmB,GAAG,IAAI,EAC1B,WAAW,GAAG,CAAC,EACf,UAAU,EACV,eAAe,GAChB,GAAG,OAAO,CAAC;QAEZ,MAAM,OAAO,GAA6B,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;QAClC,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,MAAM,UAAU,GAAG,UAAU;YAC3B,CAAC,CAAC,CAAC,EAAU,EAAE,MAA2B,EAAE,KAAc,EAAE,EAAE;gBAC1D,SAAS,EAAE,CAAC;gBACZ,UAAU,CAAC;oBACT,OAAO,EAAE,SAAS;oBAClB,KAAK;oBACL,KAAK,EAAE,EAAE;oBACT,MAAM;oBACN,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5B,CAAC,CAAC;YACL,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QAGd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;YAGnD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,2BAA2B,CACzD,KAAK,EACL,WAAW,EACX,UAAU,CACX,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAG9B,IAAI,CAAC,GAAG,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;gBACxC,eAAe,EAAE,CAAC;oBAChB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC;oBAC1C,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC;oBACxD,OAAO,EAAE,mBAAmB;iBAC7B,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAQO,KAAK,CAAC,2BAA2B,CACvC,YAAsB,EACtB,WAAmB,EACnB,UAIS;QAET,MAAM,OAAO,GAA6B,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAGzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;YAErD,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE;gBACvD,MAAM,WAAW,GAAG,CAAC,GAAG,UAAU,CAAC;gBACnC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;oBAC3C,OAAO,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;oBAC9B,UAAU,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBAC9B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CACV,8BAA8B,EAAE,GAAG,EAClC,KAAe,CAAC,OAAO,CACzB,CAAC;oBACF,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;oBAC5B,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC,CAAC,CAAC;YAGH,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAGxC,IAAI,CAAC,GAAG,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC1C,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAQO,sBAAsB,CAC5B,IAAsC,EACtC,UAAkB;QAElB,MAAM,SAAS,GAAkB;YAC/B,EAAE,EAAE,UAAU;SACf,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,IAAI,EAAE,CAAC;gBAET,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAClC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC7B,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;oBAC5B,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnC,CAAC;gBAGD,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;oBACzC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC3C,CAAC;qBAAM,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;oBACnC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACjD,CAAC;gBAGD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,SAAS,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;wBACzD,CAAC,CAAC,IAAI,CAAC,aAAa;wBACpB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC3B,CAAC;gBAGD,IACE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS;oBAClC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EACjC,CAAC;oBACD,SAAS,CAAC,WAAW,GAAG;wBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ;wBACzC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS;qBAC5C,CAAC;gBACJ,CAAC;gBAGD,IAAI,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC;oBAGlC,SAAS,CAAC,YAAY,GAAG,QAAQ,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC;gBAClE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,qCAAqC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;;AAQD,uCACE,UAAmB;IAEnB,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE;QACpC,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,KAAK;QACf,iBAAiB,EAAE,CAAC;KACrB,CAAC,CAAC;AACL,CAAC;AAKY,QAAA,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC"}
|
package/dist/utils/fileReader.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.readFile = readFile;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
6
|
async function readFile(filePath) {
|
|
7
7
|
try {
|
|
8
|
-
const absolutePath = (0,
|
|
9
|
-
const content = await
|
|
8
|
+
const absolutePath = (0, node_path_1.resolve)(filePath);
|
|
9
|
+
const content = await node_fs_1.promises.readFile(absolutePath, "utf-8");
|
|
10
10
|
return content;
|
|
11
11
|
}
|
|
12
12
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileReader.js","sourceRoot":"","sources":["../../src/utils/fileReader.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"fileReader.js","sourceRoot":"","sources":["../../src/utils/fileReader.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AACzC,yCAAoC;AAQ7B,KAAK,mBAAmB,QAAgB;IAC7C,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAA,mBAAO,EAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACzD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAE3B,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBACpB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;oBACnB,KAAK,QAAQ;wBACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;oBACjD,KAAK,QAAQ;wBACX,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;oBACpD,KAAK,QAAQ;wBACX,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAC;oBAClE;wBACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
|
|
@@ -3,8 +3,8 @@ export interface FontFamily {
|
|
|
3
3
|
bold: string;
|
|
4
4
|
}
|
|
5
5
|
export declare class FontLoader {
|
|
6
|
-
private
|
|
7
|
-
loadPoppins(): Promise<FontFamily>;
|
|
6
|
+
private cachedFontFamilies;
|
|
7
|
+
loadPoppins(assetsDirectory?: string): Promise<FontFamily>;
|
|
8
8
|
}
|
|
9
9
|
export declare const fontLoader: FontLoader;
|
|
10
10
|
//# sourceMappingURL=fontLoader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fontLoader.d.ts","sourceRoot":"","sources":["../../src/utils/fontLoader.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAaD,qBAAa,UAAU;IACrB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"fontLoader.d.ts","sourceRoot":"","sources":["../../src/utils/fontLoader.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAaD,qBAAa,UAAU;IACrB,OAAO,CAAC,kBAAkB,CAAiC;IAOrD,WAAW,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAmC/D;CACF;AAGD,eAAO,MAAM,UAAU,YAAmB,CAAC"}
|
package/dist/utils/fontLoader.js
CHANGED
|
@@ -1,32 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fontLoader = exports.FontLoader = void 0;
|
|
4
|
-
const
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
5
|
const assets_1 = require("./assets");
|
|
6
6
|
const HELVETICA_FALLBACK = {
|
|
7
7
|
regular: "Helvetica",
|
|
8
8
|
bold: "Helvetica-Bold",
|
|
9
9
|
};
|
|
10
10
|
class FontLoader {
|
|
11
|
-
|
|
12
|
-
async loadPoppins() {
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
cachedFontFamilies = new Map();
|
|
12
|
+
async loadPoppins(assetsDirectory) {
|
|
13
|
+
const cacheKey = assetsDirectory ?? "package-default";
|
|
14
|
+
const cached = this.cachedFontFamilies.get(cacheKey);
|
|
15
|
+
if (cached) {
|
|
16
|
+
return cached;
|
|
15
17
|
}
|
|
16
|
-
const regularPath = (0, assets_1.
|
|
17
|
-
const boldPath = (0, assets_1.
|
|
18
|
+
const regularPath = (0, assets_1.resolveAssetPath)(assetsDirectory, "fonts", "poppins-400-normal.ttf");
|
|
19
|
+
const boldPath = (0, assets_1.resolveAssetPath)(assetsDirectory, "fonts", "poppins-700-normal.ttf");
|
|
18
20
|
try {
|
|
19
|
-
await Promise.all([
|
|
21
|
+
await Promise.all([node_fs_1.promises.access(regularPath), node_fs_1.promises.access(boldPath)]);
|
|
20
22
|
const fontFamily = {
|
|
21
23
|
regular: regularPath,
|
|
22
24
|
bold: boldPath,
|
|
23
25
|
};
|
|
24
|
-
this.
|
|
26
|
+
this.cachedFontFamilies.set(cacheKey, fontFamily);
|
|
25
27
|
return fontFamily;
|
|
26
28
|
}
|
|
27
29
|
catch (error) {
|
|
28
30
|
console.warn("Failed to read bundled Poppins fonts, falling back to Helvetica:", error instanceof Error ? error.message : error);
|
|
29
|
-
this.
|
|
31
|
+
this.cachedFontFamilies.set(cacheKey, HELVETICA_FALLBACK);
|
|
30
32
|
return HELVETICA_FALLBACK;
|
|
31
33
|
}
|
|
32
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fontLoader.js","sourceRoot":"","sources":["../../src/utils/fontLoader.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"fontLoader.js","sourceRoot":"","sources":["../../src/utils/fontLoader.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AACzC,qCAA4C;AAO5C,MAAM,kBAAkB,GAAe;IACrC,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,gBAAgB;CACvB,CAAC;AAQF;IACU,kBAAkB,GAAG,IAAI,GAAG,EAAsB,CAAC;IAO3D,KAAK,CAAC,WAAW,CAAC,eAAwB;QACxC,MAAM,QAAQ,GAAG,eAAe,IAAI,iBAAiB,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,WAAW,GAAG,IAAA,yBAAgB,EAClC,eAAe,EACf,OAAO,EACP,wBAAwB,CACzB,CAAC;QACF,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAC/B,eAAe,EACf,OAAO,EACP,wBAAwB,CACzB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,kBAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,kBAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAEjE,MAAM,UAAU,GAAe;gBAC7B,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,QAAQ;aACf,CAAC;YACF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAClD,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CACV,kEAAkE,EAClE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;YACF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YAC1D,OAAO,kBAAkB,CAAC;QAC5B,CAAC;IACH,CAAC;CACF;;AAGY,QAAA,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC"}
|
package/dist/utils/nsrId.js
CHANGED
|
@@ -5,7 +5,7 @@ exports.isValidNsrStopPlaceId = isValidNsrStopPlaceId;
|
|
|
5
5
|
const NSR_STOP_PLACE_PATTERN = /^NSR:StopPlace:([0-9]+)$/;
|
|
6
6
|
function extractStopPlaceNumber(nsrId) {
|
|
7
7
|
const match = NSR_STOP_PLACE_PATTERN.exec(nsrId);
|
|
8
|
-
return match
|
|
8
|
+
return match?.[1] ?? null;
|
|
9
9
|
}
|
|
10
10
|
function isValidNsrStopPlaceId(nsrId) {
|
|
11
11
|
return NSR_STOP_PLACE_PATTERN.test(nsrId);
|
package/dist/utils/nsrId.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nsrId.js","sourceRoot":"","sources":["../../src/utils/nsrId.ts"],"names":[],"mappings":";;;;AAMA,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAO1D,gCAAuC,KAAa;IAClD,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"nsrId.js","sourceRoot":"","sources":["../../src/utils/nsrId.ts"],"names":[],"mappings":";;;;AAMA,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAO1D,gCAAuC,KAAa;IAClD,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAKD,+BAAsC,KAAa;IACjD,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StopPlaceInfo } from "./enturApi";
|
|
1
|
+
import { type StopPlaceInfo } from "./enturApi";
|
|
2
2
|
export interface PdfStyleConfig {
|
|
3
3
|
headerFooterColor?: string;
|
|
4
4
|
logoPath?: string;
|
|
@@ -10,7 +10,22 @@ export interface StopPlaceQrContext {
|
|
|
10
10
|
id: string;
|
|
11
11
|
name: string;
|
|
12
12
|
}
|
|
13
|
-
export interface
|
|
13
|
+
export interface DataFetchingProgressEvent {
|
|
14
|
+
type: "data-fetching";
|
|
15
|
+
current: number;
|
|
16
|
+
total: number;
|
|
17
|
+
nsrId: string;
|
|
18
|
+
status: "fetched" | "error";
|
|
19
|
+
error?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface DataFetchingBatchProgressEvent {
|
|
22
|
+
type: "data-fetching-batch";
|
|
23
|
+
batchNumber: number;
|
|
24
|
+
totalBatches: number;
|
|
25
|
+
delayMs: number;
|
|
26
|
+
}
|
|
27
|
+
export interface GenerationProgressEvent {
|
|
28
|
+
type: "generation";
|
|
14
29
|
current: number;
|
|
15
30
|
total: number;
|
|
16
31
|
nsrId: string;
|
|
@@ -18,6 +33,7 @@ export interface PdfProgressEvent {
|
|
|
18
33
|
status: "generated" | "skipped" | "error";
|
|
19
34
|
error?: string;
|
|
20
35
|
}
|
|
36
|
+
export type PdfProgressEvent = DataFetchingProgressEvent | DataFetchingBatchProgressEvent | GenerationProgressEvent;
|
|
21
37
|
export type StopPlaceId = string;
|
|
22
38
|
export interface StopPlaceInput {
|
|
23
39
|
id: StopPlaceId;
|
|
@@ -27,6 +43,7 @@ export interface StopPlaceInput {
|
|
|
27
43
|
export type StopPlaceRequest = StopPlaceId | StopPlaceInput;
|
|
28
44
|
export interface PdfGenerationOptions {
|
|
29
45
|
outputDirectory: string;
|
|
46
|
+
assetsDirectory?: string;
|
|
30
47
|
format?: "A4" | "A3" | "Letter";
|
|
31
48
|
orientation?: "landscape" | "portrait";
|
|
32
49
|
generateQrUrl?: (stopPlace: StopPlaceQrContext) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdfGenerator.d.ts","sourceRoot":"","sources":["../../src/utils/pdfGenerator.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"pdfGenerator.d.ts","sourceRoot":"","sources":["../../src/utils/pdfGenerator.ts"],"names":[],"mappings":"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"}
|