@xberg-io/xberg-wasm 1.0.3 → 1.0.7

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/README.md CHANGED
@@ -80,7 +80,7 @@
80
80
  </a>
81
81
  </div>
82
82
 
83
- Extract text, tables, images, metadata, and code intelligence from 98 file formats and 306 programming languages including PDF, Office documents, and images. WebAssembly bindings for browsers, Deno, and Cloudflare Workers with portable deployment and multi-threading support.
83
+ Extract text, tables, images, metadata, and code intelligence from 101 file formats and 306 programming languages including PDF, Office documents, and images. WebAssembly bindings for browsers, Deno, and Cloudflare Workers with portable deployment and multi-threading support.
84
84
 
85
85
  ## What This Package Provides
86
86
 
@@ -262,84 +262,58 @@ extractDocuments(fileBytes, mimes)
262
262
 
263
263
  ## Features
264
264
 
265
- ### Supported File Formats (98)
266
-
267
- 98 file formats across 8 major categories with intelligent format detection and comprehensive metadata extraction.
268
-
269
- #### Office Documents
270
-
271
- | Category | Formats | Capabilities |
272
- |----------|---------|--------------|
273
- | **Word Processing** | `.docx`, `.docm`, `.doc`, `.dotx`, `.dotm`, `.dot`, `.odt`, `.pages`, `.wpd`, `.wp`, `.wp5`, `.wp6` | Full text, tables, images, metadata, styles |
274
- | **Spreadsheets** | `.xlsx`, `.xlsm`, `.xlsb`, `.xls`, `.xla`, `.xlam`, `.xltm`, `.xltx`, `.xlt`, `.ods`, `.numbers` | Sheet data, formulas, cell metadata, charts |
275
- | **Presentations** | `.pptx`, `.pptm`, `.ppt`, `.ppsx`, `.potx`, `.potm`, `.pot`, `.odp`, `.key` | Slides, speaker notes, images, metadata |
276
- | **PDF** | `.pdf` | Text, tables, images, metadata, OCR support |
277
- | **eBooks** | `.epub`, `.fb2` | Chapters, metadata, embedded resources |
278
- | **Database** | `.dbf` | Table data extraction, field type support |
279
- | **Hangul** | `.hwp`, `.hwpx` | Korean document format, text extraction |
280
-
281
- #### Images (OCR-Enabled)
282
-
283
- | Category | Formats | Features |
284
- |----------|---------|----------|
285
- | **Raster** | `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.bmp`, `.tiff`, `.tif` | OCR, table detection, EXIF metadata, dimensions, color space |
286
- | **Advanced** | `.jp2`, `.jpx`, `.jpm`, `.mj2`, `.jbig2`, `.jb2`, `.pnm`, `.pbm`, `.pgm`, `.ppm` | OCR via hayro-jpeg2000 (pure Rust decoder), JBIG2 support, table detection, format-specific metadata |
265
+ ### Supported File Formats (101 formats · 115 file extensions) 101 formats across 115 file extensions in 8 major
266
+
267
+ categories with intelligent format detection and comprehensive metadata extraction. #### Office Documents | Category |
268
+ Formats | Capabilities | |----------|---------|--------------| | **Word Processing** | `.docx`, `.docm`, `.doc`,
269
+ `.dotx`, `.dotm`, `.dot`, `.odt`, `.pages`, `.wpd`, `.wp`, `.wp5`, `.wp6` | Full text, tables, images, metadata, styles
270
+ | | **Spreadsheets** | `.xlsx`, `.xlsm`, `.xlsb`, `.xls`, `.xla`, `.xlam`, `.xltm`, `.xltx`, `.xlt`, `.ods`, `.numbers`
271
+ | Sheet data, formulas, cell metadata, charts | | **Presentations** | `.pptx`, `.pptm`, `.ppt`, `.ppsx`, `.potx`,
272
+ `.potm`, `.pot`, `.odp`, `.key` | Slides, speaker notes, images, metadata | | **PDF** | `.pdf` | Text, tables, images,
273
+ metadata, OCR support | | **eBooks** | `.epub`, `.fb2` | Chapters, metadata, embedded resources | | **Database** |
274
+ `.dbf` | Table data extraction, field type support | | **Hangul** | `.hwp`, `.hwpx` | Korean document format, text
275
+ extraction | #### Images (OCR-Enabled) | Category | Formats | Features | |----------|---------|----------| | **Raster**
276
+ | `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.bmp`, `.tiff`, `.tif` | OCR, table detection, EXIF metadata, dimensions,
277
+ color space | | **Advanced** | `.jp2`, `.jpx`, `.jpm`, `.mj2`, `.jbig2`, `.jb2`, `.pnm`, `.pbm`, `.pgm`, `.ppm` | OCR
278
+ via hayro-jpeg2000 (pure Rust decoder), JBIG2 support, table detection, format-specific metadata |
287
279
  | **Vector** | `.svg` | DOM parsing, embedded text, graphics metadata |
288
280
 
289
- #### Web & Data
290
-
291
- | Category | Formats | Features |
292
- |----------|---------|----------|
293
- | **Markup** | `.html`, `.htm`, `.xhtml`, `.xml`, `.svg` | DOM parsing, metadata (Open Graph, Twitter Card), link extraction |
294
- | **Structured Data** | `.json`, `.yaml`, `.yml`, `.toml`, `.csv`, `.tsv` | Schema detection, nested structures, validation |
295
- | **Text & Markdown** | `.txt`, `.md`, `.markdown`, `.djot`, `.mdx`, `.rst`, `.org`, `.rtf` | CommonMark, GFM, Djot, MDX, reStructuredText, Org Mode |
296
-
297
- #### Email & Archives
298
-
299
- | Category | Formats | Features |
300
- |----------|---------|----------|
301
- | **Email** | `.eml`, `.msg`, `.pst` | Headers, body (HTML/plain), attachments, threading |
302
- | **Archives** | `.zip`, `.tar`, `.tgz`, `.gz`, `.7z` | File listing, nested archives, metadata |
303
-
304
- #### Academic & Scientific
305
-
306
- | Category | Formats | Features |
307
- |----------|---------|----------|
308
- | **Citations** | `.bib`, `.ris`, `.nbib`, `.enw` | Structured parsing: RIS, PubMed/MEDLINE, EndNote XML, BibTeX/BibLaTeX, CSL JSON by MIME type |
309
- | **Scientific** | `.tex`, `.latex`, `.typ`, `.typst`, `.jats`, `.ipynb` | LaTeX, Typst, Jupyter notebooks, PubMed JATS |
310
- | **Publishing** | `.fb2`, `.docbook`, `.dbk`, `.docbook4`, `.docbook5`, `.opml` | FictionBook, DocBook XML, OPML outlines |
311
- | **Documentation** | MIME-only POD, mdoc, troff | Technical documentation formats |
312
-
313
- #### Code Intelligence (306 Languages)
314
-
315
- | Feature | Description |
316
- |---------|-------------|
317
- | **Structure Extraction** | Functions, classes, methods, structs, interfaces, enums |
318
- | **Import/Export Analysis** | Module dependencies, re-exports, wildcard imports |
319
- | **Symbol Extraction** | Variables, constants, type aliases, properties |
320
- | **Docstring Parsing** | Google, NumPy, Sphinx, JSDoc, RustDoc, and 10+ formats |
321
- | **Diagnostics** | Parse errors with line/column positions |
322
- | **Syntax-Aware Chunking** | Split code by semantic boundaries, not arbitrary byte offsets |
323
-
324
- Powered by [tree-sitter-language-pack](https://github.com/xberg-io/tree-sitter-language-pack) — [documentation](https://docs.tree-sitter-language-pack.xberg.io).
325
-
326
- **[Complete Format Reference](https://docs.xberg.io/reference/formats/)**
327
-
328
- ### Key Capabilities
281
+ #### Web & Data | Category | Formats | Features | |----------|---------|----------| | **Markup** | `.html`, `.htm`
282
+
283
+ `.xhtml`, `.xml`, `.svg` | DOM parsing, metadata (Open Graph, Twitter Card), link extraction | | **Structured Data** |
284
+ `.json`, `.yaml`, `.yml`, `.toml`, `.csv`, `.tsv` | Schema detection, nested structures, validation | | **Text &
285
+ Markdown** | `.txt`, `.md`, `.markdown`, `.djot`, `.mdx`, `.rst`, `.org`, `.rtf` | CommonMark, GFM, Djot, MDX,
286
+ reStructuredText, Org Mode | #### Email & Archives | Category | Formats | Features | |----------|---------|----------| |
287
+ **Email** | `.eml`, `.msg`, `.pst` | Headers, body (HTML/plain), attachments, threading | | **Archives** | `.zip`,
288
+ `.tar`, `.tgz`, `.gz`, `.7z` | Recursive extraction of nested archives, file listing, metadata, zip-bomb protection |
289
+
290
+ #### Academic & Scientific | Category | Formats | Features | |----------|---------|----------| | **Citations** | `.bib`
291
+
292
+ `.ris`, `.nbib`, `.enw` | Structured parsing: RIS, PubMed/MEDLINE, EndNote XML, BibTeX/BibLaTeX, CSL JSON by MIME type |
293
+ | **Scientific** | `.tex`, `.latex`, `.typ`, `.typst`, `.jats`, `.ipynb` | LaTeX, Typst, Jupyter notebooks, PubMed JATS
294
+ | | **Publishing** | `.fb2`, `.docbook`, `.dbk`, `.docbook4`, `.docbook5`, `.opml` | FictionBook, DocBook XML, OPML
295
+ outlines | | **Documentation** | MIME-only POD, mdoc, troff | Technical documentation formats | #### Code Intelligence
296
+ (306 Languages) | Feature | Description | |---------|-------------| | **Structure Extraction** | Functions, classes,
297
+ methods, structs, interfaces, enums | | **Import/Export Analysis** | Module dependencies, re-exports, wildcard imports |
298
+ | **Symbol Extraction** | Variables, constants, type aliases, properties | | **Docstring Parsing** | Google, NumPy,
299
+ Sphinx, JSDoc, RustDoc, and 10+ formats | | **Diagnostics** | Parse errors with line/column positions | | **Syntax-Aware
300
+ Chunking** | Split code by semantic boundaries, not arbitrary byte offsets | Powered by
301
+ [tree-sitter-language-pack](https://github.com/xberg-io/tree-sitter-language-pack)
302
+ [documentation](https://docs.tree-sitter-language-pack.xberg.io). **[Complete Format
303
+ Reference](https://docs.xberg.io/reference/formats/)** ### Key Capabilities - **Text Extraction** - Extract all text
304
+ content with position and formatting information - **Metadata Extraction** - Retrieve document properties, creation
305
+ date, author, etc. - **Table Extraction** - Parse tables with structure and cell content preservation - **Image
306
+ Extraction** - Extract embedded images and render page previews
329
307
 
330
- - **Text Extraction** - Extract all text content with position and formatting information
331
- - **Metadata Extraction** - Retrieve document properties, creation date, author, etc.
332
- - **Table Extraction** - Parse tables with structure and cell content preservation
333
- - **Image Extraction** - Extract embedded images and render page previews
334
308
  - **OCR Support** - Integrate multiple OCR backends for scanned documents
335
- - **Async/Await** - Non-blocking document processing with concurrent operations
336
- - **Plugin System** - Extensible post-processing for custom text transformation
337
- - **Batch Processing** - Efficiently process multiple documents in parallel
338
- - **Memory Efficient** - Stream large files without loading entirely into memory
339
- - **Language Detection** - Detect and support multiple languages in documents
340
- - **Code Intelligence** - Extract structure, imports, exports, symbols, and docstrings from [306 programming languages](https://docs.tree-sitter-language-pack.xberg.io) via tree-sitter
341
- - **Configuration** - Fine-grained control over extraction behavior
342
- - **Six Output Formats** - Plain text, Markdown, Djot, HTML, JSON tree structure, or Structured JSON with OCR metadata
309
+ - **Async/Await** - Non-blocking document processing with concurrent operations
310
+ - **Plugin System** - Extensible post-processing for custom text transformation
311
+ - **Batch Processing** - Efficiently process multiple documents in parallel - **Memory Efficient** - Stream large files
312
+ without loading entirely into memory - **Language Detection** - Detect and support multiple languages in documents
313
+ - **Code Intelligence** - Extract structure, imports, exports, symbols, and docstrings from [306 programming
314
+ languages](https://docs.tree-sitter-language-pack.xberg.io) via tree-sitter
315
+ - **Configuration** - Fine-grained control over extraction behavior - **Six Output Formats** - Plain text, Markdown,
316
+ Djot, HTML, JSON tree structure, or Structured JSON with OCR metadata
343
317
 
344
318
  ## OCR Support
345
319
 
@@ -483,7 +457,7 @@ Contributions are welcome! See [Contributing Guide](https://github.com/xberg-io/
483
457
 
484
458
  - [crawlberg](https://github.com/xberg-io/crawlberg) — web crawling and scraping with HTML→Markdown and headless-Chrome fallback.
485
459
  - [html-to-markdown](https://github.com/xberg-io/html-to-markdown) — fast, lossless HTML→Markdown engine.
486
- - [liter-llm](https://github.com/xberg-io/liter-llm) — universal LLM API client with native bindings for 14 languages and 143 providers.
460
+ - [liter-llm](https://github.com/xberg-io/liter-llm) — universal LLM API client with native bindings for 14 languages and 165 providers.
487
461
  - [tree-sitter-language-pack](https://github.com/xberg-io/tree-sitter-language-pack) — tree-sitter grammars and code-intelligence primitives.
488
462
  - [alef](https://github.com/xberg-io/alef) — the polyglot binding generator that produces this README and all per-language bindings.
489
463
  - [Discord](https://discord.gg/xt9WY3GnKR) — community, roadmap, announcements.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xberg-io/xberg-wasm",
3
- "version": "1.0.3",
3
+ "version": "1.0.7",
4
4
  "private": false,
5
5
  "description": "High-performance document intelligence library",
6
6
  "license": "MIT",
package/pkg/web/README.md CHANGED
@@ -80,7 +80,7 @@
80
80
  </a>
81
81
  </div>
82
82
 
83
- Extract text, tables, images, metadata, and code intelligence from 98 file formats and 306 programming languages including PDF, Office documents, and images. WebAssembly bindings for browsers, Deno, and Cloudflare Workers with portable deployment and multi-threading support.
83
+ Extract text, tables, images, metadata, and code intelligence from 101 file formats and 306 programming languages including PDF, Office documents, and images. WebAssembly bindings for browsers, Deno, and Cloudflare Workers with portable deployment and multi-threading support.
84
84
 
85
85
  ## What This Package Provides
86
86
 
@@ -262,84 +262,58 @@ extractDocuments(fileBytes, mimes)
262
262
 
263
263
  ## Features
264
264
 
265
- ### Supported File Formats (98)
266
-
267
- 98 file formats across 8 major categories with intelligent format detection and comprehensive metadata extraction.
268
-
269
- #### Office Documents
270
-
271
- | Category | Formats | Capabilities |
272
- |----------|---------|--------------|
273
- | **Word Processing** | `.docx`, `.docm`, `.doc`, `.dotx`, `.dotm`, `.dot`, `.odt`, `.pages`, `.wpd`, `.wp`, `.wp5`, `.wp6` | Full text, tables, images, metadata, styles |
274
- | **Spreadsheets** | `.xlsx`, `.xlsm`, `.xlsb`, `.xls`, `.xla`, `.xlam`, `.xltm`, `.xltx`, `.xlt`, `.ods`, `.numbers` | Sheet data, formulas, cell metadata, charts |
275
- | **Presentations** | `.pptx`, `.pptm`, `.ppt`, `.ppsx`, `.potx`, `.potm`, `.pot`, `.odp`, `.key` | Slides, speaker notes, images, metadata |
276
- | **PDF** | `.pdf` | Text, tables, images, metadata, OCR support |
277
- | **eBooks** | `.epub`, `.fb2` | Chapters, metadata, embedded resources |
278
- | **Database** | `.dbf` | Table data extraction, field type support |
279
- | **Hangul** | `.hwp`, `.hwpx` | Korean document format, text extraction |
280
-
281
- #### Images (OCR-Enabled)
282
-
283
- | Category | Formats | Features |
284
- |----------|---------|----------|
285
- | **Raster** | `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.bmp`, `.tiff`, `.tif` | OCR, table detection, EXIF metadata, dimensions, color space |
286
- | **Advanced** | `.jp2`, `.jpx`, `.jpm`, `.mj2`, `.jbig2`, `.jb2`, `.pnm`, `.pbm`, `.pgm`, `.ppm` | OCR via hayro-jpeg2000 (pure Rust decoder), JBIG2 support, table detection, format-specific metadata |
265
+ ### Supported File Formats (101 formats · 115 file extensions) 101 formats across 115 file extensions in 8 major
266
+
267
+ categories with intelligent format detection and comprehensive metadata extraction. #### Office Documents | Category |
268
+ Formats | Capabilities | |----------|---------|--------------| | **Word Processing** | `.docx`, `.docm`, `.doc`,
269
+ `.dotx`, `.dotm`, `.dot`, `.odt`, `.pages`, `.wpd`, `.wp`, `.wp5`, `.wp6` | Full text, tables, images, metadata, styles
270
+ | | **Spreadsheets** | `.xlsx`, `.xlsm`, `.xlsb`, `.xls`, `.xla`, `.xlam`, `.xltm`, `.xltx`, `.xlt`, `.ods`, `.numbers`
271
+ | Sheet data, formulas, cell metadata, charts | | **Presentations** | `.pptx`, `.pptm`, `.ppt`, `.ppsx`, `.potx`,
272
+ `.potm`, `.pot`, `.odp`, `.key` | Slides, speaker notes, images, metadata | | **PDF** | `.pdf` | Text, tables, images,
273
+ metadata, OCR support | | **eBooks** | `.epub`, `.fb2` | Chapters, metadata, embedded resources | | **Database** |
274
+ `.dbf` | Table data extraction, field type support | | **Hangul** | `.hwp`, `.hwpx` | Korean document format, text
275
+ extraction | #### Images (OCR-Enabled) | Category | Formats | Features | |----------|---------|----------| | **Raster**
276
+ | `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.bmp`, `.tiff`, `.tif` | OCR, table detection, EXIF metadata, dimensions,
277
+ color space | | **Advanced** | `.jp2`, `.jpx`, `.jpm`, `.mj2`, `.jbig2`, `.jb2`, `.pnm`, `.pbm`, `.pgm`, `.ppm` | OCR
278
+ via hayro-jpeg2000 (pure Rust decoder), JBIG2 support, table detection, format-specific metadata |
287
279
  | **Vector** | `.svg` | DOM parsing, embedded text, graphics metadata |
288
280
 
289
- #### Web & Data
290
-
291
- | Category | Formats | Features |
292
- |----------|---------|----------|
293
- | **Markup** | `.html`, `.htm`, `.xhtml`, `.xml`, `.svg` | DOM parsing, metadata (Open Graph, Twitter Card), link extraction |
294
- | **Structured Data** | `.json`, `.yaml`, `.yml`, `.toml`, `.csv`, `.tsv` | Schema detection, nested structures, validation |
295
- | **Text & Markdown** | `.txt`, `.md`, `.markdown`, `.djot`, `.mdx`, `.rst`, `.org`, `.rtf` | CommonMark, GFM, Djot, MDX, reStructuredText, Org Mode |
296
-
297
- #### Email & Archives
298
-
299
- | Category | Formats | Features |
300
- |----------|---------|----------|
301
- | **Email** | `.eml`, `.msg`, `.pst` | Headers, body (HTML/plain), attachments, threading |
302
- | **Archives** | `.zip`, `.tar`, `.tgz`, `.gz`, `.7z` | File listing, nested archives, metadata |
303
-
304
- #### Academic & Scientific
305
-
306
- | Category | Formats | Features |
307
- |----------|---------|----------|
308
- | **Citations** | `.bib`, `.ris`, `.nbib`, `.enw` | Structured parsing: RIS, PubMed/MEDLINE, EndNote XML, BibTeX/BibLaTeX, CSL JSON by MIME type |
309
- | **Scientific** | `.tex`, `.latex`, `.typ`, `.typst`, `.jats`, `.ipynb` | LaTeX, Typst, Jupyter notebooks, PubMed JATS |
310
- | **Publishing** | `.fb2`, `.docbook`, `.dbk`, `.docbook4`, `.docbook5`, `.opml` | FictionBook, DocBook XML, OPML outlines |
311
- | **Documentation** | MIME-only POD, mdoc, troff | Technical documentation formats |
312
-
313
- #### Code Intelligence (306 Languages)
314
-
315
- | Feature | Description |
316
- |---------|-------------|
317
- | **Structure Extraction** | Functions, classes, methods, structs, interfaces, enums |
318
- | **Import/Export Analysis** | Module dependencies, re-exports, wildcard imports |
319
- | **Symbol Extraction** | Variables, constants, type aliases, properties |
320
- | **Docstring Parsing** | Google, NumPy, Sphinx, JSDoc, RustDoc, and 10+ formats |
321
- | **Diagnostics** | Parse errors with line/column positions |
322
- | **Syntax-Aware Chunking** | Split code by semantic boundaries, not arbitrary byte offsets |
323
-
324
- Powered by [tree-sitter-language-pack](https://github.com/xberg-io/tree-sitter-language-pack) — [documentation](https://docs.tree-sitter-language-pack.xberg.io).
325
-
326
- **[Complete Format Reference](https://docs.xberg.io/reference/formats/)**
327
-
328
- ### Key Capabilities
281
+ #### Web & Data | Category | Formats | Features | |----------|---------|----------| | **Markup** | `.html`, `.htm`
282
+
283
+ `.xhtml`, `.xml`, `.svg` | DOM parsing, metadata (Open Graph, Twitter Card), link extraction | | **Structured Data** |
284
+ `.json`, `.yaml`, `.yml`, `.toml`, `.csv`, `.tsv` | Schema detection, nested structures, validation | | **Text &
285
+ Markdown** | `.txt`, `.md`, `.markdown`, `.djot`, `.mdx`, `.rst`, `.org`, `.rtf` | CommonMark, GFM, Djot, MDX,
286
+ reStructuredText, Org Mode | #### Email & Archives | Category | Formats | Features | |----------|---------|----------| |
287
+ **Email** | `.eml`, `.msg`, `.pst` | Headers, body (HTML/plain), attachments, threading | | **Archives** | `.zip`,
288
+ `.tar`, `.tgz`, `.gz`, `.7z` | Recursive extraction of nested archives, file listing, metadata, zip-bomb protection |
289
+
290
+ #### Academic & Scientific | Category | Formats | Features | |----------|---------|----------| | **Citations** | `.bib`
291
+
292
+ `.ris`, `.nbib`, `.enw` | Structured parsing: RIS, PubMed/MEDLINE, EndNote XML, BibTeX/BibLaTeX, CSL JSON by MIME type |
293
+ | **Scientific** | `.tex`, `.latex`, `.typ`, `.typst`, `.jats`, `.ipynb` | LaTeX, Typst, Jupyter notebooks, PubMed JATS
294
+ | | **Publishing** | `.fb2`, `.docbook`, `.dbk`, `.docbook4`, `.docbook5`, `.opml` | FictionBook, DocBook XML, OPML
295
+ outlines | | **Documentation** | MIME-only POD, mdoc, troff | Technical documentation formats | #### Code Intelligence
296
+ (306 Languages) | Feature | Description | |---------|-------------| | **Structure Extraction** | Functions, classes,
297
+ methods, structs, interfaces, enums | | **Import/Export Analysis** | Module dependencies, re-exports, wildcard imports |
298
+ | **Symbol Extraction** | Variables, constants, type aliases, properties | | **Docstring Parsing** | Google, NumPy,
299
+ Sphinx, JSDoc, RustDoc, and 10+ formats | | **Diagnostics** | Parse errors with line/column positions | | **Syntax-Aware
300
+ Chunking** | Split code by semantic boundaries, not arbitrary byte offsets | Powered by
301
+ [tree-sitter-language-pack](https://github.com/xberg-io/tree-sitter-language-pack)
302
+ [documentation](https://docs.tree-sitter-language-pack.xberg.io). **[Complete Format
303
+ Reference](https://docs.xberg.io/reference/formats/)** ### Key Capabilities - **Text Extraction** - Extract all text
304
+ content with position and formatting information - **Metadata Extraction** - Retrieve document properties, creation
305
+ date, author, etc. - **Table Extraction** - Parse tables with structure and cell content preservation - **Image
306
+ Extraction** - Extract embedded images and render page previews
329
307
 
330
- - **Text Extraction** - Extract all text content with position and formatting information
331
- - **Metadata Extraction** - Retrieve document properties, creation date, author, etc.
332
- - **Table Extraction** - Parse tables with structure and cell content preservation
333
- - **Image Extraction** - Extract embedded images and render page previews
334
308
  - **OCR Support** - Integrate multiple OCR backends for scanned documents
335
- - **Async/Await** - Non-blocking document processing with concurrent operations
336
- - **Plugin System** - Extensible post-processing for custom text transformation
337
- - **Batch Processing** - Efficiently process multiple documents in parallel
338
- - **Memory Efficient** - Stream large files without loading entirely into memory
339
- - **Language Detection** - Detect and support multiple languages in documents
340
- - **Code Intelligence** - Extract structure, imports, exports, symbols, and docstrings from [306 programming languages](https://docs.tree-sitter-language-pack.xberg.io) via tree-sitter
341
- - **Configuration** - Fine-grained control over extraction behavior
342
- - **Six Output Formats** - Plain text, Markdown, Djot, HTML, JSON tree structure, or Structured JSON with OCR metadata
309
+ - **Async/Await** - Non-blocking document processing with concurrent operations
310
+ - **Plugin System** - Extensible post-processing for custom text transformation
311
+ - **Batch Processing** - Efficiently process multiple documents in parallel - **Memory Efficient** - Stream large files
312
+ without loading entirely into memory - **Language Detection** - Detect and support multiple languages in documents
313
+ - **Code Intelligence** - Extract structure, imports, exports, symbols, and docstrings from [306 programming
314
+ languages](https://docs.tree-sitter-language-pack.xberg.io) via tree-sitter
315
+ - **Configuration** - Fine-grained control over extraction behavior - **Six Output Formats** - Plain text, Markdown,
316
+ Djot, HTML, JSON tree structure, or Structured JSON with OCR metadata
343
317
 
344
318
  ## OCR Support
345
319
 
@@ -483,7 +457,7 @@ Contributions are welcome! See [Contributing Guide](https://github.com/xberg-io/
483
457
 
484
458
  - [crawlberg](https://github.com/xberg-io/crawlberg) — web crawling and scraping with HTML→Markdown and headless-Chrome fallback.
485
459
  - [html-to-markdown](https://github.com/xberg-io/html-to-markdown) — fast, lossless HTML→Markdown engine.
486
- - [liter-llm](https://github.com/xberg-io/liter-llm) — universal LLM API client with native bindings for 14 languages and 143 providers.
460
+ - [liter-llm](https://github.com/xberg-io/liter-llm) — universal LLM API client with native bindings for 14 languages and 165 providers.
487
461
  - [tree-sitter-language-pack](https://github.com/xberg-io/tree-sitter-language-pack) — tree-sitter grammars and code-intelligence primitives.
488
462
  - [alef](https://github.com/xberg-io/alef) — the polyglot binding generator that produces this README and all per-language bindings.
489
463
  - [Discord](https://discord.gg/xt9WY3GnKR) — community, roadmap, announcements.
@@ -2,7 +2,7 @@
2
2
  "name": "xberg-wasm",
3
3
  "type": "module",
4
4
  "description": "High-performance document intelligence library",
5
- "version": "1.0.3",
5
+ "version": "1.0.7",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",
@@ -2807,7 +2807,10 @@ export class WasmOcrMetadata {
2807
2807
  *
2808
2808
  * Backends are tried in priority order (highest first). After each backend
2809
2809
  * produces output, quality is evaluated. If it meets `quality_thresholds.pipeline_min_quality`,
2810
- * the result is accepted. Otherwise the next backend is tried.
2810
+ * the result is accepted. Otherwise the next backend is tried; if none clears the
2811
+ * threshold, an internal selection policy derived from the `OcrConfig` decides which
2812
+ * stage's result is returned as the best effort (`vlm_fallback` pipelines prefer their
2813
+ * last non-empty stage; explicit and classical pipelines stay score-based).
2811
2814
  */
2812
2815
  export class WasmOcrPipelineConfig {
2813
2816
  free(): void;
@@ -7036,9 +7039,9 @@ export interface InitOutput {
7036
7039
  readonly wasmprocessingwarning_new: (a: number, b: number, c: number, d: number) => number;
7037
7040
  readonly wasmpagehierarchy_default: () => number;
7038
7041
  readonly wasmqrboundingbox_default: () => number;
7039
- readonly __wbg_wasmvlmfallbackpolicy_free: (a: number, b: number) => void;
7040
- readonly __wbg_wasmtablecell_free: (a: number, b: number) => void;
7041
7042
  readonly __wbg_wasmsparseembeddingconfig_free: (a: number, b: number) => void;
7043
+ readonly __wbg_wasmtablecell_free: (a: number, b: number) => void;
7044
+ readonly __wbg_wasmvlmfallbackpolicy_free: (a: number, b: number) => void;
7042
7045
  readonly wasmvlmfallbackpolicy_default: () => number;
7043
7046
  readonly wasmproxyconfig_url: (a: number) => [number, number];
7044
7047
  readonly wasmsupportedformat_extension: (a: number) => [number, number];
@@ -7069,50 +7072,31 @@ export interface InitOutput {
7069
7072
  readonly wasmpatternmatch_set_start: (a: number, b: number) => void;
7070
7073
  readonly wasmpatternmatch_set_text: (a: number, b: number, c: number) => void;
7071
7074
  readonly wasmerrormetadata_errorType: (a: number) => [number, number];
7072
- readonly __wbg_wasmredactionfinding_free: (a: number, b: number) => void;
7075
+ readonly wasmdiffline_set_kind: (a: number, b: number, c: number) => void;
7076
+ readonly wasmdiffline_set_0: (a: number, b: number, c: number) => void;
7077
+ readonly wasmsupportedformat_mimeType: (a: number) => [number, number];
7078
+ readonly wasmdiffline_kind: (a: number) => [number, number];
7079
+ readonly wasmdjotlink_set_url: (a: number, b: number, c: number) => void;
7080
+ readonly wasmdjotlink_url: (a: number) => [number, number];
7081
+ readonly wasmsupportedformat_set_mimeType: (a: number, b: number, c: number) => void;
7082
+ readonly wasmssrfpolicy_set_denyPrivate: (a: number, b: number) => void;
7083
+ readonly wasmssrfpolicy_denyPrivate: (a: number) => number;
7084
+ readonly wasmsparseembeddingconfig_set_model: (a: number, b: any) => void;
7085
+ readonly wasmsparseembeddingconfig_set_maxLength: (a: number, b: number) => void;
7086
+ readonly wasmsparseembeddingconfig_set_batchSize: (a: number, b: number) => void;
7087
+ readonly wasmsparseembeddingconfig_set_acceleration: (a: number, b: number) => void;
7088
+ readonly wasmsparseembeddingconfig_model: (a: number) => any;
7089
+ readonly wasmsparseembeddingconfig_acceleration: (a: number) => number;
7073
7090
  readonly wasmocrelementconfig_minConfidence: (a: number) => number;
7074
7091
  readonly wasmocrelementconfig_includeElements: (a: number) => number;
7075
7092
  readonly wasmocrelementconfig_set_minConfidence: (a: number, b: number) => void;
7076
7093
  readonly wasmocrelementconfig_set_includeElements: (a: number, b: number) => void;
7077
- readonly wasmredactionterm_set_value: (a: number, b: number, c: number) => void;
7078
- readonly wasmredactionterm_set_label: (a: number, b: number, c: number) => void;
7079
- readonly wasmredactionterm_set_caseSensitive: (a: number, b: number) => void;
7080
- readonly wasmredactionterm_value: (a: number) => [number, number];
7081
- readonly wasmredactionterm_label: (a: number) => [number, number];
7082
- readonly wasmredactionterm_caseSensitive: (a: number) => number;
7083
- readonly wasmpageboundary_set_pageNumber: (a: number, b: number) => void;
7084
- readonly wasmpageboundary_set_byteStart: (a: number, b: number) => void;
7085
- readonly wasmpageboundary_set_byteEnd: (a: number, b: number) => void;
7086
- readonly wasmpageboundary_byteStart: (a: number) => number;
7087
- readonly wasmvlmfallbackpolicy_qualityThreshold: (a: number) => [number, number];
7088
- readonly wasmerrormetadata_set_message: (a: number, b: number, c: number) => void;
7089
- readonly wasmdbffieldinfo_name: (a: number) => [number, number];
7090
- readonly wasmerrormetadata_message: (a: number) => [number, number];
7091
- readonly __wbg_wasmocrelementconfig_free: (a: number, b: number) => void;
7092
7094
  readonly wasmtablecell_set_rowSpan: (a: number, b: number) => void;
7093
7095
  readonly wasmtablecell_set_isHeader: (a: number, b: number) => void;
7094
7096
  readonly wasmtablecell_set_content: (a: number, b: number, c: number) => void;
7095
7097
  readonly wasmtablecell_set_colSpan: (a: number, b: number) => void;
7096
- readonly wasmtablecell_rowSpan: (a: number) => number;
7097
7098
  readonly wasmtablecell_isHeader: (a: number) => number;
7098
7099
  readonly wasmtablecell_content: (a: number) => [number, number];
7099
- readonly wasmtablecell_colSpan: (a: number) => number;
7100
- readonly __wbg_wasmerrormetadata_free: (a: number, b: number) => void;
7101
- readonly __wbg_wasmdjotlink_free: (a: number, b: number) => void;
7102
- readonly wasmssrfpolicy_set_denyPrivate: (a: number, b: number) => void;
7103
- readonly __wbg_wasmredactionterm_free: (a: number, b: number) => void;
7104
- readonly wasmredactionfinding_start: (a: number) => number;
7105
- readonly wasmproxyconfig_set_username: (a: number, b: number, c: number) => void;
7106
- readonly wasmproxyconfig_set_password: (a: number, b: number, c: number) => void;
7107
- readonly wasmproxyconfig_username: (a: number) => [number, number];
7108
- readonly wasmproxyconfig_password: (a: number) => [number, number];
7109
- readonly __wbg_wasmproxyconfig_free: (a: number, b: number) => void;
7110
- readonly wasmsparseembeddingconfig_set_model: (a: number, b: any) => void;
7111
- readonly wasmsparseembeddingconfig_set_maxLength: (a: number, b: number) => void;
7112
- readonly wasmsparseembeddingconfig_set_batchSize: (a: number, b: number) => void;
7113
- readonly wasmsparseembeddingconfig_set_acceleration: (a: number, b: number) => void;
7114
- readonly wasmsparseembeddingconfig_model: (a: number) => any;
7115
- readonly wasmsparseembeddingconfig_acceleration: (a: number) => number;
7116
7100
  readonly wasmrerankerconfig_set_topK: (a: number, b: number) => void;
7117
7101
  readonly wasmrerankerconfig_set_showDownloadProgress: (a: number, b: number) => void;
7118
7102
  readonly wasmrerankerconfig_set_model: (a: number, b: any) => void;
@@ -7122,78 +7106,97 @@ export interface InitOutput {
7122
7106
  readonly wasmrerankerconfig_showDownloadProgress: (a: number) => number;
7123
7107
  readonly wasmrerankerconfig_model: (a: number) => any;
7124
7108
  readonly wasmrerankerconfig_acceleration: (a: number) => number;
7125
- readonly wasmdjotlink_set_url: (a: number, b: number, c: number) => void;
7126
- readonly wasmdjotlink_set_title: (a: number, b: number, c: number) => void;
7127
- readonly wasmdjotlink_set_text: (a: number, b: number, c: number) => void;
7128
- readonly wasmdjotlink_url: (a: number) => [number, number];
7129
- readonly wasmdjotlink_title: (a: number) => [number, number];
7130
- readonly wasmdjotlink_text: (a: number) => [number, number];
7131
- readonly wasmvlmfallbackpolicy_mode: (a: number) => [number, number];
7132
- readonly wasmvlmfallbackpolicy_set_qualityThreshold: (a: number, b: number, c: number) => void;
7133
- readonly wasmvlmfallbackpolicy_set_mode: (a: number, b: number, c: number) => void;
7134
- readonly wasmssrfpolicy_denyPrivate: (a: number) => number;
7135
- readonly wasmredactionpattern_pattern: (a: number) => [number, number];
7136
- readonly __wbg_wasmredactionpattern_free: (a: number, b: number) => void;
7137
- readonly wasmredactionpattern_set_pattern: (a: number, b: number, c: number) => void;
7138
- readonly __wbg_wasmpageboundary_free: (a: number, b: number) => void;
7139
- readonly wasmpageboundary_byteEnd: (a: number) => number;
7140
- readonly wasmdocumentrelationship_target: (a: number) => number;
7141
- readonly wasmpageboundary_pageNumber: (a: number) => number;
7142
- readonly __wbg_wasmdocumentrelationship_free: (a: number, b: number) => void;
7143
- readonly __wbg_wasmpreprocessingoptions_free: (a: number, b: number) => void;
7144
- readonly wasmpreprocessingoptions_enabled: (a: number) => number;
7145
- readonly wasmsupportedformat_mimeType: (a: number) => [number, number];
7146
- readonly wasmsupportedformat_set_mimeType: (a: number, b: number, c: number) => void;
7109
+ readonly wasmtablecell_rowSpan: (a: number) => number;
7110
+ readonly wasmtablecell_colSpan: (a: number) => number;
7147
7111
  readonly wasmprocessingwarning_message: (a: number) => [number, number];
7148
- readonly __wbg_wasmprocessingwarning_free: (a: number, b: number) => void;
7149
7112
  readonly wasmprocessingwarning_set_message: (a: number, b: number, c: number) => void;
7150
- readonly wasmocrrotation_set_confidence: (a: number, b: number, c: number) => void;
7151
7113
  readonly wasmocrrotation_set_angleDegrees: (a: number, b: number) => void;
7152
- readonly wasmocrrotation_confidence: (a: number) => [number, number];
7153
- readonly wasmocrrotation_angleDegrees: (a: number) => number;
7154
- readonly __wbg_wasmocrrotation_free: (a: number, b: number) => void;
7155
- readonly wasmdiffline_set_kind: (a: number, b: number, c: number) => void;
7156
- readonly wasmdiffline_set_0: (a: number, b: number, c: number) => void;
7157
- readonly wasmdiffline_kind: (a: number) => [number, number];
7158
- readonly wasmdiffline_0: (a: number) => [number, number];
7114
+ readonly wasmvlmfallbackpolicy_set_mode: (a: number, b: number, c: number) => void;
7115
+ readonly wasmvlmfallbackpolicy_set_qualityThreshold: (a: number, b: number, c: number) => void;
7116
+ readonly wasmvlmfallbackpolicy_mode: (a: number) => [number, number];
7117
+ readonly wasmvlmfallbackpolicy_qualityThreshold: (a: number) => [number, number];
7118
+ readonly wasmrerankerconfig_maxRerankDurationSecs: (a: number) => [number, bigint];
7119
+ readonly wasmrerankerconfig_cacheDir: (a: number) => [number, number];
7120
+ readonly wasmrerankerconfig_batchSize: (a: number) => number;
7121
+ readonly wasmerrormetadata_set_message: (a: number, b: number, c: number) => void;
7122
+ readonly wasmdbffieldinfo_name: (a: number) => [number, number];
7123
+ readonly wasmerrormetadata_message: (a: number) => [number, number];
7124
+ readonly __wbg_wasmprocessingwarning_free: (a: number, b: number) => void;
7159
7125
  readonly wasmqrboundingbox_set_y: (a: number, b: number) => void;
7160
7126
  readonly wasmqrboundingbox_set_x: (a: number, b: number) => void;
7161
7127
  readonly wasmqrboundingbox_set_width: (a: number, b: number) => void;
7162
7128
  readonly wasmqrboundingbox_set_height: (a: number, b: number) => void;
7163
- readonly wasmqrboundingbox_y: (a: number) => number;
7164
7129
  readonly wasmqrboundingbox_x: (a: number) => number;
7165
- readonly wasmqrboundingbox_width: (a: number) => number;
7166
- readonly wasmqrboundingbox_height: (a: number) => number;
7167
- readonly __wbg_wasmqrboundingbox_free: (a: number, b: number) => void;
7168
- readonly wasmdbffieldinfo_set_name: (a: number, b: number, c: number) => void;
7169
- readonly wasmdbffieldinfo_set_fieldType: (a: number, b: number, c: number) => void;
7170
- readonly wasmdbffieldinfo_fieldType: (a: number) => [number, number];
7171
- readonly __wbg_wasmdbffieldinfo_free: (a: number, b: number) => void;
7172
- readonly wasmpatternmatch_start: (a: number) => number;
7173
- readonly wasmredactionfinding_end: (a: number) => number;
7174
- readonly __wbg_wasmtokenreductionoptions_free: (a: number, b: number) => void;
7175
- readonly wasmpageconfig_set_markerFormat: (a: number, b: number, c: number) => void;
7176
- readonly wasmtokenreductionoptions_set_preserveImportantWords: (a: number, b: number) => void;
7177
- readonly wasmpageconfig_markerFormat: (a: number) => [number, number];
7178
- readonly wasmtokenreductionoptions_preserveImportantWords: (a: number) => number;
7179
- readonly __wbg_wasmpageconfig_free: (a: number, b: number) => void;
7180
- readonly wasmrerankerconfig_maxRerankDurationSecs: (a: number) => [number, bigint];
7181
- readonly wasmrerankerconfig_cacheDir: (a: number) => [number, number];
7182
- readonly wasmrerankerconfig_batchSize: (a: number) => number;
7183
- readonly wasmrerankerconfig_set_maxRerankDurationSecs: (a: number, b: number, c: bigint) => void;
7184
- readonly wasmrerankerconfig_set_cacheDir: (a: number, b: number, c: number) => void;
7185
7130
  readonly wasmpropertychange_set_name: (a: number, b: number, c: number) => void;
7186
- readonly wasmpropertychange_set_from: (a: number, b: number, c: number) => void;
7187
- readonly wasmpropertychange_set_to: (a: number, b: number, c: number) => void;
7131
+ readonly wasmproxyconfig_set_username: (a: number, b: number, c: number) => void;
7132
+ readonly wasmproxyconfig_set_password: (a: number, b: number, c: number) => void;
7188
7133
  readonly wasmpropertychange_name: (a: number) => [number, number];
7189
- readonly wasmpropertychange_from: (a: number) => [number, number];
7134
+ readonly wasmproxyconfig_username: (a: number) => [number, number];
7135
+ readonly wasmproxyconfig_password: (a: number) => [number, number];
7136
+ readonly wasmdjotlink_set_title: (a: number, b: number, c: number) => void;
7137
+ readonly wasmdjotlink_set_text: (a: number, b: number, c: number) => void;
7138
+ readonly wasmdjotlink_title: (a: number) => [number, number];
7139
+ readonly wasmdjotlink_text: (a: number) => [number, number];
7140
+ readonly __wbg_wasmdjotlink_free: (a: number, b: number) => void;
7141
+ readonly wasmpatternmatch_start: (a: number) => number;
7142
+ readonly __wbg_wasmerrormetadata_free: (a: number, b: number) => void;
7143
+ readonly __wbg_wasmpreprocessingoptions_free: (a: number, b: number) => void;
7144
+ readonly wasmpreprocessingoptions_enabled: (a: number) => number;
7145
+ readonly wasmpageboundary_set_pageNumber: (a: number, b: number) => void;
7146
+ readonly wasmpageboundary_set_byteStart: (a: number, b: number) => void;
7147
+ readonly wasmpageboundary_set_byteEnd: (a: number, b: number) => void;
7148
+ readonly wasmpageboundary_byteStart: (a: number) => number;
7149
+ readonly wasmpageboundary_byteEnd: (a: number) => number;
7150
+ readonly wasmpageboundary_pageNumber: (a: number) => number;
7151
+ readonly __wbg_wasmpageboundary_free: (a: number, b: number) => void;
7152
+ readonly wasmpropertychange_set_to: (a: number, b: number, c: number) => void;
7153
+ readonly wasmpropertychange_set_from: (a: number, b: number, c: number) => void;
7190
7154
  readonly wasmpropertychange_to: (a: number) => [number, number];
7155
+ readonly wasmpropertychange_from: (a: number) => [number, number];
7156
+ readonly __wbg_wasmproxyconfig_free: (a: number, b: number) => void;
7157
+ readonly wasmrerankerconfig_set_maxRerankDurationSecs: (a: number, b: number, c: bigint) => void;
7158
+ readonly wasmrerankerconfig_set_cacheDir: (a: number, b: number, c: number) => void;
7159
+ readonly __wbg_wasmdocumentrelationship_free: (a: number, b: number) => void;
7160
+ readonly wasmdocumentrelationship_target: (a: number) => number;
7191
7161
  readonly wasmsparseembeddingconfig_set_maxEmbedDurationSecs: (a: number, b: number, c: bigint) => void;
7192
7162
  readonly wasmsparseembeddingconfig_set_cacheDir: (a: number, b: number, c: number) => void;
7193
7163
  readonly wasmsparseembeddingconfig_maxLength: (a: number) => number;
7194
7164
  readonly wasmsparseembeddingconfig_maxEmbedDurationSecs: (a: number) => [number, bigint];
7195
7165
  readonly wasmsparseembeddingconfig_cacheDir: (a: number) => [number, number];
7196
7166
  readonly wasmsparseembeddingconfig_batchSize: (a: number) => number;
7167
+ readonly __wbg_wasmtokenreductionoptions_free: (a: number, b: number) => void;
7168
+ readonly __wbg_wasmqrboundingbox_free: (a: number, b: number) => void;
7169
+ readonly wasmqrboundingbox_y: (a: number) => number;
7170
+ readonly wasmqrboundingbox_width: (a: number) => number;
7171
+ readonly wasmqrboundingbox_height: (a: number) => number;
7172
+ readonly wasmdiffline_0: (a: number) => [number, number];
7173
+ readonly __wbg_wasmocrelementconfig_free: (a: number, b: number) => void;
7174
+ readonly wasmredactionterm_set_value: (a: number, b: number, c: number) => void;
7175
+ readonly wasmredactionterm_set_label: (a: number, b: number, c: number) => void;
7176
+ readonly wasmredactionterm_set_caseSensitive: (a: number, b: number) => void;
7177
+ readonly wasmredactionterm_value: (a: number) => [number, number];
7178
+ readonly wasmredactionterm_label: (a: number) => [number, number];
7179
+ readonly wasmredactionterm_caseSensitive: (a: number) => number;
7180
+ readonly __wbg_wasmredactionterm_free: (a: number, b: number) => void;
7181
+ readonly wasmpageconfig_set_markerFormat: (a: number, b: number, c: number) => void;
7182
+ readonly wasmtokenreductionoptions_set_preserveImportantWords: (a: number, b: number) => void;
7183
+ readonly wasmpageconfig_markerFormat: (a: number) => [number, number];
7184
+ readonly wasmtokenreductionoptions_preserveImportantWords: (a: number) => number;
7185
+ readonly __wbg_wasmpageconfig_free: (a: number, b: number) => void;
7186
+ readonly wasmocrrotation_set_confidence: (a: number, b: number, c: number) => void;
7187
+ readonly wasmocrrotation_angleDegrees: (a: number) => number;
7188
+ readonly wasmocrrotation_confidence: (a: number) => [number, number];
7189
+ readonly __wbg_wasmocrrotation_free: (a: number, b: number) => void;
7190
+ readonly wasmdbffieldinfo_set_name: (a: number, b: number, c: number) => void;
7191
+ readonly wasmdbffieldinfo_set_fieldType: (a: number, b: number, c: number) => void;
7192
+ readonly wasmdbffieldinfo_fieldType: (a: number) => [number, number];
7193
+ readonly __wbg_wasmdbffieldinfo_free: (a: number, b: number) => void;
7194
+ readonly wasmredactionfinding_start: (a: number) => number;
7195
+ readonly wasmredactionfinding_end: (a: number) => number;
7196
+ readonly __wbg_wasmredactionfinding_free: (a: number, b: number) => void;
7197
+ readonly wasmredactionpattern_pattern: (a: number) => [number, number];
7198
+ readonly __wbg_wasmredactionpattern_free: (a: number, b: number) => void;
7199
+ readonly wasmredactionpattern_set_pattern: (a: number, b: number, c: number) => void;
7197
7200
  readonly __wbg_wasmsparseembeddingmodeltype_free: (a: number, b: number) => void;
7198
7201
  readonly wasmsparseembeddingmodeltype_set_type: (a: number, b: number, c: number) => void;
7199
7202
  readonly wasmsparseembeddingmodeltype_set_name: (a: number, b: number, c: number) => void;
@@ -7209,7 +7212,7 @@ export interface InitOutput {
7209
7212
  readonly wasmsparseembeddingmodeltype_additionalFiles: (a: number) => [number, number];
7210
7213
  readonly wasm_bindgen__convert__closures_____invoke__hc53a447a5735fa3a: (a: number, b: number, c: any) => [number, number];
7211
7214
  readonly wasm_bindgen__convert__closures_____invoke__h2fc03d71408c92bf: (a: number, b: number, c: any, d: any) => void;
7212
- readonly wasm_bindgen__convert__closures_____invoke__hff3dd44bad76f477: (a: number, b: number) => void;
7215
+ readonly wasm_bindgen__convert__closures_____invoke__h66e27dec856adeef: (a: number, b: number) => void;
7213
7216
  readonly __wbindgen_malloc_command_export: (a: number, b: number) => number;
7214
7217
  readonly __wbindgen_realloc_command_export: (a: number, b: number, c: number, d: number) => number;
7215
7218
  readonly __wbindgen_exn_store_command_export: (a: number) => void;
@@ -18047,7 +18047,10 @@ if (Symbol.dispose) WasmOcrMetadata.prototype[Symbol.dispose] = WasmOcrMetadata.
18047
18047
  *
18048
18048
  * Backends are tried in priority order (highest first). After each backend
18049
18049
  * produces output, quality is evaluated. If it meets `quality_thresholds.pipeline_min_quality`,
18050
- * the result is accepted. Otherwise the next backend is tried.
18050
+ * the result is accepted. Otherwise the next backend is tried; if none clears the
18051
+ * threshold, an internal selection policy derived from the `OcrConfig` decides which
18052
+ * stage's result is returned as the best effort (`vlm_fallback` pipelines prefer their
18053
+ * last non-empty stage; explicit and classical pipelines stay score-based).
18051
18054
  */
18052
18055
  export class WasmOcrPipelineConfig {
18053
18056
  static __wrap(ptr) {
@@ -28121,7 +28124,7 @@ function __wbg_get_imports() {
28121
28124
  const ret = arg0.value;
28122
28125
  return ret;
28123
28126
  },
28124
- __wbg_warn_2fc1e9c4e87d8693: function(arg0, arg1) {
28127
+ __wbg_warn_f6f2ddda37728ad7: function(arg0, arg1) {
28125
28128
  console.warn(getStringFromWasm0(arg0, arg1));
28126
28129
  },
28127
28130
  __wbg_wasmarchiveentry_new: function(arg0) {
@@ -28559,7 +28562,7 @@ function __wbg_get_imports() {
28559
28562
  },
28560
28563
  __wbindgen_cast_0000000000000002: function(arg0, arg1) {
28561
28564
  // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [], shim_idx: 4551, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
28562
- const ret = makeMutClosure(arg0, arg1, wasm_bindgen__convert__closures_____invoke__hff3dd44bad76f477);
28565
+ const ret = makeMutClosure(arg0, arg1, wasm_bindgen__convert__closures_____invoke__h66e27dec856adeef);
28563
28566
  return ret;
28564
28567
  },
28565
28568
  __wbindgen_cast_0000000000000003: function(arg0) {
@@ -28627,8 +28630,8 @@ function __wbg_get_imports() {
28627
28630
  };
28628
28631
  }
28629
28632
 
28630
- function wasm_bindgen__convert__closures_____invoke__hff3dd44bad76f477(arg0, arg1) {
28631
- wasm.wasm_bindgen__convert__closures_____invoke__hff3dd44bad76f477(arg0, arg1);
28633
+ function wasm_bindgen__convert__closures_____invoke__h66e27dec856adeef(arg0, arg1) {
28634
+ wasm.wasm_bindgen__convert__closures_____invoke__h66e27dec856adeef(arg0, arg1);
28632
28635
  }
28633
28636
 
28634
28637
  function wasm_bindgen__convert__closures_____invoke__hc53a447a5735fa3a(arg0, arg1, arg2) {
Binary file
@@ -2419,9 +2419,9 @@ export const wasmredactionterm_default: () => number;
2419
2419
  export const wasmprocessingwarning_new: (a: number, b: number, c: number, d: number) => number;
2420
2420
  export const wasmpagehierarchy_default: () => number;
2421
2421
  export const wasmqrboundingbox_default: () => number;
2422
- export const __wbg_wasmvlmfallbackpolicy_free: (a: number, b: number) => void;
2423
- export const __wbg_wasmtablecell_free: (a: number, b: number) => void;
2424
2422
  export const __wbg_wasmsparseembeddingconfig_free: (a: number, b: number) => void;
2423
+ export const __wbg_wasmtablecell_free: (a: number, b: number) => void;
2424
+ export const __wbg_wasmvlmfallbackpolicy_free: (a: number, b: number) => void;
2425
2425
  export const wasmvlmfallbackpolicy_default: () => number;
2426
2426
  export const wasmproxyconfig_url: (a: number) => [number, number];
2427
2427
  export const wasmsupportedformat_extension: (a: number) => [number, number];
@@ -2452,50 +2452,31 @@ export const wasmtokenreductionoptions_set_mode: (a: number, b: number, c: numbe
2452
2452
  export const wasmpatternmatch_set_start: (a: number, b: number) => void;
2453
2453
  export const wasmpatternmatch_set_text: (a: number, b: number, c: number) => void;
2454
2454
  export const wasmerrormetadata_errorType: (a: number) => [number, number];
2455
- export const __wbg_wasmredactionfinding_free: (a: number, b: number) => void;
2455
+ export const wasmdiffline_set_kind: (a: number, b: number, c: number) => void;
2456
+ export const wasmdiffline_set_0: (a: number, b: number, c: number) => void;
2457
+ export const wasmsupportedformat_mimeType: (a: number) => [number, number];
2458
+ export const wasmdiffline_kind: (a: number) => [number, number];
2459
+ export const wasmdjotlink_set_url: (a: number, b: number, c: number) => void;
2460
+ export const wasmdjotlink_url: (a: number) => [number, number];
2461
+ export const wasmsupportedformat_set_mimeType: (a: number, b: number, c: number) => void;
2462
+ export const wasmssrfpolicy_set_denyPrivate: (a: number, b: number) => void;
2463
+ export const wasmssrfpolicy_denyPrivate: (a: number) => number;
2464
+ export const wasmsparseembeddingconfig_set_model: (a: number, b: any) => void;
2465
+ export const wasmsparseembeddingconfig_set_maxLength: (a: number, b: number) => void;
2466
+ export const wasmsparseembeddingconfig_set_batchSize: (a: number, b: number) => void;
2467
+ export const wasmsparseembeddingconfig_set_acceleration: (a: number, b: number) => void;
2468
+ export const wasmsparseembeddingconfig_model: (a: number) => any;
2469
+ export const wasmsparseembeddingconfig_acceleration: (a: number) => number;
2456
2470
  export const wasmocrelementconfig_minConfidence: (a: number) => number;
2457
2471
  export const wasmocrelementconfig_includeElements: (a: number) => number;
2458
2472
  export const wasmocrelementconfig_set_minConfidence: (a: number, b: number) => void;
2459
2473
  export const wasmocrelementconfig_set_includeElements: (a: number, b: number) => void;
2460
- export const wasmredactionterm_set_value: (a: number, b: number, c: number) => void;
2461
- export const wasmredactionterm_set_label: (a: number, b: number, c: number) => void;
2462
- export const wasmredactionterm_set_caseSensitive: (a: number, b: number) => void;
2463
- export const wasmredactionterm_value: (a: number) => [number, number];
2464
- export const wasmredactionterm_label: (a: number) => [number, number];
2465
- export const wasmredactionterm_caseSensitive: (a: number) => number;
2466
- export const wasmpageboundary_set_pageNumber: (a: number, b: number) => void;
2467
- export const wasmpageboundary_set_byteStart: (a: number, b: number) => void;
2468
- export const wasmpageboundary_set_byteEnd: (a: number, b: number) => void;
2469
- export const wasmpageboundary_byteStart: (a: number) => number;
2470
- export const wasmvlmfallbackpolicy_qualityThreshold: (a: number) => [number, number];
2471
- export const wasmerrormetadata_set_message: (a: number, b: number, c: number) => void;
2472
- export const wasmdbffieldinfo_name: (a: number) => [number, number];
2473
- export const wasmerrormetadata_message: (a: number) => [number, number];
2474
- export const __wbg_wasmocrelementconfig_free: (a: number, b: number) => void;
2475
2474
  export const wasmtablecell_set_rowSpan: (a: number, b: number) => void;
2476
2475
  export const wasmtablecell_set_isHeader: (a: number, b: number) => void;
2477
2476
  export const wasmtablecell_set_content: (a: number, b: number, c: number) => void;
2478
2477
  export const wasmtablecell_set_colSpan: (a: number, b: number) => void;
2479
- export const wasmtablecell_rowSpan: (a: number) => number;
2480
2478
  export const wasmtablecell_isHeader: (a: number) => number;
2481
2479
  export const wasmtablecell_content: (a: number) => [number, number];
2482
- export const wasmtablecell_colSpan: (a: number) => number;
2483
- export const __wbg_wasmerrormetadata_free: (a: number, b: number) => void;
2484
- export const __wbg_wasmdjotlink_free: (a: number, b: number) => void;
2485
- export const wasmssrfpolicy_set_denyPrivate: (a: number, b: number) => void;
2486
- export const __wbg_wasmredactionterm_free: (a: number, b: number) => void;
2487
- export const wasmredactionfinding_start: (a: number) => number;
2488
- export const wasmproxyconfig_set_username: (a: number, b: number, c: number) => void;
2489
- export const wasmproxyconfig_set_password: (a: number, b: number, c: number) => void;
2490
- export const wasmproxyconfig_username: (a: number) => [number, number];
2491
- export const wasmproxyconfig_password: (a: number) => [number, number];
2492
- export const __wbg_wasmproxyconfig_free: (a: number, b: number) => void;
2493
- export const wasmsparseembeddingconfig_set_model: (a: number, b: any) => void;
2494
- export const wasmsparseembeddingconfig_set_maxLength: (a: number, b: number) => void;
2495
- export const wasmsparseembeddingconfig_set_batchSize: (a: number, b: number) => void;
2496
- export const wasmsparseembeddingconfig_set_acceleration: (a: number, b: number) => void;
2497
- export const wasmsparseembeddingconfig_model: (a: number) => any;
2498
- export const wasmsparseembeddingconfig_acceleration: (a: number) => number;
2499
2480
  export const wasmrerankerconfig_set_topK: (a: number, b: number) => void;
2500
2481
  export const wasmrerankerconfig_set_showDownloadProgress: (a: number, b: number) => void;
2501
2482
  export const wasmrerankerconfig_set_model: (a: number, b: any) => void;
@@ -2505,78 +2486,97 @@ export const wasmrerankerconfig_topK: (a: number) => number;
2505
2486
  export const wasmrerankerconfig_showDownloadProgress: (a: number) => number;
2506
2487
  export const wasmrerankerconfig_model: (a: number) => any;
2507
2488
  export const wasmrerankerconfig_acceleration: (a: number) => number;
2508
- export const wasmdjotlink_set_url: (a: number, b: number, c: number) => void;
2509
- export const wasmdjotlink_set_title: (a: number, b: number, c: number) => void;
2510
- export const wasmdjotlink_set_text: (a: number, b: number, c: number) => void;
2511
- export const wasmdjotlink_url: (a: number) => [number, number];
2512
- export const wasmdjotlink_title: (a: number) => [number, number];
2513
- export const wasmdjotlink_text: (a: number) => [number, number];
2514
- export const wasmvlmfallbackpolicy_mode: (a: number) => [number, number];
2515
- export const wasmvlmfallbackpolicy_set_qualityThreshold: (a: number, b: number, c: number) => void;
2516
- export const wasmvlmfallbackpolicy_set_mode: (a: number, b: number, c: number) => void;
2517
- export const wasmssrfpolicy_denyPrivate: (a: number) => number;
2518
- export const wasmredactionpattern_pattern: (a: number) => [number, number];
2519
- export const __wbg_wasmredactionpattern_free: (a: number, b: number) => void;
2520
- export const wasmredactionpattern_set_pattern: (a: number, b: number, c: number) => void;
2521
- export const __wbg_wasmpageboundary_free: (a: number, b: number) => void;
2522
- export const wasmpageboundary_byteEnd: (a: number) => number;
2523
- export const wasmdocumentrelationship_target: (a: number) => number;
2524
- export const wasmpageboundary_pageNumber: (a: number) => number;
2525
- export const __wbg_wasmdocumentrelationship_free: (a: number, b: number) => void;
2526
- export const __wbg_wasmpreprocessingoptions_free: (a: number, b: number) => void;
2527
- export const wasmpreprocessingoptions_enabled: (a: number) => number;
2528
- export const wasmsupportedformat_mimeType: (a: number) => [number, number];
2529
- export const wasmsupportedformat_set_mimeType: (a: number, b: number, c: number) => void;
2489
+ export const wasmtablecell_rowSpan: (a: number) => number;
2490
+ export const wasmtablecell_colSpan: (a: number) => number;
2530
2491
  export const wasmprocessingwarning_message: (a: number) => [number, number];
2531
- export const __wbg_wasmprocessingwarning_free: (a: number, b: number) => void;
2532
2492
  export const wasmprocessingwarning_set_message: (a: number, b: number, c: number) => void;
2533
- export const wasmocrrotation_set_confidence: (a: number, b: number, c: number) => void;
2534
2493
  export const wasmocrrotation_set_angleDegrees: (a: number, b: number) => void;
2535
- export const wasmocrrotation_confidence: (a: number) => [number, number];
2536
- export const wasmocrrotation_angleDegrees: (a: number) => number;
2537
- export const __wbg_wasmocrrotation_free: (a: number, b: number) => void;
2538
- export const wasmdiffline_set_kind: (a: number, b: number, c: number) => void;
2539
- export const wasmdiffline_set_0: (a: number, b: number, c: number) => void;
2540
- export const wasmdiffline_kind: (a: number) => [number, number];
2541
- export const wasmdiffline_0: (a: number) => [number, number];
2494
+ export const wasmvlmfallbackpolicy_set_mode: (a: number, b: number, c: number) => void;
2495
+ export const wasmvlmfallbackpolicy_set_qualityThreshold: (a: number, b: number, c: number) => void;
2496
+ export const wasmvlmfallbackpolicy_mode: (a: number) => [number, number];
2497
+ export const wasmvlmfallbackpolicy_qualityThreshold: (a: number) => [number, number];
2498
+ export const wasmrerankerconfig_maxRerankDurationSecs: (a: number) => [number, bigint];
2499
+ export const wasmrerankerconfig_cacheDir: (a: number) => [number, number];
2500
+ export const wasmrerankerconfig_batchSize: (a: number) => number;
2501
+ export const wasmerrormetadata_set_message: (a: number, b: number, c: number) => void;
2502
+ export const wasmdbffieldinfo_name: (a: number) => [number, number];
2503
+ export const wasmerrormetadata_message: (a: number) => [number, number];
2504
+ export const __wbg_wasmprocessingwarning_free: (a: number, b: number) => void;
2542
2505
  export const wasmqrboundingbox_set_y: (a: number, b: number) => void;
2543
2506
  export const wasmqrboundingbox_set_x: (a: number, b: number) => void;
2544
2507
  export const wasmqrboundingbox_set_width: (a: number, b: number) => void;
2545
2508
  export const wasmqrboundingbox_set_height: (a: number, b: number) => void;
2546
- export const wasmqrboundingbox_y: (a: number) => number;
2547
2509
  export const wasmqrboundingbox_x: (a: number) => number;
2548
- export const wasmqrboundingbox_width: (a: number) => number;
2549
- export const wasmqrboundingbox_height: (a: number) => number;
2550
- export const __wbg_wasmqrboundingbox_free: (a: number, b: number) => void;
2551
- export const wasmdbffieldinfo_set_name: (a: number, b: number, c: number) => void;
2552
- export const wasmdbffieldinfo_set_fieldType: (a: number, b: number, c: number) => void;
2553
- export const wasmdbffieldinfo_fieldType: (a: number) => [number, number];
2554
- export const __wbg_wasmdbffieldinfo_free: (a: number, b: number) => void;
2555
- export const wasmpatternmatch_start: (a: number) => number;
2556
- export const wasmredactionfinding_end: (a: number) => number;
2557
- export const __wbg_wasmtokenreductionoptions_free: (a: number, b: number) => void;
2558
- export const wasmpageconfig_set_markerFormat: (a: number, b: number, c: number) => void;
2559
- export const wasmtokenreductionoptions_set_preserveImportantWords: (a: number, b: number) => void;
2560
- export const wasmpageconfig_markerFormat: (a: number) => [number, number];
2561
- export const wasmtokenreductionoptions_preserveImportantWords: (a: number) => number;
2562
- export const __wbg_wasmpageconfig_free: (a: number, b: number) => void;
2563
- export const wasmrerankerconfig_maxRerankDurationSecs: (a: number) => [number, bigint];
2564
- export const wasmrerankerconfig_cacheDir: (a: number) => [number, number];
2565
- export const wasmrerankerconfig_batchSize: (a: number) => number;
2566
- export const wasmrerankerconfig_set_maxRerankDurationSecs: (a: number, b: number, c: bigint) => void;
2567
- export const wasmrerankerconfig_set_cacheDir: (a: number, b: number, c: number) => void;
2568
2510
  export const wasmpropertychange_set_name: (a: number, b: number, c: number) => void;
2569
- export const wasmpropertychange_set_from: (a: number, b: number, c: number) => void;
2570
- export const wasmpropertychange_set_to: (a: number, b: number, c: number) => void;
2511
+ export const wasmproxyconfig_set_username: (a: number, b: number, c: number) => void;
2512
+ export const wasmproxyconfig_set_password: (a: number, b: number, c: number) => void;
2571
2513
  export const wasmpropertychange_name: (a: number) => [number, number];
2572
- export const wasmpropertychange_from: (a: number) => [number, number];
2514
+ export const wasmproxyconfig_username: (a: number) => [number, number];
2515
+ export const wasmproxyconfig_password: (a: number) => [number, number];
2516
+ export const wasmdjotlink_set_title: (a: number, b: number, c: number) => void;
2517
+ export const wasmdjotlink_set_text: (a: number, b: number, c: number) => void;
2518
+ export const wasmdjotlink_title: (a: number) => [number, number];
2519
+ export const wasmdjotlink_text: (a: number) => [number, number];
2520
+ export const __wbg_wasmdjotlink_free: (a: number, b: number) => void;
2521
+ export const wasmpatternmatch_start: (a: number) => number;
2522
+ export const __wbg_wasmerrormetadata_free: (a: number, b: number) => void;
2523
+ export const __wbg_wasmpreprocessingoptions_free: (a: number, b: number) => void;
2524
+ export const wasmpreprocessingoptions_enabled: (a: number) => number;
2525
+ export const wasmpageboundary_set_pageNumber: (a: number, b: number) => void;
2526
+ export const wasmpageboundary_set_byteStart: (a: number, b: number) => void;
2527
+ export const wasmpageboundary_set_byteEnd: (a: number, b: number) => void;
2528
+ export const wasmpageboundary_byteStart: (a: number) => number;
2529
+ export const wasmpageboundary_byteEnd: (a: number) => number;
2530
+ export const wasmpageboundary_pageNumber: (a: number) => number;
2531
+ export const __wbg_wasmpageboundary_free: (a: number, b: number) => void;
2532
+ export const wasmpropertychange_set_to: (a: number, b: number, c: number) => void;
2533
+ export const wasmpropertychange_set_from: (a: number, b: number, c: number) => void;
2573
2534
  export const wasmpropertychange_to: (a: number) => [number, number];
2535
+ export const wasmpropertychange_from: (a: number) => [number, number];
2536
+ export const __wbg_wasmproxyconfig_free: (a: number, b: number) => void;
2537
+ export const wasmrerankerconfig_set_maxRerankDurationSecs: (a: number, b: number, c: bigint) => void;
2538
+ export const wasmrerankerconfig_set_cacheDir: (a: number, b: number, c: number) => void;
2539
+ export const __wbg_wasmdocumentrelationship_free: (a: number, b: number) => void;
2540
+ export const wasmdocumentrelationship_target: (a: number) => number;
2574
2541
  export const wasmsparseembeddingconfig_set_maxEmbedDurationSecs: (a: number, b: number, c: bigint) => void;
2575
2542
  export const wasmsparseembeddingconfig_set_cacheDir: (a: number, b: number, c: number) => void;
2576
2543
  export const wasmsparseembeddingconfig_maxLength: (a: number) => number;
2577
2544
  export const wasmsparseembeddingconfig_maxEmbedDurationSecs: (a: number) => [number, bigint];
2578
2545
  export const wasmsparseembeddingconfig_cacheDir: (a: number) => [number, number];
2579
2546
  export const wasmsparseembeddingconfig_batchSize: (a: number) => number;
2547
+ export const __wbg_wasmtokenreductionoptions_free: (a: number, b: number) => void;
2548
+ export const __wbg_wasmqrboundingbox_free: (a: number, b: number) => void;
2549
+ export const wasmqrboundingbox_y: (a: number) => number;
2550
+ export const wasmqrboundingbox_width: (a: number) => number;
2551
+ export const wasmqrboundingbox_height: (a: number) => number;
2552
+ export const wasmdiffline_0: (a: number) => [number, number];
2553
+ export const __wbg_wasmocrelementconfig_free: (a: number, b: number) => void;
2554
+ export const wasmredactionterm_set_value: (a: number, b: number, c: number) => void;
2555
+ export const wasmredactionterm_set_label: (a: number, b: number, c: number) => void;
2556
+ export const wasmredactionterm_set_caseSensitive: (a: number, b: number) => void;
2557
+ export const wasmredactionterm_value: (a: number) => [number, number];
2558
+ export const wasmredactionterm_label: (a: number) => [number, number];
2559
+ export const wasmredactionterm_caseSensitive: (a: number) => number;
2560
+ export const __wbg_wasmredactionterm_free: (a: number, b: number) => void;
2561
+ export const wasmpageconfig_set_markerFormat: (a: number, b: number, c: number) => void;
2562
+ export const wasmtokenreductionoptions_set_preserveImportantWords: (a: number, b: number) => void;
2563
+ export const wasmpageconfig_markerFormat: (a: number) => [number, number];
2564
+ export const wasmtokenreductionoptions_preserveImportantWords: (a: number) => number;
2565
+ export const __wbg_wasmpageconfig_free: (a: number, b: number) => void;
2566
+ export const wasmocrrotation_set_confidence: (a: number, b: number, c: number) => void;
2567
+ export const wasmocrrotation_angleDegrees: (a: number) => number;
2568
+ export const wasmocrrotation_confidence: (a: number) => [number, number];
2569
+ export const __wbg_wasmocrrotation_free: (a: number, b: number) => void;
2570
+ export const wasmdbffieldinfo_set_name: (a: number, b: number, c: number) => void;
2571
+ export const wasmdbffieldinfo_set_fieldType: (a: number, b: number, c: number) => void;
2572
+ export const wasmdbffieldinfo_fieldType: (a: number) => [number, number];
2573
+ export const __wbg_wasmdbffieldinfo_free: (a: number, b: number) => void;
2574
+ export const wasmredactionfinding_start: (a: number) => number;
2575
+ export const wasmredactionfinding_end: (a: number) => number;
2576
+ export const __wbg_wasmredactionfinding_free: (a: number, b: number) => void;
2577
+ export const wasmredactionpattern_pattern: (a: number) => [number, number];
2578
+ export const __wbg_wasmredactionpattern_free: (a: number, b: number) => void;
2579
+ export const wasmredactionpattern_set_pattern: (a: number, b: number, c: number) => void;
2580
2580
  export const __wbg_wasmsparseembeddingmodeltype_free: (a: number, b: number) => void;
2581
2581
  export const wasmsparseembeddingmodeltype_set_type: (a: number, b: number, c: number) => void;
2582
2582
  export const wasmsparseembeddingmodeltype_set_name: (a: number, b: number, c: number) => void;
@@ -2592,7 +2592,7 @@ export const wasmsparseembeddingmodeltype_maxLength: (a: number) => [number, big
2592
2592
  export const wasmsparseembeddingmodeltype_additionalFiles: (a: number) => [number, number];
2593
2593
  export const wasm_bindgen__convert__closures_____invoke__hc53a447a5735fa3a: (a: number, b: number, c: any) => [number, number];
2594
2594
  export const wasm_bindgen__convert__closures_____invoke__h2fc03d71408c92bf: (a: number, b: number, c: any, d: any) => void;
2595
- export const wasm_bindgen__convert__closures_____invoke__hff3dd44bad76f477: (a: number, b: number) => void;
2595
+ export const wasm_bindgen__convert__closures_____invoke__h66e27dec856adeef: (a: number, b: number) => void;
2596
2596
  export const __wbindgen_malloc_command_export: (a: number, b: number) => number;
2597
2597
  export const __wbindgen_realloc_command_export: (a: number, b: number, c: number, d: number) => number;
2598
2598
  export const __wbindgen_exn_store_command_export: (a: number) => void;