@intentic/fileq 1.319.0 → 1.320.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +4 -4
- package/dist/lib/check/{docx.d.ts → check-docx.d.ts} +1 -1
- package/dist/lib/check/check-docx.d.ts.map +1 -0
- package/dist/lib/check/{docx.js → check-docx.js} +46 -14
- package/dist/lib/check/check-docx.js.map +1 -0
- package/dist/lib/check/{pdf.d.ts → check-pdf.d.ts} +1 -1
- package/dist/lib/check/check-pdf.d.ts.map +1 -0
- package/dist/lib/check/{pdf.js → check-pdf.js} +4 -2
- package/dist/lib/check/check-pdf.js.map +1 -0
- package/dist/lib/check/{pptx.d.ts → check-pptx.d.ts} +1 -1
- package/dist/lib/check/check-pptx.d.ts.map +1 -0
- package/dist/lib/check/{pptx.js → check-pptx.js} +18 -5
- package/dist/lib/check/check-pptx.js.map +1 -0
- package/dist/lib/check/{xlsx.d.ts → check-xlsx.d.ts} +1 -1
- package/dist/lib/check/check-xlsx.d.ts.map +1 -0
- package/dist/lib/check/{xlsx.js → check-xlsx.js} +17 -6
- package/dist/lib/check/check-xlsx.js.map +1 -0
- package/dist/lib/check/check.js +4 -4
- package/dist/lib/check/check.js.map +1 -1
- package/dist/lib/derive.d.ts.map +1 -1
- package/dist/lib/derive.js +4 -1
- package/dist/lib/derive.js.map +1 -1
- package/package.json +6 -6
- package/src/lib/check/{docx.ts → check-docx.ts} +112 -27
- package/src/lib/check/{pdf.ts → check-pdf.ts} +23 -4
- package/src/lib/check/{pptx.ts → check-pptx.ts} +48 -11
- package/src/lib/check/{xlsx.ts → check-xlsx.ts} +20 -6
- package/src/lib/check/check.test.ts +99 -27
- package/src/lib/check/check.ts +4 -4
- package/src/lib/derive.ts +4 -1
- package/src/render.integration.test.ts +80 -56
- package/dist/lib/check/docx.d.ts.map +0 -1
- package/dist/lib/check/docx.js.map +0 -1
- package/dist/lib/check/pdf.d.ts.map +0 -1
- package/dist/lib/check/pdf.js.map +0 -1
- package/dist/lib/check/pptx.d.ts.map +0 -1
- package/dist/lib/check/pptx.js.map +0 -1
- package/dist/lib/check/xlsx.d.ts.map +0 -1
- package/dist/lib/check/xlsx.js.map +0 -1
|
@@ -1,11 +1,24 @@
|
|
|
1
1
|
import { strToU8 } from "fflate";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import {
|
|
3
|
+
deckBytes,
|
|
4
|
+
field,
|
|
5
|
+
inlinePicture,
|
|
6
|
+
para,
|
|
7
|
+
pdfBytes,
|
|
8
|
+
pdfPagesBytes,
|
|
9
|
+
pictureFrame,
|
|
10
|
+
pngOfSize,
|
|
11
|
+
tableFrame,
|
|
12
|
+
textBox,
|
|
13
|
+
wordBytes,
|
|
14
|
+
workbookBytes,
|
|
15
|
+
} from "../../testing.js";
|
|
16
|
+
import { checkDocx } from "./check-docx.js";
|
|
4
17
|
import { leftoverText, type CheckReport } from "./finding.js";
|
|
5
|
-
import { checkPdf } from "./pdf.js";
|
|
6
|
-
import { checkPptx } from "./pptx.js";
|
|
18
|
+
import { checkPdf } from "./check-pdf.js";
|
|
19
|
+
import { checkPptx } from "./check-pptx.js";
|
|
7
20
|
import { estimateText, wrappedLines, type Paragraph } from "./text-fit.js";
|
|
8
|
-
import { checkXlsx } from "./xlsx.js";
|
|
21
|
+
import { checkXlsx } from "./check-xlsx.js";
|
|
9
22
|
import { parseXml } from "./xml-tree.js";
|
|
10
23
|
|
|
11
24
|
// Every checker against a document built with one known defect, and against a clean one, which must come back with
|
|
@@ -52,7 +65,9 @@ describe("pptx", () => {
|
|
|
52
65
|
test("a drawing wholly off the slide is an error, one bleeding past an edge a warning with how far", () => {
|
|
53
66
|
const report = checkPptx(
|
|
54
67
|
deckBytes({
|
|
55
|
-
slides: [
|
|
68
|
+
slides: [
|
|
69
|
+
{ drawings: [textBox("Gone", { x: 14, y: 1, w: 2, h: 1 }, ["off"]), textBox("Bleed", { x: 12, y: 1, w: 3, h: 1 }, ["partly"])] },
|
|
70
|
+
],
|
|
56
71
|
}),
|
|
57
72
|
);
|
|
58
73
|
expect(found(report)).toEqual([
|
|
@@ -100,7 +115,10 @@ describe("pptx", () => {
|
|
|
100
115
|
deckBytes({
|
|
101
116
|
slides: [
|
|
102
117
|
{
|
|
103
|
-
drawings: [
|
|
118
|
+
drawings: [
|
|
119
|
+
pictureFrame("Gone", { x: 1, y: 1, w: 4, h: 3 }, "rId2"),
|
|
120
|
+
pictureFrame("Undefined", { x: 6, y: 1, w: 4, h: 3 }, "rId9"),
|
|
121
|
+
],
|
|
104
122
|
rels: { rId2: { type: "image", target: "../media/missing.png" } },
|
|
105
123
|
},
|
|
106
124
|
],
|
|
@@ -116,7 +134,12 @@ describe("pptx", () => {
|
|
|
116
134
|
test("an image linked from outside the file is a warning naming where it points", () => {
|
|
117
135
|
const report = checkPptx(
|
|
118
136
|
deckBytes({
|
|
119
|
-
slides: [
|
|
137
|
+
slides: [
|
|
138
|
+
{
|
|
139
|
+
drawings: [pictureFrame("Logo", { x: 1, y: 1, w: 4, h: 3 }, "rId2")],
|
|
140
|
+
rels: { rId2: { type: "image", target: "file:///C:/Users/me/logo.png", external: true } },
|
|
141
|
+
},
|
|
142
|
+
],
|
|
120
143
|
}),
|
|
121
144
|
);
|
|
122
145
|
expect(found(report)).toEqual([["warning", "linked-image", 'slide 1 · "Logo"']]);
|
|
@@ -128,7 +151,10 @@ describe("pptx", () => {
|
|
|
128
151
|
deckBytes({
|
|
129
152
|
slides: [
|
|
130
153
|
{
|
|
131
|
-
drawings: [
|
|
154
|
+
drawings: [
|
|
155
|
+
pictureFrame("Wide", { x: 1, y: 1, w: 4, h: 1 }, "rId2"),
|
|
156
|
+
pictureFrame("Cropped", { x: 6, y: 1, w: 4, h: 3 }, "rId2", { l: 60_000, r: 40_000 }),
|
|
157
|
+
],
|
|
132
158
|
rels: { rId2: IMAGE },
|
|
133
159
|
},
|
|
134
160
|
],
|
|
@@ -147,7 +173,9 @@ describe("pptx", () => {
|
|
|
147
173
|
test("a picture cropped to its box's proportions is not stretched", () => {
|
|
148
174
|
const report = checkPptx(
|
|
149
175
|
deckBytes({
|
|
150
|
-
slides: [
|
|
176
|
+
slides: [
|
|
177
|
+
{ drawings: [pictureFrame("Banner", { x: 1, y: 1, w: 4, h: 1.5 }, "rId2", { t: 25_000, b: 25_000 })], rels: { rId2: IMAGE } },
|
|
178
|
+
],
|
|
151
179
|
media: { "image1.png": pngOfSize(400, 300) },
|
|
152
180
|
}),
|
|
153
181
|
);
|
|
@@ -155,7 +183,8 @@ describe("pptx", () => {
|
|
|
155
183
|
});
|
|
156
184
|
|
|
157
185
|
test("text that cannot fit its box is a warning with the estimate, pointing at render", () => {
|
|
158
|
-
const long =
|
|
186
|
+
const long =
|
|
187
|
+
"This is a very long sentence that will surely not fit in a small box of three inches at twenty four points, and it goes on and on.";
|
|
159
188
|
const report = checkPptx(
|
|
160
189
|
deckBytes({
|
|
161
190
|
slides: [
|
|
@@ -177,7 +206,10 @@ describe("pptx", () => {
|
|
|
177
206
|
{
|
|
178
207
|
drawings: [
|
|
179
208
|
textBox("Fits", { x: 1, y: 1, w: 6, h: 1.2 }, ["Two lines of", "comfortable text"], { size: 24 }),
|
|
180
|
-
textBox("Grows", { x: 1, y: 3, w: 3, h: 0.5 }, ["A sentence long enough to need three or four lines here."], {
|
|
209
|
+
textBox("Grows", { x: 1, y: 3, w: 3, h: 0.5 }, ["A sentence long enough to need three or four lines here."], {
|
|
210
|
+
size: 18,
|
|
211
|
+
autofit: "grow",
|
|
212
|
+
}),
|
|
181
213
|
],
|
|
182
214
|
},
|
|
183
215
|
],
|
|
@@ -187,9 +219,14 @@ describe("pptx", () => {
|
|
|
187
219
|
});
|
|
188
220
|
|
|
189
221
|
test("shrink-on-overflow says PowerPoint shows it overflowing until edited", () => {
|
|
190
|
-
const long =
|
|
191
|
-
|
|
192
|
-
|
|
222
|
+
const long =
|
|
223
|
+
"A paragraph much too long for its box, which PowerPoint only shrinks once somebody edits the text and LibreOffice shrinks at once.";
|
|
224
|
+
const report = checkPptx(
|
|
225
|
+
deckBytes({ slides: [{ drawings: [textBox("Body", { x: 1, y: 1, w: 3, h: 0.6 }, [long], { size: 24, autofit: "shrink" })] }] }),
|
|
226
|
+
);
|
|
227
|
+
expect(messageOf(report, "text-overflow")).toContain(
|
|
228
|
+
"shrink-on-overflow is on, so LibreOffice shrinks it but PowerPoint shows it overflowing until the text is edited",
|
|
229
|
+
);
|
|
193
230
|
});
|
|
194
231
|
|
|
195
232
|
test("a table whose rows run past the bottom of the slide is a warning", () => {
|
|
@@ -233,7 +270,14 @@ describe("docx", () => {
|
|
|
233
270
|
test("a well-made document has nothing to report", () => {
|
|
234
271
|
const report = checkDocx(
|
|
235
272
|
wordBytes({
|
|
236
|
-
body: [
|
|
273
|
+
body: [
|
|
274
|
+
para("Report", "berschrift1"),
|
|
275
|
+
para("The body of the report."),
|
|
276
|
+
'<w:p><w:bookmarkStart w:id="0" w:name="results"/><w:bookmarkEnd w:id="0"/></w:p>',
|
|
277
|
+
'<w:p><w:hyperlink w:anchor="results"><w:r><w:t>see results</w:t></w:r></w:hyperlink></w:p>',
|
|
278
|
+
inlinePicture("rId5", 6, 3),
|
|
279
|
+
field("PAGE", "1"),
|
|
280
|
+
],
|
|
237
281
|
rels: { rId5: DOC_IMAGE },
|
|
238
282
|
media: { "image1.png": pngOfSize(600, 300) },
|
|
239
283
|
}),
|
|
@@ -243,13 +287,21 @@ describe("docx", () => {
|
|
|
243
287
|
});
|
|
244
288
|
|
|
245
289
|
test("a link to a bookmark that is not there is an error, located by its paragraph", () => {
|
|
246
|
-
const report = checkDocx(
|
|
290
|
+
const report = checkDocx(
|
|
291
|
+
wordBytes({
|
|
292
|
+
body: [para("Intro", "berschrift1"), '<w:p><w:hyperlink w:anchor="nowhere"><w:r><w:t>see section</w:t></w:r></w:hyperlink></w:p>'],
|
|
293
|
+
}),
|
|
294
|
+
);
|
|
247
295
|
expect(found(report)).toEqual([["error", "broken-link", 'paragraph 2 · "see section"']]);
|
|
248
|
-
expect(messageOf(report, "broken-link")).toBe(
|
|
296
|
+
expect(messageOf(report, "broken-link")).toBe(
|
|
297
|
+
'the link "see section" points to bookmark "nowhere", which is not in the document, so clicking it goes nowhere',
|
|
298
|
+
);
|
|
249
299
|
});
|
|
250
300
|
|
|
251
301
|
test("a cross-reference to a missing bookmark, and a field showing Word's error, are errors said once", () => {
|
|
252
|
-
const report = checkDocx(
|
|
302
|
+
const report = checkDocx(
|
|
303
|
+
wordBytes({ body: [field("PAGEREF _Ref999 \\h", "3"), field("REF _Ref123 \\h", "Error! Reference source not found.")] }),
|
|
304
|
+
);
|
|
253
305
|
expect(found(report)).toEqual([
|
|
254
306
|
["error", "broken-reference", 'paragraph 1 · "3"'],
|
|
255
307
|
["error", "field-error", 'paragraph 2 · "Error! Reference source not found."'],
|
|
@@ -281,7 +333,9 @@ describe("docx", () => {
|
|
|
281
333
|
["error", "missing-image", "paragraph 2"],
|
|
282
334
|
["warning", "wide-image", "paragraph 1"],
|
|
283
335
|
]);
|
|
284
|
-
expect(messageOf(report, "wide-image")).toBe(
|
|
336
|
+
expect(messageOf(report, "wide-image")).toBe(
|
|
337
|
+
"a picture is 9 in wide in a 6.5 in text column, so it runs into the margin or is cut off; scale it to fit",
|
|
338
|
+
);
|
|
285
339
|
});
|
|
286
340
|
|
|
287
341
|
test("what a draft leaves behind: tracked changes, comments, a control showing its prompt, filler text", () => {
|
|
@@ -289,7 +343,7 @@ describe("docx", () => {
|
|
|
289
343
|
wordBytes({
|
|
290
344
|
body: [
|
|
291
345
|
'<w:p><w:ins w:id="1" w:author="a"><w:r><w:t>new words</w:t></w:r></w:ins></w:p>',
|
|
292
|
-
|
|
346
|
+
"<w:sdt><w:sdtPr><w:showingPlcHdr/></w:sdtPr><w:sdtContent><w:p><w:r><w:t>Click or tap here to enter text.</w:t></w:r></w:p></w:sdtContent></w:sdt>",
|
|
293
347
|
para("Lorem ipsum dolor sit amet."),
|
|
294
348
|
],
|
|
295
349
|
comments: ["check this figure"],
|
|
@@ -316,7 +370,9 @@ const cell = (ref: string, inner: string, type?: string): string => `<c r="${ref
|
|
|
316
370
|
|
|
317
371
|
describe("xlsx", () => {
|
|
318
372
|
test("a workbook of values and computed formulas has nothing to report", () => {
|
|
319
|
-
const report = checkXlsx(
|
|
373
|
+
const report = checkXlsx(
|
|
374
|
+
workbookBytes([{ name: "Sheet1", rows: `<row r="1">${cell("A1", "<v>1</v>")}${cell("B1", "<f>A1*2</f><v>2</v>")}</row>` }]),
|
|
375
|
+
);
|
|
320
376
|
expect(report.extent).toBe("1 sheet");
|
|
321
377
|
expect(report.findings).toEqual([]);
|
|
322
378
|
});
|
|
@@ -336,7 +392,9 @@ describe("xlsx", () => {
|
|
|
336
392
|
const rows = `<row r="1">${cell("A1", "<v>1</v>")}${cell("B1", "<f>A1+1</f>")}${cell("C1", "<f>A1+2</f>")}</row>`;
|
|
337
393
|
const plain = checkXlsx(workbookBytes([{ name: "Data", rows }]));
|
|
338
394
|
expect(found(plain)).toEqual([["warning", "formula-uncached", "Data"]]);
|
|
339
|
-
expect(messageOf(plain, "formula-uncached")).toContain(
|
|
395
|
+
expect(messageOf(plain, "formula-uncached")).toContain(
|
|
396
|
+
"2 formulas saved with no value (B1, C1): Excel, LibreOffice and Google Sheets compute them on open",
|
|
397
|
+
);
|
|
340
398
|
const flagged = checkXlsx(workbookBytes([{ name: "Data", rows }], { calcPr: '<calcPr fullCalcOnLoad="1"/>' }));
|
|
341
399
|
expect(messageOf(flagged, "formula-uncached")).toContain("the workbook asks to be recalculated on open");
|
|
342
400
|
});
|
|
@@ -365,12 +423,19 @@ describe("pdf", () => {
|
|
|
365
423
|
});
|
|
366
424
|
|
|
367
425
|
test("a blank page is an error; a page with only a drawing is not blank", async () => {
|
|
368
|
-
const report = await checkPdf(
|
|
426
|
+
const report = await checkPdf(
|
|
427
|
+
pdfPagesBytes([{ content: "BT /F1 12 Tf 72 720 Td (Cover) Tj ET" }, { content: "" }, { content: "0 0 1 rg 10 10 100 100 re f" }]),
|
|
428
|
+
);
|
|
369
429
|
expect(found(report)).toEqual([["error", "blank-page", "page 2"]]);
|
|
370
430
|
});
|
|
371
431
|
|
|
372
432
|
test("text in a font the file does not carry is a warning; the fourteen standard fonts are not", async () => {
|
|
373
|
-
const report = await checkPdf(
|
|
433
|
+
const report = await checkPdf(
|
|
434
|
+
pdfPagesBytes([
|
|
435
|
+
{ content: "BT /F1 12 Tf 72 720 Td (Hello) Tj ET", font: "Calibri" },
|
|
436
|
+
{ content: "BT /F1 12 Tf 72 720 Td (Again) Tj ET", font: "Calibri" },
|
|
437
|
+
]),
|
|
438
|
+
);
|
|
374
439
|
expect(found(report)).toEqual([["warning", "font-not-embedded", "page 1, 2"]]);
|
|
375
440
|
expect(messageOf(report, "font-not-embedded")).toContain("text is set in Calibri, which the file does not carry");
|
|
376
441
|
});
|
|
@@ -384,7 +449,12 @@ describe("pdf", () => {
|
|
|
384
449
|
|
|
385
450
|
test("a link to a named destination the file does not define is an error", async () => {
|
|
386
451
|
const report = await checkPdf(
|
|
387
|
-
pdfPagesBytes([
|
|
452
|
+
pdfPagesBytes([
|
|
453
|
+
{
|
|
454
|
+
content: "BT /F1 12 Tf 72 720 Td (See results) Tj ET",
|
|
455
|
+
extra: "/Annots [<< /Type /Annot /Subtype /Link /Rect [72 700 200 730] /Dest (results) >>]",
|
|
456
|
+
},
|
|
457
|
+
]),
|
|
388
458
|
);
|
|
389
459
|
expect(found(report)).toEqual([["error", "broken-link", "page 1"]]);
|
|
390
460
|
});
|
|
@@ -422,7 +492,9 @@ describe("xml tree", () => {
|
|
|
422
492
|
});
|
|
423
493
|
|
|
424
494
|
test("entities decode, CDATA is text, whitespace is kept only inside a text element", () => {
|
|
425
|
-
const tree = parseXml(
|
|
495
|
+
const tree = parseXml(
|
|
496
|
+
'<w:p xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">\n <w:t> A & B </w:t><w:t><![CDATA[<raw>]]></w:t>\n</w:p>',
|
|
497
|
+
);
|
|
426
498
|
expect(tree.children).toEqual([
|
|
427
499
|
{ name: "w:t", attrs: {}, children: [" A & B "] },
|
|
428
500
|
{ name: "w:t", attrs: {}, children: ["<raw>"] },
|
package/src/lib/check/check.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { readFile, stat } from "node:fs/promises";
|
|
2
2
|
import { errorMessage, isMissing } from "@intentic/base/errors";
|
|
3
3
|
import { claimedFormat, type Format } from "../formats.js";
|
|
4
|
-
import { checkDocx } from "./docx.js";
|
|
4
|
+
import { checkDocx } from "./check-docx.js";
|
|
5
5
|
import type { CheckReport } from "./finding.js";
|
|
6
|
-
import { checkPdf } from "./pdf.js";
|
|
7
|
-
import { checkPptx } from "./pptx.js";
|
|
8
|
-
import { checkXlsx } from "./xlsx.js";
|
|
6
|
+
import { checkPdf } from "./check-pdf.js";
|
|
7
|
+
import { checkPptx } from "./check-pptx.js";
|
|
8
|
+
import { checkXlsx } from "./check-xlsx.js";
|
|
9
9
|
|
|
10
10
|
// `fileq check`'s routing: which formats have a checker, and the one read of the file every checker works from.
|
|
11
11
|
|
package/src/lib/derive.ts
CHANGED
|
@@ -172,7 +172,10 @@ export const renderByContent = async (
|
|
|
172
172
|
absPath: string,
|
|
173
173
|
now: () => Date = () => new Date(),
|
|
174
174
|
): Promise<ContentOutcome> => {
|
|
175
|
-
const format = await detectFormat(absPath).catch(() =>
|
|
175
|
+
const format = await detectFormat(absPath).catch((cause: unknown) => {
|
|
176
|
+
console.warn("Could not detect the document format", cause);
|
|
177
|
+
return undefined;
|
|
178
|
+
});
|
|
176
179
|
if (format === undefined) {
|
|
177
180
|
return { kind: "failed", reason: "unsupported or missing" };
|
|
178
181
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// `fileq render` end to end in a temp workspace: real pdftoppm (or mutool) drawing real PNGs, a stand-in LibreOffice
|
|
2
2
|
// whose only job is to prove the conversion's command line and output pickup, and the real LibreOffice where the
|
|
3
3
|
// machine has it. Driven through the same `run(app, …)` seam cli.ts calls.
|
|
4
|
+
import { STATE_DIR } from "@intentic/constants";
|
|
4
5
|
import { chmodSync, existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
5
6
|
import { tmpdir } from "node:os";
|
|
6
7
|
import { join } from "node:path";
|
|
@@ -35,7 +36,7 @@ const fileq = (...args: string[]): Promise<CliOutcome> => captureCli(app, args);
|
|
|
35
36
|
const pagesPdf = (count: number): Uint8Array =>
|
|
36
37
|
pdfPagesBytes(Array.from({ length: count }, (_, index) => ({ content: `BT /F1 24 Tf 72 700 Td (Page ${index + 1}) Tj ET` })));
|
|
37
38
|
|
|
38
|
-
const renderedDir = (relPath: string): string => join(root,
|
|
39
|
+
const renderedDir = (relPath: string): string => join(root, `${STATE_DIR}/local/cache/rendered`, relPath);
|
|
39
40
|
|
|
40
41
|
const sizeOf = (path: string): { width?: number; height?: number } => imageSize(new Uint8Array(readFileSync(path)));
|
|
41
42
|
|
|
@@ -50,27 +51,36 @@ describe("pdf", () => {
|
|
|
50
51
|
expect(out).toBe(`fileq: report.pdf · pdf · 3 pages · drew pages 1-3 · rendered\n${paths.join("\n")}\n`);
|
|
51
52
|
// US Letter fitted into the default 1600 px: the long side is the height.
|
|
52
53
|
expect(sizeOf(paths[0] ?? "")).toMatchObject({ height: 1600 });
|
|
53
|
-
expect(readFileSync(join(root, ".intentic/local/cache/rendered/.gitignore"), "utf8")).toBe(
|
|
54
|
+
expect(readFileSync(join(root, ".intentic/local/cache/rendered/.gitignore"), "utf8")).toBe(
|
|
55
|
+
"# fileq's rendered pages; regenerated on demand.\n*\n",
|
|
56
|
+
);
|
|
54
57
|
});
|
|
55
58
|
|
|
56
|
-
test.skipIf(!raster.runs)(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
59
|
+
test.skipIf(!raster.runs)(
|
|
60
|
+
raster.title("an unchanged document answers from the last render; a changed one clears the pages it no longer has"),
|
|
61
|
+
async () => {
|
|
62
|
+
writeFileSync(join(root, "memo.pdf"), pagesPdf(3));
|
|
63
|
+
await fileq("render", join(root, "memo.pdf"));
|
|
64
|
+
const again = await fileq("render", join(root, "memo.pdf"), "--pages", "2");
|
|
65
|
+
expect(again.out).toBe(
|
|
66
|
+
`fileq: memo.pdf · pdf · 3 pages · drew page 2 · unchanged since the last render\n${join(renderedDir("memo.pdf"), "page-2.png")}\n`,
|
|
67
|
+
);
|
|
68
|
+
writeFileSync(join(root, "memo.pdf"), pagesPdf(1));
|
|
69
|
+
const changed = await fileq("render", join(root, "memo.pdf"));
|
|
70
|
+
expect(changed.out).toContain("1 page · drew page 1 · rendered");
|
|
71
|
+
expect(existsSync(join(renderedDir("memo.pdf"), "page-1.png"))).toBe(true);
|
|
72
|
+
expect(existsSync(join(renderedDir("memo.pdf"), "page-3.png"))).toBe(false);
|
|
73
|
+
},
|
|
74
|
+
);
|
|
67
75
|
|
|
68
76
|
test.skipIf(!raster.runs)(raster.title("--pages, --out and --size shape what is drawn and where"), async () => {
|
|
69
77
|
writeFileSync(join(root, "long.pdf"), pagesPdf(4));
|
|
70
78
|
const out = join(root, "shots");
|
|
71
79
|
const { out: printed, exitCode } = await fileq("render", join(root, "long.pdf"), "--pages", "2,4", "--out", out, "--size", "400");
|
|
72
80
|
expect(exitCode).toBe(0);
|
|
73
|
-
expect(printed).toBe(
|
|
81
|
+
expect(printed).toBe(
|
|
82
|
+
`fileq: long.pdf · pdf · 4 pages · drew pages 2, 4 · rendered\n${join(out, "page-2.png")}\n${join(out, "page-4.png")}\n`,
|
|
83
|
+
);
|
|
74
84
|
expect(sizeOf(join(out, "page-4.png"))).toMatchObject({ height: 400 });
|
|
75
85
|
expect(existsSync(join(out, ".fileq-render.json"))).toBe(false);
|
|
76
86
|
});
|
|
@@ -86,7 +96,12 @@ describe("pdf", () => {
|
|
|
86
96
|
writeFileSync(join(root, "book.pdf"), pagesPdf(22));
|
|
87
97
|
const { out } = await fileq("render", join(root, "book.pdf"), "--size", "100");
|
|
88
98
|
expect(out).toContain("note: drew the first 20 of 22 pages: pass --pages 21-22 for the rest\n");
|
|
89
|
-
expect(
|
|
99
|
+
expect(
|
|
100
|
+
out
|
|
101
|
+
.trim()
|
|
102
|
+
.split("\n")
|
|
103
|
+
.filter((line) => line.endsWith(".png")),
|
|
104
|
+
).toHaveLength(20);
|
|
90
105
|
});
|
|
91
106
|
});
|
|
92
107
|
|
|
@@ -155,28 +170,31 @@ describe("office documents", () => {
|
|
|
155
170
|
return bin;
|
|
156
171
|
};
|
|
157
172
|
|
|
158
|
-
test.skipIf(!raster.runs)(
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
173
|
+
test.skipIf(!raster.runs)(
|
|
174
|
+
raster.title("a deck converts through LibreOffice with hidden slides kept, its own profile, and counts in slides"),
|
|
175
|
+
async () => {
|
|
176
|
+
const argsFile = join(stubs, "args.txt");
|
|
177
|
+
writeFileSync(join(stubs, "converted.pdf"), pagesPdf(2));
|
|
178
|
+
process.env["FILEQ_STUB_ARGS"] = argsFile;
|
|
179
|
+
process.env["FILEQ_STUB_PDF"] = join(stubs, "converted.pdf");
|
|
180
|
+
process.env["PATH"] = `${stubOffice()}:${originalPath}`;
|
|
181
|
+
try {
|
|
182
|
+
writeFileSync(join(root, "talk.pptx"), deckBytes({ slides: [{ drawings: [] }, { drawings: [], hidden: true }] }));
|
|
183
|
+
const { out, exitCode } = await fileq("render", join(root, "talk.pptx"));
|
|
184
|
+
expect(exitCode).toBe(0);
|
|
185
|
+
expect(out).toContain("fileq: talk.pptx · pptx · 2 slides · drew slides 1-2 · rendered\n");
|
|
186
|
+
expect(out).toContain(join(renderedDir("talk.pptx"), "slide-2.png"));
|
|
187
|
+
const args = readFileSync(argsFile, "utf8").split("\n");
|
|
188
|
+
expect(args.slice(0, 4)).toEqual(["--headless", "--norestore", "--nologo", "--nolockcheck"]);
|
|
189
|
+
expect(args[4]).toMatch(/^-env:UserInstallation=file:\/\/.*\/profile$/);
|
|
190
|
+
expect(args.slice(5, 7)).toEqual(["--convert-to", 'pdf:impress_pdf_Export:{"ExportHiddenSlides":{"type":"boolean","value":"true"}}']);
|
|
191
|
+
expect(args.at(-2)).toBe(join(root, "talk.pptx"));
|
|
192
|
+
} finally {
|
|
193
|
+
delete process.env["FILEQ_STUB_ARGS"];
|
|
194
|
+
delete process.env["FILEQ_STUB_PDF"];
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
);
|
|
180
198
|
|
|
181
199
|
test("a conversion that writes nothing is exit 1 with LibreOffice's own words", async () => {
|
|
182
200
|
const bin = join(stubs, "silent");
|
|
@@ -189,29 +207,35 @@ describe("office documents", () => {
|
|
|
189
207
|
writeFileSync(join(root, "broken.docx"), "not really a document");
|
|
190
208
|
const { out, exitCode } = await fileq("render", join(root, "broken.docx"));
|
|
191
209
|
expect(exitCode).toBe(1);
|
|
192
|
-
expect(out).toContain(
|
|
210
|
+
expect(out).toContain(
|
|
211
|
+
"LibreOffice wrote no PDF (it said: Error: source file could not be loaded); the file may be damaged or password-protected",
|
|
212
|
+
);
|
|
193
213
|
});
|
|
194
214
|
|
|
195
215
|
const office = requires(onPath("soffice") && (onPath("pdftoppm") || onPath("mutool")), "LibreOffice (soffice) and a rasterizer on PATH", {
|
|
196
216
|
absentOnCi: "the CI image carries poppler but not LibreOffice (about 340 MB); the stand-in above covers the command line",
|
|
197
217
|
});
|
|
198
218
|
// A hang bound, not a measurement: a first conversion builds a fresh LibreOffice profile, seconds on an idle machine.
|
|
199
|
-
test.skipIf(!office.runs)(
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
219
|
+
test.skipIf(!office.runs)(
|
|
220
|
+
office.title("the real LibreOffice draws a deck built from its parts, one PNG a slide"),
|
|
221
|
+
async () => {
|
|
222
|
+
writeFileSync(
|
|
223
|
+
join(root, "real.pptx"),
|
|
224
|
+
deckBytes({
|
|
225
|
+
slides: [
|
|
226
|
+
{ drawings: [textBox("Title 1", undefined, ["Quarterly results"], { ph: { type: "title" } })] },
|
|
227
|
+
{ drawings: [textBox("Body", { x: 1, y: 1, w: 6, h: 2 }, ["Revenue up 4%"])] },
|
|
228
|
+
],
|
|
229
|
+
}),
|
|
230
|
+
);
|
|
231
|
+
const { out, exitCode } = await fileq("render", join(root, "real.pptx"), "--size", "640");
|
|
232
|
+
expect(exitCode).toBe(0);
|
|
233
|
+
expect(out).toContain("fileq: real.pptx · pptx · 2 slides · drew slides 1-2 · rendered\n");
|
|
234
|
+
// 16:9 fitted into 640 px: the long side is the width, the short one 360 give or take the rasterizer's rounding.
|
|
235
|
+
const size = sizeOf(join(renderedDir("real.pptx"), "slide-1.png"));
|
|
236
|
+
expect(size.width).toBe(640);
|
|
237
|
+
expect(Math.round((size.height ?? 0) / 10)).toBe(36);
|
|
238
|
+
},
|
|
239
|
+
180_000,
|
|
240
|
+
);
|
|
217
241
|
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"docx.d.ts","sourceRoot":"","sources":["../../../src/lib/check/docx.ts"],"names":[],"mappings":"AAQA,OAAO,EAAyD,KAAK,WAAW,EAAgB,MAAM,cAAc,CAAC;AAgXrH,eAAO,MAAM,SAAS,UAAW,UAAU,KAAG,WAyD7C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"docx.js","sourceRoot":"","sources":["../../../src/lib/check/docx.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAkC,MAAM,cAAc,CAAC;AACrH,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAwC,MAAM,cAAc,CAAC;AAClJ,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAmB,MAAM,eAAe,CAAC;AAEhJ,MAAM,YAAY,GAAG,mBAAmB,CAAC;AACzC,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE3C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;AAC7H,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,MAAM,YAAY,GAAG,gBAAgB,CAAC;AA4BtC,MAAM,aAAa,GAAG,CAAC,MAA8B,EAA+B,EAAE;IAClF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC3C,KAAK,MAAM,KAAK,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;QAC/E,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACpC,IAAI,EAAE,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,WAAW,EAAE,CAAC;YAC5D,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,KAAa,EAAsB,EAAE;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,CAAC;QACb,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1E,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACvC,OAAO,OAAO,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;IACF,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7B,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAU,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,SAAqB,EAAE,MAAmC,EAAsB,EAAE;IACjG,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/D,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,OAAO,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC,CAAC;AAIF,MAAM,aAAa,GAAG,CAAC,SAAqB,EAAU,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAOlF,MAAM,MAAM,GAAG,CAAC,UAAiC,EAAE,MAAmC,EAAa,EAAE;IACjG,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9C,IAAI,WAA+B,CAAC;IACpC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,aAAa,MAAM,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,MAAM,YAAY,WAAW,EAAE,CAAC;QACnL,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9C,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC,CAAC;AAGF,MAAM,cAAc,GAAG,CAAC,UAAiC,EAA+B,EAAE;IACtF,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAYF,MAAM,SAAS,GAAG,CAAC,IAAgB,EAAE,IAAiB,EAAE,MAAe,EAAE,KAAa,EAAQ,EAAE;IAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,OAAO;IACX,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;IACX,CAAC;IACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAC7B,CAAC;SAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACzK,CAAC;AACL,CAAC,CAAC;AAIF,MAAM,QAAQ,GAAG,CAAC,IAAgB,EAAE,WAAyC,EAAW,EAAE;IACtF,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1I,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACnC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACJ,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1F,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC7E,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;YAChC,CAAC;iBAAM,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC3E,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;YAC3B,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,WAAmB,EAAsB,EAAE;IACjE,MAAM,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,MAAwB,EAAE,SAA8B,EAAE,aAAsB,EAAa,EAAE,CAClH,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAa,EAAE;IAChC,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACxE,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,OAAO,gBAAgB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACjJ,CAAC;IACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACrD,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxF,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,OAAO,8BAA8B,QAAQ,kFAAkF,CAAC,CAAC,CAAC;IAC5L,CAAC;IACD,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC3B,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,kCAAkC,KAAK,CAAC,WAAW,2CAA2C,CAAC,CAAC,CAAC;IACjJ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,4DAA4D,CAAC;QAC/I,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,+CAA+C,IAAI,8CAA8C,CAAC,CAAC,CAAC;IAClJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,OAAO,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QAC3F,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,OAAO,wEAAwE,CAAC,CAAC,CAAC;IACzI,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC,CAAC,CAAC;AAIP,MAAM,iBAAiB,GAAG,CAAC,OAAmB,EAAE,IAAY,EAAE,IAAgB,EAAE,WAAyC,EAAE,UAAuB,EAAa,EAAE;IAC7J,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC3C,SAAS;YACb,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnB,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YACzF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACrB,GAAiB,EACjB,IAAgB,EAChB,YAAsC,EACtC,EAAU,EACV,KAAa,EACM,EAAE;IACrB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;IACtE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,cAAc,EAAE,2DAA2D,CAAC,CAAC;IACpL,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,EAAE,6CAA6C,YAAY,CAAC,MAAM,2DAA2D,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7L,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,OAAO;QACV,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,SAAS,YAAY,CAAC,MAAM,sDAAsD,CAAC;QACnH,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,MAAM,qBAAqB,CAAC,CAAC;AACzG,CAAC,CAAC;AAGF,MAAM,UAAU,GAAG,CAAC,UAAiC,EAAE,IAAgB,EAAmD,EAAE;IACxH,MAAM,OAAO,GAAG,CAAC,MAA8B,EAAsB,EAAE;QACnE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACjI,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,YAAY,CAAC;IAC3C,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACrD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QACvD,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3F,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,OAAmB,EAAE,IAAgB,EAAE,KAA0C,EAAa,EAAE;IACvH,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvC,OAAO,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAa,EAAE;QACrE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC;QAC3G,IAAI,EAAE,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YAC9E,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,gBAAgB,MAAM,CAAC,EAAE,CAAC,cAAc,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC,CAAC;IAC1K,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAIF,MAAM,aAAa,GAAG,CAAC,OAAmB,EAAE,IAAgB,EAAa,EAAE;IACvE,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9J,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC,kEAAkE,CAAC,CAAC,CAAC;IAC1J,CAAC;IACD,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACrJ,MAAM,QAAQ,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC;IACvF,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,mEAAmE,CAAC,CAAC,CAAC;IAC3I,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,OAAmB,EAAa,EAAE;IACzD,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAA+B,CAAC;IACpC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,aAAa,OAAO,CAAC,MAAM,EAAE,CAAC;QACtF,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3I,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7E,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,EAAE,SAAS,KAAK,2GAA2G,CAAC,CAAC,CAAC;QAC9K,CAAC;QACD,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;YAClG,YAAY,IAAI,CAAC,CAAC;YAClB,WAAW,KAAK,KAAK,CAAC;QAC1B,CAAC;IACL,CAAC;IACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CACT,OAAO,CAAC,eAAe,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,mHAAmH,CAAC,CAC5O,CAAC;IACN,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAgB,EAAE,WAAyC,EAAa,EAAE,CAC/F,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC;KAC1B,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,iBAAiB,CAAC,KAAK,SAAS,CAAC;KACjF,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;IACb,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,OAAO,EAAE,KAAK,CAAC,CAAC;IAE7E,MAAM,KAAK,GAAG,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;IAC1E,OAAO,KAAK,CAAC,qBAAqB,EAAE,KAAK,EAAE,4CAA4C,OAAO,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC;AACrJ,CAAC,CAAC,CAAC;AAEX,MAAM,YAAY,GAAG,CAAC,IAAgB,EAAE,SAA8B,EAAE,WAAyC,EAAa,EAAE,CAC5H,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,MAAM,KAAK,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAChF,OAAO,EAAE,CAAC;IACd,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,wBAAwB,MAAM,8DAA8D,CAAC,CAAC,CAAC;AAC3L,CAAC,CAAC,CAAC;AAGP,MAAM,aAAa,GAAG,CAAC,OAAmB,EAAE,OAAsD,EAAa,EAAE,CAC7G,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;IACtB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,OAAO,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;AAClK,CAAC,CAAC,CAAC;AAEP,MAAM,QAAQ,GAAG,CAAC,KAAiB,EAA8B,EAAE;IAC/D,IAAI,CAAC;QACD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,yDAAyD,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACzJ,CAAC;QACD,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAiB,EAAe,EAAE;IACxD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,IAAI,uBAAuB,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/F,MAAM,UAAU,GAAG,CAAC,IAAY,EAA0B,EAAE;QACxD,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC3E,OAAO,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACjF,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,CAAC,IAAgB,EAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IAE7F,MAAM,OAAO,GAAG,QAAQ;SACnB,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACnG,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IACP,MAAM,SAAS,GAAG,IAAI,GAAG,CACrB,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAC3J,CAAC;IACF,MAAM,OAAO,GAAe,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACnF,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,QAAQ,CAAC,IAAI,CACT,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,EAC7C,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,YAAY,KAAK,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,EAC/H,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,EAClE,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,EAClC,GAAG,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,EACnD,GAAG,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EACrC,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAC7B,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,EAC1C,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAClC,CAAC;IAGF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAClK,OAAO;QACH,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC;QAC3C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzG,KAAK;KACR,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../../src/lib/check/pdf.ts"],"names":[],"mappings":"AAUA,OAAO,EAA0B,KAAK,WAAW,EAAgB,MAAM,cAAc,CAAC;AA0KtF,eAAO,MAAM,QAAQ,UAAiB,UAAU,KAAG,OAAO,CAAC,WAAW,CA+CrE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../../src/lib/check/pdf.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pptx.d.ts","sourceRoot":"","sources":["../../../src/lib/check/pptx.ts"],"names":[],"mappings":"AAWA,OAAO,EAAgD,KAAK,WAAW,EAAgB,MAAM,cAAc,CAAC;AA6jB5G,eAAO,MAAM,SAAS,UAAW,UAAU,KAAG,WAuD7C,CAAC"}
|