@intentic/fileq 1.317.0 → 1.319.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/NOTICE +208 -0
- package/README.md +39 -12
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +19 -7
- package/dist/app.js.map +1 -1
- package/dist/commands/check.command.d.ts +3 -0
- package/dist/commands/check.command.d.ts.map +1 -0
- package/dist/commands/check.command.js +80 -0
- package/dist/commands/check.command.js.map +1 -0
- package/dist/commands/derive.command.js +1 -1
- package/dist/commands/derive.command.js.map +1 -1
- package/dist/commands/read.command.d.ts.map +1 -1
- package/dist/commands/read.command.js +26 -45
- package/dist/commands/read.command.js.map +1 -1
- package/dist/commands/render.command.d.ts +3 -0
- package/dist/commands/render.command.d.ts.map +1 -0
- package/dist/commands/render.command.js +67 -0
- package/dist/commands/render.command.js.map +1 -0
- package/dist/lib/check/check.d.ts +15 -0
- package/dist/lib/check/check.d.ts.map +1 -0
- package/dist/lib/check/check.js +35 -0
- package/dist/lib/check/check.js.map +1 -0
- package/dist/lib/check/docx.d.ts +3 -0
- package/dist/lib/check/docx.d.ts.map +1 -0
- package/dist/lib/check/docx.js +329 -0
- package/dist/lib/check/docx.js.map +1 -0
- package/dist/lib/check/finding.d.ts +20 -0
- package/dist/lib/check/finding.d.ts.map +1 -0
- package/dist/lib/check/finding.js +27 -0
- package/dist/lib/check/finding.js.map +1 -0
- package/dist/lib/check/package.d.ts +25 -0
- package/dist/lib/check/package.d.ts.map +1 -0
- package/dist/lib/check/package.js +139 -0
- package/dist/lib/check/package.js.map +1 -0
- package/dist/lib/check/pdf.d.ts +3 -0
- package/dist/lib/check/pdf.d.ts.map +1 -0
- package/dist/lib/check/pdf.js +160 -0
- package/dist/lib/check/pdf.js.map +1 -0
- package/dist/lib/check/pptx.d.ts +3 -0
- package/dist/lib/check/pptx.d.ts.map +1 -0
- package/dist/lib/check/pptx.js +497 -0
- package/dist/lib/check/pptx.js.map +1 -0
- package/dist/lib/check/text-fit.d.ts +18 -0
- package/dist/lib/check/text-fit.d.ts.map +1 -0
- package/dist/lib/check/text-fit.js +69 -0
- package/dist/lib/check/text-fit.js.map +1 -0
- package/dist/lib/check/xlsx.d.ts +3 -0
- package/dist/lib/check/xlsx.d.ts.map +1 -0
- package/dist/lib/check/xlsx.js +131 -0
- package/dist/lib/check/xlsx.js.map +1 -0
- package/dist/lib/check/xml-tree.d.ts +15 -0
- package/dist/lib/check/xml-tree.d.ts.map +1 -0
- package/dist/lib/check/xml-tree.js +131 -0
- package/dist/lib/check/xml-tree.js.map +1 -0
- package/dist/lib/content-cache.d.ts +12 -0
- package/dist/lib/content-cache.d.ts.map +1 -0
- package/dist/lib/content-cache.js +33 -0
- package/dist/lib/content-cache.js.map +1 -0
- package/dist/lib/derive.d.ts +10 -0
- package/dist/lib/derive.d.ts.map +1 -1
- package/dist/lib/derive.js +37 -4
- package/dist/lib/derive.js.map +1 -1
- package/dist/lib/derivers/image.d.ts.map +1 -1
- package/dist/lib/derivers/image.js.map +1 -1
- package/dist/lib/formats.d.ts +1 -0
- package/dist/lib/formats.d.ts.map +1 -1
- package/dist/lib/formats.js +1 -0
- package/dist/lib/formats.js.map +1 -1
- package/dist/lib/render/convert.d.ts +11 -0
- package/dist/lib/render/convert.d.ts.map +1 -0
- package/dist/lib/render/convert.js +107 -0
- package/dist/lib/render/convert.js.map +1 -0
- package/dist/lib/render/pages.d.ts +11 -0
- package/dist/lib/render/pages.d.ts.map +1 -0
- package/dist/lib/render/pages.js +43 -0
- package/dist/lib/render/pages.js.map +1 -0
- package/dist/lib/render/render.d.ts +29 -0
- package/dist/lib/render/render.d.ts.map +1 -0
- package/dist/lib/render/render.js +142 -0
- package/dist/lib/render/render.js.map +1 -0
- package/dist/lib/sidecar.d.ts +11 -2
- package/dist/lib/sidecar.d.ts.map +1 -1
- package/dist/lib/sidecar.js +28 -16
- package/dist/lib/sidecar.js.map +1 -1
- package/dist/skill-authoring.d.ts +2 -0
- package/dist/skill-authoring.d.ts.map +1 -0
- package/dist/skill-authoring.js +20 -0
- package/dist/skill-authoring.js.map +1 -0
- package/dist/skill.d.ts.map +1 -1
- package/dist/skill.js +32 -8
- package/dist/skill.js.map +1 -1
- package/dist/testing.d.ts +67 -0
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +151 -0
- package/dist/testing.js.map +1 -1
- package/package.json +21 -8
- package/src/app.ts +19 -7
- package/src/cli.integration.test.ts +115 -30
- package/src/commands/check.command.ts +97 -0
- package/src/commands/derive.command.ts +1 -1
- package/src/commands/read.command.ts +30 -52
- package/src/commands/render.command.ts +80 -0
- package/src/lib/archives.ts +1 -1
- package/src/lib/check/check.test.ts +446 -0
- package/src/lib/check/check.ts +49 -0
- package/src/lib/check/docx.ts +434 -0
- package/src/lib/check/finding.ts +63 -0
- package/src/lib/check/package.ts +199 -0
- package/src/lib/check/pdf.ts +228 -0
- package/src/lib/check/pptx.ts +641 -0
- package/src/lib/check/text-fit.ts +105 -0
- package/src/lib/check/xlsx.ts +163 -0
- package/src/lib/check/xml-tree.ts +186 -0
- package/src/lib/content-cache.ts +58 -0
- package/src/lib/derive.integration.test.ts +198 -0
- package/src/lib/derive.ts +66 -7
- package/src/lib/derivers/archive.ts +1 -1
- package/src/lib/derivers/image.ts +2 -1
- package/src/lib/derivers/load-cost.test.ts +1 -1
- package/src/lib/derivers/pdf.ts +1 -1
- package/src/lib/derivers/xlsx.ts +1 -1
- package/src/lib/formats.ts +6 -0
- package/src/lib/render/convert.ts +133 -0
- package/src/lib/render/pages.test.ts +38 -0
- package/src/lib/render/pages.ts +58 -0
- package/src/lib/render/render.ts +198 -0
- package/src/lib/sidecar.ts +42 -22
- package/src/render.integration.test.ts +217 -0
- package/src/skill-authoring.ts +27 -0
- package/src/skill.ts +36 -8
- package/src/testing.ts +287 -0
- package/dist/commands/sweep.command.d.ts +0 -3
- package/dist/commands/sweep.command.d.ts.map +0 -1
- package/dist/commands/sweep.command.js +0 -41
- package/dist/commands/sweep.command.js.map +0 -1
- package/dist/lib/flags.d.ts +0 -2
- package/dist/lib/flags.d.ts.map +0 -1
- package/dist/lib/flags.js +0 -8
- package/dist/lib/flags.js.map +0 -1
- package/dist/lib/sweep.d.ts +0 -7
- package/dist/lib/sweep.d.ts.map +0 -1
- package/dist/lib/sweep.js +0 -56
- package/dist/lib/sweep.js.map +0 -1
- package/dist/version.d.ts +0 -2
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -3
- package/dist/version.js.map +0 -1
- package/src/commands/sweep.command.ts +0 -48
- package/src/lib/sweep.ts +0 -72
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-fit.js","sourceRoot":"","sources":["../../../src/lib/check/text-fit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xlsx.d.ts","sourceRoot":"","sources":["../../../src/lib/check/xlsx.ts"],"names":[],"mappings":"AASA,OAAO,EAAmC,KAAK,WAAW,EAAgB,MAAM,cAAc,CAAC;AAkI/F,eAAO,MAAM,SAAS,UAAW,UAAU,KAAG,WAuB7C,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { decodeEntities } from "../xml.js";
|
|
2
|
+
import { error, excerpt, plural, warning } from "./finding.js";
|
|
3
|
+
import { mainPartOf, missingTargetFindings, NotAPackage, openPackage, packageFindings } from "./package.js";
|
|
4
|
+
import { childAt, childNamed, childrenNamed, isElement } from "./xml-tree.js";
|
|
5
|
+
const DEFAULT_MAIN = "xl/workbook.xml";
|
|
6
|
+
const LISTED_PER_SHEET = 10;
|
|
7
|
+
const CELL = /<((?:\w+:)?)c\b([^>]*?)(?:\/>|>([\s\S]*?)<\/\1c>)/g;
|
|
8
|
+
const FORMULA = /<((?:\w+:)?)f\b[^>]*?(?:\/>|>([\s\S]*?)<\/\1f>)/;
|
|
9
|
+
const VALUE = /<((?:\w+:)?)v>([\s\S]*?)<\/\1v>/;
|
|
10
|
+
const INLINE = /<((?:\w+:)?)is\b/;
|
|
11
|
+
const attributeIn = (attributes, name) => new RegExp(`(?:^|\\s)${name}="([^"]*)"`).exec(attributes)?.[1];
|
|
12
|
+
const cellRef = (sheet, ref) => (/^[A-Za-z_][\w.]*$/.test(sheet) ? `${sheet}!${ref}` : `'${sheet.replaceAll("'", "''")}'!${ref}`);
|
|
13
|
+
const scanSheet = (sheet, xml) => {
|
|
14
|
+
const errors = [];
|
|
15
|
+
const uncached = [];
|
|
16
|
+
let listed = 0;
|
|
17
|
+
let unlisted = 0;
|
|
18
|
+
let filled = 0;
|
|
19
|
+
const report = (finding) => {
|
|
20
|
+
if (listed < LISTED_PER_SHEET) {
|
|
21
|
+
errors.push(finding);
|
|
22
|
+
listed += 1;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
unlisted += 1;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
for (const match of xml.matchAll(CELL)) {
|
|
29
|
+
const attributes = match[2] ?? "";
|
|
30
|
+
const inner = match[3] ?? "";
|
|
31
|
+
const ref = cellRef(sheet, attributeIn(attributes, "r") ?? "?");
|
|
32
|
+
const formula = FORMULA.exec(inner);
|
|
33
|
+
const value = VALUE.exec(inner);
|
|
34
|
+
const formulaText = formula === null ? undefined : decodeEntities(formula[2] ?? "");
|
|
35
|
+
if (formula !== null || value !== null || INLINE.test(inner)) {
|
|
36
|
+
filled += 1;
|
|
37
|
+
}
|
|
38
|
+
const shown = formulaText === undefined || formulaText === "" ? "" : ` from =${formulaText}`;
|
|
39
|
+
if (attributeIn(attributes, "t") === "e") {
|
|
40
|
+
report(error("formula-error", ref, `shows ${decodeEntities(value?.[2] ?? "an error")}${shown}: fix the formula or its inputs`));
|
|
41
|
+
}
|
|
42
|
+
else if (formulaText?.includes("#REF!") === true) {
|
|
43
|
+
report(error("formula-error", ref, `the formula =${formulaText} points at a deleted range (#REF!)`));
|
|
44
|
+
}
|
|
45
|
+
else if (formula !== null && value === null) {
|
|
46
|
+
uncached.push(ref);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (unlisted > 0) {
|
|
50
|
+
errors.push(error("formula-error", sheet, `and ${plural(unlisted, "more cell")} with errors on this sheet`));
|
|
51
|
+
}
|
|
52
|
+
return { errors, uncached, filled };
|
|
53
|
+
};
|
|
54
|
+
const uncachedFinding = (sheet, cells, recalculates) => {
|
|
55
|
+
const shown = cells.slice(0, 5).map((cell) => cell.slice(cell.lastIndexOf("!") + 1)).join(", ");
|
|
56
|
+
const more = cells.length > 5 ? ", …" : "";
|
|
57
|
+
const onOpen = recalculates ? "the workbook asks to be recalculated on open, so spreadsheet applications fill them in" : "Excel, LibreOffice and Google Sheets compute them on open";
|
|
58
|
+
return warning("formula-uncached", sheet, `${plural(cells.length, "formula")} saved with no value (${shown}${more}): ${onOpen}, but previews and anything that reads the file (pandas, fileq read) see blanks; write the value with the formula, or recalculate in LibreOffice`);
|
|
59
|
+
};
|
|
60
|
+
const openWorkbook = (bytes) => {
|
|
61
|
+
try {
|
|
62
|
+
return openPackage(bytes);
|
|
63
|
+
}
|
|
64
|
+
catch (cause) {
|
|
65
|
+
if (cause instanceof NotAPackage) {
|
|
66
|
+
return { format: "xlsx", findings: [error("unreadable", "", `${cause.message}: this is not an Excel file (or it is password-protected)`)], notes: [] };
|
|
67
|
+
}
|
|
68
|
+
throw cause;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const namesFindings = (workbook) => {
|
|
72
|
+
const names = workbook === undefined ? undefined : childNamed(workbook, "x:definedNames");
|
|
73
|
+
return (names === undefined ? [] : childrenNamed(names, "x:definedName")).flatMap((name) => {
|
|
74
|
+
const target = name.children.filter((child) => !isElement(child)).join("");
|
|
75
|
+
return target.includes("#REF!") ? [error("broken-name", "", `the defined name "${name.attrs["name"] ?? "?"}" refers to ${excerpt(target)}, a deleted range`)] : [];
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
const externalFindings = (pkg) => {
|
|
79
|
+
const links = [...pkg.names].filter((name) => /^xl\/externalLinks\/externalLink\d+\.xml$/.test(name));
|
|
80
|
+
return links.map((link) => {
|
|
81
|
+
const target = [...pkg.rels(link).values()].find((relationship) => relationship.external)?.target ?? "another file";
|
|
82
|
+
return warning("external-link", "", `the workbook takes values from ${target}; they go stale, or break, once the file is sent without it`);
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
const sheetsFindings = (pkg, main, sheets, recalculates) => {
|
|
86
|
+
const rels = pkg.rels(main);
|
|
87
|
+
const findings = [];
|
|
88
|
+
let filled = 0;
|
|
89
|
+
for (const sheet of sheets) {
|
|
90
|
+
const name = sheet.attrs["name"] ?? "?";
|
|
91
|
+
const relationship = rels.get(sheet.attrs["r:id"] ?? "");
|
|
92
|
+
if (relationship === undefined || relationship.external || !pkg.has(relationship.target)) {
|
|
93
|
+
findings.push(error("missing-part", name, "the sheet list names a sheet that is not in the file; Excel will offer to repair the workbook"));
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
const xml = relationship.kind === "worksheet" ? pkg.text(relationship.target) : undefined;
|
|
97
|
+
const scan = xml === undefined ? undefined : scanSheet(name, xml);
|
|
98
|
+
if (scan === undefined) {
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
filled += scan.filled;
|
|
102
|
+
findings.push(...scan.errors, ...(scan.uncached.length > 0 ? [uncachedFinding(name, scan.uncached, recalculates)] : []));
|
|
103
|
+
findings.push(...missingTargetFindings(pkg, relationship.target, name));
|
|
104
|
+
}
|
|
105
|
+
return { findings, filled };
|
|
106
|
+
};
|
|
107
|
+
export const checkXlsx = (bytes) => {
|
|
108
|
+
const pkg = openWorkbook(bytes);
|
|
109
|
+
if ("findings" in pkg) {
|
|
110
|
+
return pkg;
|
|
111
|
+
}
|
|
112
|
+
const main = mainPartOf(pkg, DEFAULT_MAIN);
|
|
113
|
+
const findings = packageFindings(pkg, main);
|
|
114
|
+
const notes = pkg.skipped.map((part) => `not checked: ${part} is too large to read`);
|
|
115
|
+
const workbook = pkg.xml(main);
|
|
116
|
+
const sheetList = childAt(workbook, "x:sheets");
|
|
117
|
+
const sheets = sheetList === undefined ? [] : childrenNamed(sheetList, "x:sheet");
|
|
118
|
+
if (workbook !== undefined && sheets.length === 0) {
|
|
119
|
+
findings.push(error("no-sheets", "", "the workbook has no sheets"));
|
|
120
|
+
}
|
|
121
|
+
const fullCalcOnLoad = childAt(workbook, "x:calcPr")?.attrs["fullCalcOnLoad"];
|
|
122
|
+
const scanned = sheetsFindings(pkg, main, sheets, fullCalcOnLoad === "1" || fullCalcOnLoad === "true");
|
|
123
|
+
findings.push(...scanned.findings);
|
|
124
|
+
if (sheets.length > 0 && scanned.filled === 0 && pkg.skipped.length === 0) {
|
|
125
|
+
findings.push(warning("no-data", "", "every sheet is empty"));
|
|
126
|
+
}
|
|
127
|
+
const listed = new Set(sheets.flatMap((sheet) => sheet.attrs["r:id"] ?? []));
|
|
128
|
+
findings.push(...namesFindings(workbook), ...externalFindings(pkg), ...missingTargetFindings(pkg, main, "", listed));
|
|
129
|
+
return { format: "xlsx", extent: plural(sheets.length, "sheet"), findings, notes };
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=xlsx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xlsx.js","sourceRoot":"","sources":["../../../src/lib/check/xlsx.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface XmlElement {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly attrs: Readonly<Record<string, string>>;
|
|
4
|
+
readonly children: (XmlElement | string)[];
|
|
5
|
+
}
|
|
6
|
+
export declare const parseXml: (text: string) => XmlElement;
|
|
7
|
+
export declare const isElement: (node: XmlElement | string) => node is XmlElement;
|
|
8
|
+
export declare const childrenNamed: (element: XmlElement, name: string) => XmlElement[];
|
|
9
|
+
export declare const childNamed: (element: XmlElement, name: string) => XmlElement | undefined;
|
|
10
|
+
export declare const childAt: (element: XmlElement | undefined, ...path: readonly string[]) => XmlElement | undefined;
|
|
11
|
+
export declare const descendantsNamed: (element: XmlElement, name: string) => XmlElement[];
|
|
12
|
+
export declare const everyElement: (element: XmlElement) => XmlElement[];
|
|
13
|
+
export declare const textIn: (element: XmlElement, textName: string) => string;
|
|
14
|
+
export declare const intAttr: (element: XmlElement | undefined, name: string) => number | undefined;
|
|
15
|
+
//# sourceMappingURL=xml-tree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml-tree.d.ts","sourceRoot":"","sources":["../../../src/lib/check/xml-tree.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,UAAU;IAEvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;CAC9C;AA+ED,eAAO,MAAM,QAAQ,SAAU,MAAM,KAAG,UAuBvC,CAAC;AAEF,eAAO,MAAM,SAAS,SAAU,UAAU,GAAG,MAAM,KAAG,IAAI,IAAI,UAAsC,CAAC;AAGrG,eAAO,MAAM,aAAa,YAAa,UAAU,QAAQ,MAAM,KAAG,UAAU,EACwB,CAAC;AAGrG,eAAO,MAAM,UAAU,YAAa,UAAU,QAAQ,MAAM,KAAG,UAAU,GAAG,SACsB,CAAC;AAGnG,eAAO,MAAM,OAAO,YAAa,UAAU,GAAG,SAAS,WAAW,SAAS,MAAM,EAAE,KAAG,UAAU,GAAG,SASlG,CAAC;AAGF,eAAO,MAAM,gBAAgB,YAAa,UAAU,QAAQ,MAAM,KAAG,UAAU,EAc9E,CAAC;AAGF,eAAO,MAAM,YAAY,YAAa,UAAU,KAAG,UAAU,EAY5D,CAAC;AAGF,eAAO,MAAM,MAAM,YAAa,UAAU,YAAY,MAAM,KAAG,MAG9C,CAAC;AAGlB,eAAO,MAAM,OAAO,YAAa,UAAU,GAAG,SAAS,QAAQ,MAAM,KAAG,MAAM,GAAG,SAMhF,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { decodeEntities } from "../xml.js";
|
|
2
|
+
const CANONICAL = new Map([
|
|
3
|
+
["http://schemas.openxmlformats.org/presentationml/2006/main", "p"],
|
|
4
|
+
["http://purl.oclc.org/ooxml/presentationml/main", "p"],
|
|
5
|
+
["http://schemas.openxmlformats.org/drawingml/2006/main", "a"],
|
|
6
|
+
["http://purl.oclc.org/ooxml/drawingml/main", "a"],
|
|
7
|
+
["http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r"],
|
|
8
|
+
["http://purl.oclc.org/ooxml/officeDocument/relationships", "r"],
|
|
9
|
+
["http://schemas.openxmlformats.org/wordprocessingml/2006/main", "w"],
|
|
10
|
+
["http://purl.oclc.org/ooxml/wordprocessingml/main", "w"],
|
|
11
|
+
["http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "wp"],
|
|
12
|
+
["http://purl.oclc.org/ooxml/drawingml/wordprocessingDrawing", "wp"],
|
|
13
|
+
["http://schemas.openxmlformats.org/spreadsheetml/2006/main", "x"],
|
|
14
|
+
["http://purl.oclc.org/ooxml/spreadsheetml/main", "x"],
|
|
15
|
+
["http://schemas.openxmlformats.org/package/2006/relationships", "rel"],
|
|
16
|
+
["http://schemas.openxmlformats.org/markup-compatibility/2006", "mc"],
|
|
17
|
+
]);
|
|
18
|
+
const TOKEN = /<!--[\s\S]*?-->|<!\[CDATA\[([\s\S]*?)\]\]>|<\?[\s\S]*?\?>|<!DOCTYPE[^>[]*(?:\[[\s\S]*?\])?\s*>|<\/([^\s>]+)\s*>|<([^\s/>!?]+)((?:\s+[^\s=/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*)\s*(\/?)>/g;
|
|
19
|
+
const ATTRIBUTE = /([^\s=]+)\s*=\s*(?:"([^"]*)"|'([^']*)')/g;
|
|
20
|
+
const canonicalName = (written, scope, isAttribute) => {
|
|
21
|
+
const colon = written.indexOf(":");
|
|
22
|
+
const prefix = colon === -1 ? "" : written.slice(0, colon);
|
|
23
|
+
const local = colon === -1 ? written : written.slice(colon + 1);
|
|
24
|
+
if (colon === -1 && isAttribute) {
|
|
25
|
+
return written;
|
|
26
|
+
}
|
|
27
|
+
const uri = scope.get(prefix);
|
|
28
|
+
const canonical = uri === undefined ? undefined : CANONICAL.get(uri);
|
|
29
|
+
if (canonical !== undefined) {
|
|
30
|
+
return `${canonical}:${local}`;
|
|
31
|
+
}
|
|
32
|
+
return written;
|
|
33
|
+
};
|
|
34
|
+
const isDeclaration = (name) => name === "xmlns" || name.startsWith("xmlns:");
|
|
35
|
+
const openElement = (parent, written, attributeText) => {
|
|
36
|
+
const pairs = [...attributeText.matchAll(ATTRIBUTE)].map((attribute) => [attribute[1] ?? "", decodeEntities(attribute[2] ?? attribute[3] ?? "")]);
|
|
37
|
+
const declarations = pairs.filter(([name]) => isDeclaration(name));
|
|
38
|
+
const scope = declarations.length === 0
|
|
39
|
+
? parent.scope
|
|
40
|
+
: new Map([...parent.scope, ...declarations.map(([name, uri]) => [name === "xmlns" ? "" : name.slice(6), uri])]);
|
|
41
|
+
const attrs = Object.fromEntries(pairs.filter(([name]) => !isDeclaration(name)).map(([name, value]) => [canonicalName(name, scope, true), value]));
|
|
42
|
+
const element = { name: canonicalName(written, scope, false), attrs, children: [] };
|
|
43
|
+
parent.element.children.push(element);
|
|
44
|
+
return { element, written, scope };
|
|
45
|
+
};
|
|
46
|
+
const appendText = (frame, raw, decode) => {
|
|
47
|
+
if (frame === undefined || raw === "") {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const textBearing = frame.element.name.endsWith(":t") || frame.element.name === "t";
|
|
51
|
+
if (raw.trim() === "" && !textBearing) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
frame.element.children.push(decode ? decodeEntities(raw) : raw);
|
|
55
|
+
};
|
|
56
|
+
export const parseXml = (text) => {
|
|
57
|
+
const root = { name: "#document", attrs: {}, children: [] };
|
|
58
|
+
const stack = [{ element: root, written: "#document", scope: new Map() }];
|
|
59
|
+
let last = 0;
|
|
60
|
+
for (const match of text.matchAll(TOKEN)) {
|
|
61
|
+
appendText(stack.at(-1), text.slice(last, match.index), true);
|
|
62
|
+
last = match.index + match[0].length;
|
|
63
|
+
const [, cdata, closing, opening, attributeText, selfClosing] = match;
|
|
64
|
+
if (cdata !== undefined) {
|
|
65
|
+
appendText(stack.at(-1), cdata, false);
|
|
66
|
+
}
|
|
67
|
+
else if (closing !== undefined) {
|
|
68
|
+
const at = stack.findLastIndex((frame) => frame.written === closing);
|
|
69
|
+
stack.length = at > 0 ? at : stack.length;
|
|
70
|
+
}
|
|
71
|
+
else if (opening !== undefined) {
|
|
72
|
+
const frame = openElement(stack.at(-1) ?? { element: root, written: "#document", scope: new Map() }, opening, attributeText ?? "");
|
|
73
|
+
if (selfClosing !== "/") {
|
|
74
|
+
stack.push(frame);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return root.children.find((child) => typeof child !== "string") ?? root;
|
|
79
|
+
};
|
|
80
|
+
export const isElement = (node) => typeof node !== "string";
|
|
81
|
+
export const childrenNamed = (element, name) => element.children.filter((child) => isElement(child) && child.name === name);
|
|
82
|
+
export const childNamed = (element, name) => element.children.find((child) => isElement(child) && child.name === name);
|
|
83
|
+
export const childAt = (element, ...path) => {
|
|
84
|
+
let current = element;
|
|
85
|
+
for (const name of path) {
|
|
86
|
+
if (current === undefined) {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
current = childNamed(current, name);
|
|
90
|
+
}
|
|
91
|
+
return current;
|
|
92
|
+
};
|
|
93
|
+
export const descendantsNamed = (element, name) => {
|
|
94
|
+
const found = [];
|
|
95
|
+
const visit = (node) => {
|
|
96
|
+
for (const child of node.children) {
|
|
97
|
+
if (isElement(child)) {
|
|
98
|
+
if (child.name === name) {
|
|
99
|
+
found.push(child);
|
|
100
|
+
}
|
|
101
|
+
visit(child);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
visit(element);
|
|
106
|
+
return found;
|
|
107
|
+
};
|
|
108
|
+
export const everyElement = (element) => {
|
|
109
|
+
const found = [element];
|
|
110
|
+
const visit = (node) => {
|
|
111
|
+
for (const child of node.children) {
|
|
112
|
+
if (isElement(child)) {
|
|
113
|
+
found.push(child);
|
|
114
|
+
visit(child);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
visit(element);
|
|
119
|
+
return found;
|
|
120
|
+
};
|
|
121
|
+
export const textIn = (element, textName) => descendantsNamed(element, textName)
|
|
122
|
+
.map((node) => node.children.filter((child) => typeof child === "string").join(""))
|
|
123
|
+
.join("");
|
|
124
|
+
export const intAttr = (element, name) => {
|
|
125
|
+
const raw = element?.attrs[name];
|
|
126
|
+
if (raw === undefined || !/^-?\d+$/.test(raw.trim())) {
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
return Number(raw);
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=xml-tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml-tree.js","sourceRoot":"","sources":["../../../src/lib/check/xml-tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DerivedDoc } from "./derivers/deriver.js";
|
|
2
|
+
import { type DerivedEntry } from "./sidecar.js";
|
|
3
|
+
export declare const contentCacheDir: (workspaceRoot: string | undefined) => string;
|
|
4
|
+
export declare const contentCachePathFor: (workspaceRoot: string | undefined, sourceSha: string, deriverStamp: string) => string;
|
|
5
|
+
export interface CachedRendering {
|
|
6
|
+
readonly path: string;
|
|
7
|
+
readonly doc: DerivedDoc;
|
|
8
|
+
readonly derivedAt: Date;
|
|
9
|
+
}
|
|
10
|
+
export declare const readCachedRendering: (workspaceRoot: string | undefined, sourceSha: string, deriverStamp: string) => Promise<CachedRendering | undefined>;
|
|
11
|
+
export declare const cacheRendering: (workspaceRoot: string | undefined, entry: Omit<DerivedEntry, "source">) => Promise<string | undefined>;
|
|
12
|
+
//# sourceMappingURL=content-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-cache.d.ts","sourceRoot":"","sources":["../../src/lib/content-cache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAuG,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAOtJ,eAAO,MAAM,eAAe,kBAAmB,MAAM,GAAG,SAAS,KAAG,MAC+C,CAAC;AAGpH,eAAO,MAAM,mBAAmB,kBAAmB,MAAM,GAAG,SAAS,aAAa,MAAM,gBAAgB,MAAM,KAAG,MACF,CAAC;AAEhH,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC5B;AAGD,eAAO,MAAM,mBAAmB,kBACb,MAAM,GAAG,SAAS,aACtB,MAAM,gBACH,MAAM,KACrB,OAAO,CAAC,eAAe,GAAG,SAAS,CAerC,CAAC;AAGF,eAAO,MAAM,cAAc,kBAAyB,MAAM,GAAG,SAAS,SAAS,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAWvI,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { toolHome } from "@intentic/agent-cli/env";
|
|
3
|
+
import { DERIVED_DIR, ignoreShadowsInGit, isFresh, parseSidecarFront, readSidecar, sidecarBody, writeDerived } from "./sidecar.js";
|
|
4
|
+
export const contentCacheDir = (workspaceRoot) => workspaceRoot === undefined ? join(toolHome("fileq"), "by-hash") : join(workspaceRoot, DERIVED_DIR, ".by-hash");
|
|
5
|
+
export const contentCachePathFor = (workspaceRoot, sourceSha, deriverStamp) => join(contentCacheDir(workspaceRoot), `${sourceSha}.${deriverStamp.replaceAll(/[^A-Za-z0-9.+-]/g, "-")}.md`);
|
|
6
|
+
export const readCachedRendering = async (workspaceRoot, sourceSha, deriverStamp) => {
|
|
7
|
+
const path = contentCachePathFor(workspaceRoot, sourceSha, deriverStamp);
|
|
8
|
+
const content = await readSidecar(path);
|
|
9
|
+
if (content === undefined || !isFresh(content, sourceSha, deriverStamp)) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
const front = parseSidecarFront(content);
|
|
13
|
+
const derivedAt = new Date(front.derivedAt ?? Number.NaN);
|
|
14
|
+
if (Number.isNaN(derivedAt.getTime())) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
const body = sidecarBody(content);
|
|
18
|
+
const markdown = body.endsWith("\n") ? body.slice(0, -1) : body;
|
|
19
|
+
return { path, doc: { markdown, title: front.title, notes: [...front.notes] }, derivedAt };
|
|
20
|
+
};
|
|
21
|
+
export const cacheRendering = async (workspaceRoot, entry) => {
|
|
22
|
+
try {
|
|
23
|
+
const written = await writeDerived(contentCachePathFor(workspaceRoot, entry.sourceSha, entry.deriverStamp), entry);
|
|
24
|
+
if (workspaceRoot !== undefined) {
|
|
25
|
+
await ignoreShadowsInGit(workspaceRoot);
|
|
26
|
+
}
|
|
27
|
+
return written.path;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=content-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-cache.js","sourceRoot":"","sources":["../../src/lib/content-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAqB,MAAM,cAAc,CAAC;AAOtJ,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,aAAiC,EAAU,EAAE,CACzE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAGpH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,aAAiC,EAAE,SAAiB,EAAE,YAAoB,EAAU,EAAE,CACtH,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,GAAG,SAAS,IAAI,YAAY,CAAC,UAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AAShH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACpC,aAAiC,EACjC,SAAiB,EACjB,YAAoB,EACgB,EAAE;IACtC,MAAM,IAAI,GAAG,mBAAmB,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;QACtE,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC;AAC/F,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,aAAiC,EAAE,KAAmC,EAA+B,EAAE;IACxI,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;QACnH,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QAEL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC,CAAC"}
|
package/dist/lib/derive.d.ts
CHANGED
|
@@ -29,4 +29,14 @@ export type Outcome = {
|
|
|
29
29
|
readonly reason: string;
|
|
30
30
|
};
|
|
31
31
|
export declare const ensureSidecar: (workspaceRoot: string, absPath: string, now?: () => Date) => Promise<Outcome>;
|
|
32
|
+
export type ContentOutcome = {
|
|
33
|
+
readonly kind: "derived" | "fresh";
|
|
34
|
+
readonly format: Format;
|
|
35
|
+
readonly doc: DerivedDoc;
|
|
36
|
+
readonly cachedPath: string | undefined;
|
|
37
|
+
} | {
|
|
38
|
+
readonly kind: "failed";
|
|
39
|
+
readonly reason: string;
|
|
40
|
+
};
|
|
41
|
+
export declare const renderByContent: (workspaceRoot: string | undefined, absPath: string, now?: () => Date) => Promise<ContentOutcome>;
|
|
32
42
|
//# sourceMappingURL=derive.d.ts.map
|
package/dist/lib/derive.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/lib/derive.ts"],"names":[],"mappings":"AAOA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAA+B,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/lib/derive.ts"],"names":[],"mappings":"AAOA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAA+B,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAsBnG,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAgB5C,CAAC;AAGF,eAAO,MAAM,gBAAgB,QAAoB,CAAC;AAGlD,eAAO,MAAM,SAAS,SAAU,MAAM,OAAO,MAAM,KAAG,MAAM,GAAG,SAG9D,CAAC;AAGF,eAAO,MAAM,eAAe,YAAa,MAAM,KAAG,OAGjD,CAAC;AAEF,MAAM,MAAM,OAAO,GACb;IACI,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B,GACD;IACI,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACpF;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA+BtF,eAAO,MAAM,aAAa,kBAAyB,MAAM,WAAW,MAAM,QAAO,MAAM,IAAI,KAAsB,OAAO,CAAC,OAAO,CAiD/H,CAAC;AAEF,MAAM,MAAM,cAAc,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAClI;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAG3D,eAAO,MAAM,eAAe,kBACT,MAAM,GAAG,SAAS,WACxB,MAAM,QACV,MAAM,IAAI,KAChB,OAAO,CAAC,cAAc,CAiBxB,CAAC"}
|
package/dist/lib/derive.js
CHANGED
|
@@ -21,6 +21,7 @@ import { pptxDeriver } from "./derivers/pptx.js";
|
|
|
21
21
|
import { profileDeriver } from "./derivers/profile.js";
|
|
22
22
|
import { rtfDeriver } from "./derivers/rtf.js";
|
|
23
23
|
import { xlsxDeriver } from "./derivers/xlsx.js";
|
|
24
|
+
import { cacheRendering, readCachedRendering } from "./content-cache.js";
|
|
24
25
|
import { isFresh, readSidecar, removeSidecar, sidecarBody, sidecarPathFor, sha256OfFile, writeSidecar } from "./sidecar.js";
|
|
25
26
|
export const DERIVERS = {
|
|
26
27
|
docx: docxDeriver,
|
|
@@ -48,6 +49,16 @@ export const isDeriveIgnored = (relPath) => {
|
|
|
48
49
|
const segments = relPath.split("/");
|
|
49
50
|
return segments.some((segment) => IGNORED_DIRS.has(segment) || segment === STATE_DIR) || isReferencePath(relPath) || isAgentWorktreePath(relPath);
|
|
50
51
|
};
|
|
52
|
+
const renderCached = async (workspaceRoot, absPath, deriver, sourceSha, now) => {
|
|
53
|
+
const stamp = deriverStamp(deriver);
|
|
54
|
+
const cached = await readCachedRendering(workspaceRoot, sourceSha, stamp);
|
|
55
|
+
if (cached !== undefined) {
|
|
56
|
+
return { kind: "fresh", doc: cached.doc, derivedAt: cached.derivedAt, cachedPath: cached.path };
|
|
57
|
+
}
|
|
58
|
+
const doc = neutralizeDoc(await deriver.derive(absPath));
|
|
59
|
+
const derivedAt = now();
|
|
60
|
+
return { kind: "derived", doc, derivedAt, cachedPath: await cacheRendering(workspaceRoot, { sourceSha, deriverStamp: stamp, doc, derivedAt }) };
|
|
61
|
+
};
|
|
51
62
|
export const ensureSidecar = async (workspaceRoot, absPath, now = () => new Date()) => {
|
|
52
63
|
const relPath = relPathIn(workspaceRoot, absPath);
|
|
53
64
|
if (relPath === undefined) {
|
|
@@ -85,15 +96,37 @@ export const ensureSidecar = async (workspaceRoot, absPath, now = () => new Date
|
|
|
85
96
|
const body = sidecarBody(existing ?? "");
|
|
86
97
|
return { kind: "fresh", relPath, format, sidecarPath, body, tokens: estimateTokens(body) };
|
|
87
98
|
}
|
|
88
|
-
let
|
|
99
|
+
let rendered;
|
|
89
100
|
try {
|
|
90
|
-
|
|
101
|
+
rendered = await renderCached(workspaceRoot, absPath, deriver, sourceSha, now);
|
|
91
102
|
}
|
|
92
103
|
catch (error) {
|
|
93
104
|
const detail = errorMessage(error).split("\n")[0];
|
|
94
105
|
return { kind: "skipped", relPath, reason: `derive-failed (${format}): ${detail}` };
|
|
95
106
|
}
|
|
96
|
-
const written = await writeSidecar(workspaceRoot, { relPath, sourceSha, deriverStamp: stamp, doc, derivedAt:
|
|
97
|
-
return
|
|
107
|
+
const written = await writeSidecar(workspaceRoot, { relPath, sourceSha, deriverStamp: stamp, doc: rendered.doc, derivedAt: rendered.derivedAt });
|
|
108
|
+
return rendered.kind === "fresh"
|
|
109
|
+
? { kind: "fresh", relPath, format, sidecarPath: written.path, body: written.body, tokens: written.tokens }
|
|
110
|
+
: { kind: "derived", relPath, format, sidecarPath: written.path, body: written.body, doc: rendered.doc, tokens: written.tokens };
|
|
111
|
+
};
|
|
112
|
+
export const renderByContent = async (workspaceRoot, absPath, now = () => new Date()) => {
|
|
113
|
+
const format = await detectFormat(absPath).catch(() => undefined);
|
|
114
|
+
if (format === undefined) {
|
|
115
|
+
return { kind: "failed", reason: "unsupported or missing" };
|
|
116
|
+
}
|
|
117
|
+
let sourceSha;
|
|
118
|
+
try {
|
|
119
|
+
sourceSha = await sha256OfFile(absPath);
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
return { kind: "failed", reason: isMissing(error) ? "missing" : `unreadable (${errnoCode(error) ?? errorMessage(error)})` };
|
|
123
|
+
}
|
|
124
|
+
try {
|
|
125
|
+
const rendered = await renderCached(workspaceRoot, absPath, DERIVERS[format], sourceSha, now);
|
|
126
|
+
return { kind: rendered.kind, format, doc: rendered.doc, cachedPath: rendered.cachedPath };
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
return { kind: "failed", reason: `derive-failed (${format}): ${errorMessage(error).split("\n")[0]}` };
|
|
130
|
+
}
|
|
98
131
|
};
|
|
99
132
|
//# sourceMappingURL=derive.js.map
|
package/dist/lib/derive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/lib/derive.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/lib/derive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAe,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAiC,MAAM,uBAAuB,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAK5H,MAAM,CAAC,MAAM,QAAQ,GAA4B;IAC7C,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,YAAY;IACnB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,cAAc;CAC1B,CAAC;AAGF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAGlD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,GAAW,EAAsB,EAAE;IACvE,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChC,OAAO,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxG,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAe,EAAW,EAAE;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,SAAS,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACtJ,CAAC,CAAC;AAiCF,MAAM,YAAY,GAAG,KAAK,EACtB,aAAiC,EACjC,OAAe,EACf,OAAgB,EAChB,SAAiB,EACjB,GAAe,EACE,EAAE;IACnB,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC1E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACpG,CAAC;IAED,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IACxB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AACpJ,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,aAAqB,EAAE,OAAe,EAAE,GAAG,GAAe,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAoB,EAAE;IAChI,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9E,CAAC;IACD,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAChE,CAAC;IACD,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,MAAyB,CAAC;IAC9B,IAAI,CAAC;QACD,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEb,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,SAAS,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3G,CAAC;IACL,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACjH,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,GAAG,gBAAgB,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC3G,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAC/D,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/F,CAAC;IAED,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACD,QAAQ,GAAG,MAAM,YAAY,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACnF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,MAAM,MAAM,MAAM,EAAE,EAAE,CAAC;IACxF,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IACjJ,OAAO,QAAQ,CAAC,IAAI,KAAK,OAAO;QAC5B,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;QAC3G,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AACzI,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAChC,aAAiC,EACjC,OAAe,EACf,GAAG,GAAe,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EACX,EAAE;IACzB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAClE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;IAChE,CAAC;IACD,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACD,SAAS,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,SAAS,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAChI,CAAC;IACD,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAC9F,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC/F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,MAAM,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1G,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../src/lib/derivers/image.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../src/lib/derivers/image.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,cAAc,CAAC;AAsBxD,eAAO,MAAM,YAAY,EAAE,OA6B1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/lib/derivers/image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/lib/derivers/image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQvC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;AAQnC,MAAM,UAAU,GAA4E;IACxF,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAC5C,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC,EAAE;IAC5D,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE;IACzC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE;CAClD,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAY;IACjC,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,KAAK,EAAE,OAAO,EAAuB,EAAE;QAC3C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,EAAE,iBAAiB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACpG,CAAC;QAAC,MAAM,CAAC;YACL,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAwC,CAAC;QACpG,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;gBAClG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnB,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3H,CAAC;YACL,CAAC;YACD,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAChF,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,CAAC;QACL,CAAC;QACD,OAAO;YACH,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B,KAAK,EAAE,CAAC,oHAAoH,CAAC;SAChI,CAAC;IACN,CAAC;CACJ,CAAC"}
|
package/dist/lib/formats.d.ts
CHANGED
|
@@ -2,5 +2,6 @@ export type Format = "docx" | "xlsx" | "pptx" | "pdf" | "image" | "media" | "htm
|
|
|
2
2
|
export declare const EXTENSION_FORMAT: Record<string, Format>;
|
|
3
3
|
export declare const isCandidatePath: (path: string) => boolean;
|
|
4
4
|
export declare const detectFormat: (absPath: string) => Promise<Format | undefined>;
|
|
5
|
+
export declare const claimedFormat: (absPath: string) => Promise<Format | undefined>;
|
|
5
6
|
export declare const gitAttributeLines: () => string[];
|
|
6
7
|
//# sourceMappingURL=formats.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../../src/lib/formats.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AA6C9J,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqDnD,CAAC;AAGF,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,OAA0D,CAAC;AAM1G,eAAO,MAAM,YAAY,YAAmB,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAS9E,CAAC;
|
|
1
|
+
{"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../../src/lib/formats.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AA6C9J,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqDnD,CAAC;AAGF,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,OAA0D,CAAC;AAM1G,eAAO,MAAM,YAAY,YAAmB,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAS9E,CAAC;AAMF,eAAO,MAAM,aAAa,YAAmB,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAsF,CAAC;AAUvK,eAAO,MAAM,iBAAiB,QAAO,MAAM,EAIxB,CAAC"}
|
package/dist/lib/formats.js
CHANGED
|
@@ -102,6 +102,7 @@ export const detectFormat = async (absPath) => {
|
|
|
102
102
|
}
|
|
103
103
|
return byExtension;
|
|
104
104
|
};
|
|
105
|
+
export const claimedFormat = async (absPath) => (await detectFormat(absPath)) ?? EXTENSION_FORMAT[extname(absPath).toLowerCase()];
|
|
105
106
|
const TEXT_UNDERNEATH = new Set(["html"]);
|
|
106
107
|
export const gitAttributeLines = () => Object.entries(EXTENSION_FORMAT)
|
|
107
108
|
.filter(([, format]) => !TEXT_UNDERNEATH.has(format))
|
package/dist/lib/formats.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../../src/lib/formats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAY7C,MAAM,YAAY,GAA2B;IACzC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,QAAQ,EAAE,SAAS;IACnB,EAAE,EAAE,SAAS;IACb,GAAG,EAAE,SAAS;IACd,EAAE,EAAE,SAAS;IACb,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,OAAO;IACb,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,OAAO;IACb,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,OAAO;IACb,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,OAAO;IACb,GAAG,EAAE,OAAO;CACf,CAAC;AAGF,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACpD,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,OAAO;IACjB,aAAa,EAAE,SAAS;IACxB,cAAc,EAAE,SAAS;IACzB,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,MAAM;IAGd,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;CACpB,CAAC;AAGF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,gBAAgB,CAAC;AAG1G,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAG3G,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,OAAe,EAA+B,EAAE;IAC/E,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACrE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAGtB,OAAO,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,WAAW,KAAK,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvI,CAAC;IACD,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../../src/lib/formats.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class ToolMissing extends Error {
|
|
2
|
+
}
|
|
3
|
+
export declare class ConvertFailed extends Error {
|
|
4
|
+
}
|
|
5
|
+
export type Rasterizer = "pdftoppm" | "mutool";
|
|
6
|
+
export declare const listDir: (dir: string) => Promise<string[]>;
|
|
7
|
+
export declare const rasterizer: () => Rasterizer;
|
|
8
|
+
export declare const office: (format: string) => string;
|
|
9
|
+
export declare const toPdf: (binary: string, absPath: string, format: string, workDir: string) => Promise<string>;
|
|
10
|
+
export declare const toPngs: (tool: Rasterizer, pdf: string, pages: readonly number[], size: number, outDir: string) => Promise<Map<number, string>>;
|
|
11
|
+
//# sourceMappingURL=convert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/lib/render/convert.ts"],"names":[],"mappings":"AAkBA,qBAAa,WAAY,SAAQ,KAAK;CAAG;AACzC,qBAAa,aAAc,SAAQ,KAAK;CAAG;AAE3C,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAG/C,eAAO,MAAM,OAAO,QAAe,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAS3D,CAAC;AASF,eAAO,MAAM,UAAU,QAAO,UAS7B,CAAC;AAGF,eAAO,MAAM,MAAM,WAAY,MAAM,KAAG,MAUvC,CAAC;AAUF,eAAO,MAAM,KAAK,WAAkB,MAAM,WAAW,MAAM,UAAU,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CA6B5G,CAAC;AAMF,eAAO,MAAM,MAAM,SAAgB,UAAU,OAAO,MAAM,SAAS,SAAS,MAAM,EAAE,QAAQ,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAuB/I,CAAC"}
|