@intentic/fileq 1.326.0 → 1.328.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/testing.js DELETED
@@ -1,371 +0,0 @@
1
- import { gzipSync, strToU8, zipSync } from "fflate";
2
- const xmlEscape = (text) => text.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll('"', "&quot;");
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
@@ -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
- });