driverge-mcp 0.0.0 → 0.0.1
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 +275 -29
- package/dist/codegen/esp32.d.ts +11 -3
- package/dist/codegen/esp32.js +221 -10
- package/dist/codegen/esp32.js.map +1 -1
- package/dist/codegen/ident.d.ts +24 -2
- package/dist/codegen/ident.js +37 -4
- package/dist/codegen/ident.js.map +1 -1
- package/dist/codegen/index.d.ts +12 -7
- package/dist/codegen/index.js +17 -14
- package/dist/codegen/index.js.map +1 -1
- package/dist/codegen/lint.js +28 -8
- package/dist/codegen/lint.js.map +1 -1
- package/dist/codegen/portable-cpp.d.ts +8 -0
- package/dist/codegen/portable-cpp.js +281 -0
- package/dist/codegen/portable-cpp.js.map +1 -0
- package/dist/codegen/portable.d.ts +99 -3
- package/dist/codegen/portable.js +419 -99
- package/dist/codegen/portable.js.map +1 -1
- package/dist/codegen/stm32.d.ts +11 -3
- package/dist/codegen/stm32.js +156 -11
- package/dist/codegen/stm32.js.map +1 -1
- package/dist/codegen/types.d.ts +32 -0
- package/dist/codegen/types.js +27 -0
- package/dist/codegen/types.js.map +1 -1
- package/dist/mcp/cache.d.ts +15 -2
- package/dist/mcp/cache.js +32 -4
- package/dist/mcp/cache.js.map +1 -1
- package/dist/mcp/register.d.ts +17 -0
- package/dist/mcp/register.js +149 -21
- package/dist/mcp/register.js.map +1 -1
- package/dist/mcp/summary.js +8 -0
- package/dist/mcp/summary.js.map +1 -1
- package/dist/pdf/address.d.ts +4 -0
- package/dist/pdf/address.js +28 -0
- package/dist/pdf/address.js.map +1 -0
- package/dist/pdf/command.js +87 -14
- package/dist/pdf/command.js.map +1 -1
- package/dist/pdf/extract.js +23 -2
- package/dist/pdf/extract.js.map +1 -1
- package/dist/pdf/generic-register-table.d.ts +5 -0
- package/dist/pdf/generic-register-table.js +125 -0
- package/dist/pdf/generic-register-table.js.map +1 -0
- package/dist/pdf/index.d.ts +2 -0
- package/dist/pdf/index.js +2 -0
- package/dist/pdf/index.js.map +1 -1
- package/dist/pdf/interface-kind.d.ts +11 -0
- package/dist/pdf/interface-kind.js +18 -0
- package/dist/pdf/interface-kind.js.map +1 -1
- package/dist/pdf/manufacturer.js +39 -0
- package/dist/pdf/manufacturer.js.map +1 -1
- package/dist/pdf/maxim-register-map.d.ts +11 -0
- package/dist/pdf/maxim-register-map.js +544 -0
- package/dist/pdf/maxim-register-map.js.map +1 -0
- package/dist/pdf/part.js +8 -0
- package/dist/pdf/part.js.map +1 -1
- package/dist/pdf/prose-commands.d.ts +4 -0
- package/dist/pdf/prose-commands.js +90 -0
- package/dist/pdf/prose-commands.js.map +1 -0
- package/dist/pdf/st-bit-layout.d.ts +3 -0
- package/dist/pdf/st-bit-layout.js +238 -0
- package/dist/pdf/st-bit-layout.js.map +1 -0
- package/dist/pdf/ti-field-descriptions.d.ts +10 -0
- package/dist/pdf/ti-field-descriptions.js +87 -0
- package/dist/pdf/ti-field-descriptions.js.map +1 -0
- package/dist/pdf/ti-register-map.d.ts +5 -0
- package/dist/pdf/ti-register-map.js +84 -0
- package/dist/pdf/ti-register-map.js.map +1 -0
- package/dist/pdf/types.d.ts +15 -3
- package/dist/pdf/types.js +4 -1
- package/dist/pdf/types.js.map +1 -1
- package/dist/schema/assemble.d.ts +35 -3
- package/dist/schema/assemble.js +86 -13
- package/dist/schema/assemble.js.map +1 -1
- package/dist/schema/types.d.ts +21 -1
- package/dist/schema/validate.js +37 -10
- package/dist/schema/validate.js.map +1 -1
- package/dist/server.d.ts +18 -0
- package/dist/server.js +49 -3
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
- package/schemas/datasheet.schema.json +17 -3
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// L4a (generic fallback) — a role-based register-table extractor that runs ONLY
|
|
2
|
+
// when the two specialized adapters (register-table, ti-register-map) find nothing.
|
|
3
|
+
// It recognizes an arbitrary vendor's "register address map" by column ROLE
|
|
4
|
+
// (a name column + an address column), not by literal header tokens, so ST /
|
|
5
|
+
// Broadcom / Infineon-style tables that don't match the specialized shapes still
|
|
6
|
+
// yield a register list (name + address → a `partial` extraction). Bit fields are
|
|
7
|
+
// left to the specialized adapters / host AI. See wiki: graceful-degradation,
|
|
8
|
+
// generic-register-table.
|
|
9
|
+
import { normalizeRegisterAddress, isRegisterAddress } from "./address.js";
|
|
10
|
+
import { centerX, clusterRows } from "./table.js";
|
|
11
|
+
const norm = (s) => s.trim().toLowerCase().replace(/\s+/g, " ");
|
|
12
|
+
// Column-role synonyms — deliberately broad, matched against a header cell's whole
|
|
13
|
+
// (normalized) text. `address` is checked first so "register address" beats the
|
|
14
|
+
// bare "register" name synonym.
|
|
15
|
+
const ROLE_ADDR = /^(address|addr|offset|sub-?address|reg|register address|hex|\(hex\))$/;
|
|
16
|
+
const ROLE_NAME = /^(register name|register|name|symbol|acronym|mnemonic)$/;
|
|
17
|
+
const ROLE_RESET = /^(reset|reset value|default|default value|por|por\/rst|initial)$/;
|
|
18
|
+
// A hex span like "2E-34" — a reserved-address gap, not a single register.
|
|
19
|
+
const RANGE = /[0-9a-f]{1,4}\s*[-–—…]\s*[0-9a-f]{1,4}/i;
|
|
20
|
+
// Header lines may stack across a band (e.g. ST: "Register address" over "Hex"/
|
|
21
|
+
// "Binary"); merge non-data rows within this vertical span into one header.
|
|
22
|
+
const BAND = 18;
|
|
23
|
+
// Guard against false-positive tables: a real register map has several rows.
|
|
24
|
+
const MIN_ROWS = 3;
|
|
25
|
+
function roleOf(cell) {
|
|
26
|
+
const n = norm(cell);
|
|
27
|
+
if (ROLE_ADDR.test(n))
|
|
28
|
+
return "address";
|
|
29
|
+
if (ROLE_NAME.test(n))
|
|
30
|
+
return "name";
|
|
31
|
+
if (ROLE_RESET.test(n))
|
|
32
|
+
return "reset";
|
|
33
|
+
return "other";
|
|
34
|
+
}
|
|
35
|
+
/** A data row is anything carrying a single register-address value. */
|
|
36
|
+
const isDataRow = (r) => r.items.some((it) => isRegisterAddress(it.str));
|
|
37
|
+
/** The header column whose center is nearest x (assigns cells regardless of order). */
|
|
38
|
+
function nearestCol(cols, x) {
|
|
39
|
+
let best = cols[0];
|
|
40
|
+
let dist = Infinity;
|
|
41
|
+
for (const c of cols) {
|
|
42
|
+
const e = Math.abs(c.center - x);
|
|
43
|
+
if (e < dist) {
|
|
44
|
+
dist = e;
|
|
45
|
+
best = c;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return best;
|
|
49
|
+
}
|
|
50
|
+
/** Find the header band: the first non-data row (grown over nearby non-data rows)
|
|
51
|
+
* that carries BOTH a name-role and an address-role column. */
|
|
52
|
+
function findHeader(rows) {
|
|
53
|
+
for (let i = 0; i < rows.length; i++) {
|
|
54
|
+
if (isDataRow(rows[i]))
|
|
55
|
+
continue;
|
|
56
|
+
let items = [...rows[i].items];
|
|
57
|
+
let bottomY = rows[i].y;
|
|
58
|
+
for (let j = i + 1; j < rows.length && rows[i].y - rows[j].y <= BAND && !isDataRow(rows[j]); j++) {
|
|
59
|
+
items = items.concat(rows[j].items);
|
|
60
|
+
bottomY = rows[j].y;
|
|
61
|
+
}
|
|
62
|
+
const cols = items.map((it) => ({
|
|
63
|
+
center: centerX(it),
|
|
64
|
+
role: roleOf(it.str),
|
|
65
|
+
}));
|
|
66
|
+
if (cols.some((c) => c.role === "name") && cols.some((c) => c.role === "address")) {
|
|
67
|
+
return { cols, bottomY };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
/** Parse a generic register map from a single page, if it holds one. */
|
|
73
|
+
export function parseGenericRegisterTable(page) {
|
|
74
|
+
const rows = clusterRows(page.items);
|
|
75
|
+
const header = findHeader(rows);
|
|
76
|
+
if (!header)
|
|
77
|
+
return undefined;
|
|
78
|
+
const { cols, bottomY } = header;
|
|
79
|
+
const below = rows.filter((r) => r.y < bottomY).sort((a, b) => b.y - a.y);
|
|
80
|
+
const registers = [];
|
|
81
|
+
for (const row of below) {
|
|
82
|
+
const nameParts = [];
|
|
83
|
+
let address;
|
|
84
|
+
let sawRange = false;
|
|
85
|
+
for (const it of row.items) {
|
|
86
|
+
const col = nearestCol(cols, centerX(it));
|
|
87
|
+
const s = it.str.trim();
|
|
88
|
+
if (col.role === "name") {
|
|
89
|
+
if (s)
|
|
90
|
+
nameParts.push(s);
|
|
91
|
+
}
|
|
92
|
+
else if (col.role === "address") {
|
|
93
|
+
const a = normalizeRegisterAddress(s);
|
|
94
|
+
if (a && address === undefined)
|
|
95
|
+
address = a;
|
|
96
|
+
else if (!a && RANGE.test(s))
|
|
97
|
+
sawRange = true;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const name = nameParts.join(" ").replace(/\s+/g, " ").trim();
|
|
101
|
+
if (address === undefined) {
|
|
102
|
+
// A reserved-gap row (named, with a range) is skipped; anything else with a
|
|
103
|
+
// name but no address is the row after the table — stop there.
|
|
104
|
+
if (name && (sawRange || /^reserved$/i.test(name)))
|
|
105
|
+
continue;
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
if (/^reserved$/i.test(name))
|
|
109
|
+
continue;
|
|
110
|
+
if (!name)
|
|
111
|
+
break;
|
|
112
|
+
registers.push({ name, address, reset: "", bitFields: [] });
|
|
113
|
+
}
|
|
114
|
+
return { page: page.index, registers };
|
|
115
|
+
}
|
|
116
|
+
/** Scan pages; return the first qualifying generic register table (≥ MIN_ROWS). */
|
|
117
|
+
export function findGenericRegisterTable(pages) {
|
|
118
|
+
for (const page of pages) {
|
|
119
|
+
const table = parseGenericRegisterTable(page);
|
|
120
|
+
if (table && table.registers.length >= MIN_ROWS)
|
|
121
|
+
return table;
|
|
122
|
+
}
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=generic-register-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-register-table.js","sourceRoot":"","sources":["../../src/pdf/generic-register-table.ts"],"names":[],"mappings":"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"}
|
package/dist/pdf/index.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export { extractPages } from "./extract.js";
|
|
|
5
5
|
export { analyzePdf, analyzePdfFile } from "./analyze.js";
|
|
6
6
|
export { centerX, clusterRows, type TableRow } from "./table.js";
|
|
7
7
|
export { findRegisterTable, parseRegisterTable } from "./register-table.js";
|
|
8
|
+
export { findTiRegisterMap, parseTiRegisterMap } from "./ti-register-map.js";
|
|
9
|
+
export { findMaximRegisterMap, parseMaximRegisterMap } from "./maxim-register-map.js";
|
|
8
10
|
export { detectManufacturer } from "./manufacturer.js";
|
|
9
11
|
export { detectPart } from "./part.js";
|
|
10
12
|
export { detectInterfaceKind } from "./interface-kind.js";
|
package/dist/pdf/index.js
CHANGED
|
@@ -6,6 +6,8 @@ export { extractPages } from "./extract.js";
|
|
|
6
6
|
export { analyzePdf, analyzePdfFile } from "./analyze.js";
|
|
7
7
|
export { centerX, clusterRows } from "./table.js";
|
|
8
8
|
export { findRegisterTable, parseRegisterTable } from "./register-table.js";
|
|
9
|
+
export { findTiRegisterMap, parseTiRegisterMap } from "./ti-register-map.js";
|
|
10
|
+
export { findMaximRegisterMap, parseMaximRegisterMap } from "./maxim-register-map.js";
|
|
9
11
|
export { detectManufacturer } from "./manufacturer.js";
|
|
10
12
|
export { detectPart } from "./part.js";
|
|
11
13
|
export { detectInterfaceKind } from "./interface-kind.js";
|
package/dist/pdf/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pdf/index.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pdf/index.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,2 +1,13 @@
|
|
|
1
1
|
import type { InterfaceKindDetection, PageContent } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Which pages carry a register-map / command section heading. Used by the
|
|
4
|
+
* graceful-degradation path (schema/assemble) to tell a *deferral* (a section was
|
|
5
|
+
* detected but not auto-extracted → hand to the host AI) from a genuine parse
|
|
6
|
+
* failure, and to point the host AI at the right pages. Reuses the same keyword
|
|
7
|
+
* signals as the kind classifier.
|
|
8
|
+
*/
|
|
9
|
+
export declare function detectSections(pages: PageContent[]): {
|
|
10
|
+
registerPages: number[];
|
|
11
|
+
commandPages: number[];
|
|
12
|
+
};
|
|
2
13
|
export declare function detectInterfaceKind(pages: PageContent[]): InterfaceKindDetection;
|
|
@@ -5,6 +5,24 @@ import { findRegisterTable } from "./register-table.js";
|
|
|
5
5
|
const REGISTER_KEYWORD = /register\s+(map|table|description|addresses?|summary)|memory\s+map/i;
|
|
6
6
|
const COMMAND_KEYWORD = /command\s+word|commands?\s+(set|table|list)|list\s+of\s+commands/i;
|
|
7
7
|
const CRC_KEYWORD = /crc[-\s]?\d|clock\s+stretch/i;
|
|
8
|
+
/**
|
|
9
|
+
* Which pages carry a register-map / command section heading. Used by the
|
|
10
|
+
* graceful-degradation path (schema/assemble) to tell a *deferral* (a section was
|
|
11
|
+
* detected but not auto-extracted → hand to the host AI) from a genuine parse
|
|
12
|
+
* failure, and to point the host AI at the right pages. Reuses the same keyword
|
|
13
|
+
* signals as the kind classifier.
|
|
14
|
+
*/
|
|
15
|
+
export function detectSections(pages) {
|
|
16
|
+
const registerPages = [];
|
|
17
|
+
const commandPages = [];
|
|
18
|
+
for (const p of pages) {
|
|
19
|
+
if (REGISTER_KEYWORD.test(p.text))
|
|
20
|
+
registerPages.push(p.index);
|
|
21
|
+
if (COMMAND_KEYWORD.test(p.text))
|
|
22
|
+
commandPages.push(p.index);
|
|
23
|
+
}
|
|
24
|
+
return { registerPages, commandPages };
|
|
25
|
+
}
|
|
8
26
|
export function detectInterfaceKind(pages) {
|
|
9
27
|
const text = pages.map((p) => p.text).join(" ");
|
|
10
28
|
const registerSignals = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface-kind.js","sourceRoot":"","sources":["../../src/pdf/interface-kind.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kFAAkF;AAClF,qEAAqE;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,gBAAgB,GACpB,qEAAqE,CAAC;AACxE,MAAM,eAAe,GACnB,mEAAmE,CAAC;AACtE,MAAM,WAAW,GAAG,8BAA8B,CAAC;AAEnD,MAAM,UAAU,mBAAmB,CACjC,KAAoB;IAEpB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhD,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,aAAa,IAAI,CAAC,CAAC;QACnB,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,aAAa,IAAI,CAAC,CAAC;QACnB,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,YAAY,IAAI,CAAC,CAAC;QAClB,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,YAAY,IAAI,CAAC,CAAC;QAClB,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,aAAa,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,aAAa,IAAI,YAAY,EAAE,CAAC;QAClC,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC;YAC1C,OAAO,EAAE,eAAe;SACzB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC;QACzC,OAAO,EAAE,cAAc;KACxB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"interface-kind.js","sourceRoot":"","sources":["../../src/pdf/interface-kind.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kFAAkF;AAClF,qEAAqE;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,gBAAgB,GACpB,qEAAqE,CAAC;AACxE,MAAM,eAAe,GACnB,mEAAmE,CAAC;AACtE,MAAM,WAAW,GAAG,8BAA8B,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAoB;IAIjD,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAoB;IAEpB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhD,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,aAAa,IAAI,CAAC,CAAC;QACnB,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,aAAa,IAAI,CAAC,CAAC;QACnB,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,YAAY,IAAI,CAAC,CAAC;QAClB,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,YAAY,IAAI,CAAC,CAAC;QAClB,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,aAAa,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,aAAa,IAAI,YAAY,EAAE,CAAC;QAClC,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC;YAC1C,OAAO,EAAE,eAAe;SACzB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC;QACzC,OAAO,EAAE,cAAc;KACxB,CAAC;AACJ,CAAC"}
|
package/dist/pdf/manufacturer.js
CHANGED
|
@@ -44,6 +44,45 @@ const VENDORS = [
|
|
|
44
44
|
domain: /sensirion\.com/i,
|
|
45
45
|
partPrefix: /\b(SHT|SCD|SGP)\d/i,
|
|
46
46
|
},
|
|
47
|
+
{
|
|
48
|
+
name: "Aosong",
|
|
49
|
+
copyright: /Aosong|ASAIR/i,
|
|
50
|
+
domain: /aosong\.com|asair(?:china)?\.com/i,
|
|
51
|
+
partPrefix: /\b(DHT|AHT)\d/i,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: "Broadcom",
|
|
55
|
+
copyright: /Broadcom|Avago/i,
|
|
56
|
+
domain: /broadcom\.com/i,
|
|
57
|
+
partPrefix: /\bAEAT-?\d/i,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: "Infineon",
|
|
61
|
+
copyright: /Infineon/i,
|
|
62
|
+
domain: /infineon\.com/i,
|
|
63
|
+
partPrefix: /\b(TLE|TLI|TLV)\d/i,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "Analog Devices",
|
|
67
|
+
copyright: /Analog\s+Devices/i,
|
|
68
|
+
domain: /analog\.com/i,
|
|
69
|
+
partPrefix: /\bADXL\d/i,
|
|
70
|
+
},
|
|
71
|
+
// Maxim Integrated was acquired by Analog Devices in 2021, but is kept as a
|
|
72
|
+
// separate VENDORS entry: Maxim-era sheets (e.g. MAX30102's) carry Maxim
|
|
73
|
+
// branding, not Analog Devices branding — that's the signal that fires.
|
|
74
|
+
{
|
|
75
|
+
name: "Maxim Integrated",
|
|
76
|
+
copyright: /Maxim\s+Integrated/i,
|
|
77
|
+
domain: /maximintegrated\.com/i,
|
|
78
|
+
partPrefix: /\bMAX\d{3}/i,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: "Melexis",
|
|
82
|
+
copyright: /Melexis/i,
|
|
83
|
+
domain: /melexis\.com/i,
|
|
84
|
+
partPrefix: /\bMLX\d/i,
|
|
85
|
+
},
|
|
47
86
|
];
|
|
48
87
|
const STRONG = 3;
|
|
49
88
|
const WEAK = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manufacturer.js","sourceRoot":"","sources":["../../src/pdf/manufacturer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manufacturer.js","sourceRoot":"","sources":["../../src/pdf/manufacturer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { PageContent, RegisterTable } from "./types.js";
|
|
2
|
+
/** Parse a Maxim register-matrix table from a single page, if it holds one. */
|
|
3
|
+
export declare function parseMaximRegisterMap(page: PageContent): RegisterTable | undefined;
|
|
4
|
+
/**
|
|
5
|
+
* Accumulate the Maxim register-matrix table across pages (mirrors
|
|
6
|
+
* findTiRegisterMap's dedup shape). Unlike TI's single contiguous summary
|
|
7
|
+
* table, Maxim spreads per-register tables across many pages interleaved with
|
|
8
|
+
* prose (bit-field descriptions, examples) between them — a page with no table
|
|
9
|
+
* is simply skipped, not treated as the end of the document's table.
|
|
10
|
+
*/
|
|
11
|
+
export declare function findMaximRegisterMap(pages: PageContent[]): RegisterTable | undefined;
|