@autohubs/lib-cte 0.2.2 → 0.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.
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ /**
3
+ * Code128C encoding para chave de acesso do CT-e (44 digitos numericos).
4
+ * Code128C codifica pares de digitos — ideal para strings numericas.
5
+ * Retorna array de larguras de barras (1 = barra fina, etc).
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.encodeCode128C = encodeCode128C;
9
+ exports.getBarcodeWidth = getBarcodeWidth;
10
+ // Patterns Code128: cada simbolo tem 6 elementos (3 barras + 3 espacos)
11
+ // Valor = indice no array
12
+ const PATTERNS = [
13
+ [2, 1, 2, 2, 2, 2], [2, 2, 2, 1, 2, 2], [2, 2, 2, 2, 2, 1], [1, 2, 1, 2, 2, 3], [1, 2, 1, 3, 2, 2],
14
+ [1, 3, 1, 2, 2, 2], [1, 2, 2, 2, 1, 3], [1, 2, 2, 3, 1, 2], [1, 3, 2, 2, 1, 2], [2, 2, 1, 2, 1, 3],
15
+ [2, 2, 1, 3, 1, 2], [2, 3, 1, 2, 1, 2], [1, 1, 2, 2, 3, 2], [1, 2, 2, 1, 3, 2], [1, 2, 2, 2, 3, 1],
16
+ [1, 1, 3, 2, 2, 2], [1, 2, 3, 1, 2, 2], [1, 2, 3, 2, 2, 1], [2, 2, 3, 2, 1, 1], [2, 2, 1, 1, 3, 2],
17
+ [2, 2, 1, 2, 3, 1], [2, 1, 3, 2, 1, 2], [2, 2, 3, 1, 1, 2], [3, 1, 2, 1, 3, 1], [3, 1, 1, 2, 2, 2],
18
+ [3, 2, 1, 1, 2, 2], [3, 2, 1, 2, 2, 1], [3, 1, 2, 2, 1, 2], [3, 2, 2, 1, 1, 2], [3, 2, 2, 2, 1, 1],
19
+ [2, 1, 2, 1, 2, 3], [2, 1, 2, 3, 2, 1], [2, 3, 2, 1, 2, 1], [1, 1, 1, 3, 2, 3], [1, 3, 1, 1, 2, 3],
20
+ [1, 3, 1, 3, 2, 1], [1, 1, 2, 3, 1, 3], [1, 3, 2, 1, 1, 3], [1, 3, 2, 3, 1, 1], [2, 1, 1, 3, 1, 3],
21
+ [2, 3, 1, 1, 1, 3], [2, 3, 1, 3, 1, 1], [1, 1, 2, 1, 3, 3], [1, 1, 2, 3, 3, 1], [1, 3, 2, 1, 3, 1],
22
+ [1, 1, 3, 1, 2, 3], [1, 1, 3, 3, 2, 1], [1, 3, 3, 1, 2, 1], [3, 1, 3, 1, 2, 1], [2, 1, 1, 3, 3, 1],
23
+ [2, 3, 1, 1, 3, 1], [2, 1, 3, 1, 1, 3], [2, 1, 3, 3, 1, 1], [2, 1, 3, 1, 3, 1], [3, 1, 1, 1, 2, 3],
24
+ [3, 1, 1, 3, 2, 1], [3, 3, 1, 1, 2, 1], [3, 1, 2, 1, 1, 3], [3, 1, 2, 3, 1, 1], [3, 3, 2, 1, 1, 1],
25
+ [3, 1, 4, 1, 1, 1], [2, 2, 1, 4, 1, 1], [4, 3, 1, 1, 1, 1], [1, 1, 1, 2, 2, 4], [1, 1, 1, 4, 2, 2],
26
+ [1, 2, 1, 1, 2, 4], [1, 2, 1, 4, 2, 1], [1, 4, 1, 1, 2, 2], [1, 4, 1, 2, 2, 1], [1, 1, 2, 2, 1, 4],
27
+ [1, 1, 2, 4, 1, 2], [1, 2, 2, 1, 1, 4], [1, 2, 2, 4, 1, 1], [1, 4, 2, 1, 1, 2], [1, 4, 2, 2, 1, 1],
28
+ [2, 4, 1, 2, 1, 1], [2, 2, 1, 1, 1, 4], [4, 1, 3, 1, 1, 1], [2, 4, 1, 1, 1, 2], [1, 3, 4, 1, 1, 1],
29
+ [1, 1, 1, 2, 4, 2], [1, 2, 1, 1, 4, 2], [1, 2, 1, 2, 4, 1], [1, 1, 4, 2, 1, 2], [1, 2, 4, 1, 1, 2],
30
+ [1, 2, 4, 2, 1, 1], [4, 1, 1, 2, 1, 2], [4, 2, 1, 1, 1, 2], [4, 2, 1, 2, 1, 1], [2, 1, 2, 1, 4, 1],
31
+ [2, 1, 4, 1, 2, 1], [4, 1, 2, 1, 2, 1], [1, 1, 1, 1, 4, 3], [1, 1, 1, 3, 4, 1], [1, 3, 1, 1, 4, 1],
32
+ [1, 1, 4, 1, 1, 3], [1, 1, 4, 3, 1, 1], [4, 1, 1, 1, 1, 3], [4, 1, 1, 3, 1, 1], [1, 1, 3, 1, 4, 1],
33
+ [1, 1, 4, 1, 3, 1], [3, 1, 1, 1, 4, 1], [4, 1, 1, 1, 3, 1], [2, 1, 1, 4, 1, 2], [2, 1, 1, 2, 1, 4],
34
+ [2, 1, 1, 2, 3, 2], [2, 3, 3, 1, 1, 1, 2]
35
+ ];
36
+ const START_CODE_C = 105;
37
+ const STOP_CODE = 106;
38
+ /**
39
+ * Codifica uma string numerica (deve ter comprimento par) em Code128C.
40
+ * Retorna array de barras com posicao x e largura.
41
+ */
42
+ function encodeCode128C(digits) {
43
+ if (digits.length % 2 !== 0) {
44
+ throw new Error('Code128C requer numero par de digitos');
45
+ }
46
+ const values = [START_CODE_C];
47
+ for (let i = 0; i < digits.length; i += 2) {
48
+ values.push(parseInt(digits.substring(i, i + 2), 10));
49
+ }
50
+ // Checksum
51
+ let checksum = values[0];
52
+ for (let i = 1; i < values.length; i++) {
53
+ checksum += values[i] * i;
54
+ }
55
+ values.push(checksum % 103);
56
+ values.push(STOP_CODE);
57
+ // Gerar barras
58
+ const bars = [];
59
+ let x = 0;
60
+ const unit = 1;
61
+ for (const value of values) {
62
+ const pattern = PATTERNS[value];
63
+ for (let j = 0; j < pattern.length; j++) {
64
+ const width = pattern[j] * unit;
65
+ bars.push({ x, width, isBar: j % 2 === 0 });
66
+ x += width;
67
+ }
68
+ }
69
+ return bars;
70
+ }
71
+ /**
72
+ * Retorna a largura total do barcode em unidades.
73
+ */
74
+ function getBarcodeWidth(bars) {
75
+ if (bars.length === 0)
76
+ return 0;
77
+ const last = bars[bars.length - 1];
78
+ return last.x + last.width;
79
+ }
80
+ //# sourceMappingURL=barcode128.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barcode128.js","sourceRoot":"","sources":["../../../src/infra/dacte/barcode128.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA0CH,wCAkCC;AAKD,0CAIC;AAnFD,wEAAwE;AACxE,0BAA0B;AAC1B,MAAM,QAAQ,GAAwB;IACpC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,SAAS,GAAG,GAAG,CAAC;AAQtB;;;GAGG;AACH,SAAgB,cAAc,CAAC,MAAc;IAC3C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,MAAM,GAAa,CAAC,YAAY,CAAC,CAAC;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,WAAW;IACX,IAAI,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEvB,eAAe;IACf,MAAM,IAAI,GAAiB,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,IAAI,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC,IAAI,KAAK,CAAC;QACb,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,IAA2B;IACzD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,100 @@
1
+ export type DacteEmitente = {
2
+ readonly nome: string;
3
+ readonly fantasia?: string;
4
+ readonly cnpj: string;
5
+ readonly ie: string;
6
+ readonly endereco: string;
7
+ readonly bairro: string;
8
+ readonly cidade: string;
9
+ readonly uf: string;
10
+ readonly cep: string;
11
+ readonly fone?: string;
12
+ };
13
+ export type DactePessoa = {
14
+ readonly nome: string;
15
+ readonly cnpjCpf: string;
16
+ readonly ie?: string;
17
+ readonly endereco?: string;
18
+ readonly bairro?: string;
19
+ readonly cidade?: string;
20
+ readonly uf?: string;
21
+ readonly cep?: string;
22
+ readonly pais?: string;
23
+ readonly fone?: string;
24
+ };
25
+ export type DacteComponente = {
26
+ readonly nome: string;
27
+ readonly valor: string;
28
+ };
29
+ export type DactePrestacao = {
30
+ readonly valorTotal: string;
31
+ readonly valorReceber: string;
32
+ readonly componentes: readonly DacteComponente[];
33
+ };
34
+ export type DacteImposto = {
35
+ readonly situacaoTributaria: string;
36
+ readonly baseCalculo: string;
37
+ readonly aliquota: string;
38
+ readonly valor: string;
39
+ readonly reducaoBc?: string;
40
+ readonly icmsSubstituicao?: string;
41
+ };
42
+ export type DacteDocumentoOriginario = {
43
+ readonly tipo: string;
44
+ readonly cnpjCpfEmitente: string;
45
+ readonly serieNumero: string;
46
+ };
47
+ export type DacteRodoviario = {
48
+ readonly rntrc?: string;
49
+ readonly ciot?: string;
50
+ readonly lotacao?: boolean;
51
+ readonly dataPrevistaEntrega?: string;
52
+ readonly veiculoPlaca?: string;
53
+ readonly veiculoUf?: string;
54
+ readonly motoristaNome?: string;
55
+ readonly motoristaCpf?: string;
56
+ };
57
+ export type DacteData = {
58
+ readonly chaveAcesso: string;
59
+ readonly modal: string;
60
+ readonly modalTexto: string;
61
+ readonly modelo: string;
62
+ readonly serie: string;
63
+ readonly numero: string;
64
+ readonly dataEmissao: string;
65
+ readonly tipoCTe: string;
66
+ readonly tipoServico: string;
67
+ readonly cfop: string;
68
+ readonly naturezaOperacao: string;
69
+ readonly origemUf: string;
70
+ readonly origemMunicipio: string;
71
+ readonly destinoUf: string;
72
+ readonly destinoMunicipio: string;
73
+ readonly emitente: DacteEmitente;
74
+ readonly remetente?: DactePessoa;
75
+ readonly destinatario?: DactePessoa;
76
+ readonly expedidor?: DactePessoa;
77
+ readonly recebedor?: DactePessoa;
78
+ readonly tomador?: DactePessoa;
79
+ readonly produtoPredominante: string;
80
+ readonly outrasCaracteristicasCarga?: string;
81
+ readonly pesoBruto?: string;
82
+ readonly quantidadeVolumes?: string;
83
+ readonly prestacao: DactePrestacao;
84
+ readonly impostos: readonly DacteImposto[];
85
+ readonly documentosOriginarios: readonly DacteDocumentoOriginario[];
86
+ readonly rodoviario?: DacteRodoviario;
87
+ readonly observacoes?: string;
88
+ readonly protocolo: string;
89
+ readonly dataAutorizacao: string;
90
+ };
91
+ /**
92
+ * Parseia o XML autorizado de um CT-e (cteProc/protCTe + CTe) para os dados
93
+ * necessarios ao DACTE. Cobre o modal rodoviario com mais detalhe (mais
94
+ * comum no Brasil); demais modais tem os campos gerais (emitente, remetente,
95
+ * destinatario, carga, prestacao, impostos) mas nao os campos especificos de
96
+ * modal (aereo, aquaviario, ferroviario, dutoviario, multimodal) — ver
97
+ * PLANO.md para o roadmap de cobertura dos demais modais.
98
+ */
99
+ export declare function parseCTeXml(xml: string): DacteData;
100
+ //# sourceMappingURL=xml-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml-parser.d.ts","sourceRoot":"","sources":["../../../src/infra/dacte/xml-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseCTeXml = parseCTeXml;
4
+ const CTeError_1 = require("../../shared/errors/CTeError");
5
+ const TIPO_SERVICO_TEXTO = {
6
+ '0': 'Normal',
7
+ '1': 'Subcontratação',
8
+ '2': 'Redespacho',
9
+ '3': 'Redespacho Intermediário',
10
+ '4': 'Serviço Vinculado a Multimodal',
11
+ '5': 'Transporte de Pessoas',
12
+ '6': 'Transporte de Valores'
13
+ };
14
+ const MODAL_TEXTO = {
15
+ '01': 'Rodoviário',
16
+ '02': 'Aéreo',
17
+ '03': 'Aquaviário',
18
+ '04': 'Ferroviário',
19
+ '05': 'Dutoviário',
20
+ '06': 'Multimodal'
21
+ };
22
+ const CST_ICMS_TEXTO = {
23
+ ICMS00: '00 - Tributação Normal do ICMS',
24
+ ICMS20: '20 - Tributação com BC Reduzida do ICMS',
25
+ ICMS45: '45 - ICMS Isento, Não Tributado ou Diferido',
26
+ ICMS60: '60 - ICMS Cobrado por Substituição Tributária',
27
+ ICMS90: '90 - ICMS Outros',
28
+ ICMSOutraUF: 'ICMS Devido à UF de Origem, Distinta da do Emitente',
29
+ ICMSSN: 'Simples Nacional'
30
+ };
31
+ /**
32
+ * Parseia o XML autorizado de um CT-e (cteProc/protCTe + CTe) para os dados
33
+ * necessarios ao DACTE. Cobre o modal rodoviario com mais detalhe (mais
34
+ * comum no Brasil); demais modais tem os campos gerais (emitente, remetente,
35
+ * destinatario, carga, prestacao, impostos) mas nao os campos especificos de
36
+ * modal (aereo, aquaviario, ferroviario, dutoviario, multimodal) — ver
37
+ * PLANO.md para o roadmap de cobertura dos demais modais.
38
+ */
39
+ function parseCTeXml(xml) {
40
+ const chaveAcesso = extractAttr(xml, 'infCte', 'Id')?.replace('CTe', '') ?? '';
41
+ if (!chaveAcesso || chaveAcesso.length !== 44) {
42
+ throw new CTeError_1.CTeError('XML invalido: chave de acesso nao encontrada em infCte[@Id]');
43
+ }
44
+ const ide = extractBlock(xml, 'ide');
45
+ const emit = extractBlock(xml, 'emit');
46
+ const rem = extractBlock(xml, 'rem');
47
+ const dest = extractBlock(xml, 'dest');
48
+ const exped = extractBlock(xml, 'exped');
49
+ const receb = extractBlock(xml, 'receb');
50
+ const toma4 = extractBlock(xml, 'toma4');
51
+ const vPrest = extractBlock(xml, 'vPrest');
52
+ const infCarga = extractBlock(xml, 'infCarga');
53
+ const rodo = extractBlock(xml, 'rodo');
54
+ const infProt = extractBlock(xml, 'infProt');
55
+ const emitEnder = extractBlock(emit, 'enderEmit');
56
+ const modal = xmlTag(ide, 'modal') ?? '01';
57
+ return {
58
+ chaveAcesso,
59
+ modal,
60
+ modalTexto: MODAL_TEXTO[modal] ?? modal,
61
+ modelo: xmlTag(ide, 'mod') ?? '57',
62
+ serie: xmlTag(ide, 'serie') ?? '',
63
+ numero: xmlTag(ide, 'nCT') ?? '',
64
+ dataEmissao: formatDate(xmlTag(ide, 'dhEmi') ?? ''),
65
+ tipoCTe: xmlTag(ide, 'tpCTe') ?? '0',
66
+ tipoServico: TIPO_SERVICO_TEXTO[xmlTag(ide, 'tpServ') ?? ''] ?? xmlTag(ide, 'tpServ') ?? '',
67
+ cfop: xmlTag(ide, 'CFOP') ?? '',
68
+ naturezaOperacao: xmlTag(ide, 'natOp') ?? '',
69
+ origemUf: xmlTag(ide, 'UFIni') ?? '',
70
+ origemMunicipio: xmlTag(ide, 'xMunIni') ?? '',
71
+ destinoUf: xmlTag(ide, 'UFFim') ?? '',
72
+ destinoMunicipio: xmlTag(ide, 'xMunFim') ?? '',
73
+ emitente: {
74
+ nome: xmlTag(emit, 'xNome') ?? '',
75
+ fantasia: xmlTag(emit, 'xFant') ?? undefined,
76
+ cnpj: xmlTag(emit, 'CNPJ') ?? '',
77
+ ie: xmlTag(emit, 'IE') ?? '',
78
+ endereco: `${xmlTag(emitEnder, 'xLgr') ?? ''}, ${xmlTag(emitEnder, 'nro') ?? ''}`,
79
+ bairro: xmlTag(emitEnder, 'xBairro') ?? '',
80
+ cidade: xmlTag(emitEnder, 'xMun') ?? '',
81
+ uf: xmlTag(emitEnder, 'UF') ?? '',
82
+ cep: xmlTag(emitEnder, 'CEP') ?? '',
83
+ fone: xmlTag(emitEnder, 'fone') ?? undefined
84
+ },
85
+ remetente: parsePessoa(rem, 'enderReme'),
86
+ destinatario: parsePessoa(dest, 'enderDest'),
87
+ expedidor: parsePessoa(exped, 'enderExped'),
88
+ recebedor: parsePessoa(receb, 'enderReceb'),
89
+ tomador: parseTomador(ide, xml, toma4, { rem, dest, exped, receb }),
90
+ produtoPredominante: xmlTag(infCarga, 'proPred') ?? '',
91
+ outrasCaracteristicasCarga: xmlTag(infCarga, 'xOutCat') ?? undefined,
92
+ pesoBruto: parsePesoBruto(infCarga),
93
+ quantidadeVolumes: parseQuantidadeVolumes(infCarga),
94
+ prestacao: parsePrestacao(vPrest),
95
+ impostos: parseImpostos(xml),
96
+ documentosOriginarios: parseDocumentosOriginarios(xml),
97
+ rodoviario: modal === '01' ? parseRodoviario(rodo) : undefined,
98
+ observacoes: xmlTag(xml, 'xObs') ?? undefined,
99
+ protocolo: xmlTag(infProt, 'nProt') ?? '',
100
+ dataAutorizacao: formatDate(xmlTag(infProt, 'dhRecbto') ?? '')
101
+ };
102
+ }
103
+ function parsePessoa(bloco, enderTag) {
104
+ if (!bloco)
105
+ return undefined;
106
+ const ender = extractBlock(bloco, enderTag);
107
+ const nome = xmlTag(bloco, 'xNome');
108
+ if (!nome)
109
+ return undefined;
110
+ return {
111
+ nome,
112
+ cnpjCpf: xmlTag(bloco, 'CNPJ') ?? xmlTag(bloco, 'CPF') ?? '',
113
+ ie: xmlTag(bloco, 'IE') ?? undefined,
114
+ endereco: ender ? `${xmlTag(ender, 'xLgr') ?? ''}, ${xmlTag(ender, 'nro') ?? ''}` : undefined,
115
+ bairro: xmlTag(ender, 'xBairro') ?? undefined,
116
+ cidade: xmlTag(ender, 'xMun') ?? undefined,
117
+ uf: xmlTag(ender, 'UF') ?? undefined,
118
+ cep: xmlTag(ender, 'CEP') ?? undefined,
119
+ pais: xmlTag(ender, 'xPais') ?? undefined,
120
+ fone: xmlTag(bloco, 'fone') ?? undefined
121
+ };
122
+ }
123
+ /**
124
+ * O tomador do servico pode ser um dos 4 papeis padrao (toma03, referenciando
125
+ * remetente/expedidor/recebedor/destinatario) ou "outros" (toma04, com dados
126
+ * proprios). Ver correlacao no Manual do DACTE secao 1.25.
127
+ */
128
+ function parseTomador(ide, xmlCompleto, toma4, referenciados) {
129
+ if (toma4) {
130
+ const enderToma = extractBlock(toma4, 'enderToma');
131
+ return {
132
+ nome: xmlTag(toma4, 'xNome') ?? xmlTag(toma4, 'xFant') ?? '',
133
+ cnpjCpf: xmlTag(toma4, 'CNPJ') ?? xmlTag(toma4, 'CPF') ?? '',
134
+ ie: xmlTag(toma4, 'IE') ?? undefined,
135
+ endereco: enderToma ? `${xmlTag(enderToma, 'xLgr') ?? ''}, ${xmlTag(enderToma, 'nro') ?? ''}` : undefined,
136
+ cidade: xmlTag(enderToma, 'xMun') ?? undefined,
137
+ uf: xmlTag(enderToma, 'UF') ?? undefined,
138
+ cep: xmlTag(enderToma, 'CEP') ?? undefined,
139
+ pais: xmlTag(enderToma, 'xPais') ?? undefined,
140
+ fone: xmlTag(toma4, 'fone') ?? undefined
141
+ };
142
+ }
143
+ const toma03 = extractBlock(ide, 'toma03');
144
+ const tomaCodigo = xmlTag(toma03, 'toma');
145
+ if (tomaCodigo === undefined || tomaCodigo === null)
146
+ return undefined;
147
+ const blocoReferenciado = { '0': referenciados.rem, '1': referenciados.exped, '2': referenciados.receb, '3': referenciados.dest }[tomaCodigo];
148
+ if (!blocoReferenciado)
149
+ return undefined;
150
+ const enderTag = { '0': 'enderReme', '1': 'enderExped', '2': 'enderReceb', '3': 'enderDest' }[tomaCodigo] ?? '';
151
+ return parsePessoa(blocoReferenciado, enderTag);
152
+ }
153
+ function parsePesoBruto(infCarga) {
154
+ const infQRegex = /<infQ>([\s\S]*?)<\/infQ>/g;
155
+ let match;
156
+ while ((match = infQRegex.exec(infCarga)) !== null) {
157
+ const infQ = match[1];
158
+ if ((xmlTag(infQ, 'tpMed') ?? '').toUpperCase().includes('PESO BRUTO')) {
159
+ const cUnid = xmlTag(infQ, 'cUnid') ?? '01';
160
+ const qCarga = parseFloat(xmlTag(infQ, 'qCarga') ?? '0');
161
+ const fator = cUnid === '02' ? 1000 : 1;
162
+ return (qCarga * fator).toFixed(2);
163
+ }
164
+ }
165
+ return undefined;
166
+ }
167
+ function parseQuantidadeVolumes(infCarga) {
168
+ const infQRegex = /<infQ>([\s\S]*?)<\/infQ>/g;
169
+ let match;
170
+ while ((match = infQRegex.exec(infCarga)) !== null) {
171
+ const infQ = match[1];
172
+ if (xmlTag(infQ, 'cUnid') === '00') {
173
+ return xmlTag(infQ, 'qCarga') ?? undefined;
174
+ }
175
+ }
176
+ return undefined;
177
+ }
178
+ function parsePrestacao(vPrest) {
179
+ const componentes = [];
180
+ const compRegex = /<Comp>([\s\S]*?)<\/Comp>/g;
181
+ let match;
182
+ while ((match = compRegex.exec(vPrest)) !== null) {
183
+ const comp = match[1];
184
+ componentes.push({
185
+ nome: xmlTag(comp, 'xNome') ?? '',
186
+ valor: xmlTag(comp, 'vComp') ?? '0.00'
187
+ });
188
+ }
189
+ return {
190
+ valorTotal: xmlTag(vPrest, 'vTPrest') ?? '0.00',
191
+ valorReceber: xmlTag(vPrest, 'vRec') ?? '0.00',
192
+ componentes
193
+ };
194
+ }
195
+ const ICMS_GRUPOS = ['ICMS00', 'ICMS20', 'ICMS45', 'ICMS60', 'ICMS90', 'ICMSOutraUF', 'ICMSSN'];
196
+ function parseImpostos(xml) {
197
+ const impBlock = extractBlock(xml, 'imp');
198
+ const icms = extractBlock(impBlock, 'ICMS');
199
+ const impostos = [];
200
+ for (const grupo of ICMS_GRUPOS) {
201
+ const inner = extractBlock(icms, grupo);
202
+ if (!inner)
203
+ continue;
204
+ impostos.push({
205
+ situacaoTributaria: CST_ICMS_TEXTO[grupo] ?? grupo,
206
+ baseCalculo: xmlTag(inner, 'vBC') ?? '0.00',
207
+ aliquota: xmlTag(inner, 'pICMS') ?? '0.00',
208
+ valor: xmlTag(inner, 'vICMS') ?? '0.00',
209
+ reducaoBc: xmlTag(inner, 'pRedBC') ?? undefined,
210
+ icmsSubstituicao: xmlTag(inner, 'vICMSSTRet') ?? undefined
211
+ });
212
+ }
213
+ return impostos;
214
+ }
215
+ function parseDocumentosOriginarios(xml) {
216
+ const docs = [];
217
+ const infNFeRegex = /<infNFe>([\s\S]*?)<\/infNFe>/g;
218
+ let match;
219
+ while ((match = infNFeRegex.exec(xml)) !== null) {
220
+ const chave = xmlTag(match[1], 'chave');
221
+ if (chave) {
222
+ docs.push({ tipo: 'NF-e', cnpjCpfEmitente: chave.substring(6, 20), serieNumero: chave.substring(22, 34) });
223
+ }
224
+ }
225
+ const infNFRegex = /<infNF>([\s\S]*?)<\/infNF>/g;
226
+ while ((match = infNFRegex.exec(xml)) !== null) {
227
+ const inner = match[1];
228
+ docs.push({
229
+ tipo: 'NF',
230
+ cnpjCpfEmitente: xmlTag(inner, 'CNPJ') ?? xmlTag(inner, 'CPF') ?? '',
231
+ serieNumero: `${xmlTag(inner, 'serie') ?? ''}/${xmlTag(inner, 'nDoc') ?? ''}`
232
+ });
233
+ }
234
+ return docs;
235
+ }
236
+ function parseRodoviario(rodo) {
237
+ const veic = extractBlock(rodo, 'veic');
238
+ const moto = extractBlock(veic, 'moto');
239
+ return {
240
+ rntrc: xmlTag(rodo, 'RNTRC') ?? undefined,
241
+ ciot: xmlTag(rodo, 'CIOT') ?? undefined,
242
+ lotacao: xmlTag(rodo, 'lota') === '1',
243
+ dataPrevistaEntrega: xmlTag(rodo, 'dPrev') ?? undefined,
244
+ veiculoPlaca: xmlTag(veic, 'placa') ?? undefined,
245
+ veiculoUf: xmlTag(veic, 'UF') ?? undefined,
246
+ motoristaNome: xmlTag(moto, 'xNome') ?? undefined,
247
+ motoristaCpf: xmlTag(moto, 'CPF') ?? undefined
248
+ };
249
+ }
250
+ function xmlTag(xml, tagName) {
251
+ const match = xml.match(new RegExp(`<${tagName}>([^<]*)</${tagName}>`));
252
+ return match ? unescapeXml(match[1]) : null;
253
+ }
254
+ function unescapeXml(value) {
255
+ return value
256
+ .replace(/&amp;/g, '&')
257
+ .replace(/&lt;/g, '<')
258
+ .replace(/&gt;/g, '>')
259
+ .replace(/&quot;/g, '"')
260
+ .replace(/&apos;/g, "'");
261
+ }
262
+ function extractBlock(xml, tagName) {
263
+ const match = xml.match(new RegExp(`<${tagName}[^>]*>([\\s\\S]*?)</${tagName}>`));
264
+ return match ? match[0] : '';
265
+ }
266
+ function extractAttr(xml, tagName, attr) {
267
+ const match = xml.match(new RegExp(`<${tagName}[^>]*${attr}="([^"]+)"`));
268
+ return match ? match[1] : null;
269
+ }
270
+ function formatDate(isoDate) {
271
+ if (!isoDate)
272
+ return '';
273
+ try {
274
+ const d = new Date(isoDate);
275
+ const dd = String(d.getDate()).padStart(2, '0');
276
+ const mm = String(d.getMonth() + 1).padStart(2, '0');
277
+ const yyyy = d.getFullYear();
278
+ const hh = String(d.getHours()).padStart(2, '0');
279
+ const min = String(d.getMinutes()).padStart(2, '0');
280
+ const ss = String(d.getSeconds()).padStart(2, '0');
281
+ return `${dd}/${mm}/${yyyy} ${hh}:${min}:${ss}`;
282
+ }
283
+ catch {
284
+ return isoDate;
285
+ }
286
+ }
287
+ //# sourceMappingURL=xml-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml-parser.js","sourceRoot":"","sources":["../../../src/infra/dacte/xml-parser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autohubs/lib-cte",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "description": "Fork de @brasil-fiscal/cte com use cases de consulta (status do servico, consulta por chave, desacordo, distribuicao de DF-e por NSU) para CTe (Conhecimento de Transporte Eletronico) em TypeScript.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -44,11 +44,20 @@
44
44
  "@typescript-eslint/parser": "^8.58.2",
45
45
  "eslint": "^10.2.1",
46
46
  "eslint-config-prettier": "^10.1.8",
47
+ "pdfkit": "^0.18.0",
47
48
  "prettier": "^3.8.3",
48
49
  "tsc-alias": "^1.8.16",
49
50
  "tsx": "^4.21.0",
50
51
  "typescript": "^6.0.3"
51
52
  },
53
+ "peerDependencies": {
54
+ "pdfkit": ">=0.13.0"
55
+ },
56
+ "peerDependenciesMeta": {
57
+ "pdfkit": {
58
+ "optional": true
59
+ }
60
+ },
52
61
  "dependencies": {
53
62
  "@brasil-fiscal/core": "^1.0.0"
54
63
  }