visura-parser 1.0.0 → 1.1.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 +33 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/internal/parse-document.d.ts.map +1 -1
- package/dist/internal/parse-document.js +54 -32
- package/dist/internal/parse-document.js.map +1 -1
- package/dist/internal/parse-local-units.d.ts +5 -0
- package/dist/internal/parse-local-units.d.ts.map +1 -0
- package/dist/internal/parse-local-units.js +104 -0
- package/dist/internal/parse-local-units.js.map +1 -0
- package/dist/internal/parse-people.d.ts.map +1 -1
- package/dist/internal/parse-people.js +26 -17
- package/dist/internal/parse-people.js.map +1 -1
- package/dist/types.d.ts +15 -0
- package/dist/types.d.ts.map +1 -1
- package/exampleOutput.json +213 -0
- package/outputSchema.json +480 -0
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -10,14 +10,19 @@ be text based.
|
|
|
10
10
|
|
|
11
11
|
## Motivation
|
|
12
12
|
|
|
13
|
-
When working with Italian companies, you
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
When working with Italian companies, you often need structured data about them.
|
|
14
|
+
We wanted an open source parser that we could inspect, test, and improve.
|
|
15
|
+
|
|
16
|
+
This came up at Silkware, where we work with and onboard Italian companies. The
|
|
17
|
+
_Visura camerale_ is easy for companies to obtain and share, and it contains
|
|
18
|
+
enough official registry data to make structured extraction useful.
|
|
17
19
|
|
|
18
20
|
## Disclaimer
|
|
19
21
|
|
|
20
|
-
This
|
|
22
|
+
This library is developed with substantial help from AI coding agents.
|
|
23
|
+
Contributions must meet the same fixture, correctness, and review requirements
|
|
24
|
+
regardless of how the code was written.
|
|
25
|
+
The parser should be treated as a best-effort tool, so it may fail for Visure layouts that are not in the private corpus. Feel free to open an issue if you encounter a layout that is not supported, or contribute yourself.
|
|
21
26
|
|
|
22
27
|
## Requirements
|
|
23
28
|
|
|
@@ -26,6 +31,12 @@ This the development of this library is strongly aided by AI coding agents such
|
|
|
26
31
|
|
|
27
32
|
## Usage
|
|
28
33
|
|
|
34
|
+
Install the ESM package in your application:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
npm install visura-parser
|
|
38
|
+
```
|
|
39
|
+
|
|
29
40
|
```ts
|
|
30
41
|
import { readFile } from 'node:fs/promises';
|
|
31
42
|
import { parseVisura, VisuraParseError } from 'visura-parser';
|
|
@@ -48,9 +59,11 @@ and is copied to `filename`; it is not inferred from the PDF.
|
|
|
48
59
|
|
|
49
60
|
Missing fields are omitted. Counts and monetary amounts are numbers; explicit
|
|
50
61
|
availability values are booleans. Dates use ISO `YYYY-MM-DD`. Official Italian
|
|
51
|
-
role names are preserved in structured officer and shareholder records.
|
|
62
|
+
role names are preserved in structured officer and shareholder records. Current
|
|
63
|
+
secondary offices and local business units are returned in `localUnits`, in
|
|
64
|
+
their printed order.
|
|
52
65
|
See the [example output](exampleOutput.json) and
|
|
53
|
-
[the schema](outputSchema.
|
|
66
|
+
[the schema](outputSchema.json).
|
|
54
67
|
|
|
55
68
|
Ordinary, historical, evasion reports, and the supported shareholder Visura
|
|
56
69
|
block are recognized. A block has no `reportType`. Image-only PDFs,
|
|
@@ -105,9 +118,21 @@ These files can contain personal data, just like the source PDFs.
|
|
|
105
118
|
|
|
106
119
|
## Contributing
|
|
107
120
|
|
|
108
|
-
Read [
|
|
121
|
+
Read [the contributor guide](https://github.com/LorenzoYeKai/visura-parser/blob/main/CONTRIBUTING.md) before adding fixtures. Real Visure
|
|
109
122
|
often contain personal data and must not be committed.
|
|
110
123
|
|
|
124
|
+
The public tests and synthetic fixtures work without access to the private
|
|
125
|
+
corpus. To measure the built package on Node.js:
|
|
126
|
+
|
|
127
|
+
```sh
|
|
128
|
+
bun run benchmark
|
|
129
|
+
bun run benchmark -- /path/to/local/pdfs 3
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
The benchmark prints aggregate timings and result hashes, without filenames or
|
|
133
|
+
document values. See [the performance review and audit](https://github.com/LorenzoYeKai/visura-parser/blob/main/docs/performance-review.md)
|
|
134
|
+
for the measurement method, findings, and remaining work.
|
|
135
|
+
|
|
111
136
|
## License
|
|
112
137
|
|
|
113
138
|
[MIT](LICENSE)
|
package/dist/index.d.ts
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
export { VisuraParseError } from './errors.js';
|
|
3
3
|
export { parseVisura } from './parse-visura.js';
|
|
4
4
|
export type { VisuraParseErrorCode } from './errors.js';
|
|
5
|
-
export type { Representative, Activity, AtecoClassification, ShareCapital, Employees, CompanySummary, BusinessRegisterFilings, Certifications, AvailableDocuments, Officer, Shareholder, VisuraDocument, ParseVisuraOptions, } from './types.js';
|
|
5
|
+
export type { Representative, Activity, AtecoClassification, ShareCapital, Employees, CompanySummary, BusinessRegisterFilings, Certifications, AvailableDocuments, LocalUnit, Officer, Shareholder, VisuraDocument, ParseVisuraOptions, } from './types.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EACV,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EACV,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,OAAO,EACP,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-document.d.ts","sourceRoot":"","sources":["../../src/internal/parse-document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAiB,YAAY,EAAkB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-document.d.ts","sourceRoot":"","sources":["../../src/internal/parse-document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAiB,YAAY,EAAkB,MAAM,YAAY,CAAC;AA4X9E,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAQjE;AA4BD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,YAAY,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,cAAc,CAgHhB"}
|
|
@@ -5,6 +5,7 @@ import { isPersonRole, parsePeople } from './parse-people.js';
|
|
|
5
5
|
import { parseClassifications } from './parse-classifications.js';
|
|
6
6
|
import { parseCapital } from './parse-capital.js';
|
|
7
7
|
import { joinPages } from './join-pages.js';
|
|
8
|
+
import { parseLocalUnits } from './parse-local-units.js';
|
|
8
9
|
const FIELD_SPECS = [
|
|
9
10
|
{
|
|
10
11
|
key: 'registeredOfficeAddress',
|
|
@@ -143,32 +144,30 @@ const DATE_FIELDS = new Set([
|
|
|
143
144
|
'startDate',
|
|
144
145
|
]);
|
|
145
146
|
function matchesAny(text, patterns) {
|
|
146
|
-
|
|
147
|
-
return patterns.some((pattern) => pattern.test(normalized));
|
|
147
|
+
return patterns.some((pattern) => pattern.test(text));
|
|
148
148
|
}
|
|
149
149
|
function isKnownLabel(text) {
|
|
150
|
-
|
|
151
|
-
|
|
150
|
+
const normalized = normalizeText(text);
|
|
151
|
+
return (isPersonRole(normalized) ||
|
|
152
|
+
ALL_LABELS.some((pattern) => pattern.test(normalized)));
|
|
152
153
|
}
|
|
153
154
|
function samePanel(page, left, right) {
|
|
154
155
|
const midpoint = page.width / 2;
|
|
155
156
|
return left.x < midpoint === right.x < midpoint;
|
|
156
157
|
}
|
|
157
|
-
function inlineValue(
|
|
158
|
-
const text = normalizeText(label.text);
|
|
158
|
+
function inlineValue(text, patterns) {
|
|
159
159
|
const separator = text.indexOf(':');
|
|
160
|
-
if (separator < 0 || !matchesAny(text.slice(0, separator), patterns))
|
|
160
|
+
if (separator < 0 || !matchesAny(text.slice(0, separator).trim(), patterns))
|
|
161
161
|
return undefined;
|
|
162
162
|
const value = normalizeText(text.slice(separator + 1));
|
|
163
163
|
if (value.length > 0)
|
|
164
164
|
return value;
|
|
165
165
|
return undefined;
|
|
166
166
|
}
|
|
167
|
-
function findValueOnPage(page, patterns, multiline = false, fullWidth = false) {
|
|
168
|
-
const labels =
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
const inline = inlineValue(label, patterns);
|
|
167
|
+
function findValueOnPage(page, prepared, patterns, multiline = false, fullWidth = false) {
|
|
168
|
+
const labels = prepared.labels.filter(({ text }) => matchesAny(text, patterns) || inlineValue(text, patterns) !== undefined);
|
|
169
|
+
for (const { span: label, text } of labels) {
|
|
170
|
+
const inline = inlineValue(text, patterns);
|
|
172
171
|
if (inline !== undefined)
|
|
173
172
|
return inline;
|
|
174
173
|
const candidates = page.spans
|
|
@@ -196,7 +195,7 @@ function findValueOnPage(page, patterns, multiline = false, fullWidth = false) {
|
|
|
196
195
|
continue;
|
|
197
196
|
if (!multiline)
|
|
198
197
|
return normalizeText(value.text);
|
|
199
|
-
const nextLabel =
|
|
198
|
+
const nextLabel = prepared.spans
|
|
200
199
|
.filter((span) => (fullWidth || samePanel(page, value, span)) &&
|
|
201
200
|
span.x < value.x - 10 &&
|
|
202
201
|
span.y < value.y - 2 &&
|
|
@@ -234,8 +233,7 @@ function findCoverPage(pdf) {
|
|
|
234
233
|
pdf.pages.find((page) => /registro imprese/i.test(pageText(page))) ??
|
|
235
234
|
pdf.pages.find((page) => page.spans.length > 0));
|
|
236
235
|
}
|
|
237
|
-
function findBusinessName(page) {
|
|
238
|
-
const spans = semanticSpans(page);
|
|
236
|
+
function findBusinessName(page, spans) {
|
|
239
237
|
const title = spans
|
|
240
238
|
.filter((span) => span.y > page.height * 0.35 &&
|
|
241
239
|
/^(?:visura\s+(?:ordinaria|storica|(?:di\s+)?evasione)\b|soci e titolari di diritti|esito evasione protocollo)/i.test(normalizeText(span.text)))
|
|
@@ -268,17 +266,17 @@ function findBusinessName(page) {
|
|
|
268
266
|
}
|
|
269
267
|
return parts.join(' ');
|
|
270
268
|
}
|
|
271
|
-
function findBusinessNameFromLabels(pdf) {
|
|
269
|
+
function findBusinessNameFromLabels(pdf, prepare) {
|
|
272
270
|
const labels = [/^denominazione$/i, /^ditta$/i, /^ragione sociale$/i];
|
|
273
271
|
for (const page of pdf.pages) {
|
|
274
|
-
const value = findValueOnPage(page, labels, true);
|
|
272
|
+
const value = findValueOnPage(page, prepare(page), labels, true);
|
|
275
273
|
if (value !== undefined)
|
|
276
274
|
return value;
|
|
277
275
|
}
|
|
278
276
|
return undefined;
|
|
279
277
|
}
|
|
280
|
-
function detectVisuraType(cover) {
|
|
281
|
-
const titles =
|
|
278
|
+
function detectVisuraType(cover, spans) {
|
|
279
|
+
const titles = spans.filter((span) => span.y > cover.height * 0.35);
|
|
282
280
|
const title = titles.find((span) => /^visura\s+(?:ordinaria|storica|(?:di\s+)?evasione)\b/i.test(normalizeText(span.text)));
|
|
283
281
|
if (title !== undefined)
|
|
284
282
|
return normalizeText(title.text);
|
|
@@ -292,10 +290,10 @@ export function isSupportedVisuraBlock(pdf) {
|
|
|
292
290
|
return (/dati anagrafici/i.test(pageText(cover)) &&
|
|
293
291
|
cover.spans.some((span) => /^soci e titolari di diritti/i.test(normalizeText(span.text))));
|
|
294
292
|
}
|
|
295
|
-
function beforeSection(pdf, heading) {
|
|
293
|
+
function beforeSection(pdf, heading, spansFor) {
|
|
296
294
|
const pages = [];
|
|
297
295
|
for (const page of pdf.pages) {
|
|
298
|
-
const boundary =
|
|
296
|
+
const boundary = spansFor(page)
|
|
299
297
|
.filter((span) => span.x < page.width * 0.15 && heading.test(normalizeText(span.text)))
|
|
300
298
|
.sort((left, right) => right.y - left.y)[0];
|
|
301
299
|
if (boundary === undefined) {
|
|
@@ -311,13 +309,33 @@ function beforeSection(pdf, heading) {
|
|
|
311
309
|
return { pages };
|
|
312
310
|
}
|
|
313
311
|
export function parseExtractedDocument(pdf, filename) {
|
|
312
|
+
// Reuse phrase reconstruction across fields within this call only. Key by
|
|
313
|
+
// object identity: section-clipped pages can share a source page number.
|
|
314
|
+
const prepared = new Map();
|
|
315
|
+
const prepare = (page) => {
|
|
316
|
+
let text = prepared.get(page);
|
|
317
|
+
if (text === undefined) {
|
|
318
|
+
const spans = semanticSpans(page);
|
|
319
|
+
text = {
|
|
320
|
+
spans,
|
|
321
|
+
labels: spans.map((span) => ({
|
|
322
|
+
span,
|
|
323
|
+
text: normalizeText(span.text),
|
|
324
|
+
})),
|
|
325
|
+
};
|
|
326
|
+
prepared.set(page, text);
|
|
327
|
+
}
|
|
328
|
+
return text;
|
|
329
|
+
};
|
|
330
|
+
const spansFor = (page) => prepare(page).spans;
|
|
314
331
|
const cover = findCoverPage(pdf);
|
|
315
|
-
const currentPdf = beforeSection(pdf, /^(?:\d+\s+)?(?:storia (?:delle|dei|di)|informazioni storiche|protocollo evaso\b)/i);
|
|
332
|
+
const currentPdf = beforeSection(pdf, /^(?:\d+\s+)?(?:storia (?:delle|dei|di)|informazioni storiche|protocollo evaso\b)/i, spansFor);
|
|
333
|
+
const companyPdf = beforeSection(currentPdf, /^(?:\d+\s+)?(?:sedi secondarie ed )?unit[aà]'? locali$/i, spansFor);
|
|
316
334
|
// Company dates precede the domain sections; later registration dates can
|
|
317
335
|
// belong to a shareholder or an appointment rather than the company.
|
|
318
|
-
const identityPdf = beforeSection(
|
|
336
|
+
const identityPdf = beforeSection(companyPdf, /^\d+\s+(?:capitale|soci|amministratori|sindaci|titolari|attivit[aà]'?|trasferimenti|scioglimento|altre cariche)\b/i, spansFor);
|
|
319
337
|
const fields = {};
|
|
320
|
-
const activityBody = joinPages(
|
|
338
|
+
const activityBody = joinPages(companyPdf.pages.filter((page) => page.number !== cover.number));
|
|
321
339
|
for (const field of FIELD_SPECS) {
|
|
322
340
|
const key = field.key;
|
|
323
341
|
const pages = field.pages === 'cover'
|
|
@@ -326,9 +344,9 @@ export function parseExtractedDocument(pdf, filename) {
|
|
|
326
344
|
? identityPdf.pages
|
|
327
345
|
: field.pages === 'activity'
|
|
328
346
|
? [cover, activityBody]
|
|
329
|
-
:
|
|
347
|
+
: companyPdf.pages;
|
|
330
348
|
for (const page of pages) {
|
|
331
|
-
const value = findValueOnPage(page, field.labels, field.multiline, page === activityBody);
|
|
349
|
+
const value = findValueOnPage(page, prepare(page), field.labels, field.multiline, page === activityBody);
|
|
332
350
|
if (value === undefined)
|
|
333
351
|
continue;
|
|
334
352
|
const normalized = DATE_FIELDS.has(key) ? parseItalianDate(value) : value;
|
|
@@ -341,14 +359,15 @@ export function parseExtractedDocument(pdf, filename) {
|
|
|
341
359
|
const result = mapDocument(fields);
|
|
342
360
|
if (filename !== undefined)
|
|
343
361
|
result.filename = filename;
|
|
344
|
-
const reportType = detectVisuraType(cover);
|
|
362
|
+
const reportType = detectVisuraType(cover, spansFor(cover));
|
|
345
363
|
if (reportType !== undefined)
|
|
346
364
|
result.reportType = reportType;
|
|
347
|
-
const name = findBusinessName(cover) ??
|
|
365
|
+
const name = findBusinessName(cover, spansFor(cover)) ??
|
|
366
|
+
findBusinessNameFromLabels(companyPdf, prepare);
|
|
348
367
|
if (name !== undefined)
|
|
349
368
|
result.companyName = normalizeText(name);
|
|
350
369
|
// Dates belong to their printed summary label, not the report extraction date.
|
|
351
|
-
for (const label of
|
|
370
|
+
for (const label of spansFor(cover)) {
|
|
352
371
|
const text = normalizeText(label.text);
|
|
353
372
|
const employees = /^addetti(?: al)?\s*\(?(\d{2}\/\d{2}\/\d{4})\)?$/i.exec(text);
|
|
354
373
|
const filings = /^documenti ri(?: dal)?\s*\(?(\d{2}\/\d{2}\/\d{4})\)?$/i.exec(text);
|
|
@@ -364,22 +383,25 @@ export function parseExtractedDocument(pdf, filename) {
|
|
|
364
383
|
sinceDate: date,
|
|
365
384
|
};
|
|
366
385
|
}
|
|
367
|
-
const people = parsePeople(
|
|
386
|
+
const people = parsePeople(companyPdf, cover.number);
|
|
368
387
|
if (people.primaryRepresentative)
|
|
369
388
|
result.primaryRepresentative = people.primaryRepresentative;
|
|
370
389
|
if (people.officers.length)
|
|
371
390
|
result.officers = people.officers;
|
|
372
391
|
if (people.shareholders.length)
|
|
373
392
|
result.shareholders = people.shareholders;
|
|
374
|
-
const classifications = parseClassifications(
|
|
393
|
+
const classifications = parseClassifications(companyPdf);
|
|
375
394
|
if (classifications.length)
|
|
376
395
|
result.activity = {
|
|
377
396
|
...result.activity,
|
|
378
397
|
atecoClassifications: classifications,
|
|
379
398
|
};
|
|
380
|
-
const capital = parseCapital(
|
|
399
|
+
const capital = parseCapital(companyPdf);
|
|
381
400
|
if (capital !== undefined)
|
|
382
401
|
result.shareCapital = capital;
|
|
402
|
+
const localUnits = parseLocalUnits(currentPdf);
|
|
403
|
+
if (localUnits.length)
|
|
404
|
+
result.localUnits = localUnits;
|
|
383
405
|
return result;
|
|
384
406
|
}
|
|
385
407
|
//# sourceMappingURL=parse-document.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-document.js","sourceRoot":"","sources":["../../src/internal/parse-document.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse-document.js","sourceRoot":"","sources":["../../src/internal/parse-document.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { LocalUnit } from '../types.js';
|
|
2
|
+
import type { ExtractedPdf } from './model.js';
|
|
3
|
+
/** Parses current local-unit records and keeps their printed source order. */
|
|
4
|
+
export declare function parseLocalUnits(pdf: ExtractedPdf): LocalUnit[];
|
|
5
|
+
//# sourceMappingURL=parse-local-units.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-local-units.d.ts","sourceRoot":"","sources":["../../src/internal/parse-local-units.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,YAAY,CAAC;AA2E/D,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,SAAS,EAAE,CAoD9D"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { joinPages } from './join-pages.js';
|
|
2
|
+
import { normalizeText, spansInReadingOrder } from './text.js';
|
|
3
|
+
import { parseItalianDate } from './values.js';
|
|
4
|
+
const LOCAL_UNIT_HEADING = /^unit[aà]'? locale n\.?\s*([a-z]{2})\s*\/\s*(\d+)\b/i;
|
|
5
|
+
const SECTION_HEADING = /^\d+\s+\D/u;
|
|
6
|
+
const ADDRESS_LABEL = /^indirizzo\b\s*:?[\s]*/i;
|
|
7
|
+
const ACTIVITY_LABEL = /^attivit[aà]'? esercitata\b\s*:?[\s]*/i;
|
|
8
|
+
const FIELD_OR_BLOCK_LABEL = /^(?:data (?:di )?apertura|indirizzo|estremi di iscrizione|numero repertorio economico amministrativo|attivit[aà]'? (?:secondaria )?esercitata|classificazione ateco(?:ri)?|denuncia attivit[aà]'?|licenze\/?autorizzazioni|tipo)\b/i;
|
|
9
|
+
function rowsFromSpans(spans) {
|
|
10
|
+
const rows = [];
|
|
11
|
+
for (const span of spansInReadingOrder({
|
|
12
|
+
number: 1,
|
|
13
|
+
width: 595,
|
|
14
|
+
height: 842,
|
|
15
|
+
spans,
|
|
16
|
+
})) {
|
|
17
|
+
const row = rows.at(-1);
|
|
18
|
+
if (row !== undefined && Math.abs((row[0]?.y ?? span.y) - span.y) <= 2) {
|
|
19
|
+
row.push(span);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
rows.push([span]);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return rows.map((row) => {
|
|
26
|
+
row.sort((left, right) => left.x - right.x);
|
|
27
|
+
return {
|
|
28
|
+
x: row[0]?.x ?? 0,
|
|
29
|
+
y: row[0]?.y ?? 0,
|
|
30
|
+
text: normalizeText(row.map((span) => span.text).join(' ')),
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function multilineValue(rows, label) {
|
|
35
|
+
const index = rows.findIndex((row) => label.test(row.text));
|
|
36
|
+
if (index < 0)
|
|
37
|
+
return undefined;
|
|
38
|
+
const parts = [];
|
|
39
|
+
const first = rows[index];
|
|
40
|
+
if (first !== undefined) {
|
|
41
|
+
const inline = normalizeText(first.text.replace(label, ''));
|
|
42
|
+
if (inline.length > 0)
|
|
43
|
+
parts.push(inline);
|
|
44
|
+
}
|
|
45
|
+
for (const row of rows.slice(index + 1)) {
|
|
46
|
+
if (FIELD_OR_BLOCK_LABEL.test(row.text))
|
|
47
|
+
break;
|
|
48
|
+
parts.push(row.text);
|
|
49
|
+
}
|
|
50
|
+
const value = normalizeText(parts.join(' '));
|
|
51
|
+
return value.length === 0 ? undefined : value;
|
|
52
|
+
}
|
|
53
|
+
function inlineValue(rows, label) {
|
|
54
|
+
for (const row of rows) {
|
|
55
|
+
const match = label.exec(row.text);
|
|
56
|
+
const value = match?.[1];
|
|
57
|
+
if (value !== undefined)
|
|
58
|
+
return normalizeText(value);
|
|
59
|
+
}
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
/** Parses current local-unit records and keeps their printed source order. */
|
|
63
|
+
export function parseLocalUnits(pdf) {
|
|
64
|
+
const page = joinPages(pdf.pages);
|
|
65
|
+
const rows = rowsFromSpans(page.spans);
|
|
66
|
+
const starts = rows
|
|
67
|
+
.map((row, index) => ({
|
|
68
|
+
index,
|
|
69
|
+
row,
|
|
70
|
+
match: LOCAL_UNIT_HEADING.exec(row.text),
|
|
71
|
+
}))
|
|
72
|
+
.filter((entry) => entry.match !== null && entry.row.x < page.width * 0.1);
|
|
73
|
+
const result = [];
|
|
74
|
+
for (const [position, start] of starts.entries()) {
|
|
75
|
+
const nextRecord = starts[position + 1]?.index ?? rows.length;
|
|
76
|
+
const nextSection = rows.findIndex((row, index) => index > start.index &&
|
|
77
|
+
index < nextRecord &&
|
|
78
|
+
row.x < page.width * 0.15 &&
|
|
79
|
+
SECTION_HEADING.test(row.text));
|
|
80
|
+
const end = nextSection < 0 ? nextRecord : nextSection;
|
|
81
|
+
const recordRows = rows.slice(start.index + 1, end);
|
|
82
|
+
const province = start.match[1];
|
|
83
|
+
const ordinal = start.match[2];
|
|
84
|
+
if (province === undefined || ordinal === undefined)
|
|
85
|
+
continue;
|
|
86
|
+
const unit = { number: `${province.toUpperCase()}/${ordinal}` };
|
|
87
|
+
const openingDate = inlineValue(recordRows, /\bdata (?:di )?apertura\s*:?\s*(\d{2}\/\d{2}\/\d{4})\b/i);
|
|
88
|
+
const parsedOpeningDate = openingDate === undefined ? undefined : parseItalianDate(openingDate);
|
|
89
|
+
if (parsedOpeningDate !== undefined)
|
|
90
|
+
unit.openingDate = parsedOpeningDate;
|
|
91
|
+
const address = multilineValue(recordRows, ADDRESS_LABEL);
|
|
92
|
+
if (address !== undefined)
|
|
93
|
+
unit.address = address;
|
|
94
|
+
const reaNumber = inlineValue(recordRows, /\bnumero repertorio economico amministrativo\s*:?\s*(.+)$/i);
|
|
95
|
+
if (reaNumber !== undefined)
|
|
96
|
+
unit.reaNumber = reaNumber;
|
|
97
|
+
const primaryActivity = multilineValue(recordRows, ACTIVITY_LABEL);
|
|
98
|
+
if (primaryActivity !== undefined)
|
|
99
|
+
unit.primaryActivity = primaryActivity;
|
|
100
|
+
result.push(unit);
|
|
101
|
+
}
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=parse-local-units.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-local-units.js","sourceRoot":"","sources":["../../src/internal/parse-local-units.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-people.d.ts","sourceRoot":"","sources":["../../src/internal/parse-people.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAiB,YAAY,EAAkB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-people.d.ts","sourceRoot":"","sources":["../../src/internal/parse-people.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAiB,YAAY,EAAkB,MAAM,YAAY,CAAC;AAqC9E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGlD;AAgID,wBAAgB,WAAW,CACzB,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,MAAM,GAChB;IACD,qBAAqB,CAAC,EAAE,cAAc,CAAC;IACvC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CA6LA"}
|
|
@@ -1,16 +1,28 @@
|
|
|
1
1
|
import { foldText, normalizeText, semanticSpans } from './text.js';
|
|
2
2
|
import { parseItalianAmount } from './values.js';
|
|
3
3
|
import { joinPages } from './join-pages.js';
|
|
4
|
-
const OFFICER_ROLE = /^(?:presidente(?: (?:del )?consiglio (?:di |d')?amministrazione| del collegio sindacale)?|vice ?presidente(?: (?:del )?consiglio (?:di |d')?amministrazione)?|
|
|
5
|
-
const
|
|
4
|
+
const OFFICER_ROLE = /^(?:presidente(?: (?:del )?consiglio (?:di |d')?amministrazione| del collegio sindacale)?|vice ?presidente(?: (?:del )?consiglio (?:di |d')?amministrazione)?|amministrat(?:ore|rice)(?: unic[oa]| delegat[oa])?|consigliere(?: delegato)?|sindaco(?: effettivo| supplente)?|titolare(?: dell'impresa individuale| di impresa individuale| firmatari[oa])?|liquidatore|procuratore(?: speciale| generale)?|legale rappresentante)$/i;
|
|
5
|
+
const PARTNER_GOVERNANCE_ROLE = /^soci[oa] (?:accomandatari[oa]|amministrat(?:ore|rice)|legale rappresentante)$/i;
|
|
6
|
+
const SHAREHOLDER_ROLE = /^soci[oa](?: unic[oa]| accomandante)?$/i;
|
|
6
7
|
const RIGHT = /^(?:(?:nuda )?propriet[aà]'?|usufrutto)$/i;
|
|
7
8
|
const TAX_CODE = /^(?:codice fiscale\s*:?\s*)?([A-Z0-9]{16}|\d{11})$/i;
|
|
8
9
|
const SECTION = /^(?:\d+\s+)(?:soci|amministratori|sindaci|titolari|altre cariche|attivit[aà]'?|sede|capitale|storia|informazioni|trasferimenti|scioglimento|protocollo)\b/i;
|
|
9
10
|
const PEOPLE_SECTION = /^\d+\s+(?:soci|amministratori|sindaci|titolari|altre cariche)\b/i;
|
|
10
11
|
const OWNERSHIP_ROW_TOLERANCE = 5;
|
|
11
|
-
|
|
12
|
+
function classifyPersonRole(text) {
|
|
12
13
|
const value = normalizeText(text);
|
|
13
|
-
|
|
14
|
+
const partnerGovernance = PARTNER_GOVERNANCE_ROLE.test(value);
|
|
15
|
+
const right = RIGHT.test(value);
|
|
16
|
+
return {
|
|
17
|
+
officer: OFFICER_ROLE.test(value) || partnerGovernance,
|
|
18
|
+
shareholder: SHAREHOLDER_ROLE.test(value) || partnerGovernance || right,
|
|
19
|
+
right,
|
|
20
|
+
soleShareholder: /^soci[oa] unic[oa]$/i.test(value),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export function isPersonRole(text) {
|
|
24
|
+
const role = classifyPersonRole(text);
|
|
25
|
+
return role.officer || role.shareholder;
|
|
14
26
|
}
|
|
15
27
|
function isName(text) {
|
|
16
28
|
return (text.length >= 2 &&
|
|
@@ -19,12 +31,10 @@ function isName(text) {
|
|
|
19
31
|
!/[:;]|^\d|^[a-z]{0,3}\d{5,}/i.test(text) &&
|
|
20
32
|
!TAX_CODE.test(text) &&
|
|
21
33
|
!/^(?:elenco|numero|codice|nato|nata|residente|domicilio|residenza|indirizzo|\(?in carica|dal\s+\d|durata|quota|valore|tipo diritto|rappresentante|informazioni|amministratori|soci\b|sindaci|titolari|data |carica\b|poteri\b|registro|camera|visura|via\b|viale\b|piazza\b|cittadinanza|proprieta|versato|euro\b|capitale)/i.test(text) &&
|
|
22
|
-
!
|
|
23
|
-
!SHAREHOLDER_ROLE.test(text));
|
|
34
|
+
!isPersonRole(text));
|
|
24
35
|
}
|
|
25
|
-
function identities(page) {
|
|
36
|
+
function identities(page, spans) {
|
|
26
37
|
const result = [];
|
|
27
|
-
const spans = semanticSpans(page);
|
|
28
38
|
for (const span of spans) {
|
|
29
39
|
const match = TAX_CODE.exec(normalizeText(span.text));
|
|
30
40
|
if (!match?.[1])
|
|
@@ -97,14 +107,13 @@ export function parsePeople(pdf, coverPage) {
|
|
|
97
107
|
const result = { officers: [], shareholders: [] };
|
|
98
108
|
const page = joinPages(pdf.pages);
|
|
99
109
|
const spans = semanticSpans(page);
|
|
100
|
-
const records = identities(page);
|
|
110
|
+
const records = identities(page, spans);
|
|
101
111
|
const sections = spans
|
|
102
112
|
.filter((span) => span.x < page.width * 0.15 && SECTION.test(normalizeText(span.text)))
|
|
103
113
|
.sort((a, b) => a.y - b.y);
|
|
104
114
|
// Longer reconstructed roles take precedence over a contained 'Presidente'.
|
|
105
115
|
const roles = spans
|
|
106
|
-
.filter((span) =>
|
|
107
|
-
SHAREHOLDER_ROLE.test(normalizeText(span.text)))
|
|
116
|
+
.filter((span) => isPersonRole(span.text))
|
|
108
117
|
.filter((span) => {
|
|
109
118
|
const section = sections.find((heading) => heading.y >= span.y);
|
|
110
119
|
return (section === undefined ||
|
|
@@ -115,8 +124,7 @@ export function parsePeople(pdf, coverPage) {
|
|
|
115
124
|
Math.abs(other.y - span.y) <= 2 &&
|
|
116
125
|
other.width > span.width &&
|
|
117
126
|
other.x + other.width >= span.x + span.width &&
|
|
118
|
-
(
|
|
119
|
-
SHAREHOLDER_ROLE.test(normalizeText(other.text)))))
|
|
127
|
+
isPersonRole(other.text)))
|
|
120
128
|
.sort((a, b) => b.y - a.y || a.x - b.x);
|
|
121
129
|
const roleFragments = new Set(page.spans.filter((span) => roles.some((role) => role !== span &&
|
|
122
130
|
Math.abs(role.x - span.x) <= 3 &&
|
|
@@ -125,6 +133,7 @@ export function parsePeople(pdf, coverPage) {
|
|
|
125
133
|
normalizeText(role.text).endsWith(` ${normalizeText(span.text)}`))));
|
|
126
134
|
for (const role of roles) {
|
|
127
135
|
const text = normalizeText(role.text);
|
|
136
|
+
const classification = classifyPersonRole(text);
|
|
128
137
|
// A value beside 'carica' belongs to the preceding identity. The next
|
|
129
138
|
// row can be another qualification, not a new person's name.
|
|
130
139
|
const isDetailRole = page.spans.some((span) => span.x < role.x &&
|
|
@@ -155,7 +164,7 @@ export function parsePeople(pdf, coverPage) {
|
|
|
155
164
|
name: fullName(page, name),
|
|
156
165
|
...(identity ? { taxCode: identity.taxCode } : {}),
|
|
157
166
|
};
|
|
158
|
-
if (
|
|
167
|
+
if (classification.officer) {
|
|
159
168
|
mergeOfficer(result.officers, { ...person, roles: [text] });
|
|
160
169
|
if (role.page === coverPage &&
|
|
161
170
|
adjacent !== undefined &&
|
|
@@ -165,11 +174,11 @@ export function parsePeople(pdf, coverPage) {
|
|
|
165
174
|
result.primaryRepresentative = { name: person.name, role: text };
|
|
166
175
|
}
|
|
167
176
|
}
|
|
168
|
-
|
|
177
|
+
if (classification.shareholder) {
|
|
169
178
|
const shareholder = { ...person };
|
|
170
|
-
if (
|
|
179
|
+
if (classification.right)
|
|
171
180
|
shareholder.rightType = text;
|
|
172
|
-
if (
|
|
181
|
+
if (classification.soleShareholder)
|
|
173
182
|
shareholder.isSoleShareholder = true;
|
|
174
183
|
if (role.page === coverPage &&
|
|
175
184
|
adjacent !== undefined &&
|