@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
package/dist/testing.js
DELETED
|
@@ -1,371 +0,0 @@
|
|
|
1
|
-
import { gzipSync, strToU8, zipSync } from "fflate";
|
|
2
|
-
const xmlEscape = (text) => text.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """);
|
|
3
|
-
const CONTENT_TYPES = (overrides) => `<?xml version="1.0" encoding="UTF-8"?>
|
|
4
|
-
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
|
|
5
|
-
<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
|
|
6
|
-
<Default Extension="xml" ContentType="application/xml"/>
|
|
7
|
-
${overrides}
|
|
8
|
-
</Types>`;
|
|
9
|
-
const RELS = (target) => `<?xml version="1.0" encoding="UTF-8"?>
|
|
10
|
-
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
11
|
-
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="${target}"/>
|
|
12
|
-
</Relationships>`;
|
|
13
|
-
export const docxBytes = (heading, paragraphs) => {
|
|
14
|
-
const body = [
|
|
15
|
-
`<w:p><w:pPr><w:pStyle w:val="Heading1"/></w:pPr><w:r><w:t>${xmlEscape(heading)}</w:t></w:r></w:p>`,
|
|
16
|
-
...paragraphs.map((text) => `<w:p><w:r><w:t xml:space="preserve">${xmlEscape(text)}</w:t></w:r></w:p>`),
|
|
17
|
-
].join("");
|
|
18
|
-
return zipSync({
|
|
19
|
-
"[Content_Types].xml": strToU8(CONTENT_TYPES('<Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>')),
|
|
20
|
-
"_rels/.rels": strToU8(RELS("word/document.xml")),
|
|
21
|
-
"word/document.xml": strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
22
|
-
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>${body}</w:body></w:document>`),
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
const slideXml = (lines) => `<?xml version="1.0" encoding="UTF-8"?>
|
|
26
|
-
<p:sld xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
|
|
27
|
-
<p:cSld><p:spTree>${lines.map((line) => `<p:sp><p:txBody><a:p><a:r><a:t>${xmlEscape(line)}</a:t></a:r></a:p></p:txBody></p:sp>`).join("")}</p:spTree></p:cSld>
|
|
28
|
-
</p:sld>`;
|
|
29
|
-
export const pptxBytes = (slides) => {
|
|
30
|
-
const files = {
|
|
31
|
-
"[Content_Types].xml": strToU8(CONTENT_TYPES('<Override PartName="/ppt/presentation.xml" ContentType="application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml"/>')),
|
|
32
|
-
"_rels/.rels": strToU8(RELS("ppt/presentation.xml")),
|
|
33
|
-
"ppt/presentation.xml": strToU8('<?xml version="1.0"?><p:presentation xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"/>'),
|
|
34
|
-
};
|
|
35
|
-
slides.forEach((lines, index) => {
|
|
36
|
-
files[`ppt/slides/slide${index + 1}.xml`] = strToU8(slideXml(lines));
|
|
37
|
-
});
|
|
38
|
-
return zipSync(files);
|
|
39
|
-
};
|
|
40
|
-
export const pdfBytes = (text) => {
|
|
41
|
-
const objects = [
|
|
42
|
-
"1 0 obj\n<< /Type /Catalog /Pages 2 0 R >>\nendobj\n",
|
|
43
|
-
"2 0 obj\n<< /Type /Pages /Kids [3 0 R] /Count 1 >>\nendobj\n",
|
|
44
|
-
"3 0 obj\n<< /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /Font << /F1 5 0 R >> >> >>\nendobj\n",
|
|
45
|
-
`4 0 obj\n<< /Length ${text.length + 31} >>\nstream\nBT /F1 12 Tf 72 720 Td (${text}) Tj ET\nendstream\nendobj\n`,
|
|
46
|
-
"5 0 obj\n<< /Type /Font /Subtype /Type1 /BaseFont /Helvetica >>\nendobj\n",
|
|
47
|
-
];
|
|
48
|
-
const header = "%PDF-1.4\n";
|
|
49
|
-
const offsets = [];
|
|
50
|
-
let position = header.length;
|
|
51
|
-
for (const object of objects) {
|
|
52
|
-
offsets.push(position);
|
|
53
|
-
position += object.length;
|
|
54
|
-
}
|
|
55
|
-
const xref = [
|
|
56
|
-
"xref",
|
|
57
|
-
`0 ${objects.length + 1}`,
|
|
58
|
-
"0000000000 65535 f ",
|
|
59
|
-
...offsets.map((offset) => `${String(offset).padStart(10, "0")} 00000 n `),
|
|
60
|
-
"",
|
|
61
|
-
].join("\n");
|
|
62
|
-
const trailer = `trailer\n<< /Size ${objects.length + 1} /Root 1 0 R >>\nstartxref\n${position}\n%%EOF\n`;
|
|
63
|
-
return strToU8(`${header}${objects.join("")}${xref}${trailer}`);
|
|
64
|
-
};
|
|
65
|
-
export const wavBytes = () => {
|
|
66
|
-
const sampleRate = 8000;
|
|
67
|
-
const data = new Uint8Array(sampleRate).fill(128);
|
|
68
|
-
const buffer = new ArrayBuffer(44 + data.length);
|
|
69
|
-
const view = new DataView(buffer);
|
|
70
|
-
const ascii = (offset, value) => {
|
|
71
|
-
for (let i = 0; i < value.length; i++) {
|
|
72
|
-
view.setUint8(offset + i, value.charCodeAt(i));
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
ascii(0, "RIFF");
|
|
76
|
-
view.setUint32(4, 36 + data.length, true);
|
|
77
|
-
ascii(8, "WAVE");
|
|
78
|
-
ascii(12, "fmt ");
|
|
79
|
-
view.setUint32(16, 16, true);
|
|
80
|
-
view.setUint16(20, 1, true);
|
|
81
|
-
view.setUint16(22, 1, true);
|
|
82
|
-
view.setUint32(24, sampleRate, true);
|
|
83
|
-
view.setUint32(28, sampleRate, true);
|
|
84
|
-
view.setUint16(32, 1, true);
|
|
85
|
-
view.setUint16(34, 8, true);
|
|
86
|
-
ascii(36, "data");
|
|
87
|
-
view.setUint32(40, data.length, true);
|
|
88
|
-
const bytes = new Uint8Array(buffer);
|
|
89
|
-
bytes.set(data, 44);
|
|
90
|
-
return bytes;
|
|
91
|
-
};
|
|
92
|
-
const storedMimetype = (mimetype) => [strToU8(mimetype), { level: 0 }];
|
|
93
|
-
export const odtBytes = (heading, paragraphs) => zipSync({
|
|
94
|
-
mimetype: storedMimetype("application/vnd.oasis.opendocument.text"),
|
|
95
|
-
"META-INF/manifest.xml": strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
96
|
-
<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" manifest:version="1.2">
|
|
97
|
-
<manifest:file-entry manifest:full-path="/" manifest:media-type="application/vnd.oasis.opendocument.text"/>
|
|
98
|
-
<manifest:file-entry manifest:full-path="content.xml" manifest:media-type="text/xml"/>
|
|
99
|
-
</manifest:manifest>`),
|
|
100
|
-
"meta.xml": strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
101
|
-
<office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><office:meta><dc:title>${xmlEscape(heading)}</dc:title></office:meta></office:document-meta>`),
|
|
102
|
-
"content.xml": strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
103
|
-
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0">
|
|
104
|
-
<office:automatic-styles><style:style style:name="P1" style:family="paragraph"/></office:automatic-styles>
|
|
105
|
-
<office:body><office:text>
|
|
106
|
-
<text:h text:style-name="Heading_20_1" text:outline-level="1">${xmlEscape(heading)}</text:h>
|
|
107
|
-
${paragraphs.map((text) => `<text:p text:style-name="P1">${xmlEscape(text)}</text:p>`).join("\n")}
|
|
108
|
-
<office:annotation><text:p>a reviewer's comment, not the document</text:p></office:annotation>
|
|
109
|
-
<text:list text:style-name="L1"><text:list-item><text:p>first item</text:p></text:list-item><text:list-item><text:p>second<text:s text:c="2"/>item</text:p></text:list-item></text:list>
|
|
110
|
-
<table:table table:name="T1"><table:table-column table:number-columns-repeated="2"/><table:table-row><table:table-cell office:value-type="string"><text:p>cell a</text:p></table:table-cell><table:table-cell office:value-type="string"><text:p>cell b</text:p></table:table-cell></table:table-row></table:table>
|
|
111
|
-
</office:text></office:body></office:document-content>`),
|
|
112
|
-
});
|
|
113
|
-
const odfPackage = (mimetype, content) => zipSync({
|
|
114
|
-
mimetype: storedMimetype(mimetype),
|
|
115
|
-
"META-INF/manifest.xml": strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
116
|
-
<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" manifest:version="1.2">
|
|
117
|
-
<manifest:file-entry manifest:full-path="/" manifest:media-type="${mimetype}"/>
|
|
118
|
-
<manifest:file-entry manifest:full-path="content.xml" manifest:media-type="text/xml"/>
|
|
119
|
-
</manifest:manifest>`),
|
|
120
|
-
"content.xml": strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
121
|
-
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0">
|
|
122
|
-
<office:body>${content}</office:body></office:document-content>`),
|
|
123
|
-
});
|
|
124
|
-
export const odsBytes = (sheets) => odfPackage("application/vnd.oasis.opendocument.spreadsheet", `<office:spreadsheet>${sheets
|
|
125
|
-
.map((sheet) => `<table:table table:name="${xmlEscape(sheet.name)}">${sheet.rows
|
|
126
|
-
.map((row) => `<table:table-row>${row
|
|
127
|
-
.map((cell) => `<table:table-cell office:value-type="string"><text:p>${xmlEscape(cell)}</text:p></table:table-cell>`)
|
|
128
|
-
.join("")}<table:table-cell table:number-columns-repeated="1013"/></table:table-row>`)
|
|
129
|
-
.join("")}<table:table-row table:number-rows-repeated="1048576"><table:table-cell table:number-columns-repeated="1024"/></table:table-row></table:table>`)
|
|
130
|
-
.join("")}</office:spreadsheet>`);
|
|
131
|
-
export const odpBytes = (slides) => odfPackage("application/vnd.oasis.opendocument.presentation", `<office:presentation>${slides
|
|
132
|
-
.map((slide) => `<draw:page draw:name="${xmlEscape(slide.name)}">` +
|
|
133
|
-
`<draw:frame><draw:text-box>${slide.lines.map((line) => `<text:p>${xmlEscape(line)}</text:p>`).join("")}</draw:text-box></draw:frame>${slide.note === undefined
|
|
134
|
-
? ""
|
|
135
|
-
: `<presentation:notes><draw:frame><draw:text-box><text:p>${xmlEscape(slide.note)}</text:p></draw:text-box></draw:frame></presentation:notes>`}</draw:page>`)
|
|
136
|
-
.join("")}</office:presentation>`);
|
|
137
|
-
export const rtfBytes = (paragraphs) => strToU8(`{\\rtf1\\ansi\\ansicpg1252\\deff0{\\fonttbl{\\f0\\froman Times New Roman;}}{\\*\\generator Not text;}${paragraphs.map((text) => `\\pard ${text.replaceAll("\\", "\\\\").replaceAll("{", "\\{").replaceAll("}", "\\}")}\\par`).join("")}\\pard\\trowd\\cellx1440\\cellx2880 left\\cell right\\cell\\row}`);
|
|
138
|
-
export const epubBytes = (title, chapters) => {
|
|
139
|
-
const xhtml = (heading, body) => `<?xml version="1.0" encoding="UTF-8"?>
|
|
140
|
-
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>${xmlEscape(heading)}</title></head><body><h1>${xmlEscape(heading)}</h1><p>${xmlEscape(body)}</p></body></html>`;
|
|
141
|
-
const files = {
|
|
142
|
-
mimetype: storedMimetype("application/epub+zip"),
|
|
143
|
-
"META-INF/container.xml": strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
144
|
-
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container"><rootfiles><rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/></rootfiles></container>`),
|
|
145
|
-
"OEBPS/content.opf": strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
146
|
-
<package xmlns="http://www.idpf.org/2007/opf" version="3.0" unique-identifier="id"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:title>${xmlEscape(title)}</dc:title><dc:identifier id="id">urn:uuid:fixture</dc:identifier></metadata>
|
|
147
|
-
<manifest><item id="nav" href="nav.xhtml" media-type="application/xhtml+xml" properties="nav"/>${chapters.map((_, index) => `<item id="c${index + 1}" href="text/chapter${index + 1}.xhtml" media-type="application/xhtml+xml"/>`).join("")}</manifest>
|
|
148
|
-
<spine><itemref idref="nav"/>${chapters.map((_, index) => `<itemref idref="c${index + 1}"/>`).join("")}</spine></package>`),
|
|
149
|
-
"OEBPS/nav.xhtml": strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
150
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops"><head><title>Contents</title></head><body><nav epub:type="toc"><ol>${chapters.map((chapter, index) => `<li><a href="text/chapter${index + 1}.xhtml">${xmlEscape(chapter.title)}</a></li>`).join("")}</ol></nav></body></html>`),
|
|
151
|
-
};
|
|
152
|
-
chapters.forEach((chapter, index) => {
|
|
153
|
-
files[`OEBPS/text/chapter${index + 1}.xhtml`] = strToU8(xhtml(chapter.title, chapter.body));
|
|
154
|
-
});
|
|
155
|
-
return zipSync(files);
|
|
156
|
-
};
|
|
157
|
-
export const ipynbText = (title, code, outputLines) => JSON.stringify({
|
|
158
|
-
cells: [
|
|
159
|
-
{ cell_type: "markdown", metadata: {}, source: [`# ${title}\n`, "\n", "Some prose about the analysis.\n"] },
|
|
160
|
-
{
|
|
161
|
-
cell_type: "code",
|
|
162
|
-
execution_count: 1,
|
|
163
|
-
metadata: {},
|
|
164
|
-
source: [code],
|
|
165
|
-
outputs: [
|
|
166
|
-
{ output_type: "stream", name: "stdout", text: outputLines.map((line) => `${line}\n`) },
|
|
167
|
-
{ output_type: "display_data", metadata: {}, data: { "image/png": "iVBORw0KGgo=" } },
|
|
168
|
-
],
|
|
169
|
-
},
|
|
170
|
-
],
|
|
171
|
-
metadata: { kernelspec: { language: "python", name: "python3" }, language_info: { name: "python" } },
|
|
172
|
-
nbformat: 4,
|
|
173
|
-
nbformat_minor: 5,
|
|
174
|
-
});
|
|
175
|
-
export const zipBytes = (files) => zipSync(Object.fromEntries(Object.entries(files).map(([path, text]) => [path, strToU8(text)])));
|
|
176
|
-
const TAR_BLOCK = 512;
|
|
177
|
-
const tarHeader = (path, size, type) => {
|
|
178
|
-
const block = new Uint8Array(TAR_BLOCK);
|
|
179
|
-
const put = (offset, value) => block.set(strToU8(value), offset);
|
|
180
|
-
put(0, path.slice(0, 100));
|
|
181
|
-
put(100, "0000644\0");
|
|
182
|
-
put(108, "0000000\0");
|
|
183
|
-
put(116, "0000000\0");
|
|
184
|
-
put(124, `${size.toString(8).padStart(11, "0")}\0`);
|
|
185
|
-
put(136, "00000000000\0");
|
|
186
|
-
block.fill(0x20, 148, 156);
|
|
187
|
-
put(156, type);
|
|
188
|
-
put(257, "ustar\0");
|
|
189
|
-
put(263, "00");
|
|
190
|
-
const sum = block.reduce((total, byte) => total + byte, 0);
|
|
191
|
-
put(148, `${sum.toString(8).padStart(6, "0")}\0 `);
|
|
192
|
-
return block;
|
|
193
|
-
};
|
|
194
|
-
const padded = (bytes) => {
|
|
195
|
-
const block = new Uint8Array(Math.ceil(bytes.length / TAR_BLOCK) * TAR_BLOCK);
|
|
196
|
-
block.set(bytes);
|
|
197
|
-
return block;
|
|
198
|
-
};
|
|
199
|
-
export const tarBytes = (files) => {
|
|
200
|
-
const parts = [];
|
|
201
|
-
for (const [path, text] of Object.entries(files)) {
|
|
202
|
-
const data = strToU8(text);
|
|
203
|
-
if (path.length > 100) {
|
|
204
|
-
parts.push(tarHeader("././@LongLink", path.length + 1, "L"), padded(strToU8(`${path}\0`)));
|
|
205
|
-
}
|
|
206
|
-
parts.push(tarHeader(path, data.length, path.endsWith("/") ? "5" : "0"), padded(data));
|
|
207
|
-
}
|
|
208
|
-
parts.push(new Uint8Array(TAR_BLOCK * 2));
|
|
209
|
-
const total = parts.reduce((sum, part) => sum + part.length, 0);
|
|
210
|
-
const tar = new Uint8Array(total);
|
|
211
|
-
let offset = 0;
|
|
212
|
-
for (const part of parts) {
|
|
213
|
-
tar.set(part, offset);
|
|
214
|
-
offset += part.length;
|
|
215
|
-
}
|
|
216
|
-
return tar;
|
|
217
|
-
};
|
|
218
|
-
export const gzipBytes = (name, content) => gzipSync(typeof content === "string" ? strToU8(content) : content, { filename: name });
|
|
219
|
-
export const pngBytes = () => Uint8Array.from(Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==", "base64"));
|
|
220
|
-
const EMU = 914_400;
|
|
221
|
-
const NS_P = 'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"';
|
|
222
|
-
const REL_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
|
|
223
|
-
const relsXml = (rels) => `<?xml version="1.0" encoding="UTF-8"?>
|
|
224
|
-
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">${Object.entries(rels)
|
|
225
|
-
.map(([id, rel]) => `<Relationship Id="${id}" Type="${REL_TYPE}/${rel.type}" Target="${xmlEscape(rel.target)}"${rel.external === true ? ' TargetMode="External"' : ""}/>`)
|
|
226
|
-
.join("")}</Relationships>`;
|
|
227
|
-
const xfrm = (frame, tag = "a:xfrm") => `<${tag}><a:off x="${Math.round(frame.x * EMU)}" y="${Math.round(frame.y * EMU)}"/><a:ext cx="${Math.round(frame.w * EMU)}" cy="${Math.round(frame.h * EMU)}"/></${tag}>`;
|
|
228
|
-
let drawingId = 10;
|
|
229
|
-
export const textBox = (name, frame, lines, options = {}) => {
|
|
230
|
-
drawingId += 1;
|
|
231
|
-
const ph = options.ph === undefined ? "" : `<p:ph${options.ph.type === undefined ? "" : ` type="${options.ph.type}"`}${options.ph.idx === undefined ? "" : ` idx="${options.ph.idx}"`}/>`;
|
|
232
|
-
const fit = options.autofit === "shrink" ? "<a:normAutofit/>" : options.autofit === "grow" ? "<a:spAutoFit/>" : "";
|
|
233
|
-
const size = options.size === undefined ? "" : ` sz="${options.size * 100}"`;
|
|
234
|
-
const paragraphs = lines.length === 0 ? "<a:p/>" : lines.map((line) => `<a:p><a:r><a:rPr lang="en-US"${size}/><a:t>${xmlEscape(line)}</a:t></a:r></a:p>`).join("");
|
|
235
|
-
return `<p:sp><p:nvSpPr><p:cNvPr id="${drawingId}" name="${xmlEscape(name)}"/><p:cNvSpPr/><p:nvPr>${ph}</p:nvPr></p:nvSpPr><p:spPr>${frame === undefined ? "" : xfrm(frame)}</p:spPr><p:txBody><a:bodyPr wrap="square">${fit}</a:bodyPr><a:lstStyle/>${paragraphs}</p:txBody></p:sp>`;
|
|
236
|
-
};
|
|
237
|
-
export const pictureFrame = (name, frame, rId, crop) => {
|
|
238
|
-
drawingId += 1;
|
|
239
|
-
const src = crop === undefined ? "" : `<a:srcRect l="${crop.l ?? 0}" r="${crop.r ?? 0}" t="${crop.t ?? 0}" b="${crop.b ?? 0}"/>`;
|
|
240
|
-
return `<p:pic><p:nvPicPr><p:cNvPr id="${drawingId}" name="${xmlEscape(name)}"/><p:cNvPicPr/><p:nvPr/></p:nvPicPr><p:blipFill><a:blip r:embed="${rId}"/>${src}<a:stretch><a:fillRect/></a:stretch></p:blipFill><p:spPr>${xfrm(frame)}<a:prstGeom prst="rect"><a:avLst/></a:prstGeom></p:spPr></p:pic>`;
|
|
241
|
-
};
|
|
242
|
-
export const tableFrame = (name, frame, rows, height, size = 18) => {
|
|
243
|
-
drawingId += 1;
|
|
244
|
-
const columns = Math.max(1, ...rows.map((row) => row.length));
|
|
245
|
-
const columnWidth = Math.round((frame.w * EMU) / columns);
|
|
246
|
-
const cells = (row) => row.map((cell) => `<a:tc><a:txBody><a:bodyPr/><a:lstStyle/><a:p><a:r><a:rPr lang="en-US" sz="${size * 100}"/><a:t>${xmlEscape(cell)}</a:t></a:r></a:p></a:txBody><a:tcPr/></a:tc>`).join("");
|
|
247
|
-
return `<p:graphicFrame><p:nvGraphicFramePr><p:cNvPr id="${drawingId}" name="${xmlEscape(name)}"/><p:cNvGraphicFramePr/><p:nvPr/></p:nvGraphicFramePr>${xfrm(frame, "p:xfrm")}<a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/table"><a:tbl><a:tblGrid>${Array.from({ length: columns }, () => `<a:gridCol w="${columnWidth}"/>`).join("")}</a:tblGrid>${rows.map((row) => `<a:tr h="${Math.round(height * EMU)}">${cells(row)}</a:tr>`).join("")}</a:tbl></a:graphicData></a:graphic></p:graphicFrame>`;
|
|
248
|
-
};
|
|
249
|
-
const MASTER = `<?xml version="1.0" encoding="UTF-8"?>
|
|
250
|
-
<p:sldMaster ${NS_P}><p:cSld><p:spTree><p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr><p:grpSpPr/>
|
|
251
|
-
<p:sp><p:nvSpPr><p:cNvPr id="2" name="Title Placeholder 1"/><p:cNvSpPr/><p:nvPr><p:ph type="title"/></p:nvPr></p:nvSpPr><p:spPr>${xfrm({ x: 0.92, y: 0.4, w: 11.5, h: 1.45 })}</p:spPr><p:txBody><a:bodyPr/><a:lstStyle/><a:p><a:r><a:t>Click to edit Master title style</a:t></a:r></a:p></p:txBody></p:sp>
|
|
252
|
-
<p:sp><p:nvSpPr><p:cNvPr id="3" name="Text Placeholder 2"/><p:cNvSpPr/><p:nvPr><p:ph type="body" idx="1"/></p:nvPr></p:nvSpPr><p:spPr>${xfrm({ x: 0.92, y: 2, w: 11.5, h: 4.75 })}</p:spPr><p:txBody><a:bodyPr/><a:lstStyle/><a:p><a:r><a:t>Click to edit Master text styles</a:t></a:r></a:p></p:txBody></p:sp>
|
|
253
|
-
</p:spTree></p:cSld><p:clrMap bg1="lt1" tx1="dk1" bg2="lt2" tx2="dk2" accent1="accent1" accent2="accent2" accent3="accent3" accent4="accent4" accent5="accent5" accent6="accent6" hlink="hlink" folHlink="folHlink"/><p:sldLayoutIdLst><p:sldLayoutId id="2147483649" r:id="rId1"/></p:sldLayoutIdLst>
|
|
254
|
-
<p:txStyles><p:titleStyle><a:lvl1pPr><a:defRPr sz="4400"/></a:lvl1pPr></p:titleStyle><p:bodyStyle><a:lvl1pPr><a:defRPr sz="2800"/></a:lvl1pPr><a:lvl2pPr><a:defRPr sz="2400"/></a:lvl2pPr></p:bodyStyle><p:otherStyle/></p:txStyles></p:sldMaster>`;
|
|
255
|
-
const LAYOUT = `<?xml version="1.0" encoding="UTF-8"?>
|
|
256
|
-
<p:sldLayout ${NS_P} type="obj"><p:cSld name="Title and Content"><p:spTree><p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr><p:grpSpPr/>
|
|
257
|
-
<p:sp><p:nvSpPr><p:cNvPr id="2" name="Title 1"/><p:cNvSpPr/><p:nvPr><p:ph type="title"/></p:nvPr></p:nvSpPr><p:spPr/><p:txBody><a:bodyPr/><a:lstStyle/><a:p><a:r><a:t>Click to edit Master title style</a:t></a:r></a:p></p:txBody></p:sp>
|
|
258
|
-
<p:sp><p:nvSpPr><p:cNvPr id="3" name="Content Placeholder 2"/><p:cNvSpPr/><p:nvPr><p:ph idx="1"/></p:nvPr></p:nvSpPr><p:spPr/><p:txBody><a:bodyPr/><a:lstStyle/><a:p><a:r><a:t>Click to edit Master text styles</a:t></a:r></a:p></p:txBody></p:sp>
|
|
259
|
-
</p:spTree></p:cSld></p:sldLayout>`;
|
|
260
|
-
export const deckBytes = (options) => {
|
|
261
|
-
const width = Math.round((options.width ?? 13.333) * EMU);
|
|
262
|
-
const height = Math.round((options.height ?? 7.5) * EMU);
|
|
263
|
-
const numbers = options.slides.map((slide, index) => slide.partNumber ?? index + 1);
|
|
264
|
-
const types = [
|
|
265
|
-
'<Override PartName="/ppt/presentation.xml" ContentType="application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml"/>',
|
|
266
|
-
'<Override PartName="/ppt/slideMasters/slideMaster1.xml" ContentType="application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml"/>',
|
|
267
|
-
'<Override PartName="/ppt/slideLayouts/slideLayout1.xml" ContentType="application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml"/>',
|
|
268
|
-
...numbers.map((number) => `<Override PartName="/ppt/slides/slide${number}.xml" ContentType="application/vnd.openxmlformats-officedocument.presentationml.slide+xml"/>`),
|
|
269
|
-
options.untypedMedia === true ? "" : '<Default Extension="png" ContentType="image/png"/>',
|
|
270
|
-
].join("");
|
|
271
|
-
const files = new Map([
|
|
272
|
-
["[Content_Types].xml", strToU8(CONTENT_TYPES(types))],
|
|
273
|
-
["_rels/.rels", strToU8(RELS("ppt/presentation.xml"))],
|
|
274
|
-
["ppt/presentation.xml", strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
275
|
-
<p:presentation ${NS_P}><p:sldMasterIdLst><p:sldMasterId id="2147483648" r:id="rId1"/></p:sldMasterIdLst><p:sldIdLst>${numbers.map((number, index) => `<p:sldId id="${256 + index}" r:id="rId${number + 1}"/>`).join("")}</p:sldIdLst><p:sldSz cx="${width}" cy="${height}"/><p:notesSz cx="6858000" cy="9144000"/></p:presentation>`)],
|
|
276
|
-
["ppt/_rels/presentation.xml.rels", strToU8(relsXml({
|
|
277
|
-
rId1: { type: "slideMaster", target: "slideMasters/slideMaster1.xml" },
|
|
278
|
-
...Object.fromEntries(numbers.map((number) => [`rId${number + 1}`, { type: "slide", target: `slides/slide${number}.xml` }])),
|
|
279
|
-
}))],
|
|
280
|
-
["ppt/slideMasters/slideMaster1.xml", strToU8(MASTER)],
|
|
281
|
-
["ppt/slideMasters/_rels/slideMaster1.xml.rels", strToU8(relsXml({ rId1: { type: "slideLayout", target: "../slideLayouts/slideLayout1.xml" } }))],
|
|
282
|
-
["ppt/slideLayouts/slideLayout1.xml", strToU8(LAYOUT)],
|
|
283
|
-
["ppt/slideLayouts/_rels/slideLayout1.xml.rels", strToU8(relsXml({ rId1: { type: "slideMaster", target: "../slideMasters/slideMaster1.xml" } }))],
|
|
284
|
-
]);
|
|
285
|
-
options.slides.forEach((slide, index) => {
|
|
286
|
-
const number = numbers[index] ?? index + 1;
|
|
287
|
-
files.set(`ppt/slides/slide${number}.xml`, strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
288
|
-
<p:sld ${NS_P}${slide.hidden === true ? ' show="0"' : ""}><p:cSld><p:spTree><p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr><p:grpSpPr/>${slide.drawings.join("")}</p:spTree></p:cSld></p:sld>`));
|
|
289
|
-
files.set(`ppt/slides/_rels/slide${number}.xml.rels`, strToU8(relsXml({ rId1: { type: "slideLayout", target: "../slideLayouts/slideLayout1.xml" }, ...slide.rels })));
|
|
290
|
-
});
|
|
291
|
-
for (const [name, bytes] of Object.entries(options.media ?? {})) {
|
|
292
|
-
files.set(`ppt/media/${name}`, bytes);
|
|
293
|
-
}
|
|
294
|
-
return zipSync(Object.fromEntries(files));
|
|
295
|
-
};
|
|
296
|
-
export const pngOfSize = (width, height) => {
|
|
297
|
-
const png = pngBytes().slice();
|
|
298
|
-
const view = new DataView(png.buffer, png.byteOffset, png.byteLength);
|
|
299
|
-
view.setUint32(16, width);
|
|
300
|
-
view.setUint32(20, height);
|
|
301
|
-
return png;
|
|
302
|
-
};
|
|
303
|
-
const NS_W = 'xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture"';
|
|
304
|
-
export const para = (text, style) => `<w:p>${style === undefined ? "" : `<w:pPr><w:pStyle w:val="${style}"/></w:pPr>`}${text === "" ? "" : `<w:r><w:t xml:space="preserve">${xmlEscape(text)}</w:t></w:r>`}</w:p>`;
|
|
305
|
-
export const inlinePicture = (rId, width, height) => `<w:p><w:r><w:drawing><wp:inline><wp:extent cx="${Math.round(width * EMU)}" cy="${Math.round(height * EMU)}"/><wp:docPr id="1" name="Picture 1"/><a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture"><pic:pic><pic:blipFill><a:blip r:embed="${rId}"/></pic:blipFill></pic:pic></a:graphicData></a:graphic></wp:inline></w:drawing></w:r></w:p>`;
|
|
306
|
-
export const field = (instruction, result) => `<w:p><w:r><w:fldChar w:fldCharType="begin"/></w:r><w:r><w:instrText xml:space="preserve"> ${xmlEscape(instruction)} </w:instrText></w:r>${result === undefined ? "" : `<w:r><w:fldChar w:fldCharType="separate"/></w:r><w:r><w:t>${xmlEscape(result)}</w:t></w:r>`}<w:r><w:fldChar w:fldCharType="end"/></w:r></w:p>`;
|
|
307
|
-
const STYLES = `<?xml version="1.0" encoding="UTF-8"?>
|
|
308
|
-
<w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:style w:type="paragraph" w:default="1" w:styleId="Normal"><w:name w:val="Normal"/></w:style><w:style w:type="paragraph" w:styleId="berschrift1"><w:name w:val="heading 1"/><w:basedOn w:val="Normal"/></w:style><w:style w:type="paragraph" w:styleId="berschrift2"><w:name w:val="heading 2"/><w:basedOn w:val="Normal"/></w:style><w:style w:type="paragraph" w:styleId="Callout"><w:name w:val="Callout"/><w:basedOn w:val="berschrift2"/></w:style></w:styles>`;
|
|
309
|
-
export const wordBytes = (options) => {
|
|
310
|
-
const commentRels = options.comments === undefined ? {} : { rIdComments: { type: "comments", target: "comments.xml" } };
|
|
311
|
-
const files = new Map([
|
|
312
|
-
["[Content_Types].xml", strToU8(CONTENT_TYPES([
|
|
313
|
-
'<Default Extension="png" ContentType="image/png"/>',
|
|
314
|
-
'<Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>',
|
|
315
|
-
'<Override PartName="/word/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/>',
|
|
316
|
-
options.comments === undefined ? "" : '<Override PartName="/word/comments.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml"/>',
|
|
317
|
-
].join("")))],
|
|
318
|
-
["_rels/.rels", strToU8(RELS("word/document.xml"))],
|
|
319
|
-
["word/styles.xml", strToU8(STYLES)],
|
|
320
|
-
["word/document.xml", strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
321
|
-
<w:document ${NS_W}><w:body>${options.body.join("")}<w:sectPr><w:pgSz w:w="12240" w:h="15840"/><w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:gutter="0"/></w:sectPr></w:body></w:document>`)],
|
|
322
|
-
]);
|
|
323
|
-
if (options.comments !== undefined) {
|
|
324
|
-
files.set("word/comments.xml", strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
325
|
-
<w:comments xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">${options.comments.map((text, index) => `<w:comment w:id="${index}" w:author="Reviewer"><w:p><w:r><w:t>${xmlEscape(text)}</w:t></w:r></w:p></w:comment>`).join("")}</w:comments>`));
|
|
326
|
-
}
|
|
327
|
-
files.set("word/_rels/document.xml.rels", strToU8(relsXml({ rIdStyles: { type: "styles", target: "styles.xml" }, ...options.rels, ...commentRels })));
|
|
328
|
-
for (const [name, bytes] of Object.entries(options.media ?? {})) {
|
|
329
|
-
files.set(`word/media/${name}`, bytes);
|
|
330
|
-
}
|
|
331
|
-
return zipSync(Object.fromEntries(files));
|
|
332
|
-
};
|
|
333
|
-
export const workbookBytes = (sheets, options = {}) => {
|
|
334
|
-
const files = new Map([
|
|
335
|
-
["[Content_Types].xml", strToU8(CONTENT_TYPES([
|
|
336
|
-
'<Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>',
|
|
337
|
-
...sheets.map((_, index) => `<Override PartName="/xl/worksheets/sheet${index + 1}.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>`),
|
|
338
|
-
].join("")))],
|
|
339
|
-
["_rels/.rels", strToU8(RELS("xl/workbook.xml"))],
|
|
340
|
-
["xl/workbook.xml", strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
341
|
-
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><sheets>${sheets.map((sheet, index) => `<sheet name="${xmlEscape(sheet.name)}" sheetId="${index + 1}" r:id="rId${index + 1}"/>`).join("")}</sheets>${options.definedNames === undefined ? "" : `<definedNames>${options.definedNames}</definedNames>`}${options.calcPr ?? ""}</workbook>`)],
|
|
342
|
-
["xl/_rels/workbook.xml.rels", strToU8(relsXml(Object.fromEntries(sheets.map((_, index) => [`rId${index + 1}`, { type: "worksheet", target: `worksheets/sheet${index + 1}.xml` }]))))],
|
|
343
|
-
]);
|
|
344
|
-
sheets.forEach((sheet, index) => {
|
|
345
|
-
files.set(`xl/worksheets/sheet${index + 1}.xml`, strToU8(`<?xml version="1.0" encoding="UTF-8"?>
|
|
346
|
-
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><sheetData>${sheet.rows}</sheetData></worksheet>`));
|
|
347
|
-
});
|
|
348
|
-
return zipSync(Object.fromEntries(files));
|
|
349
|
-
};
|
|
350
|
-
export const pdfPagesBytes = (pages) => {
|
|
351
|
-
const objects = ["", ""];
|
|
352
|
-
const add = (body) => objects.push(body);
|
|
353
|
-
const kids = pages.map((page) => {
|
|
354
|
-
const font = add(`<< /Type /Font /Subtype /${page.font === undefined ? "Type1" : "TrueType"} /BaseFont /${page.font ?? "Helvetica"} >>`);
|
|
355
|
-
const content = add(`<< /Length ${page.content.length} >>\nstream\n${page.content}\nendstream`);
|
|
356
|
-
const [width, height] = page.size ?? [612, 792];
|
|
357
|
-
return add(`<< /Type /Page /Parent 2 0 R /MediaBox [0 0 ${width} ${height}] /Contents ${content} 0 R /Resources << /Font << /F1 ${font} 0 R >> >> ${page.extra ?? ""} >>`);
|
|
358
|
-
});
|
|
359
|
-
objects[0] = "<< /Type /Catalog /Pages 2 0 R >>";
|
|
360
|
-
objects[1] = `<< /Type /Pages /Kids [${kids.map((kid) => `${kid} 0 R`).join(" ")}] /Count ${kids.length} >>`;
|
|
361
|
-
let out = "%PDF-1.4\n";
|
|
362
|
-
const offsets = objects.map((body, index) => {
|
|
363
|
-
const offset = out.length;
|
|
364
|
-
out += `${index + 1} 0 obj\n${body}\nendobj\n`;
|
|
365
|
-
return offset;
|
|
366
|
-
});
|
|
367
|
-
const xref = out.length;
|
|
368
|
-
out += `xref\n0 ${objects.length + 1}\n0000000000 65535 f \n${offsets.map((offset) => `${String(offset).padStart(10, "0")} 00000 n `).join("\n")}\ntrailer\n<< /Size ${objects.length + 1} /Root 1 0 R >>\nstartxref\n${xref}\n%%EOF\n`;
|
|
369
|
-
return strToU8(out);
|
|
370
|
-
};
|
|
371
|
-
//# sourceMappingURL=testing.js.map
|
package/dist/testing.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
package/src/lib/formats.test.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { isCandidatePath } from "./formats.js";
|
|
2
|
-
import { isDeriveIgnored } from "./derive.js";
|
|
3
|
-
|
|
4
|
-
describe("the candidate pre-filter (what the daemon runs over every watcher batch)", () => {
|
|
5
|
-
test("derivable extensions pass, case-blind", () => {
|
|
6
|
-
for (const path of [
|
|
7
|
-
"docs/spec.docx",
|
|
8
|
-
"a/b/Report.PDF",
|
|
9
|
-
"photo.JPEG",
|
|
10
|
-
"call.mp3",
|
|
11
|
-
"deck.pptx",
|
|
12
|
-
"page.html",
|
|
13
|
-
"analysis.ipynb",
|
|
14
|
-
"letter.odt",
|
|
15
|
-
"book.EPUB",
|
|
16
|
-
"bundle.zip",
|
|
17
|
-
"release.tar.gz",
|
|
18
|
-
"server.log.gz",
|
|
19
|
-
"backup.TAR",
|
|
20
|
-
"tool.7z",
|
|
21
|
-
]) {
|
|
22
|
-
expect(isCandidatePath(path), path).toBe(true);
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
test("code and plain text never cost a spawn", () => {
|
|
27
|
-
for (const path of ["src/index.ts", "README.md", "data.csv", "notes.txt", "legacy.doc", "font.woff2"]) {
|
|
28
|
-
expect(isCandidatePath(path), path).toBe(false);
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
describe("the derive floor (what never gets a shadow, whoever asks)", () => {
|
|
34
|
-
test("machine subtrees, state, the reference shelf and agent worktrees are refused", () => {
|
|
35
|
-
for (const path of [
|
|
36
|
-
"node_modules/pkg/manual.pdf",
|
|
37
|
-
".intentic/local/cache/derived/x.docx",
|
|
38
|
-
"refs/other-repo/spec.docx",
|
|
39
|
-
".claude/worktrees/fix/docs/a.pdf",
|
|
40
|
-
]) {
|
|
41
|
-
expect(isDeriveIgnored(path), path).toBe(true);
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
test("ordinary workspace documents are not", () => {
|
|
46
|
-
for (const path of ["docs/spec.docx", "repo/assets/logo.png", "a repo/refs/inner.pdf"]) {
|
|
47
|
-
expect(isDeriveIgnored(path), path).toBe(false);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
});
|