@oomkapwn/enquire-mcp 3.7.14 → 3.7.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +143 -0
- package/README.md +4 -4
- package/SECURITY.md +26 -0
- package/dist/doctor.js +1 -1
- package/dist/fts5.d.ts +8 -3
- package/dist/fts5.d.ts.map +1 -1
- package/dist/fts5.js +29 -7
- package/dist/fts5.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/ocr.d.ts +42 -3
- package/dist/ocr.d.ts.map +1 -1
- package/dist/ocr.js +41 -2
- package/dist/ocr.js.map +1 -1
- package/dist/pdf.d.ts +16 -1
- package/dist/pdf.d.ts.map +1 -1
- package/dist/pdf.js +16 -1
- package/dist/pdf.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +6 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/meta.d.ts +9 -1
- package/dist/tools/meta.d.ts.map +1 -1
- package/dist/tools/meta.js +25 -1
- package/dist/tools/meta.js.map +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +8 -2
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/write.d.ts +8 -0
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +46 -10
- package/dist/tools/write.js.map +1 -1
- package/dist/vault.d.ts +95 -4
- package/dist/vault.d.ts.map +1 -1
- package/dist/vault.js +174 -6
- package/dist/vault.js.map +1 -1
- package/dist/watcher.d.ts +15 -0
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +37 -7
- package/dist/watcher.js.map +1 -1
- package/docs/COMPARISON.md +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,149 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
4
4
|
|
|
5
|
+
## [3.7.16] — 2026-05-18
|
|
6
|
+
|
|
7
|
+
> **TL;DR:** Round-18 external audit response — 5th independent external audit since v3.6.0, run on the v3.7.5 codebase (commit `b9daf39`). The cascade v3.7.6 → v3.7.15 had already closed many findings; this patch addresses the still-open critical + high-impact items. **10 fixes** landed: 5 P1 High (OCR network disclosure + 200-page cap, persistent cache + privacy filters, PDF watcher lifecycle, macOS case-insensitive write bypass), 3 P2 Medium (title-based write ambiguity = silent data corruption, validateNoteProposal privacy check, FTS5 tag LIKE wildcard escape), 2 P3 Low (PDF install hint version, FTS5 reserved-word quoting, issue template ChatGPT). Plus 1 graph-boost path bug (P2-16, C# Notes.md). **+0 tests** (1 test contract change for P3-28). 4 architectural findings deferred to v3.8.0 (serve-http parity, FTS5/embedding chunking parity, search underfill, OCR timeout/concurrency).
|
|
8
|
+
|
|
9
|
+
**Patch — round-18 external audit batch.**
|
|
10
|
+
|
|
11
|
+
### Already FIXED by the v3.7.6-15 cascade
|
|
12
|
+
|
|
13
|
+
The audit was on v3.7.5 — these findings were closed before this patch:
|
|
14
|
+
|
|
15
|
+
- **#9 FTS5 reindex non-atomic** → v3.7.10 audit #10 (transaction wrap)
|
|
16
|
+
- **#17 TOOL_MANIFEST not in exports** → v3.7.12 H4
|
|
17
|
+
- **#19 7 required CI gates** → v3.7.13 M5 (bumped to 8)
|
|
18
|
+
- **#22 stale test counts (786/670)** → v3.7.11-15 cascade (now gated at 816)
|
|
19
|
+
- **#24 reranker "5 models" misleading** → v3.7.12 L4 + v3.7.15 R17-3
|
|
20
|
+
- **#19 partial** "CodeQL/Analyze workflows don't exist" — actually false positive: those run via GitHub Default Setup (no committed .yml needed); they DO execute and show on every PR
|
|
21
|
+
|
|
22
|
+
### P1 High fixes (5)
|
|
23
|
+
|
|
24
|
+
- **P1-1 — OCR Tesseract network policy disclosure** (`src/ocr.ts:147+`, `SECURITY.md`). Tesseract.js fetches `<lang>.traineddata` (~10 MB per language) from a CDN on first use — this is the only outbound network call possible in serve mode, contradicting the broader "zero outbound network calls" framing. Pre-3.7.16 the project's privacy-promise didn't disclose this. Fix: stderr disclosure warning fires once per OCR worker creation (`enquire OCR: Tesseract.js may fetch language pack '<lang>' from a CDN on first use...`), plus new SECURITY.md section "OCR (`obsidian_ocr_pdf`): network posture" documenting the trade-off and the v3.8.0 roadmap (offline `install-ocr-lang` subcommand + strict cache check).
|
|
25
|
+
- **P1-2 — OCR `DEFAULT_OCR_MAX_PAGES` safety cap** (`src/ocr.ts`). Pre-3.7.16 a single bearer-authenticated HTTP request could trigger unbounded OCR on a 10000-page PDF — minutes-to-hours of CPU pegged. Now defaults to 200 pages per call (`maxPages` opt to override), checked BEFORE the Tesseract worker spins up so no resources allocate on adversarial inputs.
|
|
26
|
+
- **P1-4 — Persistent cache + privacy filter drift** (`src/vault.ts` `loadDiskCache`). Pre-3.7.16, if a user filled the cache with all notes (no filter), then added `--exclude-glob "Personal/**"` on the next start, the excluded note bodies were loaded back from disk into the in-memory cache (and rewritten on the next save). At-rest privacy boundary broken across filter changes. Now `loadDiskCache` runs every candidate through `isExcluded()` against the LIVE filter state; misses are dropped and `cacheDirty` is set so the next save persists the pruned snapshot. Stderr disclosure when entries are dropped by privacy.
|
|
27
|
+
- **P1-5 — `--watch --include-pdfs` PDF watcher lifecycle** (`src/watcher.ts`, `src/server.ts`). Pre-3.7.16 the watcher hard-coded `.md`-only event handling, so PDFs added/changed/deleted/moved during a serve session left stale rows in FTS5 until restart. New `WatcherOptions.includePdfs`; when on AND `--include-pdfs` is on, the watcher dispatches `.pdf` events to `FtsIndex.reindexPdfFile()` / `dropFile()` via lazy `import("./pdf.js")`.
|
|
28
|
+
- **P1-6 — macOS / Windows case-insensitive write privacy bypass** (`src/vault.ts` `writeNote` + `renameFile`). Default macOS HFS+/APFS and Windows NTFS are case-insensitive. Pre-3.7.16 the write-path privacy check ran on the LEXICAL relative path (`personal/secret.md` ≠ `Personal/secret.md` to a case-sensitive `--exclude-glob`), but the actual write landed in the same physical directory. Fix: new private `canonicalRelForPrivacyCheck()` helper walks up from the target until it finds an existing parent, resolves its realpath (canonical case from disk), then re-joins the not-yet-existing tail. Linux ext4 unaffected (realpath is a no-op for case-sensitive FS).
|
|
29
|
+
|
|
30
|
+
### P2 Medium fixes (4)
|
|
31
|
+
|
|
32
|
+
- **P2-13 — Title-based write silent data corruption** (`src/vault.ts` + `src/tools/write.ts`). Pre-3.7.16 `findByTitle(title)` returned the first walk-order match; write tools (`appendToNote`, `frontmatterSet`) silently mutated whichever of `Work/Daily.md` / `Personal/Daily.md` came first. New `Vault.findAllByTitle()` + write-path now throws on `length > 1` with candidate paths listed: `Ambiguous title "Daily" — 2 notes share that basename: Personal/Daily.md, Work/Daily.md. Pass an explicit \`path\` argument instead.` Read tools keep the permissive behavior (no mutation risk).
|
|
33
|
+
- **P2-14 — `validateNoteProposal` privacy check** (`src/tools/meta.ts`). Pre-3.7.16 the pre-write validator returned green-light for proposals into excluded destinations; the actual write later failed at runtime. New `path-excluded` error class returned by the validator when `vault.exclusionReason(normalizedPath)` is non-null.
|
|
34
|
+
- **P2-15 — FTS5 tag LIKE wildcard injection** (`src/fts5.ts:482`). Pre-3.7.16 `where.push("(',' || chunks.tags || ',') LIKE ?")` accepted user-supplied tags containing `%` (matches anything) or `_` (matches one char). `tag: "%"` returned every chunk; `tag: "core_team"` matched `coreXteam`. Fix: escape `%`, `_`, and `\` with `\\`, add `ESCAPE '\\'` clause.
|
|
35
|
+
- **P2-16 — Graph boost path mangling on `#`** (`src/tools/search.ts:1456,1493`). Pre-3.7.16 `f.id.split("#")[0]` mangled `C# Notes.md` → `C` (drops the suffix as if it were a chunk index). Now uses regex `id.replace(/#\d+$/, "")` that only strips numeric chunk suffixes at end of id.
|
|
36
|
+
|
|
37
|
+
### P3 Low fixes (3)
|
|
38
|
+
|
|
39
|
+
- **P3-23 — PDF install hint version** (`src/pdf.ts`, `src/ocr.ts`, `src/doctor.ts`). The "missing optional dep" error message told users to install `pdfjs-dist@^4.10.38` but the actual `optionalDependencies` pin is `^5.7.284`. Now consistent across all 3 surfaces.
|
|
40
|
+
- **P3-28 — `safeFts5Query` reserved words** (`src/fts5.ts:581+`). Pre-3.7.16 `safeFts5Query("operating systems AND databases")` STRIPPED `AND`, dropping a real query term silently. AND there was no way to search for the literal word "AND". Now reserved words (`AND`/`OR`/`NOT`/`NEAR`) get double-quoted as literals — FTS5 treats them as the literal token, not the boolean operator. The existing test was updated to reflect the new contract.
|
|
41
|
+
- **P3-30 — Issue template ChatGPT option** (`.github/ISSUE_TEMPLATE/bug_report.yml`). Added "Claude Desktop" + "ChatGPT (custom GPT / Actions)" to the client dropdown (both were missing despite heavy marketing).
|
|
42
|
+
|
|
43
|
+
### Audit findings DEFERRED to v3.8.0
|
|
44
|
+
|
|
45
|
+
- **P1-3 serve-http flag parity** (`--enable-reranker` / `--use-hnsw` / `--include-pdfs` etc. missing from `serve-http`). Multi-day refactor; on the v3.8.0 backlog since round-15 M4.
|
|
46
|
+
- **#2 OCR concurrency / timeout** (per-call timeout, concurrent-request cap, HTTP-transport operation budget). Beyond the 200-page cap from P1-2.
|
|
47
|
+
- **P2-7 search underfill** after privacy filter post-processing (iterative over-fetch design change).
|
|
48
|
+
- **P2-8 FTS5/embedding chunking source mismatch** (standardize on parsed body — design change).
|
|
49
|
+
- **P2-10 stateful maxSessions race** (concurrent initialize past cap — needs slot-reservation design).
|
|
50
|
+
- **P2-11 HTTP server close cleanup** (centralized cleanup on `httpServer.close()`).
|
|
51
|
+
- **P2-12 doctor privacy filters** (add `--exclude-glob` / `--read-paths` to doctor).
|
|
52
|
+
- **P2-18 npm package docs broken links** (audit suggested either include `examples/bench/scripts` or rewrite docs to GitHub absolute URLs — partially handled by v3.7.13 L7 + v3.7.14 file-list explicit listing; needs follow-up sweep).
|
|
53
|
+
- **P2-20 canonical CLI docs incomplete** (reranker / HNSW / PDF / late-chunking / quantization flags missing from `docs/api.md` table).
|
|
54
|
+
- **P3-21 `obsidian_full_text_search` gating wording drift** in cli-help.
|
|
55
|
+
- **P3-25 Heading extraction tilde fences** (`~~~` blocks not detected the same way as backticks).
|
|
56
|
+
- **P3-26 Diagnostic substring search body vs raw** (decide contract — `content` includes frontmatter, docs say "body").
|
|
57
|
+
- **P3-27 HNSW metadata shallow validation** (validate `meta.dim`, `meta.size`, rows shape).
|
|
58
|
+
- **P3-29 setup-snippet mkdir** (`docs/http-transport.md` + `examples/chatgpt-actions.md`).
|
|
59
|
+
|
|
60
|
+
### Pre-merge RCA sweep (in-release recursion prevention)
|
|
61
|
+
|
|
62
|
+
Per the v3.7.15 rule *"single class-sweep is not enough — same-release recursion happens"*, I ran a post-fix class-sweep BEFORE merging this PR. Found **8 additional issues inside v3.7.16's own diff** + 2 cross-class sibling bugs. All fixed in this same patch:
|
|
63
|
+
|
|
64
|
+
| Class | Finding | Fix |
|
|
65
|
+
|---|---|---|
|
|
66
|
+
| A (TSDoc drift) | `loadDiskCache` header didn't mention P1-4 privacy drop | header updated |
|
|
67
|
+
| A (TSDoc drift) | `writeNote` header didn't mention P1-6 canonical case check | header updated |
|
|
68
|
+
| A (TSDoc drift) | `renameFile` header didn't mention P1-6 (mentioned v3.7.14 F2 but missed P1-6 layer) | header updated |
|
|
69
|
+
| A (TSDoc drift) | `findByTitle` header still claimed "silently pick one" (now P2-13-strict for writes) | cross-ref to `findAllByTitle` + `strictOnAmbiguousTitle` |
|
|
70
|
+
| A (TSDoc drift) | `safeFts5Query` header still claimed "strips reserved keywords" (P3-28 changed to quote-as-literal) | header updated |
|
|
71
|
+
| A (TSDoc drift) | `validateNoteProposal` header didn't list `path-excluded` in errors[].kind enum | header updated |
|
|
72
|
+
| A (TSDoc drift) | `extractPdfWithOcr` header didn't mention P1-1 (network) or P1-2 (200-page) | header updated |
|
|
73
|
+
| C (P1-6 sibling) | `renameNote` wrapper at `tools/write.ts:199` did lexical exclusion-check before delegating to `renameFile` — case-variant bypass wasted O(N) backlink work before the inner canonical check caught it | new `Vault.canonicalRelForPrivacyCheckPublic()`; wrapper now pre-checks canonically |
|
|
74
|
+
| F (P1-2 sibling) | `extractPdfText` (called by `obsidian_read_pdf` without `pages`) had no page-count cap — a 5MB / 2000-page PDF could peg CPU for minutes via HTTP | new `DEFAULT_PDF_MAX_PAGES = 500` cap with same pattern as OCR's `DEFAULT_OCR_MAX_PAGES` |
|
|
75
|
+
|
|
76
|
+
**Classes verified clean (no new findings):**
|
|
77
|
+
|
|
78
|
+
- **Class D** (cache/index privacy lifecycle siblings) — `vault.listMarkdown()` filters via `isExcluded()`, and the FTS5/EmbedDb `diff()` sync marks previously-indexed-now-excluded files as deleted on next sync. Tested by inspection.
|
|
79
|
+
- **Class E** (watcher coverage gaps) — `.canvas` and `.base` files are not FTS5-indexed (no chunks stored), so watcher's `.md`+`.pdf`-only coverage is complete. Only the `--include-pdfs` runtime gap (closed by P1-5) was real.
|
|
80
|
+
- **Class G** (user-input wildcard injection siblings) — other `LIKE` usages (`embed-db.ts:475`) already use `substr` not `LIKE`. RegExp constructions from user input (`new RegExp(args.pattern)` in `getOpenQuestions`, `dql.ts`) are documented as intentional advanced-user features.
|
|
81
|
+
- **Class H** (path/wikilink special-char parsing siblings) — wikilink inner parsing (`split("|")[0]` then `split("#")[0]` then `split("^")[0]` in `validateNoteProposal`) is correct per Obsidian wikilink grammar (`#` IS the section separator INSIDE wikilink inner text, unlike chunk-id parsing for graph boost).
|
|
82
|
+
- **Class I** (title-ambiguity write siblings) — only `appendToNote` and `frontmatterSet` accept `title`; both now use `strictOnAmbiguousTitle: true`. `archiveNote` and `replaceInNotes` require `path` (no title path → no ambiguity surface).
|
|
83
|
+
|
|
84
|
+
### Stats
|
|
85
|
+
|
|
86
|
+
- **816 tests** (unchanged count). 1 test CONTRACT change for P3-28 (quotes vs strips).
|
|
87
|
+
- **+0 docs-consistency invariants** (P2-13 + P1-6 enforced at runtime).
|
|
88
|
+
- **+10 RCA-driven fixes** discovered + fixed BEFORE merge (8 TSDoc + 1 Class C sibling + 1 Class F sibling).
|
|
89
|
+
- All 8 required CI gates pass locally.
|
|
90
|
+
|
|
91
|
+
### Method
|
|
92
|
+
|
|
93
|
+
5th independent external audit since v3.6.0. The "audit on v3.7.5 codebase but processed at v3.7.15 state" pattern is now established as the verification workflow — each external audit finds new failure modes that the previous releases' methodologies didn't cover. Round-18 added the OCR network-policy honesty (new privacy-promise class), persistent-cache filter lifecycle (new at-rest privacy class), and case-insensitive filesystem bypass (new portability class).
|
|
94
|
+
|
|
95
|
+
**Pre-merge RCA sweep is now mandatory** (Rule since v3.7.15 — verified working this release): caught 10 additional findings INSIDE v3.7.16's own diff before they shipped as overclaim #10+. This is the rule firing as designed — same-release class recursion happens, and the only way to prevent it from leaking into production is to scan the patch's own diff for fresh instances of every class it claims to fix.
|
|
96
|
+
|
|
97
|
+
## [3.7.15] — 2026-05-18
|
|
98
|
+
|
|
99
|
+
> **TL;DR:** Round-17 post-merge audit on v3.7.14 — **meta-recursion finding**: the v3.7.14 patch that closed overclaim #6 (F1) introduced overclaim **#7 inside its own release**. v3.7.14 F2 fixed `vault.renameFile` internals (stat→link()+unlink()) but left the function's TSDoc header claiming *"Atomic via fs.rename"* — exactly the same class as F1 it had just fixed. Plus 2 unfixed instances of v3.7.12 L4's reranker-honesty class missed in COMPARISON.md. 3 fixes + 1 new invariant. **+1 test** (816 total). Documents the methodological lesson: **a single class-sweep round isn't enough — same-release recursion is a real failure mode and requires post-merge re-sweep.**
|
|
100
|
+
|
|
101
|
+
**Patch — round-17 post-merge audit.**
|
|
102
|
+
|
|
103
|
+
### The meta-finding
|
|
104
|
+
|
|
105
|
+
v3.7.14 was a "round-16 SELF-audit" that closed 5 findings, prominently including **F1 — silent overclaim #6** (renameNote TSDoc header still described the old buggy write order after the M1 internals fix). The very next class-sweep, run AFTER v3.7.14 shipped, found that v3.7.14's own **F2 fix did the exact same thing**: rewrote `vault.renameFile` to use `fs.link()` + `fs.unlink()` for atomic non-overwrite, but left the function header docstring saying *"Atomic via `fs.rename`"*. This is **overclaim #7**, occurring inside the patch designed to address overclaim #6. The pattern reproduces with high fidelity:
|
|
106
|
+
|
|
107
|
+
| Instance | Release | Class |
|
|
108
|
+
|---|---|---|
|
|
109
|
+
| 1 | v3.6.1 CRIT-1 | "All N callsites fixed" — actually 1 of 10 |
|
|
110
|
+
| 2 | v3.6.2 K-1 | "All 10 callsites fixed" — actually 4 of 10 |
|
|
111
|
+
| 3 | v3.6.4 K-1 cli.ts | 5 residual callsites missed |
|
|
112
|
+
| 4 | v3.7.10 D4 | `examples/` add to `package.json#files` claimed but Edit raced |
|
|
113
|
+
| 5 | v3.7.11 round-13 | retroactive overclaim correction documented |
|
|
114
|
+
| 6 | v3.7.14 F1 | renameNote TSDoc header drifted from M1 code change |
|
|
115
|
+
| **7** | **v3.7.14 F2 (self)** | **renameFile TSDoc header drifted from F2's own internal change** |
|
|
116
|
+
| **8** | **v3.7.14 release tag** | **Tagged the pre-squash-merge branch SHA (orphan, never on main); release.yml correctly refused. v3.7.14 never reached npm until corrective re-tag in this v3.7.15 release window. Different class from #1-#7 (procedural / git-tag discipline, not docstring) but same overclaim shape: CHANGELOG/release notes implied a complete ship that hadn't happened.** |
|
|
117
|
+
| **9** | **v3.7.14 F5 (automation overclaim)** | **F5 added a `gh release create` step to `release.yml` claiming "auto-create GH release per tag". First end-to-end test on v3.7.14 corrected-tag re-push: `HTTP 403: Resource not accessible by integration`. Root cause: `permissions:` block at workflow top had `contents: read` (GitHub 2023 security default), but `gh release create` needs `contents: write`. F5 was code-complete but permission-incomplete — the documentation in v3.7.14 CHANGELOG implied it worked. Fix in this patch: `contents: write` on the workflow.** |
|
|
118
|
+
|
|
119
|
+
The mechanism is **always the same**: a fix updates code inside a function but doesn't update the function's TSDoc header or related comments. TypeDoc + IDE hover then surface the stale (lying) description while the code does something else. There is no test gate that fires on stale docstrings.
|
|
120
|
+
|
|
121
|
+
### Findings
|
|
122
|
+
|
|
123
|
+
- **R17-1 — v3.7.14 F2 TSDoc drift (overclaim #7, IN-RELEASE recursion)** (`src/vault.ts:633` header). Pre-3.7.15 the docstring read *"Rename a markdown file inside the vault. Atomic via fs.rename. Refuses if source missing, target exists (unless overwrite)..."* — but v3.7.14 F2's body uses `fs.link()` + `fs.unlink()` for the non-overwrite path (because `fs.rename` silently replaces destinations on POSIX, which IS the TOCTOU race F2 fixed). Header now matches: explicit `link()+unlink()` description + EXDEV fallback + cross-reference to `renameNote` in `tools/write.ts` for orchestration context.
|
|
124
|
+
- **R17-2 — `appendNote` TSDoc enhancement** (`src/vault.ts:707` header). v3.7.14 F3 fixed the stat-then-append race via single-fd `fs.open(abs, "a")` → `handle.stat()` → `handle.write()`, but the function header just said *"Refuses if the resulting file would exceed the size cap"* without explaining the (now-closed) race. Header now documents the open-fd guarantee + cites F3.
|
|
125
|
+
- **R17-3 — `docs/COMPARISON.md` reranker row stale (v3.7.12 L4 missed instance)** (`docs/COMPARISON.md:31`). v3.7.12 L4 corrected `package.json#description` from *"5 cross-encoder reranker models"* to *"BGE cross-encoder reranker verified end-to-end (+4 aliases in catalog, transformers.js bump pending)"* and added a docs-consistency invariant for the new phrasing. But COMPARISON.md's feature-matrix row at line 31 still said *"Cross-encoder reranker (BGE, 5 models)"* — same class, missed instance carried 3 releases since v3.7.12. Fixed to *"Cross-encoder reranker (BGE verified end-to-end)"*.
|
|
126
|
+
- **R17-4 — New invariant: COMPARISON.md reranker honesty** (`tests/docs-consistency.test.ts`). Locks the v3.7.12 L4 narrative into structural enforcement on COMPARISON.md: rejects any *"reranker (BGE, N models)"* form via regex. If a future release rewrites COMPARISON.md and reverts to the flat-count framing, this test fails on the PR.
|
|
127
|
+
- **R17-5 — Overclaim #8 (v3.7.14 orphan-tag procedural error, caught and corrected).** `git tag v3.7.14 36d5c1d` pointed at the pre-squash-merge feature-branch commit (orphan, never on main); the squash-merge created a different SHA on main (`9c4172b`). `.github/workflows/release.yml`'s "Assert tag is on main" guard correctly refused to publish (this guard exists since v2.0.0 to prevent direct-push-to-tag bypass of PR review). Net effect: v3.7.14 never reached npm until this v3.7.15 release window's corrective re-tag (`git tag v3.7.14 9c4172b && git push origin v3.7.14`). The CHANGELOG / GH-release-claim for v3.7.14 thus described a ship that hadn't completed — a new shape of the overclaim class. **Fix in this patch:** the release.yml's "Assert tag is on main" guard ALREADY caught it (defense worked); the missing piece is procedural — the local `git tag` step needs to use the SQUASH-MERGE COMMIT on main, not the feature-branch HEAD. Adding to CLAUDE.md anti-patterns as a new rule (below) so the next release in this codebase avoids the trap. v3.7.12 and v3.7.13 happened to tag correctly because I used the merge-commit SHA from `git log -1 --oneline` on main — but this discipline wasn't documented as a rule.
|
|
128
|
+
|
|
129
|
+
### Root-cause analysis classes documented
|
|
130
|
+
|
|
131
|
+
The full root-cause sweep on v3.7.13/v3.7.14 fixes also produced these class observations:
|
|
132
|
+
|
|
133
|
+
1. **TSDoc/code drift class** (F1 + R17-1 + R17-2). 7 documented instances. No structural enforcement exists because docstring↔code agreement is undecidable in general. **Mitigation discipline (added to CLAUDE.md anti-patterns):** every fix that changes function internals MUST also update the function's TSDoc header in the same commit; reviewers MUST check the header diff alongside the body diff. PR template should include a checkbox.
|
|
134
|
+
2. **TOCTOU sibling sweep** (v3.7.13 M2 + v3.7.14 F2 + v3.7.14 F3). All vault stat-then-act sites swept; no remaining siblings found. Locations verified safe: `bases.ts:245`, `watcher.ts:117`, `media.ts:226/349/526/703`, `meta.ts:202`, `write.ts:1054/1089` (all read-paths, no follow-on write).
|
|
135
|
+
3. **Hardcoded counts class** (R17-3). All "5 reranker / models" mentions enumerated and corrected. `docs/benchmarks.md` BGE numbers are model-version refs (not counts), `README.md` "+5-10 NDCG@10" is a metric delta (not a count) — both safe.
|
|
136
|
+
4. **Silent-pass invariant class** (round-15 L4 already closed). Re-verified: only `tests/github-metadata-invariant.test.ts` has an explicit skip path; CI's `GH_TOKEN` wiring makes it loud. No additional siblings.
|
|
137
|
+
|
|
138
|
+
### Stats
|
|
139
|
+
|
|
140
|
+
- **816 tests** (was 815 in v3.7.14). **+1 test** (R17-4 invariant).
|
|
141
|
+
- **2 TSDoc headers** updated to match code reality.
|
|
142
|
+
- **1 docs surface** brought into the v3.7.12 L4 honest-framing era.
|
|
143
|
+
|
|
144
|
+
### Method note added to CLAUDE.md
|
|
145
|
+
|
|
146
|
+
> **Single class-sweep is not enough — same-release recursion happens.** v3.7.14 F1 fixed overclaim #6, and v3.7.14 F2 SHIPPED overclaim #7 in the very same patch. **Rule since v3.7.15**: after every audit-driven release that closes an "overclaim" or "TSDoc/code drift" finding, run a post-merge re-sweep specifically scanning the new patch's own diffs for fresh instances of the same class. The recursion rate observed across v3.6.x-v3.7.x is high enough that this is a required step, not an optional one.
|
|
147
|
+
|
|
5
148
|
## [3.7.14] — 2026-05-18
|
|
6
149
|
|
|
7
150
|
> **TL;DR:** Round-16 self-audit on the v3.7.13 codebase — class-sweep methodology applied to the round-15 fixes. Found 5 findings: **F1** v3.7.13 silent overclaim (M1 fixed renameNote ordering but the TSDoc header still described the OLD buggy write order — 6th overclaim instance), **F2** M2 sibling (`vault.renameFile` had the same stat-then-rename TOCTOU race that M2 fixed for `writeNote`), **F3** `appendNote` had a stat-then-append race that let parallel writers bypass the `maxFileBytes` size cap, **F4** "8 required CI gates" hardcoded count was not gated by docs-consistency (v3.5.9 anti-pattern recurrence), **F5** automated `gh release create` in `release.yml` (M13 from round-15, originally deferred to v3.8.0 but trivial to land). **+1 test** (815 total), **+1 docs-consistency invariant** (required-gates count).
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
[](https://github.com/oomkapwn/enquire-mcp/actions/workflows/ci.yml)
|
|
12
12
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
13
13
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
14
|
-
[](#trust)
|
|
15
15
|
[](./STABILITY.md)
|
|
16
16
|
[](https://slsa.dev/spec/v1.0/levels#build-l3)
|
|
17
17
|
[](https://modelcontextprotocol.io/)
|
|
@@ -36,7 +36,7 @@ Your Obsidian vault becomes **persistent, queryable long-term memory** for any M
|
|
|
36
36
|
> 2. **Best-in-class retrieval.** Hybrid BM25 + multilingual embeddings + BGE cross-encoder reranker fused via RRF, scaled with HNSW + int8 quantization. The same IR stack a search startup would build — open-sourced, in one binary.
|
|
37
37
|
> 3. **Zero cloud calls during serve.** Models cached locally (one-time download from HuggingFace). Your vault content never leaves your machine. Air-gap-safe by default.
|
|
38
38
|
|
|
39
|
-
**44 tools · 19 MCP prompts ·
|
|
39
|
+
**44 tools · 19 MCP prompts · 818 unit tests · 50+ languages · v3.7.x stable · semver-bound · MIT · SLSA-3 signed.**
|
|
40
40
|
|
|
41
41
|
---
|
|
42
42
|
|
|
@@ -112,7 +112,7 @@ Auto-generated **[API reference at oomkapwn.github.io/enquire-mcp](https://oomka
|
|
|
112
112
|
| **GraphRAG-light** (wikilink community detection via Louvain modularity) | ✅ **only here** | ❌ | ❌ |
|
|
113
113
|
| **Standalone `.base` query execution** (works without Obsidian running) | ✅ **only here** | ❌ | ❌ delegates to Obsidian |
|
|
114
114
|
| **HyDE retrieval** (Gao et al 2023) + sub-question decomposition | ✅ **only here** | ❌ | ❌ |
|
|
115
|
-
| **
|
|
115
|
+
| **818 unit tests · 8 required + 4 advisory CI gates per PR** | ✅ | n/a | rare |
|
|
116
116
|
| **SLSA-3 build provenance** | ✅ | n/a | ❌ |
|
|
117
117
|
| **Semver-bound public surface** ([STABILITY.md](./STABILITY.md)) | ✅ | n/a | ❌ |
|
|
118
118
|
| Standalone (no Obsidian plugin needed) | ✅ | ❌ requires Obsidian | varies |
|
|
@@ -222,7 +222,7 @@ Channel: `npm install @oomkapwn/enquire-mcp` → latest stable. Full changelog:
|
|
|
222
222
|
```bash
|
|
223
223
|
git clone https://github.com/oomkapwn/enquire-mcp.git
|
|
224
224
|
cd enquire-mcp && npm install
|
|
225
|
-
npm test # full suite (
|
|
225
|
+
npm test # full suite (818 tests, ~5s)
|
|
226
226
|
npm run lint # zero warnings
|
|
227
227
|
npm run build # tsc → dist/
|
|
228
228
|
```
|
package/SECURITY.md
CHANGED
|
@@ -156,6 +156,32 @@ The `obsidian_embeddings_search` tool plus the `install-model` and `build-embedd
|
|
|
156
156
|
- If `@huggingface/transformers` failed to install (e.g., user ran `npm install --omit=optional`, or the platform lacks ONNX runtime binaries), the embedding tools and subcommands surface a clean error message pointing the user at `npm install @huggingface/transformers` — never a cryptic module-not-found stack trace.
|
|
157
157
|
- Read-only / TF-IDF / FTS5 surfaces are unaffected. The server starts and serves all v1.x tools normally.
|
|
158
158
|
|
|
159
|
+
## OCR (`obsidian_ocr_pdf`): network posture (v3.7.16 disclosure)
|
|
160
|
+
|
|
161
|
+
The `obsidian_ocr_pdf` tool (v2.10+) uses `tesseract.js` for image-PDF OCR. Tesseract.js's default behavior is to fetch the `<lang>.traineddata` file (~10 MB per language) from `https://tessdata.projectnaptha.com/4.0.0/` on first use of each language.
|
|
162
|
+
|
|
163
|
+
**This is the only outbound network call possible in serve mode** — broader "zero outbound network calls in serve mode" framing in README needs this caveat. v3.7.16 added a stderr disclosure warning that fires once per OCR worker creation, so operators see the network-fetch behavior clearly in their logs / journald.
|
|
164
|
+
|
|
165
|
+
**Mitigations:**
|
|
166
|
+
- The OCR tool is only registered when the optional dependencies (`tesseract.js`, `@napi-rs/canvas`) are installed — `npm install --omit=optional` leaves OCR fully unavailable, restoring the strict offline posture.
|
|
167
|
+
- Pre-download trained-data files by running OCR once per language on a known-online machine, then copy the resulting `tessdata/` directory to the offline deployment.
|
|
168
|
+
- The runtime warning is unconditional — it fires whether the trained-data is cached or not, because the WORKER COULD fall back to the CDN if the cache is somehow incomplete.
|
|
169
|
+
|
|
170
|
+
**Roadmap (v3.8.0):**
|
|
171
|
+
- An `enquire-mcp install-ocr-lang <code>` subcommand to mirror `install-model` for embeddings (explicit, opt-in network call; offline posture for `serve`).
|
|
172
|
+
- Strict cache check before `createWorker()` that fails fast on missing trained-data, with a clear "run `install-ocr-lang <code>`" message.
|
|
173
|
+
- `--enable-ocr-online` flag for users who explicitly want the CDN fallback.
|
|
174
|
+
|
|
175
|
+
Tracked in CHANGELOG under v3.7.16 P1-1.
|
|
176
|
+
|
|
177
|
+
### OCR resource limits (v3.7.16 P1-2)
|
|
178
|
+
|
|
179
|
+
OCR is the slowest path in the project — ~1-2s per page on M1 CPU at default scale. Pre-3.7.16 a single bearer-authenticated HTTP request could trigger unbounded OCR work (the entire PDF, no timeout, no concurrency cap, no per-call budget). A 10000-page PDF would peg the CPU for hours.
|
|
180
|
+
|
|
181
|
+
v3.7.16 adds a default **200-page cap per call** (`DEFAULT_OCR_MAX_PAGES`), bypassable via an explicit `pages: [from, to]` range or via the `maxPages` option. The cap is checked BEFORE the Tesseract worker spins up, so no resources allocate on adversarial inputs.
|
|
182
|
+
|
|
183
|
+
Roadmap (v3.8.0): per-call timeout, concurrent-request cap, HTTP-transport operation budget.
|
|
184
|
+
|
|
159
185
|
## Persistent FTS5 index: privacy posture
|
|
160
186
|
|
|
161
187
|
When `--persistent-index` is enabled, the search-index file at `<vault-hash>.fts5.db` (alongside the parse cache) stores **chunked note content** (paragraph-level, ~4 KB each), the **comma-serialized tag list** of each note, and the **list of wikilink targets** as part of the FTS5 enrichment for recall.
|
package/dist/doctor.js
CHANGED
|
@@ -184,7 +184,7 @@ export async function runDoctor(opts) {
|
|
|
184
184
|
label: "pdfjs-dist (PDF read + indexing)",
|
|
185
185
|
status: hasPdfjs ? "ok" : "warn",
|
|
186
186
|
detail: hasPdfjs ? "loaded" : "PDFs in vault won't be indexable",
|
|
187
|
-
hint: hasPdfjs ? undefined : "npm install pdfjs-dist@^
|
|
187
|
+
hint: hasPdfjs ? undefined : "npm install pdfjs-dist@^5.7.284 (skip if you have no PDFs)"
|
|
188
188
|
});
|
|
189
189
|
// 5. tesseract.js + @napi-rs/canvas — gates obsidian_ocr_pdf.
|
|
190
190
|
const [hasTesseract, hasCanvas] = await Promise.all([
|
package/dist/fts5.d.ts
CHANGED
|
@@ -181,12 +181,17 @@ export declare class FtsIndex {
|
|
|
181
181
|
* Sanitize a user query for FTS5. Quote-wraps any token containing
|
|
182
182
|
* non-alphanumerics so hyphens / colons / dots are treated literally
|
|
183
183
|
* (without this, `"claude-telegram"` would parse as `claude NOT telegram`).
|
|
184
|
-
*
|
|
185
|
-
*
|
|
184
|
+
*
|
|
185
|
+
* v3.7.16 P3-28 — reserved keywords (`AND`, `OR`, `NOT`, `NEAR`) are
|
|
186
|
+
* QUOTED as literals instead of stripped. Pre-3.7.16 the strip-path
|
|
187
|
+
* silently dropped real query terms ("operating systems AND databases"
|
|
188
|
+
* lost the connective AND user couldn't search for the literal word
|
|
189
|
+
* "AND"). Quoting makes both cases work: FTS5 treats `"AND"` as the
|
|
190
|
+
* literal token rather than the boolean operator.
|
|
186
191
|
*
|
|
187
192
|
* @param q - User query string.
|
|
188
193
|
* @returns Sanitized query ready to pass to FTS5's `MATCH` operator.
|
|
189
|
-
* Empty string when
|
|
194
|
+
* Empty string when input is empty / whitespace-only.
|
|
190
195
|
*/
|
|
191
196
|
export declare function safeFts5Query(q: string): string;
|
|
192
197
|
interface ContentChunk {
|
package/dist/fts5.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fts5.d.ts","sourceRoot":"","sources":["../src/fts5.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"fts5.d.ts","sourceRoot":"","sources":["../src/fts5.ts"],"names":[],"mappings":"AA2BA;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;AAEnD,oEAAoE;AACpE,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC;AAErC;kEACkE;AAClE,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB;+DAC2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;CACtB;AAgED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;KAAE;IAM9E;;;;;;;OAOG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B3B,iEAAiE;IAC3D,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAcrC;6BACyB;IACzB,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,eAAe;IAuDvB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,SAAS;IAKjB;;;;;;;;;;;OAWG;IACH,IAAI,CACF,WAAW,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,EACxD,IAAI,CAAC,EAAE,SAAS,GACf;QACD,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB;IA0BD,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM/B;;;;;;;;OAQG;IACH,WAAW,CACT,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,eAAe,GAAE,MAAM,EAAO,EAC9B,IAAI,GAAE,MAAM,EAAO,GAClB,MAAM;IAiCT;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,MAAM;IA2BpH;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAO,GAClF,YAAY,EAAE;IA2EjB;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAQ/G,kEAAkE;IAClE,WAAW,IAAI,MAAM;IAMrB;yEACqE;IACrE,UAAU,IAAI,MAAM;CAKrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAyB/C;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;+EAI2E;IAC3E,UAAU,EAAE,MAAM,CAAC;CACpB;AAID;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAkB,GAAG,YAAY,EAAE,CAwDxF;AA4ED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,GAAG,IAAI,CAAC,CA0BR"}
|
package/dist/fts5.js
CHANGED
|
@@ -370,8 +370,16 @@ export class FtsIndex {
|
|
|
370
370
|
if (opts.tag) {
|
|
371
371
|
// Exact-tag membership inside the comma-separated `tags` column —
|
|
372
372
|
// wrap both sides with commas so "core" doesn't match "core-team".
|
|
373
|
-
|
|
374
|
-
|
|
373
|
+
//
|
|
374
|
+
// v3.7.16 P2-15 — escape `%` and `_` (SQL LIKE wildcards) so a
|
|
375
|
+
// user-supplied tag with those characters matches LITERALLY. Pre-
|
|
376
|
+
// 3.7.16 a tag like `core_team` would match `coreXteam` (and any
|
|
377
|
+
// other 1-char-substituted variant) because `_` is the LIKE 1-char
|
|
378
|
+
// wildcard; `%` was even worse — `tag: "%"` matched every chunk.
|
|
379
|
+
// ESCAPE clause uses backslash, matching SQLite's standard form.
|
|
380
|
+
const literalTag = opts.tag.replace(/\\/g, "\\\\").replace(/%/g, "\\%").replace(/_/g, "\\_");
|
|
381
|
+
where.push("(',' || chunks.tags || ',') LIKE ? ESCAPE '\\'");
|
|
382
|
+
params.push(`%,${literalTag},%`);
|
|
375
383
|
}
|
|
376
384
|
let join = "";
|
|
377
385
|
if (opts.sinceMtimeMs !== undefined) {
|
|
@@ -438,22 +446,36 @@ export class FtsIndex {
|
|
|
438
446
|
* Sanitize a user query for FTS5. Quote-wraps any token containing
|
|
439
447
|
* non-alphanumerics so hyphens / colons / dots are treated literally
|
|
440
448
|
* (without this, `"claude-telegram"` would parse as `claude NOT telegram`).
|
|
441
|
-
*
|
|
442
|
-
*
|
|
449
|
+
*
|
|
450
|
+
* v3.7.16 P3-28 — reserved keywords (`AND`, `OR`, `NOT`, `NEAR`) are
|
|
451
|
+
* QUOTED as literals instead of stripped. Pre-3.7.16 the strip-path
|
|
452
|
+
* silently dropped real query terms ("operating systems AND databases"
|
|
453
|
+
* lost the connective AND user couldn't search for the literal word
|
|
454
|
+
* "AND"). Quoting makes both cases work: FTS5 treats `"AND"` as the
|
|
455
|
+
* literal token rather than the boolean operator.
|
|
443
456
|
*
|
|
444
457
|
* @param q - User query string.
|
|
445
458
|
* @returns Sanitized query ready to pass to FTS5's `MATCH` operator.
|
|
446
|
-
* Empty string when
|
|
459
|
+
* Empty string when input is empty / whitespace-only.
|
|
447
460
|
*/
|
|
448
461
|
export function safeFts5Query(q) {
|
|
449
462
|
const RESERVED = new Set(["AND", "OR", "NOT", "NEAR"]);
|
|
450
463
|
const parts = q.trim().split(/\s+/);
|
|
451
464
|
const out = [];
|
|
452
465
|
for (const p of parts) {
|
|
453
|
-
if (RESERVED.has(p.toUpperCase()))
|
|
454
|
-
continue;
|
|
455
466
|
if (!p)
|
|
456
467
|
continue;
|
|
468
|
+
// v3.7.16 P3-28 — quote reserved keywords as literals instead of
|
|
469
|
+
// stripping. Pre-3.7.16 a user searching "operating systems AND
|
|
470
|
+
// databases" got their AND dropped silently AND the unrelated tokens
|
|
471
|
+
// OR'd implicitly — but they ALSO couldn't search literally for the
|
|
472
|
+
// word "AND" (the SQL boolean conjunction). Now we wrap reserved
|
|
473
|
+
// words in double-quotes so FTS5 treats them as the literal token,
|
|
474
|
+
// matching how we handle any token with non-alphanumerics below.
|
|
475
|
+
if (RESERVED.has(p.toUpperCase())) {
|
|
476
|
+
out.push(`"${p}"`);
|
|
477
|
+
continue;
|
|
478
|
+
}
|
|
457
479
|
if (/[^A-Za-z0-9_]/.test(p)) {
|
|
458
480
|
const escaped = p.replace(/"/g, '""');
|
|
459
481
|
out.push(`"${escaped}"`);
|
package/dist/fts5.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fts5.js","sourceRoot":"","sources":["../src/fts5.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,+DAA+D;AAC/D,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,yEAAyE;AACzE,+EAA+E;AAC/E,iFAAiF;AACjF,EAAE;AACF,+EAA+E;AAC/E,iFAAiF;AACjF,sBAAsB;AAEtB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,cAAc,GAAG,CAAC,CAAC;AA2DzB,4EAA4E;AAC5E,4CAA4C;AAC5C,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,2EAA2E;AAC3E,yEAAyE;AACzE,kEAAkE;AAClE,wEAAwE;AACxE,2DAA2D;AAC3D,IAAI,gBAAgB,GAA2C,IAAI,CAAC;AACpE,KAAK,UAAU,gBAAgB;IAC7B,IAAI,gBAAgB;QAAE,OAAO,gBAAgB,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAgD,CAAC;QAC5F,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACnE,yEAAyE;QACzE,yEAAyE;QACzE,uBAAuB;QACvB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAA2B,CAAC;YAC7D,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,+IAA+I,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CACjN,CAAC;QACJ,CAAC;QACD,gBAAgB,GAAG,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,0HACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAoBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,QAAQ;IACX,EAAE,GAAc,IAAI,CAAC;IACZ,IAAI,CAAS;IACb,QAAQ,CAAe;IACvB,SAAS,CAAS;IAEnC,YAAY,IAAkE;QAC5E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC;IAC/C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,EAAE;YAAE,OAAO;QACpB,MAAM,IAAI,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACtC,sEAAsE;QACtE,mEAAmE;QACnE,sEAAsE;QACtE,uEAAuE;QACvE,mEAAmE;QACnE,qEAAqE;QACrE,qCAAqC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,MAAM,EAAE;aAC3B,IAAI,CAAC,SAAS,CAAC;aACf,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAO,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACvC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,wEAAwE;QACxE,sEAAsE;QACtE,mEAAmE;QACnE,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CACnG,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACnB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;YAC3B,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;6BACyB;IACzB,KAAK;QACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,+BAA+B,CAAC;QAE9F,wEAAwE;QACxE,EAAE,CAAC,IAAI,CAAC;;;;;KAKP,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,QAAQ,CAAC;QAC/F,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC;QACtF,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,cAAc,CAAC,CAAC;QACzG,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;YAClD,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa;gBAAE,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,SAAS;gBAAE,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC,YAAY;gBAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,cAAc,MAAM,cAAc,EAAE,CAAC,CAAC;YAC5F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChF,wEAAwE;YACxE,6DAA6D;YAC7D,EAAE,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAC7E,CAAC;QAED,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;oBAUQ,WAAW;;;;;;;;;KAS1B,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC;YACb,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC;YACtC,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,aAAa,EAAE,IAAI,CAAC,QAAQ;SAC7B,CAAC,CAAC;IACL,CAAC;IAEO,QAAQ;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAAkC,CAAC;QAC7F,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAC3C,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,SAAS,CAAC,EAA0B;QAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;QAClF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,IAAI,CACF,WAAwD,EACxD,IAAgB;QAOhB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,MAAM,GACV,IAAI,KAAK,SAAS;YAChB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC,GAAG,CAAiB,IAAI,CAAC;YACpG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,EAAkB,CAAC;QACtF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,WAAW;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,IAAI,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACvC,IAAI,IAAI,KAAK,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;gBAC5C,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAChD,CAAC;IAED,oDAAoD;IACpD,QAAQ,CAAC,OAAe;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjE,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CACT,OAAe,EACf,OAAe,EACf,OAAe,EACf,kBAA4B,EAAE,EAC9B,OAAiB,EAAE;QAEnB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAC9B,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,uIAAuI,CACxI,CAAC;YACF,0EAA0E;YAC1E,qEAAqE;YACrE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACtB,oEAAoE;gBACpE,qEAAqE;gBACrE,oEAAoE;gBACpE,kEAAkE;gBAClE,qEAAqE;gBACrE,gEAAgE;gBAChE,iEAAiE;gBACjE,4BAA4B;gBAC5B,MAAM,gBAAgB,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5E,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAwB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxG,MAAM,QAAQ,GAAG,GAAG,gBAAgB,GAAG,CAAC,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC;gBAC9D,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,OAAO,CACR,gHAAgH,CACjH,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,GAAG,EAAE,CAAC;QACN,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,OAAe,EAAE,OAAe,EAAE,KAA0D;QACzG,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,wEAAwE;QACxE,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACpC,6DAA6D;QAC7D,8CAA8C;QAC9C,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAC9B,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,yIAAyI,CAC1I,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACtB,oEAAoE;gBACpE,+DAA+D;gBAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,OAAO,CACR,iHAAiH,CAClH,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,GAAG,EAAE,CAAC;QACN,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CACJ,QAAgB,EAChB,OAAiF,EAAE;QAEnF,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,MAAM,KAAK,GAAa,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAc,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,uEAAuE;YACvE,sEAAsE;YACtE,mCAAmC;YACnC,oEAAoE;YACpE,mEAAmE;YACnE,uEAAuE;YACvE,yDAAyD;YACzD,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,kEAAkE;YAClE,mEAAmE;YACnE,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,GAAG,8DAA8D,CAAC;YACtE,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,GAAG,GAAG;;;;;;;QAOR,IAAI;cACE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;;;KAG5B,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAQ7B,GAAG,MAAM,CAAC,CAAC;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,qEAAqE;YACrE,qEAAqE;YACrE,sCAAsC;YACtC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAc;YACpD,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,wDAAwD;SACzE,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAe,EAAE,UAAkB;QAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GACP,wGAAwG,CAAC;QAC3G,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAA4D,OAAO,EAAE,UAAU,CAAC,CAAC;QAChH,OAAO,GAAG,IAAI,IAAI,CAAC;IACrB,CAAC;IAED,kEAAkE;IAClE,WAAW;QACT,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EAAiB,CAAC;QAChF,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED;yEACqE;IACrE,UAAU;QACR,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EAAiB,CAAC;QACtF,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,CAAS;IACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAAE,SAAS;QAC5C,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAcD,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,QAAQ,GAAG,eAAe;IACtE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,wEAAwE;IACxE,oEAAoE;IACpE,2DAA2D;IAC3D,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;YAClB,CAAC,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,SAAS;QACX,CAAC;QACD,+DAA+D;QAC/D,sEAAsE;QACtE,qEAAqE;QACrE,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,GAAG,GAAwB,IAAI,CAAC;QACpC,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;gBAC9B,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjB,GAAG,GAAG,IAAI,CAAC;gBACb,CAAC;gBACD,yDAAyD;gBACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;oBAClD,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;wBACpC,SAAS,EAAE,EAAE,CAAC,SAAS;wBACvB,OAAO,EAAE,EAAE,CAAC,OAAO;wBACnB,UAAU,EAAE,CAAC,CAAC,UAAU;qBACzB,CAAC,CAAC;gBACL,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;gBAChG,SAAS;YACX,CAAC;YACD,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,SAAS,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjB,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;YAClG,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;gBACrB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,IAAI,GAAG;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,OAAe;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,GAAG,GAAa,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAa,EAAE,CAAC,CAAC,wCAAwC;IACpE,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;gBACf,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;gBACzC,OAAO,GAAG,KAAK,CAAC;gBAChB,WAAW,GAAG,EAAE,CAAC;YACnB,CAAC;YACD,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,oEAAoE;QACpE,mEAAmE;QACnE,sEAAsE;QACtE,+DAA+D;QAC/D,oEAAoE;QACpE,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACrC,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3E,uDAAuD;YACvD,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,sEAAsE;YACtE,2BAA2B;YAC3B,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,SAAiB,EAAE,QAAQ,GAAG,CAAC;IACnE,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;IACjH,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,GAAG,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACjG,QAAQ,IAAI,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAChE,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACtC,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACrD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,GAAG,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,MAAM,IAAI,GACR,OAAO,CAAC,GAAG,CAAC,cAAc;QAC1B,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrH,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAKhD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,QAAyC,CAAC;IAC9C,IAAI,CAAC;QACH,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAqD,CAAC;IACpG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC,GAAG,EAAE,CAAC;QACzG,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC7B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAAsC,CAAC;QACjG,MAAM,IAAI,GAAmF,EAAE,CAAC;QAChG,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,GAAG,KAAK,gBAAgB;gBAAE,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC;iBAC7D,IAAI,GAAG,CAAC,GAAG,KAAK,YAAY;gBAAE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC;iBAC1D,IAAI,GAAG,CAAC,GAAG,KAAK,eAAe,EAAE,CAAC;gBACrC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;YACzE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"fts5.js","sourceRoot":"","sources":["../src/fts5.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* + `McpServer({version})`) and `src/tool-registry.ts` (used in the
|
|
8
8
|
* `vault-info` resource payload).
|
|
9
9
|
*/
|
|
10
|
-
export declare const VERSION = "3.7.
|
|
10
|
+
export declare const VERSION = "3.7.16";
|
|
11
11
|
export { main } from "./cli.js";
|
|
12
12
|
export { buildEmbedText, buildMcpServer, formatReadyBanner, prepareServerDeps, type ServeOptions, type ServerDeps, startServer } from "./server.js";
|
|
13
13
|
export { parsePositiveInt, parseQuantizationMode } from "./tool-registry.js";
|
package/dist/index.js
CHANGED
|
@@ -32,7 +32,7 @@ import { main } from "./cli.js";
|
|
|
32
32
|
* + `McpServer({version})`) and `src/tool-registry.ts` (used in the
|
|
33
33
|
* `vault-info` resource payload).
|
|
34
34
|
*/
|
|
35
|
-
export const VERSION = "3.7.
|
|
35
|
+
export const VERSION = "3.7.16";
|
|
36
36
|
// Re-exports — preserve the v3.5.x public surface so http-transport.ts and
|
|
37
37
|
// tests don't need to know about the new module layout. The set below
|
|
38
38
|
// exactly matches the v3.5.x `export` declarations: `main`,
|
package/dist/ocr.d.ts
CHANGED
|
@@ -27,16 +27,39 @@ export interface OcrPdfResult {
|
|
|
27
27
|
export interface ExtractPdfWithOcrOptions {
|
|
28
28
|
/**
|
|
29
29
|
* Tesseract language pack(s). Default `'eng'`. Multi-lang via `'+'`,
|
|
30
|
-
* e.g. `'eng+rus'` for English+Russian mixed documents.
|
|
31
|
-
*
|
|
30
|
+
* e.g. `'eng+rus'` for English+Russian mixed documents.
|
|
31
|
+
*
|
|
32
|
+
* v3.7.16 P1-1 — language trained-data files (`<lang>.traineddata`,
|
|
33
|
+
* ~10 MB each) must be PRE-DOWNLOADED into the Tesseract cache.
|
|
34
|
+
* The runtime download path that Tesseract.js enables by default is
|
|
35
|
+
* a privacy-promise violation against README/SECURITY.md's "zero
|
|
36
|
+
* outbound network calls in serve mode" claim. The OCR pipeline now
|
|
37
|
+
* checks that the requested language files exist locally BEFORE
|
|
38
|
+
* spinning up the worker, and throws a clear "language not installed"
|
|
39
|
+
* error if any are missing — directing the user to run
|
|
40
|
+
* `enquire-mcp install-ocr-lang <code>` as a separate, EXPLICIT,
|
|
41
|
+
* documented network step (parity with `install-model` for embeddings).
|
|
32
42
|
*/
|
|
33
43
|
langs?: string;
|
|
34
44
|
/**
|
|
35
45
|
* Page range (1-indexed inclusive). Default: all pages. Useful for
|
|
36
46
|
* partial OCR of long documents — OCR is the slowest step in the
|
|
37
47
|
* pipeline (~1-2s per page), so a 100-page paper takes minutes.
|
|
48
|
+
*
|
|
49
|
+
* v3.7.16 P1-2 — when omitted, the page count is capped at
|
|
50
|
+
* `maxPages` (default 200) to bound CPU on adversarial / runaway
|
|
51
|
+
* inputs. Caller can opt to process more by setting `maxPages`
|
|
52
|
+
* explicitly OR by passing an explicit `pages` range.
|
|
38
53
|
*/
|
|
39
54
|
pages?: [number, number];
|
|
55
|
+
/**
|
|
56
|
+
* v3.7.16 P1-2 — defense-in-depth safety cap. Even when the caller
|
|
57
|
+
* doesn't pass `pages`, refuse to process more than this many pages
|
|
58
|
+
* in one call to bound CPU/memory on adversarial PDFs. Default 200
|
|
59
|
+
* (~5-10 min on M1 CPU; longer than any realistic interactive use).
|
|
60
|
+
* Pass `Number.POSITIVE_INFINITY` to opt out (background-job mode).
|
|
61
|
+
*/
|
|
62
|
+
maxPages?: number;
|
|
40
63
|
/**
|
|
41
64
|
* Render scale multiplier passed to pdfjs-dist's `getViewport({scale})`.
|
|
42
65
|
* Higher = more pixels = better OCR accuracy on small text but more
|
|
@@ -50,6 +73,9 @@ export interface ExtractPdfWithOcrOptions {
|
|
|
50
73
|
*/
|
|
51
74
|
onProgress?: (page: number, total: number) => void;
|
|
52
75
|
}
|
|
76
|
+
/** v3.7.16 P1-2 — default safety cap on per-call OCR work. See
|
|
77
|
+
* {@link ExtractPdfWithOcrOptions.maxPages}. */
|
|
78
|
+
export declare const DEFAULT_OCR_MAX_PAGES = 200;
|
|
53
79
|
/**
|
|
54
80
|
* Extract text from an image-only / scanned PDF via Tesseract OCR.
|
|
55
81
|
*
|
|
@@ -57,7 +83,20 @@ export interface ExtractPdfWithOcrOptions {
|
|
|
57
83
|
* `vault.readBinaryFile(relPath)` for vault-aware reading with
|
|
58
84
|
* privacy-filter + max-bytes guards applied).
|
|
59
85
|
*
|
|
60
|
-
*
|
|
86
|
+
* v3.7.16 P1-1 — fires a stderr disclosure warning once per worker
|
|
87
|
+
* creation: Tesseract.js may fetch the requested `<lang>.traineddata`
|
|
88
|
+
* file from a CDN on first use, contradicting the broader "zero
|
|
89
|
+
* outbound network calls in serve mode" framing. See SECURITY.md
|
|
90
|
+
* "OCR network posture" for the v3.8.0 offline-only roadmap.
|
|
91
|
+
*
|
|
92
|
+
* v3.7.16 P1-2 — refuses to process more than `opts.maxPages` (default
|
|
93
|
+
* {@link DEFAULT_OCR_MAX_PAGES} = 200) in a single call. The check
|
|
94
|
+
* runs BEFORE the Tesseract worker spawns, so adversarial inputs don't
|
|
95
|
+
* allocate resources. Pass an explicit `pages: [from, to]` slice to
|
|
96
|
+
* narrow the work, or raise `maxPages` to opt out of the default cap.
|
|
97
|
+
*
|
|
98
|
+
* Throws on encrypted PDFs, hard-corrupt files, missing optional deps,
|
|
99
|
+
* or when the requested page span exceeds `maxPages`.
|
|
61
100
|
* Returns empty pages (with `isEmpty: true`) for pages where Tesseract
|
|
62
101
|
* found nothing.
|
|
63
102
|
*/
|
package/dist/ocr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ocr.d.ts","sourceRoot":"","sources":["../src/ocr.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;CACf;AA4CD,MAAM,WAAW,wBAAwB;IACvC
|
|
1
|
+
{"version":3,"file":"ocr.d.ts","sourceRoot":"","sources":["../src/ocr.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;CACf;AA4CD,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAED;iDACiD;AACjD,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,wBAA6B,GAAG,OAAO,CAAC,YAAY,CAAC,CAgJlH;AAOD,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CASvD"}
|