@intentic/fileq 1.326.0 → 1.327.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/dist/lib/derivers/archive.d.ts.map +1 -1
- package/dist/lib/derivers/archive.js +2 -6
- package/dist/lib/derivers/archive.js.map +1 -1
- package/dist/lib/derivers/ods.d.ts.map +1 -1
- package/dist/lib/derivers/ods.js +2 -3
- package/dist/lib/derivers/ods.js.map +1 -1
- package/dist/lib/derivers/profile.d.ts.map +1 -1
- package/dist/lib/derivers/profile.js +5 -3
- package/dist/lib/derivers/profile.js.map +1 -1
- package/dist/lib/derivers/xlsx.d.ts.map +1 -1
- package/dist/lib/derivers/xlsx.js +3 -6
- package/dist/lib/derivers/xlsx.js.map +1 -1
- package/dist/lib/formats.d.ts +0 -1
- package/dist/lib/formats.d.ts.map +1 -1
- package/dist/lib/formats.js +0 -1
- package/dist/lib/formats.js.map +1 -1
- package/package.json +10 -8
- package/src/derivers.integration.test.ts +2 -2
- package/src/lib/derive.test.ts +21 -0
- package/src/lib/derivers/archive.ts +2 -7
- package/src/lib/derivers/ods.ts +2 -4
- package/src/lib/derivers/profile.ts +8 -3
- package/src/lib/derivers/xlsx.ts +4 -6
- package/src/lib/formats.ts +0 -3
- package/dist/testing.d.ts +0 -92
- package/dist/testing.d.ts.map +0 -1
- package/dist/testing.js +0 -371
- package/dist/testing.js.map +0 -1
- package/src/lib/formats.test.ts +0 -50
- package/src/testing.ts +0 -620
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/lib/derivers/archive.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/lib/derivers/archive.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,cAAc,CAAC;AAoIxD,eAAO,MAAM,cAAc,EAAE,OAwB5B,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { readFile } from "node:fs/promises";
|
|
|
2
2
|
import { basename } from "node:path";
|
|
3
3
|
import { gunzipSync } from "fflate";
|
|
4
4
|
import { plural } from "@intentic/base/format";
|
|
5
|
+
import { markdownTable } from "@intentic/webq/markdown";
|
|
5
6
|
import { gzipHead, listWithTar, looksLikeTar, tarEntries, tarOnPath, zipEntries } from "../archives.js";
|
|
6
7
|
const MAX_ENTRIES = 500;
|
|
7
8
|
const MAX_UNPACKED_BYTES = 128 * 1024 * 1024;
|
|
@@ -41,17 +42,12 @@ const summaryOf = (container, entries) => {
|
|
|
41
42
|
}
|
|
42
43
|
return lines;
|
|
43
44
|
};
|
|
44
|
-
const tableRow = (cells) => `| ${cells.map((cell) => cell.replaceAll("|", "\\|")).join(" | ")} |`;
|
|
45
45
|
const entryTable = (entries) => {
|
|
46
46
|
const files = entries.filter((entry) => !entry.directory).slice(0, MAX_ENTRIES);
|
|
47
47
|
if (files.length === 0) {
|
|
48
48
|
return "";
|
|
49
49
|
}
|
|
50
|
-
return [
|
|
51
|
-
tableRow(["Path", "Size"]),
|
|
52
|
-
tableRow(["---", "---"]),
|
|
53
|
-
...files.map((entry) => tableRow([entry.path, entry.size === undefined ? "" : formatBytes(entry.size)])),
|
|
54
|
-
].join("\n");
|
|
50
|
+
return markdownTable([["Path", "Size"], ...files.map((entry) => [entry.path, entry.size === undefined ? "" : formatBytes(entry.size)])]);
|
|
55
51
|
};
|
|
56
52
|
const listingDoc = (container, entries, notes) => {
|
|
57
53
|
const files = entries.filter((entry) => !entry.directory).length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/lib/derivers/archive.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/lib/derivers/archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ods.d.ts","sourceRoot":"","sources":["../../../src/lib/derivers/ods.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ods.d.ts","sourceRoot":"","sources":["../../../src/lib/derivers/ods.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,cAAc,CAAC;AAgFxD,eAAO,MAAM,UAAU,EAAE,OAkBxB,CAAC"}
|
package/dist/lib/derivers/ods.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { markdownTable } from "@intentic/webq/markdown";
|
|
2
3
|
import { unzipSync } from "fflate";
|
|
3
4
|
import { attributeOf, decodeEntities } from "../xml.js";
|
|
4
5
|
const MAX_ROWS_PER_SHEET = 200;
|
|
@@ -48,7 +49,6 @@ const rowsOf = (xml) => {
|
|
|
48
49
|
}
|
|
49
50
|
return trimEnd(rows, (row) => row.length === 0);
|
|
50
51
|
};
|
|
51
|
-
const tableRow = (cells) => `| ${cells.map((cell) => cell.replaceAll("|", "\\|")).join(" | ")} |`;
|
|
52
52
|
const sectionOf = (name, rows, notes) => {
|
|
53
53
|
if (rows.length === 0) {
|
|
54
54
|
return `## ${name}\n\n(empty sheet)`;
|
|
@@ -61,8 +61,7 @@ const sectionOf = (name, rows, notes) => {
|
|
|
61
61
|
notes.push(`sheet "${name}": showing ${MAX_ROWS_PER_SHEET} of ${rows.length} rows`);
|
|
62
62
|
}
|
|
63
63
|
const kept = rows.slice(0, MAX_ROWS_PER_SHEET).map((row) => Array.from({ length: width }, (_, index) => row[index] ?? ""));
|
|
64
|
-
|
|
65
|
-
return `## ${name}\n\n${[tableRow(header), tableRow(header.map(() => "---")), ...body.map(tableRow)].join("\n")}`;
|
|
64
|
+
return `## ${name}\n\n${markdownTable(kept)}`;
|
|
66
65
|
};
|
|
67
66
|
export const odsDeriver = {
|
|
68
67
|
name: "ods",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ods.js","sourceRoot":"","sources":["../../../src/lib/derivers/ods.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ods.js","sourceRoot":"","sources":["../../../src/lib/derivers/ods.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/lib/derivers/profile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/lib/derivers/profile.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,cAAc,CAAC;AAgKxD,eAAO,MAAM,cAAc,EAAE,OAa5B,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
2
|
import { plural } from "@intentic/base/format";
|
|
3
|
+
import { markdownTable } from "@intentic/webq/markdown";
|
|
3
4
|
const TOP_ROWS = 25;
|
|
4
5
|
const keyOf = (frame) => {
|
|
5
6
|
const name = frame.functionName === undefined || frame.functionName === "" ? "(anonymous)" : frame.functionName;
|
|
@@ -22,9 +23,10 @@ const percent = (part, whole) => (whole === 0 ? "0.0%" : `${((part / whole) * 10
|
|
|
22
23
|
const table = (heading, unit, rows, whole) => [
|
|
23
24
|
`## ${heading}`,
|
|
24
25
|
"",
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
markdownTable([
|
|
27
|
+
["self", "self %", "total", "total %", "function"],
|
|
28
|
+
...rows.map((row) => [unit(row.self), percent(row.self, whole), unit(row.total), percent(row.total, whole), `\`${row.key}\``]),
|
|
29
|
+
], { align: ["right", "right", "right", "right"] }),
|
|
28
30
|
].join("\n");
|
|
29
31
|
const ranked = (rows, by) => [...rows.values()].toSorted((left, right) => right[by] - left[by]).slice(0, TOP_ROWS);
|
|
30
32
|
const milliseconds = (microseconds) => `${(microseconds / 1_000).toFixed(1)} ms`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/lib/derivers/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/lib/derivers/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xlsx.d.ts","sourceRoot":"","sources":["../../../src/lib/derivers/xlsx.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"xlsx.d.ts","sourceRoot":"","sources":["../../../src/lib/derivers/xlsx.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,cAAc,CAAC;AAyCxD,eAAO,MAAM,WAAW,EAAE,OAoCzB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { markdownTable } from "@intentic/webq/markdown";
|
|
1
2
|
const MAX_ROWS_PER_SHEET = 200;
|
|
2
3
|
const MAX_COLUMNS = 30;
|
|
3
4
|
const cellText = (value) => {
|
|
@@ -24,7 +25,7 @@ const cellText = (value) => {
|
|
|
24
25
|
}
|
|
25
26
|
return String(value);
|
|
26
27
|
};
|
|
27
|
-
const
|
|
28
|
+
const oneLine = (text) => text.replaceAll(/\s+/g, " ").trim();
|
|
28
29
|
export const xlsxDeriver = {
|
|
29
30
|
name: "xlsx",
|
|
30
31
|
version: 1,
|
|
@@ -56,11 +57,7 @@ export const xlsxDeriver = {
|
|
|
56
57
|
sections.push(`## ${sheet.name}\n\n(empty sheet)`);
|
|
57
58
|
continue;
|
|
58
59
|
}
|
|
59
|
-
|
|
60
|
-
const pad = (row) => [...row, ...Array.from({ length: width - row.length }, () => "")];
|
|
61
|
-
const [header, ...body] = kept.map(pad);
|
|
62
|
-
const table = [tableRow(header), tableRow(header.map(() => "---")), ...body.map(tableRow)].join("\n");
|
|
63
|
-
sections.push(`## ${sheet.name}\n\n${table}`);
|
|
60
|
+
sections.push(`## ${sheet.name}\n\n${markdownTable(kept.map((row) => row.map(oneLine)))}`);
|
|
64
61
|
}
|
|
65
62
|
return { markdown: sections.join("\n\n"), notes };
|
|
66
63
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xlsx.js","sourceRoot":"","sources":["../../../src/lib/derivers/xlsx.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"xlsx.js","sourceRoot":"","sources":["../../../src/lib/derivers/xlsx.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/formats.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export type Format = "docx" | "xlsx" | "pptx" | "pdf" | "image" | "media" | "html" | "ipynb" | "odt" | "ods" | "odp" | "rtf" | "epub" | "archive" | "profile";
|
|
2
2
|
export declare const EXTENSION_FORMAT: Record<string, Format>;
|
|
3
|
-
export declare const isCandidatePath: (path: string) => boolean;
|
|
4
3
|
export declare const detectFormat: (absPath: string) => Promise<Format | undefined>;
|
|
5
4
|
export declare const claimedFormat: (absPath: string) => Promise<Format | undefined>;
|
|
6
5
|
export declare const gitAttributeLines: () => string[];
|
|
@@ -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;
|
|
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;AAMF,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
|
@@ -92,7 +92,6 @@ export const EXTENSION_FORMAT = {
|
|
|
92
92
|
".7z": "archive",
|
|
93
93
|
".rar": "archive",
|
|
94
94
|
};
|
|
95
|
-
export const isCandidatePath = (path) => extname(path).toLowerCase() in EXTENSION_FORMAT;
|
|
96
95
|
const ZIP_CONTAINERS = new Set(["docx", "xlsx", "pptx", "odt", "ods", "odp", "epub"]);
|
|
97
96
|
export const detectFormat = async (absPath) => {
|
|
98
97
|
const byExtension = EXTENSION_FORMAT[extname(absPath).toLowerCase()];
|
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,
|
|
1
|
+
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../../src/lib/formats.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentic/fileq",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.327.0",
|
|
4
4
|
"description": "fileq, agent-native file reading: any binary workspace file (docx, xlsx, pptx, pdf, images, audio, archives) as clean budgeted markdown, cached by content so a repeat read is instant",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
"files": [
|
|
13
13
|
"dist",
|
|
14
14
|
"src",
|
|
15
|
+
"!src/testing.ts",
|
|
16
|
+
"!dist/testing.*",
|
|
15
17
|
"NOTICE"
|
|
16
18
|
],
|
|
17
19
|
"publishConfig": {
|
|
@@ -69,18 +71,18 @@
|
|
|
69
71
|
}
|
|
70
72
|
},
|
|
71
73
|
"dependencies": {
|
|
72
|
-
"@intentic/agent-cli": "1.
|
|
73
|
-
"@intentic/base": "1.
|
|
74
|
-
"@intentic/constants": "1.
|
|
75
|
-
"@intentic/webq": "1.
|
|
76
|
-
"@intentic/workspace-ignore": "1.
|
|
74
|
+
"@intentic/agent-cli": "1.327.0",
|
|
75
|
+
"@intentic/base": "1.327.0",
|
|
76
|
+
"@intentic/constants": "1.327.0",
|
|
77
|
+
"@intentic/webq": "1.327.0",
|
|
78
|
+
"@intentic/workspace-ignore": "1.327.0",
|
|
77
79
|
"@stricli/core": "1.3.0",
|
|
78
80
|
"exceljs": "4.4.0",
|
|
79
81
|
"exifr": "7.1.3",
|
|
80
82
|
"fflate": "0.8.3",
|
|
81
83
|
"file-type": "22.1.1",
|
|
82
84
|
"image-size": "2.0.4",
|
|
83
|
-
"mammoth": "1.
|
|
85
|
+
"mammoth": "1.13.0",
|
|
84
86
|
"music-metadata": "11.16.1",
|
|
85
87
|
"tslib": "2.8.1",
|
|
86
88
|
"unpdf": "1.8.1"
|
|
@@ -89,7 +91,7 @@
|
|
|
89
91
|
"@intentic/testing": "0.0.0",
|
|
90
92
|
"@intentic/tsconfig": "0.0.0",
|
|
91
93
|
"@types/bun": "1.4.2",
|
|
92
|
-
"@types/node": "24.
|
|
94
|
+
"@types/node": "24.19.1",
|
|
93
95
|
"@typescript/native-preview": "7.0.0-dev.20260707.2"
|
|
94
96
|
},
|
|
95
97
|
"scripts": {
|
|
@@ -118,7 +118,7 @@ describe("pdf", () => {
|
|
|
118
118
|
}
|
|
119
119
|
});
|
|
120
120
|
|
|
121
|
-
// A stand-in `ocr` on PATH, speaking the real one's protocol (
|
|
121
|
+
// A stand-in `ocr` on PATH, speaking the real one's protocol (_sandbox/ocr/src/cli.ts): `--check` answers
|
|
122
122
|
// whether it can read, and a run prints each image's text with a form feed line between images, leaving an image
|
|
123
123
|
// it could not read empty and exiting 1.
|
|
124
124
|
const standIn = (check: number): string => {
|
|
@@ -199,7 +199,7 @@ describe("pdf", () => {
|
|
|
199
199
|
const DEJAVU = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf";
|
|
200
200
|
const ocr = requires(ocrAvailable() && existsSync(DEJAVU), `an ocr command that can read (the privacy pack's models), and the DejaVu font at ${DEJAVU}`, {
|
|
201
201
|
absentOnCi:
|
|
202
|
-
"ocr is the sandbox image's own command (_sandbox/
|
|
202
|
+
"ocr is the sandbox image's own command (_sandbox/ocr/src/cli.ts); CI proves that reader against the same models in the sandbox's readers suite",
|
|
203
203
|
});
|
|
204
204
|
test.skipIf(!ocr.runs)(ocr.title("a scan is recognised by PaddleOCR when the image carries it, and says so"), async () => {
|
|
205
205
|
const path = join(root, "receipt.pdf");
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { STATE_DIR } from "@intentic/constants";
|
|
2
|
+
import { isDeriveIgnored } from "./derive.js";
|
|
3
|
+
|
|
4
|
+
describe("the derive floor (what never gets a shadow, whoever asks)", () => {
|
|
5
|
+
test("machine subtrees, state, the reference shelf and agent worktrees are refused", () => {
|
|
6
|
+
for (const path of [
|
|
7
|
+
"node_modules/pkg/manual.pdf",
|
|
8
|
+
`${STATE_DIR}/local/cache/derived/x.docx`,
|
|
9
|
+
"refs/other-repo/spec.docx",
|
|
10
|
+
".claude/worktrees/fix/docs/a.pdf",
|
|
11
|
+
]) {
|
|
12
|
+
expect(isDeriveIgnored(path), path).toBe(true);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
test("ordinary workspace documents are not", () => {
|
|
17
|
+
for (const path of ["docs/spec.docx", "repo/assets/logo.png", "a repo/refs/inner.pdf"]) {
|
|
18
|
+
expect(isDeriveIgnored(path), path).toBe(false);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
});
|
|
@@ -2,6 +2,7 @@ import { readFile } from "node:fs/promises";
|
|
|
2
2
|
import { basename } from "node:path";
|
|
3
3
|
import { gunzipSync } from "fflate";
|
|
4
4
|
import { plural } from "@intentic/base/format";
|
|
5
|
+
import { markdownTable } from "@intentic/webq/markdown";
|
|
5
6
|
import { gzipHead, listWithTar, looksLikeTar, tarEntries, tarOnPath, zipEntries, type ArchiveEntry } from "../archives.js";
|
|
6
7
|
import type { DerivedDoc, Deriver } from "./deriver.js";
|
|
7
8
|
|
|
@@ -61,19 +62,13 @@ const summaryOf = (container: Container, entries: readonly ArchiveEntry[]): stri
|
|
|
61
62
|
return lines;
|
|
62
63
|
};
|
|
63
64
|
|
|
64
|
-
const tableRow = (cells: readonly string[]): string => `| ${cells.map((cell) => cell.replaceAll("|", "\\|")).join(" | ")} |`;
|
|
65
|
-
|
|
66
65
|
// Files only: a folder row carries no size and says nothing the paths beside it don't already.
|
|
67
66
|
const entryTable = (entries: readonly ArchiveEntry[]): string => {
|
|
68
67
|
const files = entries.filter((entry) => !entry.directory).slice(0, MAX_ENTRIES);
|
|
69
68
|
if (files.length === 0) {
|
|
70
69
|
return "";
|
|
71
70
|
}
|
|
72
|
-
return [
|
|
73
|
-
tableRow(["Path", "Size"]),
|
|
74
|
-
tableRow(["---", "---"]),
|
|
75
|
-
...files.map((entry) => tableRow([entry.path, entry.size === undefined ? "" : formatBytes(entry.size)])),
|
|
76
|
-
].join("\n");
|
|
71
|
+
return markdownTable([["Path", "Size"], ...files.map((entry) => [entry.path, entry.size === undefined ? "" : formatBytes(entry.size)])]);
|
|
77
72
|
};
|
|
78
73
|
|
|
79
74
|
const listingDoc = (container: Container, entries: readonly ArchiveEntry[], notes: readonly string[]): DerivedDoc => {
|
package/src/lib/derivers/ods.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { markdownTable } from "@intentic/webq/markdown";
|
|
2
3
|
import { unzipSync } from "fflate";
|
|
3
4
|
import type { DerivedDoc, Deriver } from "./deriver.js";
|
|
4
5
|
import { attributeOf, decodeEntities } from "../xml.js";
|
|
@@ -65,8 +66,6 @@ const rowsOf = (xml: string): string[][] => {
|
|
|
65
66
|
return trimEnd(rows, (row) => row.length === 0);
|
|
66
67
|
};
|
|
67
68
|
|
|
68
|
-
const tableRow = (cells: string[]): string => `| ${cells.map((cell) => cell.replaceAll("|", "\\|")).join(" | ")} |`;
|
|
69
|
-
|
|
70
69
|
const sectionOf = (name: string, rows: string[][], notes: string[]): string => {
|
|
71
70
|
if (rows.length === 0) {
|
|
72
71
|
return `## ${name}\n\n(empty sheet)`;
|
|
@@ -79,8 +78,7 @@ const sectionOf = (name: string, rows: string[][], notes: string[]): string => {
|
|
|
79
78
|
notes.push(`sheet "${name}": showing ${MAX_ROWS_PER_SHEET} of ${rows.length} rows`);
|
|
80
79
|
}
|
|
81
80
|
const kept = rows.slice(0, MAX_ROWS_PER_SHEET).map((row) => Array.from({ length: width }, (_, index) => row[index] ?? ""));
|
|
82
|
-
|
|
83
|
-
return `## ${name}\n\n${[tableRow(header), tableRow(header.map(() => "---")), ...body.map(tableRow)].join("\n")}`;
|
|
81
|
+
return `## ${name}\n\n${markdownTable(kept)}`;
|
|
84
82
|
};
|
|
85
83
|
|
|
86
84
|
export const odsDeriver: Deriver = {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
2
|
import { plural } from "@intentic/base/format";
|
|
3
|
+
import { markdownTable } from "@intentic/webq/markdown";
|
|
3
4
|
import type { DerivedDoc, Deriver } from "./deriver.js";
|
|
4
5
|
|
|
5
6
|
/* V8 profiles (node --cpu-prof, --heap-prof, DevTools): a sample tree whose reading is a ranked table, not the JSON. */
|
|
@@ -71,9 +72,13 @@ const table = (heading: string, unit: (value: number) => string, rows: readonly
|
|
|
71
72
|
[
|
|
72
73
|
`## ${heading}`,
|
|
73
74
|
"",
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
markdownTable(
|
|
76
|
+
[
|
|
77
|
+
["self", "self %", "total", "total %", "function"],
|
|
78
|
+
...rows.map((row) => [unit(row.self), percent(row.self, whole), unit(row.total), percent(row.total, whole), `\`${row.key}\``]),
|
|
79
|
+
],
|
|
80
|
+
{ align: ["right", "right", "right", "right"] },
|
|
81
|
+
),
|
|
77
82
|
].join("\n");
|
|
78
83
|
|
|
79
84
|
const ranked = (rows: Map<string, Row>, by: "self" | "total"): readonly Row[] => [...rows.values()].toSorted((left, right) => right[by] - left[by]).slice(0, TOP_ROWS);
|
package/src/lib/derivers/xlsx.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { markdownTable } from "@intentic/webq/markdown";
|
|
1
2
|
import type ExcelJS from "exceljs";
|
|
2
3
|
import type { DerivedDoc, Deriver } from "./deriver.js";
|
|
3
4
|
|
|
@@ -37,7 +38,8 @@ const cellText = (value: ExcelJS.CellValue): string => {
|
|
|
37
38
|
return String(value);
|
|
38
39
|
};
|
|
39
40
|
|
|
40
|
-
|
|
41
|
+
// What a cell shows as one line: a sheet's cell can hold line breaks and runs of spaces nobody reads as meaningful.
|
|
42
|
+
const oneLine = (text: string): string => text.replaceAll(/\s+/g, " ").trim();
|
|
41
43
|
|
|
42
44
|
export const xlsxDeriver: Deriver = {
|
|
43
45
|
name: "xlsx",
|
|
@@ -71,11 +73,7 @@ export const xlsxDeriver: Deriver = {
|
|
|
71
73
|
sections.push(`## ${sheet.name}\n\n(empty sheet)`);
|
|
72
74
|
continue;
|
|
73
75
|
}
|
|
74
|
-
|
|
75
|
-
const pad = (row: string[]): string[] => [...row, ...Array.from({ length: width - row.length }, () => "")];
|
|
76
|
-
const [header, ...body] = kept.map(pad) as [string[], ...string[][]];
|
|
77
|
-
const table = [tableRow(header), tableRow(header.map(() => "---")), ...body.map(tableRow)].join("\n");
|
|
78
|
-
sections.push(`## ${sheet.name}\n\n${table}`);
|
|
76
|
+
sections.push(`## ${sheet.name}\n\n${markdownTable(kept.map((row) => row.map(oneLine)))}`);
|
|
79
77
|
}
|
|
80
78
|
return { markdown: sections.join("\n\n"), notes };
|
|
81
79
|
},
|
package/src/lib/formats.ts
CHANGED
|
@@ -108,9 +108,6 @@ export const EXTENSION_FORMAT: Record<string, Format> = {
|
|
|
108
108
|
".rar": "archive",
|
|
109
109
|
};
|
|
110
110
|
|
|
111
|
-
/** Cheap pre-filter: could this path, by name alone, have a derivable format? Runs over every watcher batch. */
|
|
112
|
-
export const isCandidatePath = (path: string): boolean => extname(path).toLowerCase() in EXTENSION_FORMAT;
|
|
113
|
-
|
|
114
111
|
// Zip-underneath formats where magic can only say "zip"; the extension names the real container instead.
|
|
115
112
|
const ZIP_CONTAINERS: ReadonlySet<Format> = new Set(["docx", "xlsx", "pptx", "odt", "ods", "odp", "epub"]);
|
|
116
113
|
|
package/dist/testing.d.ts
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
export declare const docxBytes: (heading: string, paragraphs: readonly string[]) => Uint8Array;
|
|
2
|
-
export declare const pptxBytes: (slides: readonly (readonly string[])[]) => Uint8Array;
|
|
3
|
-
export declare const pdfBytes: (text: string) => Uint8Array;
|
|
4
|
-
export declare const wavBytes: () => Uint8Array;
|
|
5
|
-
export declare const odtBytes: (heading: string, paragraphs: readonly string[]) => Uint8Array;
|
|
6
|
-
export declare const odsBytes: (sheets: readonly {
|
|
7
|
-
readonly name: string;
|
|
8
|
-
readonly rows: readonly (readonly string[])[];
|
|
9
|
-
}[]) => Uint8Array;
|
|
10
|
-
export declare const odpBytes: (slides: readonly {
|
|
11
|
-
readonly name: string;
|
|
12
|
-
readonly lines: readonly string[];
|
|
13
|
-
readonly note?: string;
|
|
14
|
-
}[]) => Uint8Array;
|
|
15
|
-
export declare const rtfBytes: (paragraphs: readonly string[]) => Uint8Array;
|
|
16
|
-
export declare const epubBytes: (title: string, chapters: readonly {
|
|
17
|
-
readonly title: string;
|
|
18
|
-
readonly body: string;
|
|
19
|
-
}[]) => Uint8Array;
|
|
20
|
-
export declare const ipynbText: (title: string, code: string, outputLines: readonly string[]) => string;
|
|
21
|
-
export declare const zipBytes: (files: Readonly<Record<string, string>>) => Uint8Array;
|
|
22
|
-
export declare const tarBytes: (files: Readonly<Record<string, string>>) => Uint8Array;
|
|
23
|
-
export declare const gzipBytes: (name: string, content: Uint8Array | string) => Uint8Array;
|
|
24
|
-
export declare const pngBytes: () => Uint8Array;
|
|
25
|
-
export interface FixtureRel {
|
|
26
|
-
readonly type: string;
|
|
27
|
-
readonly target: string;
|
|
28
|
-
readonly external?: boolean;
|
|
29
|
-
}
|
|
30
|
-
export interface Frame {
|
|
31
|
-
readonly x: number;
|
|
32
|
-
readonly y: number;
|
|
33
|
-
readonly w: number;
|
|
34
|
-
readonly h: number;
|
|
35
|
-
}
|
|
36
|
-
export interface TextBoxOptions {
|
|
37
|
-
readonly size?: number;
|
|
38
|
-
readonly ph?: {
|
|
39
|
-
readonly type?: string;
|
|
40
|
-
readonly idx?: number;
|
|
41
|
-
};
|
|
42
|
-
readonly autofit?: "shrink" | "grow";
|
|
43
|
-
}
|
|
44
|
-
export declare const textBox: (name: string, frame: Frame | undefined, lines: readonly string[], options?: TextBoxOptions) => string;
|
|
45
|
-
export declare const pictureFrame: (name: string, frame: Frame, rId: string, crop?: {
|
|
46
|
-
readonly l?: number;
|
|
47
|
-
readonly r?: number;
|
|
48
|
-
readonly t?: number;
|
|
49
|
-
readonly b?: number;
|
|
50
|
-
}) => string;
|
|
51
|
-
export declare const tableFrame: (name: string, frame: Frame, rows: readonly (readonly string[])[], height: number, size?: number) => string;
|
|
52
|
-
export interface DeckSlide {
|
|
53
|
-
readonly drawings: readonly string[];
|
|
54
|
-
readonly rels?: Readonly<Record<string, FixtureRel>>;
|
|
55
|
-
readonly hidden?: boolean;
|
|
56
|
-
readonly partNumber?: number;
|
|
57
|
-
}
|
|
58
|
-
export interface DeckOptions {
|
|
59
|
-
readonly slides: readonly DeckSlide[];
|
|
60
|
-
readonly media?: Readonly<Record<string, Uint8Array>>;
|
|
61
|
-
readonly width?: number;
|
|
62
|
-
readonly height?: number;
|
|
63
|
-
readonly untypedMedia?: boolean;
|
|
64
|
-
}
|
|
65
|
-
export declare const deckBytes: (options: DeckOptions) => Uint8Array;
|
|
66
|
-
export declare const pngOfSize: (width: number, height: number) => Uint8Array;
|
|
67
|
-
export declare const para: (text: string, style?: string) => string;
|
|
68
|
-
export declare const inlinePicture: (rId: string, width: number, height: number) => string;
|
|
69
|
-
export declare const field: (instruction: string, result: string | undefined) => string;
|
|
70
|
-
export interface WordOptions {
|
|
71
|
-
readonly body: readonly string[];
|
|
72
|
-
readonly rels?: Readonly<Record<string, FixtureRel>>;
|
|
73
|
-
readonly media?: Readonly<Record<string, Uint8Array>>;
|
|
74
|
-
readonly comments?: readonly string[];
|
|
75
|
-
}
|
|
76
|
-
export declare const wordBytes: (options: WordOptions) => Uint8Array;
|
|
77
|
-
export interface SheetFixture {
|
|
78
|
-
readonly name: string;
|
|
79
|
-
readonly rows: string;
|
|
80
|
-
}
|
|
81
|
-
export declare const workbookBytes: (sheets: readonly SheetFixture[], options?: {
|
|
82
|
-
readonly definedNames?: string;
|
|
83
|
-
readonly calcPr?: string;
|
|
84
|
-
}) => Uint8Array;
|
|
85
|
-
export interface PdfPageFixture {
|
|
86
|
-
readonly content: string;
|
|
87
|
-
readonly font?: string;
|
|
88
|
-
readonly extra?: string;
|
|
89
|
-
readonly size?: readonly [number, number];
|
|
90
|
-
}
|
|
91
|
-
export declare const pdfPagesBytes: (pages: readonly PdfPageFixture[]) => Uint8Array;
|
|
92
|
-
//# sourceMappingURL=testing.d.ts.map
|
package/dist/testing.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|