@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.
Files changed (149) hide show
  1. package/NOTICE +208 -0
  2. package/README.md +39 -12
  3. package/dist/app.d.ts.map +1 -1
  4. package/dist/app.js +19 -7
  5. package/dist/app.js.map +1 -1
  6. package/dist/commands/check.command.d.ts +3 -0
  7. package/dist/commands/check.command.d.ts.map +1 -0
  8. package/dist/commands/check.command.js +80 -0
  9. package/dist/commands/check.command.js.map +1 -0
  10. package/dist/commands/derive.command.js +1 -1
  11. package/dist/commands/derive.command.js.map +1 -1
  12. package/dist/commands/read.command.d.ts.map +1 -1
  13. package/dist/commands/read.command.js +26 -45
  14. package/dist/commands/read.command.js.map +1 -1
  15. package/dist/commands/render.command.d.ts +3 -0
  16. package/dist/commands/render.command.d.ts.map +1 -0
  17. package/dist/commands/render.command.js +67 -0
  18. package/dist/commands/render.command.js.map +1 -0
  19. package/dist/lib/check/check.d.ts +15 -0
  20. package/dist/lib/check/check.d.ts.map +1 -0
  21. package/dist/lib/check/check.js +35 -0
  22. package/dist/lib/check/check.js.map +1 -0
  23. package/dist/lib/check/docx.d.ts +3 -0
  24. package/dist/lib/check/docx.d.ts.map +1 -0
  25. package/dist/lib/check/docx.js +329 -0
  26. package/dist/lib/check/docx.js.map +1 -0
  27. package/dist/lib/check/finding.d.ts +20 -0
  28. package/dist/lib/check/finding.d.ts.map +1 -0
  29. package/dist/lib/check/finding.js +27 -0
  30. package/dist/lib/check/finding.js.map +1 -0
  31. package/dist/lib/check/package.d.ts +25 -0
  32. package/dist/lib/check/package.d.ts.map +1 -0
  33. package/dist/lib/check/package.js +139 -0
  34. package/dist/lib/check/package.js.map +1 -0
  35. package/dist/lib/check/pdf.d.ts +3 -0
  36. package/dist/lib/check/pdf.d.ts.map +1 -0
  37. package/dist/lib/check/pdf.js +160 -0
  38. package/dist/lib/check/pdf.js.map +1 -0
  39. package/dist/lib/check/pptx.d.ts +3 -0
  40. package/dist/lib/check/pptx.d.ts.map +1 -0
  41. package/dist/lib/check/pptx.js +497 -0
  42. package/dist/lib/check/pptx.js.map +1 -0
  43. package/dist/lib/check/text-fit.d.ts +18 -0
  44. package/dist/lib/check/text-fit.d.ts.map +1 -0
  45. package/dist/lib/check/text-fit.js +69 -0
  46. package/dist/lib/check/text-fit.js.map +1 -0
  47. package/dist/lib/check/xlsx.d.ts +3 -0
  48. package/dist/lib/check/xlsx.d.ts.map +1 -0
  49. package/dist/lib/check/xlsx.js +131 -0
  50. package/dist/lib/check/xlsx.js.map +1 -0
  51. package/dist/lib/check/xml-tree.d.ts +15 -0
  52. package/dist/lib/check/xml-tree.d.ts.map +1 -0
  53. package/dist/lib/check/xml-tree.js +131 -0
  54. package/dist/lib/check/xml-tree.js.map +1 -0
  55. package/dist/lib/content-cache.d.ts +12 -0
  56. package/dist/lib/content-cache.d.ts.map +1 -0
  57. package/dist/lib/content-cache.js +33 -0
  58. package/dist/lib/content-cache.js.map +1 -0
  59. package/dist/lib/derive.d.ts +10 -0
  60. package/dist/lib/derive.d.ts.map +1 -1
  61. package/dist/lib/derive.js +37 -4
  62. package/dist/lib/derive.js.map +1 -1
  63. package/dist/lib/derivers/image.d.ts.map +1 -1
  64. package/dist/lib/derivers/image.js.map +1 -1
  65. package/dist/lib/formats.d.ts +1 -0
  66. package/dist/lib/formats.d.ts.map +1 -1
  67. package/dist/lib/formats.js +1 -0
  68. package/dist/lib/formats.js.map +1 -1
  69. package/dist/lib/render/convert.d.ts +11 -0
  70. package/dist/lib/render/convert.d.ts.map +1 -0
  71. package/dist/lib/render/convert.js +107 -0
  72. package/dist/lib/render/convert.js.map +1 -0
  73. package/dist/lib/render/pages.d.ts +11 -0
  74. package/dist/lib/render/pages.d.ts.map +1 -0
  75. package/dist/lib/render/pages.js +43 -0
  76. package/dist/lib/render/pages.js.map +1 -0
  77. package/dist/lib/render/render.d.ts +29 -0
  78. package/dist/lib/render/render.d.ts.map +1 -0
  79. package/dist/lib/render/render.js +142 -0
  80. package/dist/lib/render/render.js.map +1 -0
  81. package/dist/lib/sidecar.d.ts +11 -2
  82. package/dist/lib/sidecar.d.ts.map +1 -1
  83. package/dist/lib/sidecar.js +28 -16
  84. package/dist/lib/sidecar.js.map +1 -1
  85. package/dist/skill-authoring.d.ts +2 -0
  86. package/dist/skill-authoring.d.ts.map +1 -0
  87. package/dist/skill-authoring.js +20 -0
  88. package/dist/skill-authoring.js.map +1 -0
  89. package/dist/skill.d.ts.map +1 -1
  90. package/dist/skill.js +32 -8
  91. package/dist/skill.js.map +1 -1
  92. package/dist/testing.d.ts +67 -0
  93. package/dist/testing.d.ts.map +1 -1
  94. package/dist/testing.js +151 -0
  95. package/dist/testing.js.map +1 -1
  96. package/package.json +21 -8
  97. package/src/app.ts +19 -7
  98. package/src/cli.integration.test.ts +115 -30
  99. package/src/commands/check.command.ts +97 -0
  100. package/src/commands/derive.command.ts +1 -1
  101. package/src/commands/read.command.ts +30 -52
  102. package/src/commands/render.command.ts +80 -0
  103. package/src/lib/archives.ts +1 -1
  104. package/src/lib/check/check.test.ts +446 -0
  105. package/src/lib/check/check.ts +49 -0
  106. package/src/lib/check/docx.ts +434 -0
  107. package/src/lib/check/finding.ts +63 -0
  108. package/src/lib/check/package.ts +199 -0
  109. package/src/lib/check/pdf.ts +228 -0
  110. package/src/lib/check/pptx.ts +641 -0
  111. package/src/lib/check/text-fit.ts +105 -0
  112. package/src/lib/check/xlsx.ts +163 -0
  113. package/src/lib/check/xml-tree.ts +186 -0
  114. package/src/lib/content-cache.ts +58 -0
  115. package/src/lib/derive.integration.test.ts +198 -0
  116. package/src/lib/derive.ts +66 -7
  117. package/src/lib/derivers/archive.ts +1 -1
  118. package/src/lib/derivers/image.ts +2 -1
  119. package/src/lib/derivers/load-cost.test.ts +1 -1
  120. package/src/lib/derivers/pdf.ts +1 -1
  121. package/src/lib/derivers/xlsx.ts +1 -1
  122. package/src/lib/formats.ts +6 -0
  123. package/src/lib/render/convert.ts +133 -0
  124. package/src/lib/render/pages.test.ts +38 -0
  125. package/src/lib/render/pages.ts +58 -0
  126. package/src/lib/render/render.ts +198 -0
  127. package/src/lib/sidecar.ts +42 -22
  128. package/src/render.integration.test.ts +217 -0
  129. package/src/skill-authoring.ts +27 -0
  130. package/src/skill.ts +36 -8
  131. package/src/testing.ts +287 -0
  132. package/dist/commands/sweep.command.d.ts +0 -3
  133. package/dist/commands/sweep.command.d.ts.map +0 -1
  134. package/dist/commands/sweep.command.js +0 -41
  135. package/dist/commands/sweep.command.js.map +0 -1
  136. package/dist/lib/flags.d.ts +0 -2
  137. package/dist/lib/flags.d.ts.map +0 -1
  138. package/dist/lib/flags.js +0 -8
  139. package/dist/lib/flags.js.map +0 -1
  140. package/dist/lib/sweep.d.ts +0 -7
  141. package/dist/lib/sweep.d.ts.map +0 -1
  142. package/dist/lib/sweep.js +0 -56
  143. package/dist/lib/sweep.js.map +0 -1
  144. package/dist/version.d.ts +0 -2
  145. package/dist/version.d.ts.map +0 -1
  146. package/dist/version.js +0 -3
  147. package/dist/version.js.map +0 -1
  148. package/src/commands/sweep.command.ts +0 -48
  149. 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,3 @@
1
+ import { type CheckReport } from "./finding.js";
2
+ export declare const checkXlsx: (bytes: Uint8Array) => CheckReport;
3
+ //# sourceMappingURL=xlsx.d.ts.map
@@ -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":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAiB3C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAiB;IACtC,CAAC,4DAA4D,EAAE,GAAG,CAAC;IACnE,CAAC,gDAAgD,EAAE,GAAG,CAAC;IACvD,CAAC,uDAAuD,EAAE,GAAG,CAAC;IAC9D,CAAC,2CAA2C,EAAE,GAAG,CAAC;IAClD,CAAC,qEAAqE,EAAE,GAAG,CAAC;IAC5E,CAAC,yDAAyD,EAAE,GAAG,CAAC;IAChE,CAAC,8DAA8D,EAAE,GAAG,CAAC;IACrE,CAAC,kDAAkD,EAAE,GAAG,CAAC;IACzD,CAAC,wEAAwE,EAAE,IAAI,CAAC;IAChF,CAAC,4DAA4D,EAAE,IAAI,CAAC;IACpE,CAAC,2DAA2D,EAAE,GAAG,CAAC;IAClE,CAAC,+CAA+C,EAAE,GAAG,CAAC;IACtD,CAAC,8DAA8D,EAAE,KAAK,CAAC;IACvE,CAAC,6DAA6D,EAAE,IAAI,CAAC;CACxE,CAAC,CAAC;AAEH,MAAM,KAAK,GACP,sLAAsL,CAAC;AAC3L,MAAM,SAAS,GAAG,0CAA0C,CAAC;AAI7D,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,KAAY,EAAE,WAAoB,EAAU,EAAE;IAClF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAEhE,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,SAAS,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAG,SAAS,IAAI,KAAK,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AASF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAI/F,MAAM,WAAW,GAAG,CAAC,MAAa,EAAE,OAAe,EAAE,aAAqB,EAAS,EAAE;IACjF,MAAM,KAAK,GAAuB,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtK,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GACP,YAAY,CAAC,MAAM,KAAK,CAAC;QACrB,CAAC,CAAC,MAAM,CAAC,KAAK;QACd,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAoB,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3I,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACnJ,MAAM,OAAO,GAAe,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAChG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC,CAAC;AAGF,MAAM,UAAU,GAAG,CAAC,KAAwB,EAAE,GAAW,EAAE,MAAe,EAAQ,EAAE;IAChF,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACpC,OAAO;IACX,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC;IACpF,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO;IACX,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAc,EAAE;IACjD,MAAM,IAAI,GAAe,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACxE,MAAM,KAAK,GAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IACnF,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACrC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC;QACtE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAE/B,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;YACrE,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9C,CAAC;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;YACnI,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACL,CAAC;IAEL,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAuB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC;AACjG,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAyB,EAAsB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;AAGrG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAmB,EAAE,IAAY,EAAgB,EAAE,CAC7E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAuB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAGrG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAmB,EAAE,IAAY,EAA0B,EAAE,CACpF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAuB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAGnG,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAA+B,EAAE,GAAG,IAAuB,EAA0B,EAAE;IAC3G,IAAI,OAAO,GAAG,OAAO,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAmB,EAAE,IAAY,EAAgB,EAAE;IAChF,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,CAAC,IAAgB,EAAQ,EAAE;QACrC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnB,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;gBACD,KAAK,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IACF,KAAK,CAAC,OAAO,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAmB,EAAgB,EAAE;IAC9D,MAAM,KAAK,GAAiB,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,IAAgB,EAAQ,EAAE;QACrC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,KAAK,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IACF,KAAK,CAAC,OAAO,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAmB,EAAE,QAAgB,EAAU,EAAE,CACpE,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC9B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACnG,IAAI,CAAC,EAAE,CAAC,CAAC;AAGlB,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAA+B,EAAE,IAAY,EAAsB,EAAE;IACzF,MAAM,GAAG,GAAG,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC"}
@@ -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"}
@@ -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
@@ -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;AAqBnG,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;AAGtF,eAAO,MAAM,aAAa,kBAAyB,MAAM,WAAW,MAAM,QAAO,MAAM,IAAI,KAAsB,OAAO,CAAC,OAAO,CA+C/H,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"}
@@ -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 doc;
99
+ let rendered;
89
100
  try {
90
- doc = neutralizeDoc(await deriver.derive(absPath));
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: now() });
97
- return { kind: "derived", relPath, format, sidecarPath: written.path, body: written.body, doc, tokens: written.tokens };
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
@@ -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":"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"}
@@ -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;AAqBxD,eAAO,MAAM,YAAY,EAAE,OA6B1B,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;AAOvC,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"}
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"}
@@ -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;AAUF,eAAO,MAAM,iBAAiB,QAAO,MAAM,EAIxB,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"}
@@ -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))
@@ -1 +1 @@
1
- {"version":3,"file":"formats.js","sourceRoot":"","sources":["../../src/lib/formats.ts"],"names":[],"mappings":"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"}
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"}