@intentic/fileq 1.317.0 → 1.319.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/NOTICE +208 -0
  2. package/README.md +39 -12
  3. package/dist/app.d.ts.map +1 -1
  4. package/dist/app.js +19 -7
  5. package/dist/app.js.map +1 -1
  6. package/dist/commands/check.command.d.ts +3 -0
  7. package/dist/commands/check.command.d.ts.map +1 -0
  8. package/dist/commands/check.command.js +80 -0
  9. package/dist/commands/check.command.js.map +1 -0
  10. package/dist/commands/derive.command.js +1 -1
  11. package/dist/commands/derive.command.js.map +1 -1
  12. package/dist/commands/read.command.d.ts.map +1 -1
  13. package/dist/commands/read.command.js +26 -45
  14. package/dist/commands/read.command.js.map +1 -1
  15. package/dist/commands/render.command.d.ts +3 -0
  16. package/dist/commands/render.command.d.ts.map +1 -0
  17. package/dist/commands/render.command.js +67 -0
  18. package/dist/commands/render.command.js.map +1 -0
  19. package/dist/lib/check/check.d.ts +15 -0
  20. package/dist/lib/check/check.d.ts.map +1 -0
  21. package/dist/lib/check/check.js +35 -0
  22. package/dist/lib/check/check.js.map +1 -0
  23. package/dist/lib/check/docx.d.ts +3 -0
  24. package/dist/lib/check/docx.d.ts.map +1 -0
  25. package/dist/lib/check/docx.js +329 -0
  26. package/dist/lib/check/docx.js.map +1 -0
  27. package/dist/lib/check/finding.d.ts +20 -0
  28. package/dist/lib/check/finding.d.ts.map +1 -0
  29. package/dist/lib/check/finding.js +27 -0
  30. package/dist/lib/check/finding.js.map +1 -0
  31. package/dist/lib/check/package.d.ts +25 -0
  32. package/dist/lib/check/package.d.ts.map +1 -0
  33. package/dist/lib/check/package.js +139 -0
  34. package/dist/lib/check/package.js.map +1 -0
  35. package/dist/lib/check/pdf.d.ts +3 -0
  36. package/dist/lib/check/pdf.d.ts.map +1 -0
  37. package/dist/lib/check/pdf.js +160 -0
  38. package/dist/lib/check/pdf.js.map +1 -0
  39. package/dist/lib/check/pptx.d.ts +3 -0
  40. package/dist/lib/check/pptx.d.ts.map +1 -0
  41. package/dist/lib/check/pptx.js +497 -0
  42. package/dist/lib/check/pptx.js.map +1 -0
  43. package/dist/lib/check/text-fit.d.ts +18 -0
  44. package/dist/lib/check/text-fit.d.ts.map +1 -0
  45. package/dist/lib/check/text-fit.js +69 -0
  46. package/dist/lib/check/text-fit.js.map +1 -0
  47. package/dist/lib/check/xlsx.d.ts +3 -0
  48. package/dist/lib/check/xlsx.d.ts.map +1 -0
  49. package/dist/lib/check/xlsx.js +131 -0
  50. package/dist/lib/check/xlsx.js.map +1 -0
  51. package/dist/lib/check/xml-tree.d.ts +15 -0
  52. package/dist/lib/check/xml-tree.d.ts.map +1 -0
  53. package/dist/lib/check/xml-tree.js +131 -0
  54. package/dist/lib/check/xml-tree.js.map +1 -0
  55. package/dist/lib/content-cache.d.ts +12 -0
  56. package/dist/lib/content-cache.d.ts.map +1 -0
  57. package/dist/lib/content-cache.js +33 -0
  58. package/dist/lib/content-cache.js.map +1 -0
  59. package/dist/lib/derive.d.ts +10 -0
  60. package/dist/lib/derive.d.ts.map +1 -1
  61. package/dist/lib/derive.js +37 -4
  62. package/dist/lib/derive.js.map +1 -1
  63. package/dist/lib/derivers/image.d.ts.map +1 -1
  64. package/dist/lib/derivers/image.js.map +1 -1
  65. package/dist/lib/formats.d.ts +1 -0
  66. package/dist/lib/formats.d.ts.map +1 -1
  67. package/dist/lib/formats.js +1 -0
  68. package/dist/lib/formats.js.map +1 -1
  69. package/dist/lib/render/convert.d.ts +11 -0
  70. package/dist/lib/render/convert.d.ts.map +1 -0
  71. package/dist/lib/render/convert.js +107 -0
  72. package/dist/lib/render/convert.js.map +1 -0
  73. package/dist/lib/render/pages.d.ts +11 -0
  74. package/dist/lib/render/pages.d.ts.map +1 -0
  75. package/dist/lib/render/pages.js +43 -0
  76. package/dist/lib/render/pages.js.map +1 -0
  77. package/dist/lib/render/render.d.ts +29 -0
  78. package/dist/lib/render/render.d.ts.map +1 -0
  79. package/dist/lib/render/render.js +142 -0
  80. package/dist/lib/render/render.js.map +1 -0
  81. package/dist/lib/sidecar.d.ts +11 -2
  82. package/dist/lib/sidecar.d.ts.map +1 -1
  83. package/dist/lib/sidecar.js +28 -16
  84. package/dist/lib/sidecar.js.map +1 -1
  85. package/dist/skill-authoring.d.ts +2 -0
  86. package/dist/skill-authoring.d.ts.map +1 -0
  87. package/dist/skill-authoring.js +20 -0
  88. package/dist/skill-authoring.js.map +1 -0
  89. package/dist/skill.d.ts.map +1 -1
  90. package/dist/skill.js +32 -8
  91. package/dist/skill.js.map +1 -1
  92. package/dist/testing.d.ts +67 -0
  93. package/dist/testing.d.ts.map +1 -1
  94. package/dist/testing.js +151 -0
  95. package/dist/testing.js.map +1 -1
  96. package/package.json +21 -8
  97. package/src/app.ts +19 -7
  98. package/src/cli.integration.test.ts +115 -30
  99. package/src/commands/check.command.ts +97 -0
  100. package/src/commands/derive.command.ts +1 -1
  101. package/src/commands/read.command.ts +30 -52
  102. package/src/commands/render.command.ts +80 -0
  103. package/src/lib/archives.ts +1 -1
  104. package/src/lib/check/check.test.ts +446 -0
  105. package/src/lib/check/check.ts +49 -0
  106. package/src/lib/check/docx.ts +434 -0
  107. package/src/lib/check/finding.ts +63 -0
  108. package/src/lib/check/package.ts +199 -0
  109. package/src/lib/check/pdf.ts +228 -0
  110. package/src/lib/check/pptx.ts +641 -0
  111. package/src/lib/check/text-fit.ts +105 -0
  112. package/src/lib/check/xlsx.ts +163 -0
  113. package/src/lib/check/xml-tree.ts +186 -0
  114. package/src/lib/content-cache.ts +58 -0
  115. package/src/lib/derive.integration.test.ts +198 -0
  116. package/src/lib/derive.ts +66 -7
  117. package/src/lib/derivers/archive.ts +1 -1
  118. package/src/lib/derivers/image.ts +2 -1
  119. package/src/lib/derivers/load-cost.test.ts +1 -1
  120. package/src/lib/derivers/pdf.ts +1 -1
  121. package/src/lib/derivers/xlsx.ts +1 -1
  122. package/src/lib/formats.ts +6 -0
  123. package/src/lib/render/convert.ts +133 -0
  124. package/src/lib/render/pages.test.ts +38 -0
  125. package/src/lib/render/pages.ts +58 -0
  126. package/src/lib/render/render.ts +198 -0
  127. package/src/lib/sidecar.ts +42 -22
  128. package/src/render.integration.test.ts +217 -0
  129. package/src/skill-authoring.ts +27 -0
  130. package/src/skill.ts +36 -8
  131. package/src/testing.ts +287 -0
  132. package/dist/commands/sweep.command.d.ts +0 -3
  133. package/dist/commands/sweep.command.d.ts.map +0 -1
  134. package/dist/commands/sweep.command.js +0 -41
  135. package/dist/commands/sweep.command.js.map +0 -1
  136. package/dist/lib/flags.d.ts +0 -2
  137. package/dist/lib/flags.d.ts.map +0 -1
  138. package/dist/lib/flags.js +0 -8
  139. package/dist/lib/flags.js.map +0 -1
  140. package/dist/lib/sweep.d.ts +0 -7
  141. package/dist/lib/sweep.d.ts.map +0 -1
  142. package/dist/lib/sweep.js +0 -56
  143. package/dist/lib/sweep.js.map +0 -1
  144. package/dist/version.d.ts +0 -2
  145. package/dist/version.d.ts.map +0 -1
  146. package/dist/version.js +0 -3
  147. package/dist/version.js.map +0 -1
  148. package/src/commands/sweep.command.ts +0 -48
  149. package/src/lib/sweep.ts +0 -72
package/dist/skill.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { DERIVED_DIR } from "./lib/sidecar.js";
2
+ import { AUTHORING_RULES } from "./skill-authoring.js";
2
3
  const OCR_FORMAT = {
3
4
  sandbox: "a scan is OCR'd when the image carries tesseract",
4
5
  standalone: "a scan is OCR'd when `tesseract` is on PATH",
@@ -11,6 +12,13 @@ const OCR_REFUSAL = {
11
12
  rather than an empty page; images say "no visual description". Treat those notes as "not generated",
12
13
  never as "nothing there". Installing tesseract turns the first into OCR.`,
13
14
  };
15
+ const RENDER_TOOLS = {
16
+ sandbox: `It needs LibreOffice (\`soffice\`) for office formats and \`pdftoppm\` for every format, both in the opt-in
17
+ \`office\` image pack. If it exits 2 naming one, run the \`environment propose office --pack\` it prints (the owner
18
+ approves, a rebuild brings it), say the document was checked but not seen, and do not claim it looks right.`,
19
+ standalone: `It needs LibreOffice (\`soffice\`) for office formats and \`pdftoppm\` (poppler-utils) or \`mutool\` for
20
+ every format. If it exits 2 naming one, install it or tell the user the document was checked but not seen.`,
21
+ };
14
22
  const TEXTCONV = `## What changed in a document
15
23
  \`git diff\`, \`git show\` and \`git log -p\` on a .docx, .xlsx, .pptx, .pdf or .ipynb print the change to its
16
24
  text, not "Binary files differ": every derivable extension is routed through fileq as git's textconv. Read the
@@ -19,17 +27,17 @@ diff; do not convert both versions by hand.
19
27
  `;
20
28
  export const fileqSkill = ({ host }) => `---
21
29
  name: fileq
22
- description: Read binary workspace files (docx, odt, xlsx, pptx, pdf, epub, ipynb, images, audio, zip and tar archives, V8 CPU and heap profiles) as clean budgeted markdown with the \`fileq\` CLI, and read big text-shaped files (csv, json, logs) without flooding your context. Use whenever a task needs the contents of a document, the text layer of a PDF, the metadata of an image or recording, what is inside an archive, or a look inside a file too large to cat — instead of guessing from the filename or shelling out to ad-hoc converters.
30
+ description: Read binary files (docx, xlsx, pptx, pdf, odt, epub, ipynb, images, audio, archives, V8 profiles) as budgeted markdown with \`fileq\`, size up csv, json or logs too big to cat, and check and render a docx, pptx, xlsx or pdf you made. Use instead of guessing from a filename, ad-hoc converters, or delivering it unseen.
23
31
  ---
24
32
 
25
33
  # fileq: binary files as markdown
26
34
 
27
- The \`fileq\` CLI (on PATH) turns the workspace files you cannot open as text into markdown, and keeps a
28
- sidecar copy fresh so reading twice derives once.
35
+ The \`fileq\` CLI (on PATH) turns the workspace files you cannot open as text into markdown. Renderings are
36
+ cached by content, so a repeat read of unchanged content is instant.
29
37
 
30
38
  ## Read a file
31
39
  \`fileq <file>\` (or \`fileq read <file> --budget 8000\`)
32
- - Prints a capsule (format, token cost), the content up to the budget, and \`saved:\` — the sidecar path
40
+ - Prints a capsule (format, token cost), the content up to the budget, and \`saved:\` — the markdown file
33
41
  carrying the whole thing. Over budget, the cut is announced with that exact path to Read.
34
42
  - Formats: docx and odt (headings, lists, tables), xlsx (capped tables), pptx (slides + speaker notes),
35
43
  pdf (text layer; ${OCR_FORMAT[host]}, and the note says the words are
@@ -41,10 +49,11 @@ sidecar copy fresh so reading twice derives once.
41
49
  compressed file (\`server.log.gz\`) is the exception and derives to its text, since there the archive is
42
50
  the document. 7z and rar answer that nothing here opens them.
43
51
 
44
- ## Check the sidecar first
45
- A file may already have a shadow at \`${DERIVED_DIR}/<path>.md\` — front matter says which
46
- source hash it was derived from. \`fileq read\` checks freshness for you, so prefer it over trusting a
47
- shadow's age by eye.
52
+ ## Reading again is free
53
+ A rendering is keyed by the file's sha256 and the reader's version, not its path: \`fileq read\` on an
54
+ unchanged file, a copy or a move of it, or the same bytes downloaded elsewhere answers from the cache
55
+ without parsing it again. Run it again rather than opening a sidecar under \`${DERIVED_DIR}\` by hand; it
56
+ checks the hash for you.
48
57
 
49
58
  ## What it refuses, and why
50
59
  ${OCR_REFUSAL[host]}
@@ -53,6 +62,21 @@ ${OCR_REFUSAL[host]}
53
62
 
54
63
  ${host === "sandbox" ? TEXTCONV : ""}Exit codes: 0 content, 1 nothing derivable, 2 broken invocation or install.
55
64
 
65
+ ## After you produce a document
66
+ A deck, report, spreadsheet or PDF made for someone is not finished until you have checked it and looked at it.
67
+ 1. \`fileq check <file>\` (docx, pptx, xlsx, pdf) lists what a reader would meet, each with where it is:
68
+ \`slide 3 · "Title 1"\`, \`'Q3 plan'!C4\`, \`page 7\`, \`paragraph 12 · "…"\`. Exit 1 means an error (a missing
69
+ image, a #REF!, a broken link, leftover "Click to add title"): fix every one and check again. Warnings are
70
+ judgement calls (a TODO, a hidden slide) or estimates (text overflowing its box): settle those by looking.
71
+ 2. \`fileq render <file> [--pages 1-3]\` draws the pages or slides as PNGs (the first 20 unless you say) and
72
+ prints one path per line; Read them. An unchanged file answers from its last render. Office formats are laid
73
+ out by LibreOffice, so a font the machine lacks is substituted: judge overflow and spacing, not the typeface.
74
+ ${RENDER_TOOLS[host].replaceAll("\n", "\n ")}
75
+ Fix what you find in whatever generated the file, regenerate, and check again; after two rounds, stop and tell
76
+ the user what is left rather than looping.
77
+
78
+ ${AUTHORING_RULES}
79
+
56
80
  ## Text-shaped files that are too big to cat
57
81
  The commonest way to lose a context window is \`cat\` on a file you have not sized. Stat first, then read
58
82
  the shape, then only what the question needs:
package/dist/skill.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAa/C,MAAM,UAAU,GAA2C;IACvD,OAAO,EAAE,kDAAkD;IAC3D,UAAU,EAAE,6CAA6C;CAC5D,CAAC;AAEF,MAAM,WAAW,GAA2C;IACxD,OAAO,EAAE;;iGAEoF;IAC7F,UAAU,EAAE;;2EAE2D;CAC1E,CAAC;AAGF,MAAM,QAAQ,GAAG;;;;;CAKhB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAkB,EAAU,EAAE,CAAC;;;;;;;;;;;;;;;qBAe3C,UAAU,CAAC,IAAI,CAAC;;;;;;;;;;wCAUG,WAAW;;;;;EAKjD,WAAW,CAAC,IAAI,CAAC;;;;EAIjB,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;CAoBnC,CAAC"}
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAavD,MAAM,UAAU,GAA2C;IACvD,OAAO,EAAE,kDAAkD;IAC3D,UAAU,EAAE,6CAA6C;CAC5D,CAAC;AAEF,MAAM,WAAW,GAA2C;IACxD,OAAO,EAAE;;iGAEoF;IAC7F,UAAU,EAAE;;2EAE2D;CAC1E,CAAC;AAKF,MAAM,YAAY,GAAG;IACjB,OAAO,EAAE;;4GAE+F;IACxG,UAAU,EAAE;2GAC2F;CACzD,CAAC;AAGnD,MAAM,QAAQ,GAAG;;;;;CAKhB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAkB,EAAU,EAAE,CAAC;;;;;;;;;;;;;;;qBAe3C,UAAU,CAAC,IAAI,CAAC;;;;;;;;;;;;+EAY0C,WAAW;;;;EAIxF,WAAW,CAAC,IAAI,CAAC;;;;EAIjB,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;KAW/B,YAAY,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;;;;EAI/C,eAAe;;;;;;;;;;;;;;;;;;;;CAoBhB,CAAC"}
package/dist/testing.d.ts CHANGED
@@ -22,4 +22,71 @@ export declare const zipBytes: (files: Readonly<Record<string, string>>) => Uint
22
22
  export declare const tarBytes: (files: Readonly<Record<string, string>>) => Uint8Array;
23
23
  export declare const gzipBytes: (name: string, content: Uint8Array | string) => Uint8Array;
24
24
  export declare const pngBytes: () => Uint8Array;
25
+ export interface FixtureRel {
26
+ readonly type: string;
27
+ readonly target: string;
28
+ readonly external?: boolean;
29
+ }
30
+ export interface Frame {
31
+ readonly x: number;
32
+ readonly y: number;
33
+ readonly w: number;
34
+ readonly h: number;
35
+ }
36
+ export interface TextBoxOptions {
37
+ readonly size?: number;
38
+ readonly ph?: {
39
+ readonly type?: string;
40
+ readonly idx?: number;
41
+ };
42
+ readonly autofit?: "shrink" | "grow";
43
+ }
44
+ export declare const textBox: (name: string, frame: Frame | undefined, lines: readonly string[], options?: TextBoxOptions) => string;
45
+ export declare const pictureFrame: (name: string, frame: Frame, rId: string, crop?: {
46
+ readonly l?: number;
47
+ readonly r?: number;
48
+ readonly t?: number;
49
+ readonly b?: number;
50
+ }) => string;
51
+ export declare const tableFrame: (name: string, frame: Frame, rows: readonly (readonly string[])[], height: number, size?: number) => string;
52
+ export interface DeckSlide {
53
+ readonly drawings: readonly string[];
54
+ readonly rels?: Readonly<Record<string, FixtureRel>>;
55
+ readonly hidden?: boolean;
56
+ readonly partNumber?: number;
57
+ }
58
+ export interface DeckOptions {
59
+ readonly slides: readonly DeckSlide[];
60
+ readonly media?: Readonly<Record<string, Uint8Array>>;
61
+ readonly width?: number;
62
+ readonly height?: number;
63
+ readonly untypedMedia?: boolean;
64
+ }
65
+ export declare const deckBytes: (options: DeckOptions) => Uint8Array;
66
+ export declare const pngOfSize: (width: number, height: number) => Uint8Array;
67
+ export declare const para: (text: string, style?: string) => string;
68
+ export declare const inlinePicture: (rId: string, width: number, height: number) => string;
69
+ export declare const field: (instruction: string, result: string | undefined) => string;
70
+ export interface WordOptions {
71
+ readonly body: readonly string[];
72
+ readonly rels?: Readonly<Record<string, FixtureRel>>;
73
+ readonly media?: Readonly<Record<string, Uint8Array>>;
74
+ readonly comments?: readonly string[];
75
+ }
76
+ export declare const wordBytes: (options: WordOptions) => Uint8Array;
77
+ export interface SheetFixture {
78
+ readonly name: string;
79
+ readonly rows: string;
80
+ }
81
+ export declare const workbookBytes: (sheets: readonly SheetFixture[], options?: {
82
+ readonly definedNames?: string;
83
+ readonly calcPr?: string;
84
+ }) => Uint8Array;
85
+ export interface PdfPageFixture {
86
+ readonly content: string;
87
+ readonly font?: string;
88
+ readonly extra?: string;
89
+ readonly size?: readonly [number, number];
90
+ }
91
+ export declare const pdfPagesBytes: (pages: readonly PdfPageFixture[]) => Uint8Array;
25
92
  //# sourceMappingURL=testing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,SAAS,YAAa,MAAM,cAAc,SAAS,MAAM,EAAE,KAAG,UAiB1E,CAAC;AASF,eAAO,MAAM,SAAS,WAAY,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,KAAG,UAgBlE,CAAC;AAMF,eAAO,MAAM,QAAQ,SAAU,MAAM,KAAG,UAwBvC,CAAC;AAGF,eAAO,MAAM,QAAQ,QAAO,UA0B3B,CAAC;AAMF,eAAO,MAAM,QAAQ,YAAa,MAAM,cAAc,SAAS,MAAM,EAAE,KAAG,UA0BpE,CAAC;AAoBP,eAAO,MAAM,QAAQ,WAAY,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAA;CAAE,EAAE,KAAG,UAgBlH,CAAC;AAGN,eAAO,MAAM,QAAQ,WAAY,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,KAAG,UAc9H,CAAC;AAGN,eAAO,MAAM,QAAQ,eAAgB,SAAS,MAAM,EAAE,KAAG,UAKpD,CAAC;AAGN,eAAO,MAAM,SAAS,UAAW,MAAM,YAAY,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,KAAG,UAyBjH,CAAC;AAGF,eAAO,MAAM,SAAS,UAAW,MAAM,QAAQ,MAAM,eAAe,SAAS,MAAM,EAAE,KAAG,MAkBlF,CAAC;AAGP,eAAO,MAAM,QAAQ,UAAW,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAG,UACgC,CAAC;AAkCpG,eAAO,MAAM,QAAQ,UAAW,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAG,UAkBlE,CAAC;AAGF,eAAO,MAAM,SAAS,SAAU,MAAM,WAAW,UAAU,GAAG,MAAM,KAAG,UACmB,CAAC;AAG3F,eAAO,MAAM,QAAQ,QAAO,UACkH,CAAC"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
package/dist/testing.js CHANGED
@@ -217,4 +217,155 @@ export const tarBytes = (files) => {
217
217
  };
218
218
  export const gzipBytes = (name, content) => gzipSync(typeof content === "string" ? strToU8(content) : content, { filename: name });
219
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
+ };
220
371
  //# sourceMappingURL=testing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAQpD,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAEpJ,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAU,EAAE,CAChD;;;;EAIF,SAAS;SACF,CAAC;AAEV,MAAM,IAAI,GAAG,CAAC,MAAc,EAAU,EAAE,CACpC;;4HAEwH,MAAM;iBACjH,CAAC;AAGlB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,UAA6B,EAAc,EAAE;IACpF,MAAM,IAAI,GAAG;QACT,6DAA6D,SAAS,CAAC,OAAO,CAAC,oBAAoB;QACnG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uCAAuC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC;KAC1G,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,OAAO,OAAO,CAAC;QACX,qBAAqB,EAAE,OAAO,CAC1B,aAAa,CACT,0IAA0I,CAC7I,CACJ;QACD,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjD,mBAAmB,EAAE,OAAO,CACxB;6FACiF,IAAI,wBAAwB,CAChH;KACJ,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,KAAwB,EAAU,EAAE,CAClD;;oBAEgB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kCAAkC,SAAS,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SAChI,CAAC;AAGV,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAsC,EAAc,EAAE;IAC5E,MAAM,KAAK,GAA+B;QACtC,qBAAqB,EAAE,OAAO,CAC1B,aAAa,CACT,+IAA+I,CAClJ,CACJ;QACD,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACpD,sBAAsB,EAAE,OAAO,CAC3B,6GAA6G,CAChH;KACJ,CAAC;IACF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC5B,KAAK,CAAC,mBAAmB,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAc,EAAE;IACjD,MAAM,OAAO,GAAG;QACZ,sDAAsD;QACtD,8DAA8D;QAC9D,mIAAmI;QACnI,uBAAuB,IAAI,CAAC,MAAM,GAAG,EAAE,wCAAwC,IAAI,8BAA8B;QACjH,2EAA2E;KAC9E,CAAC;IACF,MAAM,MAAM,GAAG,YAAY,CAAC;IAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,GAAG;QACT,MAAM;QACN,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACzB,qBAAqB;QACrB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC;QAC1E,EAAE;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,OAAO,GAAG,qBAAqB,OAAO,CAAC,MAAM,GAAG,CAAC,+BAA+B,QAAQ,WAAW,CAAC;IAC1G,OAAO,OAAO,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,EAAE,CAAC,CAAC;AACpE,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAe,EAAE;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,KAAa,EAAQ,EAAE;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;IACL,CAAC,CAAC;IACF,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACjB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1C,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACjB,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAClB,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAClB,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpB,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAGF,MAAM,cAAc,GAAG,CAAC,QAAgB,EAA8B,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAG3G,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,UAA6B,EAAc,EAAE,CACnF,OAAO,CAAC;IACJ,QAAQ,EAAE,cAAc,CAAC,yCAAyC,CAAC;IACnE,uBAAuB,EAAE,OAAO,CAC5B;;;;qBAIS,CACZ;IACD,UAAU,EAAE,OAAO,CACf;2JAC+I,SAAS,CAAC,OAAO,CAAC,kDAAkD,CACtN;IACD,aAAa,EAAE,OAAO,CAClB;;;;gEAIoD,SAAS,CAAC,OAAO,CAAC;EAChF,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gCAAgC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;uDAI1C,CAC9C;CACJ,CAAC,CAAC;AAEP,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAc,EAAE,CACjE,OAAO,CAAC;IACJ,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;IAClC,uBAAuB,EAAE,OAAO,CAC5B;;mEAEuD,QAAQ;;qBAEtD,CACZ;IACD,aAAa,EAAE,OAAO,CAClB;;eAEG,OAAO,0CAA0C,CACvD;CACJ,CAAC,CAAC;AAGP,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAA2F,EAAc,EAAE,CAChI,UAAU,CACN,gDAAgD,EAChD,uBAAuB,MAAM;KACxB,GAAG,CACA,CAAC,KAAK,EAAE,EAAE,CACN,4BAA4B,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI;KAC3D,GAAG,CACA,CAAC,GAAG,EAAE,EAAE,CACJ,oBAAoB,GAAG;KAClB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wDAAwD,SAAS,CAAC,IAAI,CAAC,8BAA8B,CAAC;KACpH,IAAI,CAAC,EAAE,CAAC,4EAA4E,CAChG;KACA,IAAI,CAAC,EAAE,CAAC,gJAAgJ,CACpK;KACA,IAAI,CAAC,EAAE,CAAC,uBAAuB,CACvC,CAAC;AAGN,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAuG,EAAc,EAAE,CAC5I,UAAU,CACN,iDAAiD,EACjD,wBAAwB,MAAM;KACzB,GAAG,CACA,CAAC,KAAK,EAAE,EAAE,CACN,yBAAyB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;IAClD,8BAA8B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,gCACvG,KAAK,CAAC,IAAI,KAAK,SAAS;QACpB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,0DAA0D,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,6DACrF,cAAc,CACrB;KACA,IAAI,CAAC,EAAE,CAAC,wBAAwB,CACxC,CAAC;AAGN,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,UAA6B,EAAc,EAAE,CAClE,OAAO,CACH,wGACI,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAC9H,kEAAkE,CACzE,CAAC;AAGN,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,QAAsE,EAAc,EAAE;IAC3H,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,IAAY,EAAU,EAAE,CACpD;0DACkD,SAAS,CAAC,OAAO,CAAC,4BAA4B,SAAS,CAAC,OAAO,CAAC,WAAW,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC;IACrK,MAAM,KAAK,GAA4D;QACnE,QAAQ,EAAE,cAAc,CAAC,sBAAsB,CAAC;QAChD,wBAAwB,EAAE,OAAO,CAC7B;yMAC6L,CAChM;QACD,mBAAmB,EAAE,OAAO,CACxB;qJACyI,SAAS,CAAC,KAAK,CAAC;iGACpE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,KAAK,GAAG,CAAC,uBAAuB,KAAK,GAAG,CAAC,8CAA8C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;+BAC5M,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,oBAAoB,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CACjH;QACD,iBAAiB,EAAE,OAAO,CACtB;0JAC8I,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,4BAA4B,KAAK,GAAG,CAAC,WAAW,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,2BAA2B,CAC1S;KACJ,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAChC,KAAK,CAAC,qBAAqB,KAAK,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,WAA8B,EAAU,EAAE,CAC7F,IAAI,CAAC,SAAS,CAAC;IACX,KAAK,EAAE;QACH,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,kCAAkC,CAAC,EAAE;QAC3G;YACI,SAAS,EAAE,MAAM;YACjB,eAAe,EAAE,CAAC;YAClB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,OAAO,EAAE;gBACL,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE;gBACvF,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;aACvF;SACJ;KACJ;IACD,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IACpG,QAAQ,EAAE,CAAC;IACX,cAAc,EAAE,CAAC;CACpB,CAAC,CAAC;AAGP,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAuC,EAAc,EAAE,CAC5E,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpG,MAAM,SAAS,GAAG,GAAG,CAAC;AAItB,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,IAAY,EAAc,EAAE;IACvE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,CAAC,MAAc,EAAE,KAAa,EAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACvF,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3B,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACtB,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACtB,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACtB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACpD,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3B,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACf,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACpB,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACf,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3D,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,KAAiB,EAAc,EAAE;IAC7C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IAC9E,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjB,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAuC,EAAc,EAAE;IAC5E,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/F,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtB,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,OAA4B,EAAc,EAAE,CAChF,QAAQ,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAG3F,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAe,EAAE,CACrC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kGAAkG,EAAE,QAAQ,CAAC,CAAC,CAAC;AAI/I,MAAM,GAAG,GAAG,OAAO,CAAC;AACpB,MAAM,IAAI,GAAG,oNAAoN,CAAC;AAClO,MAAM,QAAQ,GAAG,qEAAqE,CAAC;AAQvF,MAAM,OAAO,GAAG,CAAC,IAA0C,EAAU,EAAE,CACnE;sFACkF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;KACjG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,qBAAqB,EAAE,WAAW,QAAQ,IAAI,GAAG,CAAC,IAAI,aAAa,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;KACzK,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC;AAUpC,MAAM,IAAI,GAAG,CAAC,KAAY,EAAE,GAAG,GAAG,QAAQ,EAAU,EAAE,CAClD,IAAI,GAAG,cAAc,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;AAU9K,IAAI,SAAS,GAAG,EAAE,CAAC;AAGnB,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,KAAwB,EAAE,KAAwB,EAAE,OAAO,GAAmB,EAAE,EAAU,EAAE;IAC9H,SAAS,IAAI,CAAC,CAAC;IACf,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC;IAC1L,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACnH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC;IAC7E,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gCAAgC,IAAI,UAAU,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnK,OAAO,gCAAgC,SAAS,WAAW,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,+BAA+B,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,8CAA8C,GAAG,2BAA2B,UAAU,oBAAoB,CAAC;AAC1R,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,KAAY,EAAE,GAAW,EAAE,IAA6F,EAAU,EAAE;IAC3K,SAAS,IAAI,CAAC,CAAC;IACf,MAAM,GAAG,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACjI,OAAO,kCAAkC,SAAS,WAAW,SAAS,CAAC,IAAI,CAAC,qEAAqE,GAAG,MAAM,GAAG,4DAA4D,IAAI,CAAC,KAAK,CAAC,kEAAkE,CAAC;AAC3S,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,KAAY,EAAE,IAAoC,EAAE,MAAc,EAAE,IAAI,GAAG,EAAE,EAAU,EAAE;IAC9H,SAAS,IAAI,CAAC,CAAC;IACf,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,CAAC,GAAsB,EAAU,EAAE,CAC7C,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,6EAA6E,IAAI,GAAG,GAAG,WAAW,SAAS,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjM,OAAO,oDAAoD,SAAS,WAAW,SAAS,CAAC,IAAI,CAAC,0DAA0D,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,4GAA4G,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,WAAW,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,uDAAuD,CAAC;AAC7gB,CAAC,CAAC;AAyBF,MAAM,MAAM,GAAG;eACA,IAAI;kIAC+G,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;wIACrC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;;mPAEkE,CAAC;AAEpP,MAAM,MAAM,GAAG;eACA,IAAI;;;mCAGgB,CAAC;AAGpC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAoB,EAAc,EAAE;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACpF,MAAM,KAAK,GAAG;QACV,+IAA+I;QAC/I,sJAAsJ;QACtJ,sJAAsJ;QACtJ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,wCAAwC,MAAM,8FAA8F,CAAC;QACxK,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oDAAoD;KAC5F,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,MAAM,KAAK,GAAG,IAAI,GAAG,CAAqB;QACtC,CAAC,qBAAqB,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACtD,CAAC,sBAAsB,EAAE,OAAO,CAC5B;kBACM,IAAI,iGAAiG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,gBAAgB,GAAG,GAAG,KAAK,cAAc,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,6BAA6B,KAAK,SAAS,MAAM,4DAA4D,CAC5T,CAAC;QACF,CAAC,iCAAiC,EAAE,OAAO,CACvC,OAAO,CAAC;gBACJ,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,+BAA+B,EAAE;gBACtE,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC;aAC/H,CAAC,CACL,CAAC;QACF,CAAC,mCAAmC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC,8CAA8C,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,kCAAkC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjJ,CAAC,mCAAmC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC,8CAA8C,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,kCAAkC,EAAE,EAAE,CAAC,CAAC,CAAC;KACpJ,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QAC3C,KAAK,CAAC,GAAG,CAAC,mBAAmB,MAAM,MAAM,EAAE,OAAO,CAC9C;SACH,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,8GAA8G,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,8BAA8B,CAC9M,CACJ,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,yBAAyB,MAAM,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,kCAAkC,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1K,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,KAAK,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,MAAc,EAAc,EAAE;IACnE,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACtE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC3B,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,6WAA6W,CAAC;AAG3X,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,KAAc,EAAU,EAAE,CACzD,QAAQ,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B,KAAK,aAAa,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kCAAkC,SAAS,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC;AAGlL,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,MAAc,EAAU,EAAE,CAChF,kDAAkD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,0KAA0K,GAAG,8FAA8F,CAAC;AAG1X,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,WAAmB,EAAE,MAA0B,EAAU,EAAE,CAC7E,6FAA6F,SAAS,CAAC,WAAW,CAAC,wBAAwB,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,6DAA6D,SAAS,CAAC,MAAM,CAAC,cAAc,mDAAmD,CAAC;AAa3T,MAAM,MAAM,GAAG;uhBACwgB,CAAC;AAGxhB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAoB,EAAc,EAAE;IAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC;IACxH,MAAM,KAAK,GAAG,IAAI,GAAG,CAAqB;QACtC,CAAC,qBAAqB,EAAE,OAAO,CAC3B,aAAa,CACT;gBACI,oDAAoD;gBACpD,0IAA0I;gBAC1I,iIAAiI;gBACjI,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qIAAqI;aAC9K,CAAC,IAAI,CAAC,EAAE,CAAC,CACb,CACJ,CAAC;QACF,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACnD,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,mBAAmB,EAAE,OAAO,CACzB;cACE,IAAI,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,+JAA+J,CACzM,CAAC;KACL,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,KAAK,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAClC;qFACyE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,oBAAoB,KAAK,wCAAwC,SAAS,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CACvP,CACJ,CAAC;IACN,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,8BAA8B,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IACtJ,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,KAAK,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAA+B,EAAE,OAAO,GAAiE,EAAE,EAAc,EAAE;IACrJ,MAAM,KAAK,GAAG,IAAI,GAAG,CAAqB;QACtC,CAAC,qBAAqB,EAAE,OAAO,CAC3B,aAAa,CACT;gBACI,kIAAkI;gBAClI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,2CAA2C,KAAK,GAAG,CAAC,iGAAiG,CAAC;aACrL,CAAC,IAAI,CAAC,EAAE,CAAC,CACb,CACJ,CAAC;QACF,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACjD,CAAC,iBAAiB,EAAE,OAAO,CACvB;oKACwJ,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,gBAAgB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,cAAc,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,OAAO,CAAC,YAAY,iBAAiB,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,aAAa,CAC1a,CAAC;QACF,CAAC,4BAA4B,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzL,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC5B,KAAK,CAAC,GAAG,CAAC,sBAAsB,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,CACpD;0FAC8E,KAAK,CAAC,IAAI,0BAA0B,CACjH,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC;AAcF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAgC,EAAc,EAAE;IAC1E,MAAM,OAAO,GAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,4BAA4B,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,eAAe,IAAI,CAAC,IAAI,IAAI,WAAW,KAAK,CAAC,CAAC;QACzI,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,MAAM,gBAAgB,IAAI,CAAC,OAAO,aAAa,CAAC,CAAC;QAChG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC,+CAA+C,KAAK,IAAI,MAAM,eAAe,OAAO,mCAAmC,IAAI,cAAc,IAAI,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/K,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,CAAC,CAAC,GAAG,mCAAmC,CAAC;IACjD,OAAO,CAAC,CAAC,CAAC,GAAG,0BAA0B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,KAAK,CAAC;IAC7G,IAAI,GAAG,GAAG,YAAY,CAAC;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,WAAW,IAAI,YAAY,CAAC;QAC/C,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;IACxB,GAAG,IAAI,WAAW,OAAO,CAAC,MAAM,GAAG,CAAC,0BAA0B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,MAAM,GAAG,CAAC,+BAA+B,IAAI,WAAW,CAAC;IACxO,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@intentic/fileq",
3
- "version": "1.317.0",
4
- "description": "fileq, agent-native file reading: any binary workspace file (docx, xlsx, pptx, pdf, images, audio, archives) as clean budgeted markdown, kept fresh as sidecars the moment files land",
3
+ "version": "1.319.0",
4
+ "description": "fileq, agent-native file reading: any binary workspace file (docx, xlsx, pptx, pdf, images, audio, archives) as clean budgeted markdown, cached by content so a repeat read is instant",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "repository": {
@@ -11,7 +11,8 @@
11
11
  },
12
12
  "files": [
13
13
  "dist",
14
- "src"
14
+ "src",
15
+ "NOTICE"
15
16
  ],
16
17
  "publishConfig": {
17
18
  "access": "public",
@@ -21,6 +22,7 @@
21
22
  "fileq": "./dist/cli.js"
22
23
  },
23
24
  "exports": {
25
+ "./NOTICE": "./NOTICE",
24
26
  "./formats": {
25
27
  "types": "./dist/lib/formats.d.ts",
26
28
  "import": {
@@ -43,6 +45,17 @@
43
45
  "default": "./dist/lib/sidecar.js"
44
46
  }
45
47
  },
48
+ "./derive": {
49
+ "types": "./dist/lib/derive.d.ts",
50
+ "import": {
51
+ "@intentic/src": "./src/lib/derive.ts",
52
+ "default": "./dist/lib/derive.js"
53
+ },
54
+ "require": {
55
+ "@intentic/src": "./src/lib/derive.ts",
56
+ "default": "./dist/lib/derive.js"
57
+ }
58
+ },
46
59
  "./skill": {
47
60
  "types": "./dist/skill.d.ts",
48
61
  "import": {
@@ -56,11 +69,11 @@
56
69
  }
57
70
  },
58
71
  "dependencies": {
59
- "@intentic/agent-cli": "1.317.0",
60
- "@intentic/base": "1.317.0",
61
- "@intentic/constants": "1.317.0",
62
- "@intentic/webq": "1.317.0",
63
- "@intentic/workspace-ignore": "1.317.0",
72
+ "@intentic/agent-cli": "1.319.0",
73
+ "@intentic/base": "1.319.0",
74
+ "@intentic/constants": "1.319.0",
75
+ "@intentic/webq": "1.319.0",
76
+ "@intentic/workspace-ignore": "1.319.0",
64
77
  "@stricli/core": "1.3.0",
65
78
  "exceljs": "4.4.0",
66
79
  "exifr": "7.1.3",
package/src/app.ts CHANGED
@@ -1,39 +1,51 @@
1
1
  import { packageVersion } from "@intentic/agent-cli/version";
2
2
  import { buildApplication, buildRouteMap } from "@stricli/core";
3
+ import { checkCommand } from "./commands/check.command.js";
3
4
  import { deriveCommand } from "./commands/derive.command.js";
4
5
  import { gitAttributesCommand } from "./commands/git-attributes.command.js";
5
6
  import { readCommand } from "./commands/read.command.js";
6
- import { sweepCommand } from "./commands/sweep.command.js";
7
+ import { renderCommand } from "./commands/render.command.js";
7
8
 
8
9
  // The agent-facing contract, kept small — this is what `fileq --help` prints.
9
10
  const HELP = `fileq — binary workspace files as clean, budgeted markdown.
10
11
 
11
12
  Reads the formats an agent cannot: docx, xlsx, pptx, pdf (text layer), images
12
- (dimensions + EXIF), audio/video (duration + tags), html. Each workspace file
13
- gets a markdown SIDECAR under .intentic/local/cache/derived/<path>.md, kept
14
- fresh by content hash — reading a file twice derives once.
13
+ (dimensions + EXIF), audio/video (duration + tags), html. Renderings are cached
14
+ by content hash, so reading unchanged bytes again (the same file, a copy, a
15
+ download outside the workspace) is instant; each workspace file also gets a
16
+ markdown SIDECAR under .intentic/local/cache/derived/<path>.md.
15
17
 
16
18
  fileq <file> print it as markdown (default: read), budgeted
17
19
  fileq read <file> --budget 8000
18
20
  fileq derive <file…> converge named files' sidecars (stale→derive, gone→remove)
19
- fileq sweep converge the whole workspace, prune orphaned sidecars
20
21
  fileq read --plain <f> the markdown alone, for a program; git's textconv driver
21
22
  fileq git-attributes the gitattributes that route documents through it
22
23
 
24
+ After producing a document, check it and look at it:
25
+
26
+ fileq check <file> docx, pptx, xlsx, pdf: problems a reader would meet, each
27
+ with its slide, page, cell or paragraph; exit 1 on an error
28
+ fileq render <file> [--pages 1-3] [--out <dir>]
29
+ pages or slides as PNG files, one path per line, for an
30
+ image reader (office formats need LibreOffice; all need
31
+ pdftoppm or mutool)
32
+
23
33
  git diff, git show and git log -p on a document print its text, not "Binary
24
34
  files differ": the sandbox names every derivable extension diff=fileq.
25
35
 
26
36
  Not fileq's business: plain text (read it directly), the open web (webq),
27
37
  files needing OCR or transcription (later tiers say so in their sidecars).
28
38
 
29
- Exit codes: 0 content, 1 nothing derivable, 2 broken invocation or install.`;
39
+ Exit codes: 0 content, 1 nothing derivable (check: an error found), 2 broken
40
+ invocation or install (render: a tool it needs is missing).`;
30
41
 
31
42
  export const app = buildApplication(
32
43
  buildRouteMap({
33
44
  routes: {
34
45
  read: readCommand,
46
+ check: checkCommand,
47
+ render: renderCommand,
35
48
  derive: deriveCommand,
36
- sweep: sweepCommand,
37
49
  gitAttributes: gitAttributesCommand,
38
50
  },
39
51
  defaultCommand: "read",