@jcode.labs/ragmir 2.17.2 → 2.18.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 (203) hide show
  1. package/README.md +53 -6
  2. package/dist/access-log.d.ts +10 -0
  3. package/dist/access-log.d.ts.map +1 -1
  4. package/dist/access-log.js +119 -49
  5. package/dist/access-log.js.map +1 -1
  6. package/dist/chunking.d.ts +5 -1
  7. package/dist/chunking.d.ts.map +1 -1
  8. package/dist/chunking.js +102 -16
  9. package/dist/chunking.js.map +1 -1
  10. package/dist/citation.d.ts +18 -0
  11. package/dist/citation.d.ts.map +1 -0
  12. package/dist/citation.js +54 -0
  13. package/dist/citation.js.map +1 -0
  14. package/dist/cli-entry.d.ts +3 -0
  15. package/dist/cli-entry.d.ts.map +1 -0
  16. package/dist/cli-entry.js +16 -0
  17. package/dist/cli-entry.js.map +1 -0
  18. package/dist/cli-fast.d.ts +13 -0
  19. package/dist/cli-fast.d.ts.map +1 -0
  20. package/dist/cli-fast.js +145 -0
  21. package/dist/cli-fast.js.map +1 -0
  22. package/dist/cli-options.d.ts +3 -0
  23. package/dist/cli-options.d.ts.map +1 -1
  24. package/dist/cli-options.js +7 -0
  25. package/dist/cli-options.js.map +1 -1
  26. package/dist/cli-stdin.d.ts +3 -0
  27. package/dist/cli-stdin.d.ts.map +1 -0
  28. package/dist/cli-stdin.js +15 -0
  29. package/dist/cli-stdin.js.map +1 -0
  30. package/dist/cli.js +251 -44
  31. package/dist/cli.js.map +1 -1
  32. package/dist/client.d.ts +13 -2
  33. package/dist/client.d.ts.map +1 -1
  34. package/dist/client.js +155 -10
  35. package/dist/client.js.map +1 -1
  36. package/dist/config.d.ts +6 -0
  37. package/dist/config.d.ts.map +1 -1
  38. package/dist/config.js +227 -49
  39. package/dist/config.js.map +1 -1
  40. package/dist/context-resources.d.ts +4 -2
  41. package/dist/context-resources.d.ts.map +1 -1
  42. package/dist/context-resources.js +55 -24
  43. package/dist/context-resources.js.map +1 -1
  44. package/dist/defaults.d.ts +27 -0
  45. package/dist/defaults.d.ts.map +1 -1
  46. package/dist/defaults.js +42 -2
  47. package/dist/defaults.js.map +1 -1
  48. package/dist/destroy.d.ts +2 -2
  49. package/dist/destroy.d.ts.map +1 -1
  50. package/dist/destroy.js +34 -20
  51. package/dist/destroy.js.map +1 -1
  52. package/dist/doctor.d.ts +3 -2
  53. package/dist/doctor.d.ts.map +1 -1
  54. package/dist/doctor.js +86 -41
  55. package/dist/doctor.js.map +1 -1
  56. package/dist/durable-file.d.ts +13 -0
  57. package/dist/durable-file.d.ts.map +1 -0
  58. package/dist/durable-file.js +56 -0
  59. package/dist/durable-file.js.map +1 -0
  60. package/dist/embeddings.d.ts +14 -3
  61. package/dist/embeddings.d.ts.map +1 -1
  62. package/dist/embeddings.js +233 -95
  63. package/dist/embeddings.js.map +1 -1
  64. package/dist/errors.d.ts +1 -1
  65. package/dist/errors.d.ts.map +1 -1
  66. package/dist/errors.js.map +1 -1
  67. package/dist/evaluate.d.ts +4 -3
  68. package/dist/evaluate.d.ts.map +1 -1
  69. package/dist/evaluate.js +611 -110
  70. package/dist/evaluate.js.map +1 -1
  71. package/dist/files.d.ts +4 -1
  72. package/dist/files.d.ts.map +1 -1
  73. package/dist/files.js +119 -33
  74. package/dist/files.js.map +1 -1
  75. package/dist/generation-retention.d.ts +52 -0
  76. package/dist/generation-retention.d.ts.map +1 -0
  77. package/dist/generation-retention.js +318 -0
  78. package/dist/generation-retention.js.map +1 -0
  79. package/dist/index-diagnostics.d.ts +3 -2
  80. package/dist/index-diagnostics.d.ts.map +1 -1
  81. package/dist/index-diagnostics.js +32 -3
  82. package/dist/index-diagnostics.js.map +1 -1
  83. package/dist/index-policy.d.ts.map +1 -1
  84. package/dist/index-policy.js +3 -0
  85. package/dist/index-policy.js.map +1 -1
  86. package/dist/index-write-lock.d.ts +16 -1
  87. package/dist/index-write-lock.d.ts.map +1 -1
  88. package/dist/index-write-lock.js +392 -13
  89. package/dist/index-write-lock.js.map +1 -1
  90. package/dist/index.d.ts +12 -4
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +5 -2
  93. package/dist/index.js.map +1 -1
  94. package/dist/ingest.d.ts +11 -2
  95. package/dist/ingest.d.ts.map +1 -1
  96. package/dist/ingest.js +680 -165
  97. package/dist/ingest.js.map +1 -1
  98. package/dist/ingestion-metrics.d.ts +58 -0
  99. package/dist/ingestion-metrics.d.ts.map +1 -0
  100. package/dist/ingestion-metrics.js +216 -0
  101. package/dist/ingestion-metrics.js.map +1 -0
  102. package/dist/ingestion-state.d.ts +11 -2
  103. package/dist/ingestion-state.d.ts.map +1 -1
  104. package/dist/ingestion-state.js +480 -49
  105. package/dist/ingestion-state.js.map +1 -1
  106. package/dist/limits.d.ts.map +1 -1
  107. package/dist/limits.js +11 -1
  108. package/dist/limits.js.map +1 -1
  109. package/dist/mcp-output.d.ts +44 -4
  110. package/dist/mcp-output.d.ts.map +1 -1
  111. package/dist/mcp-output.js +132 -159
  112. package/dist/mcp-output.js.map +1 -1
  113. package/dist/mcp-summaries.d.ts +32 -0
  114. package/dist/mcp-summaries.d.ts.map +1 -0
  115. package/dist/mcp-summaries.js +227 -0
  116. package/dist/mcp-summaries.js.map +1 -0
  117. package/dist/mcp.d.ts +1 -1
  118. package/dist/mcp.d.ts.map +1 -1
  119. package/dist/mcp.js +85 -46
  120. package/dist/mcp.js.map +1 -1
  121. package/dist/ocr-cache.d.ts +15 -0
  122. package/dist/ocr-cache.d.ts.map +1 -0
  123. package/dist/ocr-cache.js +90 -0
  124. package/dist/ocr-cache.js.map +1 -0
  125. package/dist/ocr.d.ts +31 -0
  126. package/dist/ocr.d.ts.map +1 -1
  127. package/dist/ocr.js +193 -17
  128. package/dist/ocr.js.map +1 -1
  129. package/dist/parsing.d.ts.map +1 -1
  130. package/dist/parsing.js +482 -85
  131. package/dist/parsing.js.map +1 -1
  132. package/dist/permissions.js +2 -2
  133. package/dist/permissions.js.map +1 -1
  134. package/dist/preview.d.ts.map +1 -1
  135. package/dist/preview.js +10 -11
  136. package/dist/preview.js.map +1 -1
  137. package/dist/quality-report.d.ts +12 -0
  138. package/dist/quality-report.d.ts.map +1 -0
  139. package/dist/quality-report.js +146 -0
  140. package/dist/quality-report.js.map +1 -0
  141. package/dist/query.d.ts +7 -4
  142. package/dist/query.d.ts.map +1 -1
  143. package/dist/query.js +371 -284
  144. package/dist/query.js.map +1 -1
  145. package/dist/ranking.d.ts +38 -0
  146. package/dist/ranking.d.ts.map +1 -0
  147. package/dist/ranking.js +278 -0
  148. package/dist/ranking.js.map +1 -0
  149. package/dist/redaction.d.ts +6 -1
  150. package/dist/redaction.d.ts.map +1 -1
  151. package/dist/redaction.js +118 -4
  152. package/dist/redaction.js.map +1 -1
  153. package/dist/research.d.ts +6 -1
  154. package/dist/research.d.ts.map +1 -1
  155. package/dist/research.js +330 -130
  156. package/dist/research.js.map +1 -1
  157. package/dist/runtime-info.d.ts +3 -0
  158. package/dist/runtime-info.d.ts.map +1 -0
  159. package/dist/runtime-info.js +81 -0
  160. package/dist/runtime-info.js.map +1 -0
  161. package/dist/security.d.ts +3 -2
  162. package/dist/security.d.ts.map +1 -1
  163. package/dist/security.js +242 -45
  164. package/dist/security.js.map +1 -1
  165. package/dist/semantic-config.d.ts +7 -1
  166. package/dist/semantic-config.d.ts.map +1 -1
  167. package/dist/semantic-config.js +30 -4
  168. package/dist/semantic-config.js.map +1 -1
  169. package/dist/setup.js +6 -3
  170. package/dist/setup.js.map +1 -1
  171. package/dist/skill.js +34 -12
  172. package/dist/skill.js.map +1 -1
  173. package/dist/source-fingerprint-cache.d.ts +20 -0
  174. package/dist/source-fingerprint-cache.d.ts.map +1 -0
  175. package/dist/source-fingerprint-cache.js +133 -0
  176. package/dist/source-fingerprint-cache.js.map +1 -0
  177. package/dist/storage-maintenance.d.ts +46 -0
  178. package/dist/storage-maintenance.d.ts.map +1 -0
  179. package/dist/storage-maintenance.js +329 -0
  180. package/dist/storage-maintenance.js.map +1 -0
  181. package/dist/store.d.ts +39 -2
  182. package/dist/store.d.ts.map +1 -1
  183. package/dist/store.js +559 -24
  184. package/dist/store.js.map +1 -1
  185. package/dist/text.d.ts +1 -1
  186. package/dist/text.d.ts.map +1 -1
  187. package/dist/text.js +12 -2
  188. package/dist/text.js.map +1 -1
  189. package/dist/types.d.ts +414 -5
  190. package/dist/types.d.ts.map +1 -1
  191. package/dist/vector-index.d.ts +42 -0
  192. package/dist/vector-index.d.ts.map +1 -0
  193. package/dist/vector-index.js +249 -0
  194. package/dist/vector-index.js.map +1 -0
  195. package/dist/version.d.ts +1 -1
  196. package/dist/version.js +1 -1
  197. package/dist/workload.d.ts +22 -0
  198. package/dist/workload.d.ts.map +1 -0
  199. package/dist/workload.js +181 -0
  200. package/dist/workload.js.map +1 -0
  201. package/examples/document-evidence-benchmark/README.md +3 -2
  202. package/examples/document-evidence-benchmark/golden-queries.json +1 -1
  203. package/package.json +36 -11
package/dist/ocr.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ocr.d.ts","sourceRoot":"","sources":["../src/ocr.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW,CAAA;AACnD,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,MAAM,CAAA;AAEzD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;IAC3D,UAAU,EAAE,OAAO,CAAA;IACnB,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,iBAAiB,EAAE,YAAY,GAAG,IAAI,CAAA;IACtC,QAAQ,EAAE,mBAAmB,GAAG;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAA;IACtD,SAAS,EAAE,mBAAmB,CAAA;IAC9B,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAOD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,IAAI,GAAG,qBAAqB,CAAA;AACpG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,YAAY,CAAA;AAiB7F,wBAAgB,oBAAoB,CAAC,KAAK,SAAQ,GAAG,MAAM,CAM1D;AAED,wBAAsB,aAAa,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CA0B9E;AAED,wBAAsB,eAAe,CACnC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAiDhC;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBpF"}
1
+ {"version":3,"file":"ocr.d.ts","sourceRoot":"","sources":["../src/ocr.ts"],"names":[],"mappings":"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"}
package/dist/ocr.js CHANGED
@@ -1,17 +1,20 @@
1
1
  import { spawn } from "node:child_process";
2
- import { mkdtemp, readFile, rm } from "node:fs/promises";
2
+ import { createHash } from "node:crypto";
3
+ import { createReadStream } from "node:fs";
4
+ import { mkdtemp, readdir, readFile, rm, stat, writeFile } from "node:fs/promises";
3
5
  import os from "node:os";
4
6
  import path from "node:path";
5
7
  import { findProjectConfig, loadConfig } from "./config.js";
6
8
  import { initProject } from "./init.js";
7
- import { MAX_EXTERNAL_TEXT_STDIO_BYTES } from "./limits.js";
9
+ import { MAX_EXTERNAL_TEXT_STDIO_BYTES, MAX_PDF_PAGES } from "./limits.js";
8
10
  import { rgrCommand } from "./package-manager.js";
9
11
  import { hardenPrivateFile } from "./permissions.js";
10
12
  import { mutateProjectConfig } from "./project-config-file.js";
11
13
  const OCR_COMMAND_TIMEOUT_MS = 120_000;
12
14
  const OCR_PROBE_TIMEOUT_MS = 10_000;
13
15
  const OCR_PROCESS_KILL_GRACE_MS = 1_000;
14
- const OCR_RENDER_DPI = 300;
16
+ export const OCR_RENDER_DPI = 300;
17
+ export const MAX_OCR_BATCH_PAGES = 16;
15
18
  const MINIMUM_OCRMYPDF_VERSION = { major: 12, minor: 6 };
16
19
  export function parsePdfOcrEngine(value, allowAuto = false) {
17
20
  const normalized = value?.trim().toLowerCase();
@@ -30,6 +33,10 @@ export function normalizeOcrLanguage(value = "eng") {
30
33
  }
31
34
  return normalized;
32
35
  }
36
+ export function parsePdfOcrPages(value) {
37
+ const pages = value.split(",").map((entry) => Number(entry.trim()));
38
+ return normalizePdfOcrPages(pages);
39
+ }
33
40
  export async function inspectPdfOcr(cwd = process.cwd()) {
34
41
  const config = await loadConfig(cwd);
35
42
  const [ocrmypdf, tesseract, pdftoppm] = await Promise.all([
@@ -74,15 +81,15 @@ export async function configurePdfOcr(options = {}) {
74
81
  }
75
82
  const configuredCommand = await rgrCommand(config.projectRoot, [
76
83
  "ocr",
77
- "extract-page",
84
+ "extract-pages",
78
85
  "--engine",
79
86
  engine,
80
87
  "--language",
81
88
  language,
82
89
  "--input",
83
90
  "{input}",
84
- "--page",
85
- "{page}",
91
+ "--pages",
92
+ "{pages}",
86
93
  "--timeout-ms",
87
94
  String(timeoutMs),
88
95
  ]);
@@ -102,8 +109,19 @@ export async function configurePdfOcr(options = {}) {
102
109
  };
103
110
  }
104
111
  export async function extractPdfPage(options) {
105
- if (!Number.isInteger(options.page) || options.page <= 0) {
106
- throw new Error("PDF page must be a positive integer.");
112
+ const result = await extractPdfPages({
113
+ engine: options.engine,
114
+ input: options.input,
115
+ pages: [options.page],
116
+ ...(options.language === undefined ? {} : { language: options.language }),
117
+ ...(options.timeoutMs === undefined ? {} : { timeoutMs: options.timeoutMs }),
118
+ });
119
+ return result.pages[0]?.text ?? "";
120
+ }
121
+ export async function extractPdfPages(options) {
122
+ const pages = normalizePdfOcrPages(options.pages);
123
+ if (pages.length > MAX_OCR_BATCH_PAGES) {
124
+ throw new Error(`One OCR batch cannot exceed ${MAX_OCR_BATCH_PAGES} pages.`);
107
125
  }
108
126
  const language = normalizeOcrLanguage(options.language);
109
127
  const timeoutMs = options.timeoutMs ?? OCR_COMMAND_TIMEOUT_MS;
@@ -115,9 +133,21 @@ export async function extractPdfPage(options) {
115
133
  const tempDir = await createOcrTempDirectory();
116
134
  try {
117
135
  if (engine === "ocrmypdf") {
118
- return await extractWithOcrMyPdf({ input, page: options.page, language, timeoutMs, tempDir });
136
+ return {
137
+ engine,
138
+ language,
139
+ dpi: OCR_RENDER_DPI,
140
+ subprocesses: 1,
141
+ pages: pairOcrPageText(pages, await extractWithOcrMyPdf({ input, pages, language, timeoutMs, tempDir })),
142
+ };
119
143
  }
120
- return await extractWithTesseract({ input, page: options.page, language, timeoutMs, tempDir });
144
+ return {
145
+ engine,
146
+ language,
147
+ dpi: OCR_RENDER_DPI,
148
+ subprocesses: 2,
149
+ pages: pairOcrPageText(pages, await extractWithTesseract({ input, pages, language, timeoutMs, tempDir })),
150
+ };
121
151
  }
122
152
  finally {
123
153
  await rm(tempDir, { recursive: true, force: true });
@@ -149,12 +179,12 @@ function assertLanguagesAvailable(language, installed) {
149
179
  }
150
180
  }
151
181
  async function extractWithOcrMyPdf(options) {
152
- const sidecarPath = path.join(options.tempDir, "page.txt");
182
+ const sidecarPath = path.join(options.tempDir, "pages.txt");
153
183
  await runProcess("ocrmypdf", [
154
184
  "--quiet",
155
185
  "--force-ocr",
156
186
  "--pages",
157
- String(options.page),
187
+ options.pages.join(","),
158
188
  "--language",
159
189
  options.language,
160
190
  "--sidecar",
@@ -167,13 +197,17 @@ async function extractWithOcrMyPdf(options) {
167
197
  return readFile(sidecarPath, "utf8");
168
198
  }
169
199
  async function extractWithTesseract(options) {
170
- const outputPrefix = path.join(options.tempDir, "page");
200
+ const firstPage = options.pages[0];
201
+ const lastPage = options.pages.at(-1);
202
+ if (firstPage === undefined || lastPage === undefined) {
203
+ throw new Error("At least one PDF page is required for OCR.");
204
+ }
205
+ const outputPrefix = path.join(options.tempDir, "rendered-page");
171
206
  await runProcess("pdftoppm", [
172
207
  "-f",
173
- String(options.page),
208
+ String(firstPage),
174
209
  "-l",
175
- String(options.page),
176
- "-singlefile",
210
+ String(lastPage),
177
211
  "-r",
178
212
  String(OCR_RENDER_DPI),
179
213
  "-gray",
@@ -181,12 +215,151 @@ async function extractWithTesseract(options) {
181
215
  options.input,
182
216
  outputPrefix,
183
217
  ], { timeoutMs: options.timeoutMs });
184
- const result = await runProcess("tesseract", ["page.png", "stdout", "-l", options.language], {
218
+ const renderedPages = (await readdir(options.tempDir))
219
+ .filter((entry) => entry.startsWith("rendered-page-") && entry.endsWith(".png"))
220
+ .sort(naturalFilenameOrder);
221
+ const renderedCount = lastPage - firstPage + 1;
222
+ if (renderedPages.length !== renderedCount) {
223
+ throw new Error(`Poppler rendered ${renderedPages.length} pages, expected ${renderedCount} for OCR.`);
224
+ }
225
+ const selectedPages = options.pages.map((pageNumber) => {
226
+ const filename = renderedPages[pageNumber - firstPage];
227
+ if (!filename) {
228
+ throw new Error(`Poppler did not render requested PDF page ${pageNumber}.`);
229
+ }
230
+ return path.join(options.tempDir, filename);
231
+ });
232
+ const pageListPath = path.join(options.tempDir, "pages.txt");
233
+ await writeFile(pageListPath, `${selectedPages.join("\n")}\n`, "utf8");
234
+ const result = await runProcess("tesseract", [pageListPath, "stdout", "-l", options.language], {
185
235
  cwd: options.tempDir,
186
236
  timeoutMs: options.timeoutMs,
187
237
  });
188
238
  return result.stdout;
189
239
  }
240
+ function pairOcrPageText(pages, output) {
241
+ const pageTexts = output.replace(/\r\n?/gu, "\n").split("\f");
242
+ if (pageTexts.at(-1) === "") {
243
+ pageTexts.pop();
244
+ }
245
+ if (pageTexts.length !== pages.length) {
246
+ throw new Error(`OCR returned ${pageTexts.length} page payloads for ${pages.length} requested pages.`);
247
+ }
248
+ return pages.map((page, index) => ({ page, text: pageTexts[index] ?? "" }));
249
+ }
250
+ function normalizePdfOcrPages(pages) {
251
+ if (pages.length === 0) {
252
+ throw new Error("At least one PDF page is required for OCR.");
253
+ }
254
+ const normalized = [...new Set(pages)].sort((left, right) => left - right);
255
+ if (normalized.some((pageNumber) => !Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > MAX_PDF_PAGES)) {
256
+ throw new Error(`PDF pages must be integers between 1 and ${MAX_PDF_PAGES}.`);
257
+ }
258
+ return normalized;
259
+ }
260
+ function naturalFilenameOrder(left, right) {
261
+ const leftPage = Number(left.match(/(\d+)\.png$/u)?.[1]);
262
+ const rightPage = Number(right.match(/(\d+)\.png$/u)?.[1]);
263
+ return leftPage - rightPage;
264
+ }
265
+ export async function pdfOcrCommandIdentity(command, cwd = process.cwd()) {
266
+ const configuredEngine = commandOption(command, "--engine");
267
+ const engine = configuredEngine === "ocrmypdf" || configuredEngine === "tesseract"
268
+ ? configuredEngine
269
+ : path.basename(command[0] ?? "custom");
270
+ const configuredLanguage = commandOption(command, "--language")?.trim().toLowerCase();
271
+ const language = configuredLanguage && configuredLanguage.length > 0 ? configuredLanguage : "eng";
272
+ const configuredDpi = Number(commandOption(command, "--dpi"));
273
+ const dpi = Number.isInteger(configuredDpi) && configuredDpi > 0 ? configuredDpi : OCR_RENDER_DPI;
274
+ const commandFingerprint = await fingerprintOcrCommand(command, cwd);
275
+ let engineVersion = `command:${commandFingerprint}`;
276
+ let subprocesses = 0;
277
+ if (engine === "tesseract") {
278
+ const [tesseract, pdftoppm] = await Promise.all([
279
+ probeExecutable("tesseract", ["--version"]),
280
+ probeExecutable("pdftoppm", ["-v"]),
281
+ ]);
282
+ engineVersion = `tesseract:${tesseract.version ?? "unavailable"};pdftoppm:${pdftoppm.version ?? "unavailable"}`;
283
+ subprocesses = 2;
284
+ }
285
+ else if (engine === "ocrmypdf") {
286
+ const ocrmypdf = await probeExecutable("ocrmypdf", ["--version"]);
287
+ engineVersion = `ocrmypdf:${ocrmypdf.version ?? "unavailable"}`;
288
+ subprocesses = 1;
289
+ }
290
+ return {
291
+ engine,
292
+ engineVersion,
293
+ language,
294
+ dpi,
295
+ commandFingerprint,
296
+ supportsBatch: command.some((part) => part.includes("{pages}")),
297
+ subprocesses,
298
+ };
299
+ }
300
+ function commandOption(command, name) {
301
+ const index = command.indexOf(name);
302
+ return index >= 0 ? command[index + 1] : undefined;
303
+ }
304
+ async function fingerprintOcrCommand(command, cwd) {
305
+ const fingerprint = createHash("sha256");
306
+ fingerprint.update(JSON.stringify(command));
307
+ for (const [index, part] of command.entries()) {
308
+ if (part.includes("{") || part.startsWith("--")) {
309
+ continue;
310
+ }
311
+ const candidate = await commandFilePath(part, index === 0, cwd);
312
+ if (!candidate) {
313
+ continue;
314
+ }
315
+ const metadata = await stat(candidate);
316
+ if (!metadata.isFile()) {
317
+ continue;
318
+ }
319
+ fingerprint.update("\0");
320
+ fingerprint.update(String(index));
321
+ fingerprint.update("\0");
322
+ fingerprint.update(String(metadata.size));
323
+ fingerprint.update("\0");
324
+ if (candidate === process.execPath) {
325
+ fingerprint.update(process.version);
326
+ continue;
327
+ }
328
+ for await (const chunk of createReadStream(candidate)) {
329
+ fingerprint.update(chunk);
330
+ }
331
+ }
332
+ return fingerprint.digest("hex");
333
+ }
334
+ async function commandFilePath(value, executable, cwd) {
335
+ const candidates = path.isAbsolute(value)
336
+ ? [value]
337
+ : value.includes(path.sep)
338
+ ? [path.resolve(cwd, value)]
339
+ : executable
340
+ ? executableCandidates(value)
341
+ : [path.resolve(cwd, value)];
342
+ for (const candidate of candidates) {
343
+ try {
344
+ if ((await stat(candidate)).isFile()) {
345
+ return candidate;
346
+ }
347
+ }
348
+ catch (error) {
349
+ if (!isNodeError(error) || error.code !== "ENOENT") {
350
+ throw error;
351
+ }
352
+ }
353
+ }
354
+ return null;
355
+ }
356
+ function executableCandidates(executable) {
357
+ const extensions = process.platform === "win32" ? (process.env.PATHEXT ?? ".EXE;.CMD;.BAT").split(";") : [""];
358
+ return (process.env.PATH ?? "")
359
+ .split(path.delimiter)
360
+ .filter(Boolean)
361
+ .flatMap((directory) => extensions.map((extension) => path.join(directory, executable + extension)));
362
+ }
190
363
  async function createOcrTempDirectory() {
191
364
  return mkdtemp(path.join(os.tmpdir(), "ragmir-ocr-"));
192
365
  }
@@ -331,4 +504,7 @@ function externalCommandEnvironment() {
331
504
  return value === undefined ? [] : [[name, value]];
332
505
  }));
333
506
  }
507
+ function isNodeError(error) {
508
+ return error instanceof Error && "code" in error;
509
+ }
334
510
  //# sourceMappingURL=ocr.js.map
package/dist/ocr.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ocr.js","sourceRoot":"","sources":["../src/ocr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,sBAAsB,GAAG,OAAO,CAAA;AACtC,MAAM,oBAAoB,GAAG,MAAM,CAAA;AACnC,MAAM,yBAAyB,GAAG,KAAK,CAAA;AACvC,MAAM,cAAc,GAAG,GAAG,CAAA;AAC1B,MAAM,wBAAwB,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAoDxD,MAAM,UAAU,iBAAiB,CAC/B,KAAyB,EACzB,SAAS,GAAG,KAAK;IAEjB,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC9C,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QAC5D,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,IAAI,SAAS,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,MAAM,CAAC,EAAE,CAAC;QACrE,OAAO,MAAM,CAAA;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CACb,SAAS,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,iCAAiC,CACzF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAK,GAAG,KAAK;IAChD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7C,IAAI,CAAC,kDAAkD,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;IACxF,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACrD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;IACpC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxD,eAAe,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC;QAC1C,eAAe,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,CAAC;QAC3C,eAAe,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;KACpC,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3E,MAAM,iBAAiB,GAAG,QAAQ,CAAC,SAAS,IAAI,0BAA0B,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC5F,MAAM,iBAAiB,GAAG,iBAAiB;QACzC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS;YACzC,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,IAAI,CAAA;IAEV,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;QAC3C,iBAAiB,EAAE,MAAM,CAAC,aAAa;QACvC,iBAAiB;QACjB,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE;QACvD,SAAS;QACT,QAAQ;QACR,SAAS;KACV,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkC,EAAE;IAEpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACxC,MAAM,WAAW,CAAC,GAAG,CAAC,CAAA;IACtB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;IACpC,IAAI,MAAM,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,0HAA0H,CAC3H,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,eAAe,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC/D,MAAM,MAAM,GAAG,aAAa,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvD,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;IACpD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,eAAe,CAAA;IAC7D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE;QAC7D,KAAK;QACL,cAAc;QACd,UAAU;QACV,MAAM;QACN,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,MAAM,CAAC,SAAS,CAAC;KAClB,CAAC,CAAA;IACF,MAAM,aAAa,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC5E,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAC3D,MAAM,mBAAmB,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;QAC/C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAA;QACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;IAC5C,CAAC,CAAC,CAAA;IACF,MAAM,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;IAEjD,OAAO;QACL,UAAU,EAAE,aAAa,CAAC,UAAU;QACpC,MAAM;QACN,QAAQ;QACR,SAAS;QACT,aAAa;KACd,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA8B;IACjE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IACzD,CAAC;IACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,sBAAsB,CAAA;IAC7D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACzC,MAAM,OAAO,GAAG,MAAM,sBAAsB,EAAE,CAAA;IAE9C,IAAI,CAAC;QACH,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1B,OAAO,MAAM,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA;QAC/F,CAAC;QACD,OAAO,MAAM,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA;IAChG,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACrD,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,SAAgC,EAAE,MAAoB;IAC3E,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,iBAAiB,CAAA;QACjC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,wIAAwI,CACzI,CAAA;IACH,CAAC;IACD,IAAI,SAAS,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAA;IACzF,CAAC;IACD,IAAI,SAAS,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7F,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAA;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAgB,EAAE,SAAmB;IACrE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAM;IACR,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,OAMlC;IACC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAC1D,MAAM,UAAU,CACd,UAAU,EACV;QACE,SAAS;QACT,aAAa;QACb,SAAS;QACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACpB,YAAY;QACZ,OAAO,CAAC,QAAQ;QAChB,WAAW;QACX,WAAW;QACX,eAAe;QACf,MAAM;QACN,OAAO,CAAC,KAAK;QACb,GAAG;KACJ,EACD,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CACjC,CAAA;IACD,OAAO,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;AACtC,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,OAMnC;IACC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACvD,MAAM,UAAU,CACd,UAAU,EACV;QACE,IAAI;QACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACpB,IAAI;QACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACpB,aAAa;QACb,IAAI;QACJ,MAAM,CAAC,cAAc,CAAC;QACtB,OAAO;QACP,MAAM;QACN,OAAO,CAAC,KAAK;QACb,YAAY;KACb,EACD,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CACjC,CAAA;IACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3F,GAAG,EAAE,OAAO,CAAC,OAAO;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,MAAM,CAAA;AACtB,CAAC;AAED,KAAK,UAAU,sBAAsB;IACnC,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAA;AACvD,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,IAAc;IAC/D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,CAAA;QACtF,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;QACvE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC5C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC,EAAE;YAC7D,SAAS,EAAE,oBAAoB;SAChC,CAAC,CAAA;QACF,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;aACxC,KAAK,CAAC,QAAQ,CAAC;aACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC;aACpF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAsB;IACxD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9B,OAAO,CACL,KAAK,GAAG,wBAAwB,CAAC,KAAK;QACtC,CAAC,KAAK,KAAK,wBAAwB,CAAC,KAAK,IAAI,KAAK,IAAI,wBAAwB,CAAC,KAAK,CAAC,CACtF,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,OAAO,CACL,KAAK;SACF,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAC3C,CAAA;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,UAAkB,EAClB,IAAc,EACd,OAA4C;IAE5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE;YACpC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;YACtC,GAAG,EAAE,0BAA0B,EAAE;YACjC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAA;QACF,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,cAAc,GAAG,KAAK,CAAA;QAC1B,IAAI,kBAAkB,GAAG,KAAK,CAAA;QAC9B,IAAI,gBAA2D,CAAA;QAE/D,MAAM,uBAAuB,GAAG,GAAS,EAAE;YACzC,IAAI,kBAAkB,EAAE,CAAC;gBACvB,OAAM;YACR,CAAC;YACD,kBAAkB,GAAG,IAAI,CAAA;YACzB,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;YAChC,gBAAgB,GAAG,UAAU,CAC3B,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EACtC,yBAAyB,CAC1B,CAAA;QACH,CAAC,CAAA;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,QAAQ,GAAG,IAAI,CAAA;YACf,uBAAuB,EAAE,CAAA;QAC3B,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QACrB,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,MAAsB,EAAQ,EAAE;YAC7D,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAM;YACR,CAAC;YACD,OAAO,GAAG,IAAI,CAAA;YACd,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,IAAI,gBAAgB,EAAE,CAAC;gBACrB,YAAY,CAAC,gBAAgB,CAAC,CAAA;YAChC,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAClB,OAAO,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC;QACH,CAAC,CAAA;QAED,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAChC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAChC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,IAAI,KAAK,CAAA;YACf,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,6BAA6B,EAAE,CAAC;gBACtE,cAAc,GAAG,IAAI,CAAA;gBACrB,uBAAuB,EAAE,CAAA;YAC3B,CAAC;QACH,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,IAAI,KAAK,CAAA;YACf,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,6BAA6B,EAAE,CAAC;gBACtE,cAAc,GAAG,IAAI,CAAA;gBACrB,uBAAuB,EAAE,CAAA;YAC3B,CAAC;QACH,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,UAAU,aAAa,CAAC,CAAC,CAAA;gBAC7C,OAAM;YACR,CAAC;YACD,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,UAAU,4BAA4B,CAAC,CAAC,CAAA;gBAC5D,OAAM;YACR,CAAC;YACD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;gBAC5B,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,UAAU,CAAC,CAAC,CAAA;gBACvF,OAAM;YACR,CAAC;YACD,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAA+B,EAAE,MAAsB;IAC7E,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAChC,OAAM;QACR,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;QAC1D,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACpB,CAAC;AAED,SAAS,0BAA0B;IACjC,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC3E,OAAO,MAAM,CAAC,WAAW,CACvB,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC/B,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IACnD,CAAC,CAAC,CACH,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"ocr.js","sourceRoot":"","sources":["../src/ocr.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../src/parsing.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,cAAc,EAAc,UAAU,EAAE,MAAM,YAAY,CAAA;AAaxE,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAmEzB"}
1
+ {"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../src/parsing.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EACV,cAAc,EAId,UAAU,EAEX,MAAM,YAAY,CAAA;AAcnB,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAmFzB"}