@chenchaolong/plugin-trade-compliance-workbench 1.0.66 → 1.0.67
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/dist/lib/catalog-import/pdf-layout.parser.d.ts.map +1 -1
- package/dist/lib/catalog-import/pdf-layout.parser.js +91 -18
- package/dist/lib/catalog-import/pdf-layout.parser.js.map +1 -1
- package/dist/lib/catalog-import/pdf-table.normalizer.d.ts.map +1 -1
- package/dist/lib/catalog-import/pdf-table.normalizer.js +6 -0
- package/dist/lib/catalog-import/pdf-table.normalizer.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-layout.parser.d.ts","sourceRoot":"","sources":["../../../src/lib/catalog-import/pdf-layout.parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAE1E,OAAO,EAAyC,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAExG,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEnD,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG;IACvD,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAC5B,CAAA;
|
|
1
|
+
{"version":3,"file":"pdf-layout.parser.d.ts","sourceRoot":"","sources":["../../../src/lib/catalog-import/pdf-layout.parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAE1E,OAAO,EAAyC,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAExG,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEnD,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG;IACvD,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAC5B,CAAA;AAgED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,qBAAqB,CA0HjF;AAQD,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgBjG"}
|
|
@@ -2,6 +2,8 @@ import { PDFParse } from 'pdf-parse';
|
|
|
2
2
|
import { classifyCandidate, normalizeCatalogCandidate } from './confidence.js';
|
|
3
3
|
import { normalizeHeader } from './header-mapping.js';
|
|
4
4
|
import { normalizePdfTableRow, splitPdfHsCodes } from './pdf-table.normalizer.js';
|
|
5
|
+
const EXPORT_CONTROL_CODE_PATTERN = /^\d[A-Z]\d{3}(?:\.[a-z0-9]+)*$/;
|
|
6
|
+
const HS_CODE_PATTERN = /^(?:\d{8}|\d{10})$/;
|
|
5
7
|
function detectSchema(header, section) {
|
|
6
8
|
const normalized = header.map(normalizeHeader);
|
|
7
9
|
if (normalized.some(value => value === normalizeHeader('管制编码')))
|
|
@@ -11,6 +13,12 @@ function detectSchema(header, section) {
|
|
|
11
13
|
}
|
|
12
14
|
return undefined;
|
|
13
15
|
}
|
|
16
|
+
function inferSchemaFromRows(table, section) {
|
|
17
|
+
if (section === 'EXPORT' && table.some(row => /^\d+$/.test(row[0] ?? '') && EXPORT_CONTROL_CODE_PATTERN.test(row[1] ?? ''))) {
|
|
18
|
+
return 'EXPORT_SIX_COLUMN';
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
14
22
|
function pushCandidate(result, candidate) {
|
|
15
23
|
const normalizedCandidate = normalizeCatalogCandidate(candidate);
|
|
16
24
|
const decision = classifyCandidate(normalizedCandidate);
|
|
@@ -32,6 +40,23 @@ function pushCandidate(result, candidate) {
|
|
|
32
40
|
function nonEmptyContent(row) {
|
|
33
41
|
return row.filter(Boolean).join(' | ');
|
|
34
42
|
}
|
|
43
|
+
function appendEvidence(candidate, sourceLocation, sourceContent) {
|
|
44
|
+
const evidence = candidate.evidence[0];
|
|
45
|
+
if (!evidence) {
|
|
46
|
+
candidate.evidence.push({ sourceLocation, sourceContent });
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
evidence.sourceLocation = `${evidence.sourceLocation}; ${sourceLocation}`;
|
|
50
|
+
evidence.sourceContent = `${evidence.sourceContent}\n${sourceLocation}: ${sourceContent}`;
|
|
51
|
+
}
|
|
52
|
+
function appendContinuation(candidate, sourceLocation, sourceContent) {
|
|
53
|
+
const current = typeof candidate.values.controlDescription === 'string' ? candidate.values.controlDescription.trim() : '';
|
|
54
|
+
candidate.values.controlDescription = current ? `${current}\n${sourceContent}` : sourceContent;
|
|
55
|
+
appendEvidence(candidate, sourceLocation, sourceContent);
|
|
56
|
+
}
|
|
57
|
+
function skipContinuation(result, sourceLocation, sourceContent) {
|
|
58
|
+
result.skipped.push({ sourceLocation, sourceContent, reason: 'PDF_CONTINUATION_WITHOUT_RECORD' });
|
|
59
|
+
}
|
|
35
60
|
export function parsePdfLayoutPages(pages) {
|
|
36
61
|
const result = {
|
|
37
62
|
mode: 'FAST_PIPELINE',
|
|
@@ -44,14 +69,26 @@ export function parsePdfLayoutPages(pages) {
|
|
|
44
69
|
page.tables.forEach((table, tableIndex) => {
|
|
45
70
|
if (table.length === 0)
|
|
46
71
|
return;
|
|
47
|
-
const
|
|
72
|
+
const detectedSchema = detectSchema(table[0], page.section);
|
|
73
|
+
const schema = detectedSchema ?? inferSchemaFromRows(table, page.section);
|
|
48
74
|
if (!schema) {
|
|
75
|
+
const sourceContent = table.map(nonEmptyContent).filter(Boolean).join('\n');
|
|
76
|
+
const compact = sourceContent.replace(/\s/g, '');
|
|
77
|
+
const hasCatalogIdentifier = table.some(row => row.some(cell => EXPORT_CONTROL_CODE_PATTERN.test(String(cell ?? '').trim()) || HS_CODE_PATTERN.test(String(cell ?? '').replace(/\s/g, ''))));
|
|
78
|
+
if (!sourceContent || /^\d{8,10}$/.test(compact) || !hasCatalogIdentifier) {
|
|
79
|
+
result.skipped.push({
|
|
80
|
+
sourceLocation: `PDF page ${page.pageNumber} table ${tableIndex + 1}`,
|
|
81
|
+
sourceContent,
|
|
82
|
+
reason: 'PDF_FRAGMENT_WITHOUT_HEADER'
|
|
83
|
+
});
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
49
86
|
result.reviewBlocks.push({
|
|
50
87
|
ordinal: result.reviewBlocks.length + 1,
|
|
51
88
|
kind: 'CONTROLLED',
|
|
52
89
|
confidence: 'LOW',
|
|
53
90
|
sourceLocation: `PDF page ${page.pageNumber} table ${tableIndex + 1}`,
|
|
54
|
-
sourceContent
|
|
91
|
+
sourceContent,
|
|
55
92
|
payload: {},
|
|
56
93
|
reasons: ['HEADER_MAPPING_UNRESOLVED']
|
|
57
94
|
});
|
|
@@ -59,37 +96,73 @@ export function parsePdfLayoutPages(pages) {
|
|
|
59
96
|
}
|
|
60
97
|
if (!result.schemas.includes(schema))
|
|
61
98
|
result.schemas.push(schema);
|
|
62
|
-
table.slice(1)
|
|
99
|
+
const rows = detectedSchema ? table.slice(1) : table;
|
|
100
|
+
const rowOffset = detectedSchema ? 2 : 1;
|
|
101
|
+
rows.forEach((rawRow, rowIndex) => {
|
|
63
102
|
const row = normalizePdfTableRow(rawRow, schema);
|
|
64
|
-
const sourceLocation = `PDF page ${page.pageNumber} table ${tableIndex + 1} row ${rowIndex +
|
|
103
|
+
const sourceLocation = `PDF page ${page.pageNumber} table ${tableIndex + 1} row ${rowIndex + rowOffset}`;
|
|
65
104
|
const sourceContent = nonEmptyContent(row);
|
|
66
105
|
if (!sourceContent)
|
|
67
106
|
return;
|
|
68
107
|
const ordinalValue = row[0];
|
|
69
108
|
const controlCode = schema === 'EXPORT_SIX_COLUMN' ? row[1] : undefined;
|
|
70
|
-
if (!ordinalValue && !controlCode) {
|
|
71
|
-
result.reviewBlocks.push({
|
|
72
|
-
ordinal: result.reviewBlocks.length + 1,
|
|
73
|
-
kind: 'CONTROLLED',
|
|
74
|
-
confidence: 'MEDIUM',
|
|
75
|
-
sourceLocation,
|
|
76
|
-
sourceContent,
|
|
77
|
-
payload: { sourceSection: page.section ?? (schema === 'EXPORT_SIX_COLUMN' ? 'EXPORT' : 'IMPORT') },
|
|
78
|
-
reasons: ['ORPHAN_PAGE_CONTINUATION']
|
|
79
|
-
});
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
const parsedOrdinal = Number.parseInt(ordinalValue, 10);
|
|
83
109
|
const section = page.section ?? (schema === 'EXPORT_SIX_COLUMN' ? 'EXPORT' : 'IMPORT');
|
|
84
110
|
const itemDescription = schema === 'EXPORT_SIX_COLUMN' ? row[2] : row[2];
|
|
85
111
|
const referenceProductName = schema === 'EXPORT_SIX_COLUMN' ? row[3] : row[1];
|
|
86
112
|
const hsCell = schema === 'EXPORT_SIX_COLUMN' ? row[4] : row[3];
|
|
113
|
+
const hsCodes = splitPdfHsCodes(hsCell);
|
|
114
|
+
if (!ordinalValue && !controlCode) {
|
|
115
|
+
if (referenceProductName && hsCodes.length > 0) {
|
|
116
|
+
const candidate = {
|
|
117
|
+
kind: 'CONTROLLED',
|
|
118
|
+
ordinal: result.accepted.length + result.reviewBlocks.length + result.skipped.length + 1,
|
|
119
|
+
values: {
|
|
120
|
+
productName: referenceProductName,
|
|
121
|
+
hsCodes,
|
|
122
|
+
controlDescription: itemDescription || undefined,
|
|
123
|
+
sourceSection: section,
|
|
124
|
+
unit: row[schema === 'EXPORT_SIX_COLUMN' ? 5 : 4] || undefined
|
|
125
|
+
},
|
|
126
|
+
evidence: [{ sourceLocation, sourceContent }],
|
|
127
|
+
signals: ['STRUCTURED_SOURCE', 'HEADER_MAPPED', 'RECORD_START_EXPLICIT', 'COLUMN_LAYOUT_STABLE'],
|
|
128
|
+
warnings: []
|
|
129
|
+
};
|
|
130
|
+
pushCandidate(result, candidate);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const previous = result.accepted.at(-1);
|
|
134
|
+
if (previous?.kind === 'CONTROLLED' && previous.values.sourceSection === section && sourceContent.length > 20) {
|
|
135
|
+
appendContinuation(previous, sourceLocation, sourceContent);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
skipContinuation(result, sourceLocation, sourceContent);
|
|
139
|
+
}
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
const parsedOrdinal = Number.parseInt(ordinalValue, 10);
|
|
143
|
+
const validRecordStart = schema === 'EXPORT_SIX_COLUMN'
|
|
144
|
+
? /^\d+$/.test(ordinalValue) && (!controlCode || EXPORT_CONTROL_CODE_PATTERN.test(controlCode) || HS_CODE_PATTERN.test(controlCode))
|
|
145
|
+
: /^\d+$/.test(ordinalValue);
|
|
146
|
+
if (!validRecordStart) {
|
|
147
|
+
const previous = result.accepted.at(-1);
|
|
148
|
+
if (previous?.kind === 'CONTROLLED' && previous.values.sourceSection === section) {
|
|
149
|
+
appendContinuation(previous, sourceLocation, sourceContent);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
skipContinuation(result, sourceLocation, sourceContent);
|
|
153
|
+
}
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
if (!referenceProductName && !controlCode && hsCodes.length === 0) {
|
|
157
|
+
skipContinuation(result, sourceLocation, sourceContent);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
87
160
|
const candidate = {
|
|
88
161
|
kind: 'CONTROLLED',
|
|
89
162
|
ordinal: Number.isFinite(parsedOrdinal) ? parsedOrdinal : result.accepted.length + result.reviewBlocks.length + 1,
|
|
90
163
|
values: {
|
|
91
164
|
productName: referenceProductName || itemDescription,
|
|
92
|
-
hsCodes
|
|
165
|
+
hsCodes,
|
|
93
166
|
controlCode: controlCode || undefined,
|
|
94
167
|
controlDescription: itemDescription || undefined,
|
|
95
168
|
sourceSection: section,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-layout.parser.js","sourceRoot":"","sources":["../../../src/lib/catalog-import/pdf-layout.parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAyB,MAAM,2BAA2B,CAAA;AAexG,SAAS,YAAY,CAAC,MAAgB,EAAE,OAA2B;IACjE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC9C,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,mBAAmB,CAAA;IAC3F,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACjI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAA;IAC3E,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,MAA6B,EAAE,SAA2B;IAC/E,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAA;IAChE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAA;IACvD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QACzC,OAAM;IACR,CAAC;IACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAChD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;QACvB,OAAO,EAAE,mBAAmB,CAAC,OAAO;QACpC,IAAI,EAAE,mBAAmB,CAAC,IAAI;QAC9B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,cAAc,EAAE,QAAQ,EAAE,cAAc,IAAI,EAAE;QAC9C,aAAa,EAAE,QAAQ,EAAE,aAAa,IAAI,EAAE;QAC5C,OAAO,EAAE,mBAAmB,CAAC,MAAM;QACnC,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,GAAa;IACpC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAsB;IACxD,MAAM,MAAM,GAA0B;QACpC,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;KACZ,CAAA;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;YACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAM;YAC9B,MAAM,
|
|
1
|
+
{"version":3,"file":"pdf-layout.parser.js","sourceRoot":"","sources":["../../../src/lib/catalog-import/pdf-layout.parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-table.normalizer.d.ts","sourceRoot":"","sources":["../../../src/lib/catalog-import/pdf-table.normalizer.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,mBAAmB,CAAA;AAMzE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"pdf-table.normalizer.d.ts","sourceRoot":"","sources":["../../../src/lib/catalog-import/pdf-table.normalizer.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,mBAAmB,CAAA;AAMzE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAmBvF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvD"}
|
|
@@ -6,6 +6,12 @@ export function normalizePdfTableRow(row, schema) {
|
|
|
6
6
|
const expectedLength = schema === 'EXPORT_SIX_COLUMN' ? 6 : 5;
|
|
7
7
|
if (cells.length === expectedLength)
|
|
8
8
|
return cells;
|
|
9
|
+
if (schema === 'IMPORT_FIVE_COLUMN' && cells.length === 3 && splitPdfHsCodes(cells[2]).length > 0) {
|
|
10
|
+
return ['', cells[0], cells[1], cells[2], ''];
|
|
11
|
+
}
|
|
12
|
+
if (schema === 'EXPORT_SIX_COLUMN' && cells.length >= 2 && cells.length <= 3 && splitPdfHsCodes(cells[1]).length > 0 && cells.slice(2).every(value => !value)) {
|
|
13
|
+
return ['', '', cells[0], cells[0], cells[1], ''];
|
|
14
|
+
}
|
|
9
15
|
if (cells.length < expectedLength)
|
|
10
16
|
return [...cells, ...Array(expectedLength - cells.length).fill('')];
|
|
11
17
|
const trailingColumns = schema === 'EXPORT_SIX_COLUMN' ? 3 : 2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-table.normalizer.js","sourceRoot":"","sources":["../../../src/lib/catalog-import/pdf-table.normalizer.ts"],"names":[],"mappings":"AAEA,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;AAC3G,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAc,EAAE,MAAwB;IAC3E,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAChC,MAAM,cAAc,GAAG,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc;QAAE,OAAO,KAAK,CAAA;IACjD,IAAI,KAAK,CAAC,MAAM,GAAG,cAAc;QAAE,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAS,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAE9G,MAAM,eAAe,GAAG,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9D,OAAO;QACL,KAAK,CAAC,CAAC,CAAC;QACR,KAAK,CAAC,CAAC,CAAC;QACR,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACzE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC;KAC/C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;AAC3C,CAAC"}
|
|
1
|
+
{"version":3,"file":"pdf-table.normalizer.js","sourceRoot":"","sources":["../../../src/lib/catalog-import/pdf-table.normalizer.ts"],"names":[],"mappings":"AAEA,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;AAC3G,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAc,EAAE,MAAwB;IAC3E,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAChC,MAAM,cAAc,GAAG,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc;QAAE,OAAO,KAAK,CAAA;IACjD,IAAI,MAAM,KAAK,oBAAoB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClG,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC/C,CAAC;IACD,IAAI,MAAM,KAAK,mBAAmB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9J,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACnD,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,cAAc;QAAE,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAS,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAE9G,MAAM,eAAe,GAAG,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9D,OAAO;QACL,KAAK,CAAC,CAAC,CAAC;QACR,KAAK,CAAC,CAAC,CAAC;QACR,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACzE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC;KAC/C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;AAC3C,CAAC"}
|