@xberg-io/html-to-markdown-wasm 3.8.0-rc.2 → 3.8.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xberg-io/html-to-markdown-wasm",
3
- "version": "3.8.0-rc.2",
3
+ "version": "3.8.1",
4
4
  "private": false,
5
5
  "description": "High-performance HTML to Markdown converter",
6
6
  "license": "MIT",
@@ -13,15 +13,13 @@
13
13
  "access": "public"
14
14
  },
15
15
  "type": "module",
16
- "files": [
17
- "pkg",
18
- "*.wasm",
19
- "*.d.ts",
20
- "README.md"
21
- ],
16
+ "files": ["pkg", "*.wasm", "*.d.ts", "README.md"],
22
17
  "main": "pkg/nodejs/html_to_markdown_wasm.js",
23
18
  "module": "pkg/web/html_to_markdown_wasm.js",
24
19
  "types": "pkg/nodejs/html_to_markdown_wasm.d.ts",
20
+ "engines": {
21
+ "node": ">= 22"
22
+ },
25
23
  "scripts": {
26
24
  "build": "wasm-pack build --target nodejs --out-dir pkg/nodejs",
27
25
  "build:ci": "wasm-pack build --release --target nodejs --out-dir pkg/nodejs",
@@ -40,7 +40,7 @@ export class WasmConversionOptions {
40
40
  free(): void;
41
41
  [Symbol.dispose](): void;
42
42
  static default(): WasmConversionOptions;
43
- constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptions | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null, maxDepth?: number | null);
43
+ constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptions | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null, maxDepth?: number | null, visitor?: WasmVisitorHandle | null);
44
44
  autolinks: boolean;
45
45
  brInTables: boolean;
46
46
  bullets: string;
@@ -109,7 +109,7 @@ export class WasmConversionOptionsUpdate {
109
109
  free(): void;
110
110
  [Symbol.dispose](): void;
111
111
  static default(): WasmConversionOptionsUpdate;
112
- constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptionsUpdate | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, maxDepth?: number | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null);
112
+ constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptionsUpdate | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, maxDepth?: number | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null, visitor?: WasmVisitorHandle | null);
113
113
  get autolinks(): boolean | undefined;
114
114
  set autolinks(value: boolean | null | undefined);
115
115
  get brInTables(): boolean | undefined;
@@ -220,7 +220,7 @@ export class WasmConversionResult {
220
220
  free(): void;
221
221
  [Symbol.dispose](): void;
222
222
  static default(): WasmConversionResult;
223
- constructor(tables?: WasmTableData[] | null, warnings?: WasmProcessingWarning[] | null, content?: string | null, document?: WasmDocumentStructure | null);
223
+ constructor(metadata?: WasmHtmlMetadata | null, tables?: WasmTableData[] | null, warnings?: WasmProcessingWarning[] | null, content?: string | null, document?: WasmDocumentStructure | null);
224
224
  get content(): string | undefined;
225
225
  set content(value: string | null | undefined);
226
226
  get document(): WasmDocumentStructure | undefined;
@@ -975,25 +975,4 @@ export enum WasmWhitespaceMode {
975
975
  Strict = 1,
976
976
  }
977
977
 
978
- /**
979
- * Convert HTML to Markdown, Djot, or plain text.
980
- *
981
- * Returns a `ConversionResult` with converted content plus optional metadata,
982
- * document structure, table data, inline images, and warnings depending on the
983
- * enabled features and conversion options.
984
- *
985
- * # Arguments
986
- *
987
- * * `html` — the HTML string to convert.
988
- * * `options` — conversion options. Rust accepts bare `ConversionOptions`,
989
- * `Some(options)`, or `None`. Language bindings expose the same option
990
- * fields through native constructors or optional parameters.
991
- *
992
- * # Example
993
- *
994
- *
995
- * # Errors
996
- *
997
- * Returns an error if HTML parsing fails or if the input contains invalid UTF-8.
998
- */
999
- export function convert(html: string, options?: WasmConversionOptions | null): WasmConversionResult;
978
+ export function convert(html: string, options?: WasmConversionOptions | null, visitor?: any | null): WasmConversionResult;
@@ -514,8 +514,9 @@ export class WasmConversionOptions {
514
514
  * @param {string[] | null} [excludeSelectors]
515
515
  * @param {WasmTierStrategy | null} [tierStrategy]
516
516
  * @param {number | null} [maxDepth]
517
+ * @param {WasmVisitorHandle | null} [visitor]
517
518
  */
518
- constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, excludeSelectors, tierStrategy, maxDepth) {
519
+ constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, excludeSelectors, tierStrategy, maxDepth, visitor) {
519
520
  var ptr0 = isLikeNone(bullets) ? 0 : passStringToWasm0(bullets, wasm.__wbindgen_export, wasm.__wbindgen_export2);
520
521
  var len0 = WASM_VECTOR_LEN;
521
522
  var ptr1 = isLikeNone(strongEmSymbol) ? 0 : passStringToWasm0(strongEmSymbol, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -541,7 +542,12 @@ export class WasmConversionOptions {
541
542
  var len9 = WASM_VECTOR_LEN;
542
543
  var ptr10 = isLikeNone(excludeSelectors) ? 0 : passArrayJsValueToWasm0(excludeSelectors, wasm.__wbindgen_export);
543
544
  var len10 = WASM_VECTOR_LEN;
544
- const ret = wasm.wasmconversionoptions_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0);
545
+ let ptr11 = 0;
546
+ if (!isLikeNone(visitor)) {
547
+ _assertClass(visitor, WasmVisitorHandle);
548
+ ptr11 = visitor.__destroy_into_raw();
549
+ }
550
+ const ret = wasm.wasmconversionoptions_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0, ptr11);
545
551
  this.__wbg_ptr = ret;
546
552
  WasmConversionOptionsFinalization.register(this, this.__wbg_ptr, this);
547
553
  return this;
@@ -1463,8 +1469,9 @@ export class WasmConversionOptionsUpdate {
1463
1469
  * @param {number | null} [maxDepth]
1464
1470
  * @param {string[] | null} [excludeSelectors]
1465
1471
  * @param {WasmTierStrategy | null} [tierStrategy]
1472
+ * @param {WasmVisitorHandle | null} [visitor]
1466
1473
  */
1467
- constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, maxDepth, excludeSelectors, tierStrategy) {
1474
+ constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, maxDepth, excludeSelectors, tierStrategy, visitor) {
1468
1475
  var ptr0 = isLikeNone(bullets) ? 0 : passStringToWasm0(bullets, wasm.__wbindgen_export, wasm.__wbindgen_export2);
1469
1476
  var len0 = WASM_VECTOR_LEN;
1470
1477
  var ptr1 = isLikeNone(strongEmSymbol) ? 0 : passStringToWasm0(strongEmSymbol, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -1490,7 +1497,12 @@ export class WasmConversionOptionsUpdate {
1490
1497
  var len9 = WASM_VECTOR_LEN;
1491
1498
  var ptr10 = isLikeNone(excludeSelectors) ? 0 : passArrayJsValueToWasm0(excludeSelectors, wasm.__wbindgen_export);
1492
1499
  var len10 = WASM_VECTOR_LEN;
1493
- const ret = wasm.wasmconversionoptionsupdate_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy);
1500
+ let ptr11 = 0;
1501
+ if (!isLikeNone(visitor)) {
1502
+ _assertClass(visitor, WasmVisitorHandle);
1503
+ ptr11 = visitor.__destroy_into_raw();
1504
+ }
1505
+ const ret = wasm.wasmconversionoptionsupdate_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy, ptr11);
1494
1506
  this.__wbg_ptr = ret;
1495
1507
  WasmConversionOptionsUpdateFinalization.register(this, this.__wbg_ptr, this);
1496
1508
  return this;
@@ -2098,24 +2110,30 @@ export class WasmConversionResult {
2098
2110
  return WasmHtmlMetadata.__wrap(ret);
2099
2111
  }
2100
2112
  /**
2113
+ * @param {WasmHtmlMetadata | null} [metadata]
2101
2114
  * @param {WasmTableData[] | null} [tables]
2102
2115
  * @param {WasmProcessingWarning[] | null} [warnings]
2103
2116
  * @param {string | null} [content]
2104
2117
  * @param {WasmDocumentStructure | null} [document]
2105
2118
  */
2106
- constructor(tables, warnings, content, document) {
2107
- var ptr0 = isLikeNone(tables) ? 0 : passArrayJsValueToWasm0(tables, wasm.__wbindgen_export);
2108
- var len0 = WASM_VECTOR_LEN;
2109
- var ptr1 = isLikeNone(warnings) ? 0 : passArrayJsValueToWasm0(warnings, wasm.__wbindgen_export);
2119
+ constructor(metadata, tables, warnings, content, document) {
2120
+ let ptr0 = 0;
2121
+ if (!isLikeNone(metadata)) {
2122
+ _assertClass(metadata, WasmHtmlMetadata);
2123
+ ptr0 = metadata.__destroy_into_raw();
2124
+ }
2125
+ var ptr1 = isLikeNone(tables) ? 0 : passArrayJsValueToWasm0(tables, wasm.__wbindgen_export);
2110
2126
  var len1 = WASM_VECTOR_LEN;
2111
- var ptr2 = isLikeNone(content) ? 0 : passStringToWasm0(content, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2127
+ var ptr2 = isLikeNone(warnings) ? 0 : passArrayJsValueToWasm0(warnings, wasm.__wbindgen_export);
2112
2128
  var len2 = WASM_VECTOR_LEN;
2113
- let ptr3 = 0;
2129
+ var ptr3 = isLikeNone(content) ? 0 : passStringToWasm0(content, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2130
+ var len3 = WASM_VECTOR_LEN;
2131
+ let ptr4 = 0;
2114
2132
  if (!isLikeNone(document)) {
2115
2133
  _assertClass(document, WasmDocumentStructure);
2116
- ptr3 = document.__destroy_into_raw();
2134
+ ptr4 = document.__destroy_into_raw();
2117
2135
  }
2118
- const ret = wasm.wasmconversionresult_new(ptr0, len0, ptr1, len1, ptr2, len2, ptr3);
2136
+ const ret = wasm.wasmconversionresult_new(ptr0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4);
2119
2137
  this.__wbg_ptr = ret;
2120
2138
  WasmConversionResultFinalization.register(this, this.__wbg_ptr, this);
2121
2139
  return this;
@@ -5596,30 +5614,12 @@ export const WasmWhitespaceMode = Object.freeze({
5596
5614
  });
5597
5615
 
5598
5616
  /**
5599
- * Convert HTML to Markdown, Djot, or plain text.
5600
- *
5601
- * Returns a `ConversionResult` with converted content plus optional metadata,
5602
- * document structure, table data, inline images, and warnings depending on the
5603
- * enabled features and conversion options.
5604
- *
5605
- * # Arguments
5606
- *
5607
- * * `html` — the HTML string to convert.
5608
- * * `options` — conversion options. Rust accepts bare `ConversionOptions`,
5609
- * `Some(options)`, or `None`. Language bindings expose the same option
5610
- * fields through native constructors or optional parameters.
5611
- *
5612
- * # Example
5613
- *
5614
- *
5615
- * # Errors
5616
- *
5617
- * Returns an error if HTML parsing fails or if the input contains invalid UTF-8.
5618
5617
  * @param {string} html
5619
5618
  * @param {WasmConversionOptions | null} [options]
5619
+ * @param {any | null} [visitor]
5620
5620
  * @returns {WasmConversionResult}
5621
5621
  */
5622
- export function convert(html, options) {
5622
+ export function convert(html, options, visitor) {
5623
5623
  try {
5624
5624
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
5625
5625
  const ptr0 = passStringToWasm0(html, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -5629,7 +5629,7 @@ export function convert(html, options) {
5629
5629
  _assertClass(options, WasmConversionOptions);
5630
5630
  ptr1 = options.__destroy_into_raw();
5631
5631
  }
5632
- wasm.convert(retptr, ptr0, len0, ptr1);
5632
+ wasm.convert(retptr, ptr0, len0, ptr1, isLikeNone(visitor) ? 0 : addHeapObject(visitor));
5633
5633
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
5634
5634
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
5635
5635
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -23,7 +23,7 @@ export const __wbg_wasmtabledata_free: (a: number, b: number) => void;
23
23
  export const __wbg_wasmtablegrid_free: (a: number, b: number) => void;
24
24
  export const __wbg_wasmtextannotation_free: (a: number, b: number) => void;
25
25
  export const __wbg_wasmvisitorhandle_free: (a: number, b: number) => void;
26
- export const convert: (a: number, b: number, c: number, d: number) => void;
26
+ export const convert: (a: number, b: number, c: number, d: number, e: number) => void;
27
27
  export const wasmannotationkind_annotationType: (a: number, b: number) => void;
28
28
  export const wasmannotationkind_default: () => number;
29
29
  export const wasmannotationkind_set_annotationType: (a: number, b: number, c: number) => void;
@@ -60,7 +60,7 @@ export const wasmconversionoptions_listIndentType: (a: number, b: number) => voi
60
60
  export const wasmconversionoptions_listIndentWidth: (a: number) => number;
61
61
  export const wasmconversionoptions_maxDepth: (a: number) => number;
62
62
  export const wasmconversionoptions_maxImageSize: (a: number) => bigint;
63
- export const wasmconversionoptions_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number) => number;
63
+ export const wasmconversionoptions_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number, c2: number) => number;
64
64
  export const wasmconversionoptions_newlineStyle: (a: number, b: number) => void;
65
65
  export const wasmconversionoptions_outputFormat: (a: number, b: number) => void;
66
66
  export const wasmconversionoptions_preprocessing: (a: number) => number;
@@ -150,7 +150,7 @@ export const wasmconversionoptionsupdate_listIndentType: (a: number, b: number)
150
150
  export const wasmconversionoptionsupdate_listIndentWidth: (a: number) => number;
151
151
  export const wasmconversionoptionsupdate_maxDepth: (a: number) => number;
152
152
  export const wasmconversionoptionsupdate_maxImageSize: (a: number, b: number) => void;
153
- export const wasmconversionoptionsupdate_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number) => number;
153
+ export const wasmconversionoptionsupdate_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number, c2: number) => number;
154
154
  export const wasmconversionoptionsupdate_newlineStyle: (a: number, b: number) => void;
155
155
  export const wasmconversionoptionsupdate_outputFormat: (a: number, b: number) => void;
156
156
  export const wasmconversionoptionsupdate_preprocessing: (a: number) => number;
@@ -215,7 +215,7 @@ export const wasmconversionresult_content: (a: number, b: number) => void;
215
215
  export const wasmconversionresult_default: () => number;
216
216
  export const wasmconversionresult_document: (a: number) => number;
217
217
  export const wasmconversionresult_metadata: (a: number) => number;
218
- export const wasmconversionresult_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
218
+ export const wasmconversionresult_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
219
219
  export const wasmconversionresult_set_content: (a: number, b: number, c: number) => void;
220
220
  export const wasmconversionresult_set_document: (a: number, b: number) => void;
221
221
  export const wasmconversionresult_set_metadata: (a: number, b: number) => void;
@@ -2,7 +2,7 @@
2
2
  "name": "html-to-markdown-wasm",
3
3
  "type": "module",
4
4
  "description": "High-performance HTML to Markdown converter",
5
- "version": "3.8.0-rc.2",
5
+ "version": "3.8.1",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",
@@ -40,7 +40,7 @@ export class WasmConversionOptions {
40
40
  free(): void;
41
41
  [Symbol.dispose](): void;
42
42
  static default(): WasmConversionOptions;
43
- constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptions | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null, maxDepth?: number | null);
43
+ constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptions | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null, maxDepth?: number | null, visitor?: WasmVisitorHandle | null);
44
44
  autolinks: boolean;
45
45
  brInTables: boolean;
46
46
  bullets: string;
@@ -109,7 +109,7 @@ export class WasmConversionOptionsUpdate {
109
109
  free(): void;
110
110
  [Symbol.dispose](): void;
111
111
  static default(): WasmConversionOptionsUpdate;
112
- constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptionsUpdate | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, maxDepth?: number | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null);
112
+ constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptionsUpdate | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, maxDepth?: number | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null, visitor?: WasmVisitorHandle | null);
113
113
  get autolinks(): boolean | undefined;
114
114
  set autolinks(value: boolean | null | undefined);
115
115
  get brInTables(): boolean | undefined;
@@ -220,7 +220,7 @@ export class WasmConversionResult {
220
220
  free(): void;
221
221
  [Symbol.dispose](): void;
222
222
  static default(): WasmConversionResult;
223
- constructor(tables?: WasmTableData[] | null, warnings?: WasmProcessingWarning[] | null, content?: string | null, document?: WasmDocumentStructure | null);
223
+ constructor(metadata?: WasmHtmlMetadata | null, tables?: WasmTableData[] | null, warnings?: WasmProcessingWarning[] | null, content?: string | null, document?: WasmDocumentStructure | null);
224
224
  get content(): string | undefined;
225
225
  set content(value: string | null | undefined);
226
226
  get document(): WasmDocumentStructure | undefined;
@@ -975,25 +975,4 @@ export enum WasmWhitespaceMode {
975
975
  Strict = 1,
976
976
  }
977
977
 
978
- /**
979
- * Convert HTML to Markdown, Djot, or plain text.
980
- *
981
- * Returns a `ConversionResult` with converted content plus optional metadata,
982
- * document structure, table data, inline images, and warnings depending on the
983
- * enabled features and conversion options.
984
- *
985
- * # Arguments
986
- *
987
- * * `html` — the HTML string to convert.
988
- * * `options` — conversion options. Rust accepts bare `ConversionOptions`,
989
- * `Some(options)`, or `None`. Language bindings expose the same option
990
- * fields through native constructors or optional parameters.
991
- *
992
- * # Example
993
- *
994
- *
995
- * # Errors
996
- *
997
- * Returns an error if HTML parsing fails or if the input contains invalid UTF-8.
998
- */
999
- export function convert(html: string, options?: WasmConversionOptions | null): WasmConversionResult;
978
+ export function convert(html: string, options?: WasmConversionOptions | null, visitor?: any | null): WasmConversionResult;
@@ -516,8 +516,9 @@ export class WasmConversionOptions {
516
516
  * @param {string[] | null} [excludeSelectors]
517
517
  * @param {WasmTierStrategy | null} [tierStrategy]
518
518
  * @param {number | null} [maxDepth]
519
+ * @param {WasmVisitorHandle | null} [visitor]
519
520
  */
520
- constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, excludeSelectors, tierStrategy, maxDepth) {
521
+ constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, excludeSelectors, tierStrategy, maxDepth, visitor) {
521
522
  var ptr0 = isLikeNone(bullets) ? 0 : passStringToWasm0(bullets, wasm.__wbindgen_export, wasm.__wbindgen_export2);
522
523
  var len0 = WASM_VECTOR_LEN;
523
524
  var ptr1 = isLikeNone(strongEmSymbol) ? 0 : passStringToWasm0(strongEmSymbol, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -543,7 +544,12 @@ export class WasmConversionOptions {
543
544
  var len9 = WASM_VECTOR_LEN;
544
545
  var ptr10 = isLikeNone(excludeSelectors) ? 0 : passArrayJsValueToWasm0(excludeSelectors, wasm.__wbindgen_export);
545
546
  var len10 = WASM_VECTOR_LEN;
546
- const ret = wasm.wasmconversionoptions_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0);
547
+ let ptr11 = 0;
548
+ if (!isLikeNone(visitor)) {
549
+ _assertClass(visitor, WasmVisitorHandle);
550
+ ptr11 = visitor.__destroy_into_raw();
551
+ }
552
+ const ret = wasm.wasmconversionoptions_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0, ptr11);
547
553
  this.__wbg_ptr = ret;
548
554
  WasmConversionOptionsFinalization.register(this, this.__wbg_ptr, this);
549
555
  return this;
@@ -1465,8 +1471,9 @@ export class WasmConversionOptionsUpdate {
1465
1471
  * @param {number | null} [maxDepth]
1466
1472
  * @param {string[] | null} [excludeSelectors]
1467
1473
  * @param {WasmTierStrategy | null} [tierStrategy]
1474
+ * @param {WasmVisitorHandle | null} [visitor]
1468
1475
  */
1469
- constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, maxDepth, excludeSelectors, tierStrategy) {
1476
+ constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, maxDepth, excludeSelectors, tierStrategy, visitor) {
1470
1477
  var ptr0 = isLikeNone(bullets) ? 0 : passStringToWasm0(bullets, wasm.__wbindgen_export, wasm.__wbindgen_export2);
1471
1478
  var len0 = WASM_VECTOR_LEN;
1472
1479
  var ptr1 = isLikeNone(strongEmSymbol) ? 0 : passStringToWasm0(strongEmSymbol, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -1492,7 +1499,12 @@ export class WasmConversionOptionsUpdate {
1492
1499
  var len9 = WASM_VECTOR_LEN;
1493
1500
  var ptr10 = isLikeNone(excludeSelectors) ? 0 : passArrayJsValueToWasm0(excludeSelectors, wasm.__wbindgen_export);
1494
1501
  var len10 = WASM_VECTOR_LEN;
1495
- const ret = wasm.wasmconversionoptionsupdate_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy);
1502
+ let ptr11 = 0;
1503
+ if (!isLikeNone(visitor)) {
1504
+ _assertClass(visitor, WasmVisitorHandle);
1505
+ ptr11 = visitor.__destroy_into_raw();
1506
+ }
1507
+ const ret = wasm.wasmconversionoptionsupdate_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy, ptr11);
1496
1508
  this.__wbg_ptr = ret;
1497
1509
  WasmConversionOptionsUpdateFinalization.register(this, this.__wbg_ptr, this);
1498
1510
  return this;
@@ -2100,24 +2112,30 @@ export class WasmConversionResult {
2100
2112
  return WasmHtmlMetadata.__wrap(ret);
2101
2113
  }
2102
2114
  /**
2115
+ * @param {WasmHtmlMetadata | null} [metadata]
2103
2116
  * @param {WasmTableData[] | null} [tables]
2104
2117
  * @param {WasmProcessingWarning[] | null} [warnings]
2105
2118
  * @param {string | null} [content]
2106
2119
  * @param {WasmDocumentStructure | null} [document]
2107
2120
  */
2108
- constructor(tables, warnings, content, document) {
2109
- var ptr0 = isLikeNone(tables) ? 0 : passArrayJsValueToWasm0(tables, wasm.__wbindgen_export);
2110
- var len0 = WASM_VECTOR_LEN;
2111
- var ptr1 = isLikeNone(warnings) ? 0 : passArrayJsValueToWasm0(warnings, wasm.__wbindgen_export);
2121
+ constructor(metadata, tables, warnings, content, document) {
2122
+ let ptr0 = 0;
2123
+ if (!isLikeNone(metadata)) {
2124
+ _assertClass(metadata, WasmHtmlMetadata);
2125
+ ptr0 = metadata.__destroy_into_raw();
2126
+ }
2127
+ var ptr1 = isLikeNone(tables) ? 0 : passArrayJsValueToWasm0(tables, wasm.__wbindgen_export);
2112
2128
  var len1 = WASM_VECTOR_LEN;
2113
- var ptr2 = isLikeNone(content) ? 0 : passStringToWasm0(content, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2129
+ var ptr2 = isLikeNone(warnings) ? 0 : passArrayJsValueToWasm0(warnings, wasm.__wbindgen_export);
2114
2130
  var len2 = WASM_VECTOR_LEN;
2115
- let ptr3 = 0;
2131
+ var ptr3 = isLikeNone(content) ? 0 : passStringToWasm0(content, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2132
+ var len3 = WASM_VECTOR_LEN;
2133
+ let ptr4 = 0;
2116
2134
  if (!isLikeNone(document)) {
2117
2135
  _assertClass(document, WasmDocumentStructure);
2118
- ptr3 = document.__destroy_into_raw();
2136
+ ptr4 = document.__destroy_into_raw();
2119
2137
  }
2120
- const ret = wasm.wasmconversionresult_new(ptr0, len0, ptr1, len1, ptr2, len2, ptr3);
2138
+ const ret = wasm.wasmconversionresult_new(ptr0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4);
2121
2139
  this.__wbg_ptr = ret;
2122
2140
  WasmConversionResultFinalization.register(this, this.__wbg_ptr, this);
2123
2141
  return this;
@@ -5598,30 +5616,12 @@ export const WasmWhitespaceMode = Object.freeze({
5598
5616
  });
5599
5617
 
5600
5618
  /**
5601
- * Convert HTML to Markdown, Djot, or plain text.
5602
- *
5603
- * Returns a `ConversionResult` with converted content plus optional metadata,
5604
- * document structure, table data, inline images, and warnings depending on the
5605
- * enabled features and conversion options.
5606
- *
5607
- * # Arguments
5608
- *
5609
- * * `html` — the HTML string to convert.
5610
- * * `options` — conversion options. Rust accepts bare `ConversionOptions`,
5611
- * `Some(options)`, or `None`. Language bindings expose the same option
5612
- * fields through native constructors or optional parameters.
5613
- *
5614
- * # Example
5615
- *
5616
- *
5617
- * # Errors
5618
- *
5619
- * Returns an error if HTML parsing fails or if the input contains invalid UTF-8.
5620
5619
  * @param {string} html
5621
5620
  * @param {WasmConversionOptions | null} [options]
5621
+ * @param {any | null} [visitor]
5622
5622
  * @returns {WasmConversionResult}
5623
5623
  */
5624
- export function convert(html, options) {
5624
+ export function convert(html, options, visitor) {
5625
5625
  try {
5626
5626
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
5627
5627
  const ptr0 = passStringToWasm0(html, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -5631,7 +5631,7 @@ export function convert(html, options) {
5631
5631
  _assertClass(options, WasmConversionOptions);
5632
5632
  ptr1 = options.__destroy_into_raw();
5633
5633
  }
5634
- wasm.convert(retptr, ptr0, len0, ptr1);
5634
+ wasm.convert(retptr, ptr0, len0, ptr1, isLikeNone(visitor) ? 0 : addHeapObject(visitor));
5635
5635
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
5636
5636
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
5637
5637
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -23,7 +23,7 @@ export const __wbg_wasmtabledata_free: (a: number, b: number) => void;
23
23
  export const __wbg_wasmtablegrid_free: (a: number, b: number) => void;
24
24
  export const __wbg_wasmtextannotation_free: (a: number, b: number) => void;
25
25
  export const __wbg_wasmvisitorhandle_free: (a: number, b: number) => void;
26
- export const convert: (a: number, b: number, c: number, d: number) => void;
26
+ export const convert: (a: number, b: number, c: number, d: number, e: number) => void;
27
27
  export const wasmannotationkind_annotationType: (a: number, b: number) => void;
28
28
  export const wasmannotationkind_default: () => number;
29
29
  export const wasmannotationkind_set_annotationType: (a: number, b: number, c: number) => void;
@@ -60,7 +60,7 @@ export const wasmconversionoptions_listIndentType: (a: number, b: number) => voi
60
60
  export const wasmconversionoptions_listIndentWidth: (a: number) => number;
61
61
  export const wasmconversionoptions_maxDepth: (a: number) => number;
62
62
  export const wasmconversionoptions_maxImageSize: (a: number) => bigint;
63
- export const wasmconversionoptions_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number) => number;
63
+ export const wasmconversionoptions_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number, c2: number) => number;
64
64
  export const wasmconversionoptions_newlineStyle: (a: number, b: number) => void;
65
65
  export const wasmconversionoptions_outputFormat: (a: number, b: number) => void;
66
66
  export const wasmconversionoptions_preprocessing: (a: number) => number;
@@ -150,7 +150,7 @@ export const wasmconversionoptionsupdate_listIndentType: (a: number, b: number)
150
150
  export const wasmconversionoptionsupdate_listIndentWidth: (a: number) => number;
151
151
  export const wasmconversionoptionsupdate_maxDepth: (a: number) => number;
152
152
  export const wasmconversionoptionsupdate_maxImageSize: (a: number, b: number) => void;
153
- export const wasmconversionoptionsupdate_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number) => number;
153
+ export const wasmconversionoptionsupdate_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number, c2: number) => number;
154
154
  export const wasmconversionoptionsupdate_newlineStyle: (a: number, b: number) => void;
155
155
  export const wasmconversionoptionsupdate_outputFormat: (a: number, b: number) => void;
156
156
  export const wasmconversionoptionsupdate_preprocessing: (a: number) => number;
@@ -215,7 +215,7 @@ export const wasmconversionresult_content: (a: number, b: number) => void;
215
215
  export const wasmconversionresult_default: () => number;
216
216
  export const wasmconversionresult_document: (a: number) => number;
217
217
  export const wasmconversionresult_metadata: (a: number) => number;
218
- export const wasmconversionresult_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
218
+ export const wasmconversionresult_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
219
219
  export const wasmconversionresult_set_content: (a: number, b: number, c: number) => void;
220
220
  export const wasmconversionresult_set_document: (a: number, b: number) => void;
221
221
  export const wasmconversionresult_set_metadata: (a: number, b: number) => void;
@@ -40,7 +40,7 @@ export class WasmConversionOptions {
40
40
  free(): void;
41
41
  [Symbol.dispose](): void;
42
42
  static default(): WasmConversionOptions;
43
- constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptions | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null, maxDepth?: number | null);
43
+ constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptions | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null, maxDepth?: number | null, visitor?: WasmVisitorHandle | null);
44
44
  autolinks: boolean;
45
45
  brInTables: boolean;
46
46
  bullets: string;
@@ -109,7 +109,7 @@ export class WasmConversionOptionsUpdate {
109
109
  free(): void;
110
110
  [Symbol.dispose](): void;
111
111
  static default(): WasmConversionOptionsUpdate;
112
- constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptionsUpdate | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, maxDepth?: number | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null);
112
+ constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptionsUpdate | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, maxDepth?: number | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null, visitor?: WasmVisitorHandle | null);
113
113
  get autolinks(): boolean | undefined;
114
114
  set autolinks(value: boolean | null | undefined);
115
115
  get brInTables(): boolean | undefined;
@@ -220,7 +220,7 @@ export class WasmConversionResult {
220
220
  free(): void;
221
221
  [Symbol.dispose](): void;
222
222
  static default(): WasmConversionResult;
223
- constructor(tables?: WasmTableData[] | null, warnings?: WasmProcessingWarning[] | null, content?: string | null, document?: WasmDocumentStructure | null);
223
+ constructor(metadata?: WasmHtmlMetadata | null, tables?: WasmTableData[] | null, warnings?: WasmProcessingWarning[] | null, content?: string | null, document?: WasmDocumentStructure | null);
224
224
  get content(): string | undefined;
225
225
  set content(value: string | null | undefined);
226
226
  get document(): WasmDocumentStructure | undefined;
@@ -975,25 +975,4 @@ export enum WasmWhitespaceMode {
975
975
  Strict = 1,
976
976
  }
977
977
 
978
- /**
979
- * Convert HTML to Markdown, Djot, or plain text.
980
- *
981
- * Returns a `ConversionResult` with converted content plus optional metadata,
982
- * document structure, table data, inline images, and warnings depending on the
983
- * enabled features and conversion options.
984
- *
985
- * # Arguments
986
- *
987
- * * `html` — the HTML string to convert.
988
- * * `options` — conversion options. Rust accepts bare `ConversionOptions`,
989
- * `Some(options)`, or `None`. Language bindings expose the same option
990
- * fields through native constructors or optional parameters.
991
- *
992
- * # Example
993
- *
994
- *
995
- * # Errors
996
- *
997
- * Returns an error if HTML parsing fails or if the input contains invalid UTF-8.
998
- */
999
- export function convert(html: string, options?: WasmConversionOptions | null): WasmConversionResult;
978
+ export function convert(html: string, options?: WasmConversionOptions | null, visitor?: any | null): WasmConversionResult;
@@ -518,8 +518,9 @@ class WasmConversionOptions {
518
518
  * @param {string[] | null} [excludeSelectors]
519
519
  * @param {WasmTierStrategy | null} [tierStrategy]
520
520
  * @param {number | null} [maxDepth]
521
+ * @param {WasmVisitorHandle | null} [visitor]
521
522
  */
522
- constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, excludeSelectors, tierStrategy, maxDepth) {
523
+ constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, excludeSelectors, tierStrategy, maxDepth, visitor) {
523
524
  var ptr0 = isLikeNone(bullets) ? 0 : passStringToWasm0(bullets, wasm.__wbindgen_export, wasm.__wbindgen_export2);
524
525
  var len0 = WASM_VECTOR_LEN;
525
526
  var ptr1 = isLikeNone(strongEmSymbol) ? 0 : passStringToWasm0(strongEmSymbol, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -545,7 +546,12 @@ class WasmConversionOptions {
545
546
  var len9 = WASM_VECTOR_LEN;
546
547
  var ptr10 = isLikeNone(excludeSelectors) ? 0 : passArrayJsValueToWasm0(excludeSelectors, wasm.__wbindgen_export);
547
548
  var len10 = WASM_VECTOR_LEN;
548
- const ret = wasm.wasmconversionoptions_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0);
549
+ let ptr11 = 0;
550
+ if (!isLikeNone(visitor)) {
551
+ _assertClass(visitor, WasmVisitorHandle);
552
+ ptr11 = visitor.__destroy_into_raw();
553
+ }
554
+ const ret = wasm.wasmconversionoptions_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0, ptr11);
549
555
  this.__wbg_ptr = ret;
550
556
  WasmConversionOptionsFinalization.register(this, this.__wbg_ptr, this);
551
557
  return this;
@@ -1468,8 +1474,9 @@ class WasmConversionOptionsUpdate {
1468
1474
  * @param {number | null} [maxDepth]
1469
1475
  * @param {string[] | null} [excludeSelectors]
1470
1476
  * @param {WasmTierStrategy | null} [tierStrategy]
1477
+ * @param {WasmVisitorHandle | null} [visitor]
1471
1478
  */
1472
- constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, maxDepth, excludeSelectors, tierStrategy) {
1479
+ constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, maxDepth, excludeSelectors, tierStrategy, visitor) {
1473
1480
  var ptr0 = isLikeNone(bullets) ? 0 : passStringToWasm0(bullets, wasm.__wbindgen_export, wasm.__wbindgen_export2);
1474
1481
  var len0 = WASM_VECTOR_LEN;
1475
1482
  var ptr1 = isLikeNone(strongEmSymbol) ? 0 : passStringToWasm0(strongEmSymbol, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -1495,7 +1502,12 @@ class WasmConversionOptionsUpdate {
1495
1502
  var len9 = WASM_VECTOR_LEN;
1496
1503
  var ptr10 = isLikeNone(excludeSelectors) ? 0 : passArrayJsValueToWasm0(excludeSelectors, wasm.__wbindgen_export);
1497
1504
  var len10 = WASM_VECTOR_LEN;
1498
- const ret = wasm.wasmconversionoptionsupdate_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy);
1505
+ let ptr11 = 0;
1506
+ if (!isLikeNone(visitor)) {
1507
+ _assertClass(visitor, WasmVisitorHandle);
1508
+ ptr11 = visitor.__destroy_into_raw();
1509
+ }
1510
+ const ret = wasm.wasmconversionoptionsupdate_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy, ptr11);
1499
1511
  this.__wbg_ptr = ret;
1500
1512
  WasmConversionOptionsUpdateFinalization.register(this, this.__wbg_ptr, this);
1501
1513
  return this;
@@ -2104,24 +2116,30 @@ class WasmConversionResult {
2104
2116
  return WasmHtmlMetadata.__wrap(ret);
2105
2117
  }
2106
2118
  /**
2119
+ * @param {WasmHtmlMetadata | null} [metadata]
2107
2120
  * @param {WasmTableData[] | null} [tables]
2108
2121
  * @param {WasmProcessingWarning[] | null} [warnings]
2109
2122
  * @param {string | null} [content]
2110
2123
  * @param {WasmDocumentStructure | null} [document]
2111
2124
  */
2112
- constructor(tables, warnings, content, document) {
2113
- var ptr0 = isLikeNone(tables) ? 0 : passArrayJsValueToWasm0(tables, wasm.__wbindgen_export);
2114
- var len0 = WASM_VECTOR_LEN;
2115
- var ptr1 = isLikeNone(warnings) ? 0 : passArrayJsValueToWasm0(warnings, wasm.__wbindgen_export);
2125
+ constructor(metadata, tables, warnings, content, document) {
2126
+ let ptr0 = 0;
2127
+ if (!isLikeNone(metadata)) {
2128
+ _assertClass(metadata, WasmHtmlMetadata);
2129
+ ptr0 = metadata.__destroy_into_raw();
2130
+ }
2131
+ var ptr1 = isLikeNone(tables) ? 0 : passArrayJsValueToWasm0(tables, wasm.__wbindgen_export);
2116
2132
  var len1 = WASM_VECTOR_LEN;
2117
- var ptr2 = isLikeNone(content) ? 0 : passStringToWasm0(content, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2133
+ var ptr2 = isLikeNone(warnings) ? 0 : passArrayJsValueToWasm0(warnings, wasm.__wbindgen_export);
2118
2134
  var len2 = WASM_VECTOR_LEN;
2119
- let ptr3 = 0;
2135
+ var ptr3 = isLikeNone(content) ? 0 : passStringToWasm0(content, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2136
+ var len3 = WASM_VECTOR_LEN;
2137
+ let ptr4 = 0;
2120
2138
  if (!isLikeNone(document)) {
2121
2139
  _assertClass(document, WasmDocumentStructure);
2122
- ptr3 = document.__destroy_into_raw();
2140
+ ptr4 = document.__destroy_into_raw();
2123
2141
  }
2124
- const ret = wasm.wasmconversionresult_new(ptr0, len0, ptr1, len1, ptr2, len2, ptr3);
2142
+ const ret = wasm.wasmconversionresult_new(ptr0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4);
2125
2143
  this.__wbg_ptr = ret;
2126
2144
  WasmConversionResultFinalization.register(this, this.__wbg_ptr, this);
2127
2145
  return this;
@@ -5640,30 +5658,12 @@ const WasmWhitespaceMode = Object.freeze({
5640
5658
  exports.WasmWhitespaceMode = WasmWhitespaceMode;
5641
5659
 
5642
5660
  /**
5643
- * Convert HTML to Markdown, Djot, or plain text.
5644
- *
5645
- * Returns a `ConversionResult` with converted content plus optional metadata,
5646
- * document structure, table data, inline images, and warnings depending on the
5647
- * enabled features and conversion options.
5648
- *
5649
- * # Arguments
5650
- *
5651
- * * `html` — the HTML string to convert.
5652
- * * `options` — conversion options. Rust accepts bare `ConversionOptions`,
5653
- * `Some(options)`, or `None`. Language bindings expose the same option
5654
- * fields through native constructors or optional parameters.
5655
- *
5656
- * # Example
5657
- *
5658
- *
5659
- * # Errors
5660
- *
5661
- * Returns an error if HTML parsing fails or if the input contains invalid UTF-8.
5662
5661
  * @param {string} html
5663
5662
  * @param {WasmConversionOptions | null} [options]
5663
+ * @param {any | null} [visitor]
5664
5664
  * @returns {WasmConversionResult}
5665
5665
  */
5666
- function convert(html, options) {
5666
+ function convert(html, options, visitor) {
5667
5667
  try {
5668
5668
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
5669
5669
  const ptr0 = passStringToWasm0(html, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -5673,7 +5673,7 @@ function convert(html, options) {
5673
5673
  _assertClass(options, WasmConversionOptions);
5674
5674
  ptr1 = options.__destroy_into_raw();
5675
5675
  }
5676
- wasm.convert(retptr, ptr0, len0, ptr1);
5676
+ wasm.convert(retptr, ptr0, len0, ptr1, isLikeNone(visitor) ? 0 : addHeapObject(visitor));
5677
5677
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
5678
5678
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
5679
5679
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -23,7 +23,7 @@ export const __wbg_wasmtabledata_free: (a: number, b: number) => void;
23
23
  export const __wbg_wasmtablegrid_free: (a: number, b: number) => void;
24
24
  export const __wbg_wasmtextannotation_free: (a: number, b: number) => void;
25
25
  export const __wbg_wasmvisitorhandle_free: (a: number, b: number) => void;
26
- export const convert: (a: number, b: number, c: number, d: number) => void;
26
+ export const convert: (a: number, b: number, c: number, d: number, e: number) => void;
27
27
  export const wasmannotationkind_annotationType: (a: number, b: number) => void;
28
28
  export const wasmannotationkind_default: () => number;
29
29
  export const wasmannotationkind_set_annotationType: (a: number, b: number, c: number) => void;
@@ -60,7 +60,7 @@ export const wasmconversionoptions_listIndentType: (a: number, b: number) => voi
60
60
  export const wasmconversionoptions_listIndentWidth: (a: number) => number;
61
61
  export const wasmconversionoptions_maxDepth: (a: number) => number;
62
62
  export const wasmconversionoptions_maxImageSize: (a: number) => bigint;
63
- export const wasmconversionoptions_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number) => number;
63
+ export const wasmconversionoptions_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number, c2: number) => number;
64
64
  export const wasmconversionoptions_newlineStyle: (a: number, b: number) => void;
65
65
  export const wasmconversionoptions_outputFormat: (a: number, b: number) => void;
66
66
  export const wasmconversionoptions_preprocessing: (a: number) => number;
@@ -150,7 +150,7 @@ export const wasmconversionoptionsupdate_listIndentType: (a: number, b: number)
150
150
  export const wasmconversionoptionsupdate_listIndentWidth: (a: number) => number;
151
151
  export const wasmconversionoptionsupdate_maxDepth: (a: number) => number;
152
152
  export const wasmconversionoptionsupdate_maxImageSize: (a: number, b: number) => void;
153
- export const wasmconversionoptionsupdate_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number) => number;
153
+ export const wasmconversionoptionsupdate_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number, c2: number) => number;
154
154
  export const wasmconversionoptionsupdate_newlineStyle: (a: number, b: number) => void;
155
155
  export const wasmconversionoptionsupdate_outputFormat: (a: number, b: number) => void;
156
156
  export const wasmconversionoptionsupdate_preprocessing: (a: number) => number;
@@ -215,7 +215,7 @@ export const wasmconversionresult_content: (a: number, b: number) => void;
215
215
  export const wasmconversionresult_default: () => number;
216
216
  export const wasmconversionresult_document: (a: number) => number;
217
217
  export const wasmconversionresult_metadata: (a: number) => number;
218
- export const wasmconversionresult_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
218
+ export const wasmconversionresult_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
219
219
  export const wasmconversionresult_set_content: (a: number, b: number, c: number) => void;
220
220
  export const wasmconversionresult_set_document: (a: number, b: number) => void;
221
221
  export const wasmconversionresult_set_metadata: (a: number, b: number) => void;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "html-to-markdown-wasm",
3
3
  "description": "High-performance HTML to Markdown converter",
4
- "version": "3.8.0-rc.2",
4
+ "version": "3.8.1",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -40,7 +40,7 @@ export class WasmConversionOptions {
40
40
  free(): void;
41
41
  [Symbol.dispose](): void;
42
42
  static default(): WasmConversionOptions;
43
- constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptions | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null, maxDepth?: number | null);
43
+ constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptions | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null, maxDepth?: number | null, visitor?: WasmVisitorHandle | null);
44
44
  autolinks: boolean;
45
45
  brInTables: boolean;
46
46
  bullets: string;
@@ -109,7 +109,7 @@ export class WasmConversionOptionsUpdate {
109
109
  free(): void;
110
110
  [Symbol.dispose](): void;
111
111
  static default(): WasmConversionOptionsUpdate;
112
- constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptionsUpdate | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, maxDepth?: number | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null);
112
+ constructor(headingStyle?: WasmHeadingStyle | null, listIndentType?: WasmListIndentType | null, listIndentWidth?: number | null, bullets?: string | null, strongEmSymbol?: string | null, escapeAsterisks?: boolean | null, escapeUnderscores?: boolean | null, escapeMisc?: boolean | null, escapeAscii?: boolean | null, codeLanguage?: string | null, autolinks?: boolean | null, defaultTitle?: boolean | null, brInTables?: boolean | null, compactTables?: boolean | null, highlightStyle?: WasmHighlightStyle | null, extractMetadata?: boolean | null, whitespaceMode?: WasmWhitespaceMode | null, stripNewlines?: boolean | null, wrap?: boolean | null, wrapWidth?: number | null, convertAsInline?: boolean | null, subSymbol?: string | null, supSymbol?: string | null, newlineStyle?: WasmNewlineStyle | null, codeBlockStyle?: WasmCodeBlockStyle | null, keepInlineImagesIn?: string[] | null, preprocessing?: WasmPreprocessingOptionsUpdate | null, encoding?: string | null, debug?: boolean | null, stripTags?: string[] | null, preserveTags?: string[] | null, skipImages?: boolean | null, urlEscapeStyle?: WasmUrlEscapeStyle | null, linkStyle?: WasmLinkStyle | null, outputFormat?: WasmOutputFormat | null, includeDocumentStructure?: boolean | null, extractImages?: boolean | null, maxImageSize?: bigint | null, captureSvg?: boolean | null, inferDimensions?: boolean | null, maxDepth?: number | null, excludeSelectors?: string[] | null, tierStrategy?: WasmTierStrategy | null, visitor?: WasmVisitorHandle | null);
113
113
  get autolinks(): boolean | undefined;
114
114
  set autolinks(value: boolean | null | undefined);
115
115
  get brInTables(): boolean | undefined;
@@ -220,7 +220,7 @@ export class WasmConversionResult {
220
220
  free(): void;
221
221
  [Symbol.dispose](): void;
222
222
  static default(): WasmConversionResult;
223
- constructor(tables?: WasmTableData[] | null, warnings?: WasmProcessingWarning[] | null, content?: string | null, document?: WasmDocumentStructure | null);
223
+ constructor(metadata?: WasmHtmlMetadata | null, tables?: WasmTableData[] | null, warnings?: WasmProcessingWarning[] | null, content?: string | null, document?: WasmDocumentStructure | null);
224
224
  get content(): string | undefined;
225
225
  set content(value: string | null | undefined);
226
226
  get document(): WasmDocumentStructure | undefined;
@@ -975,28 +975,7 @@ export enum WasmWhitespaceMode {
975
975
  Strict = 1,
976
976
  }
977
977
 
978
- /**
979
- * Convert HTML to Markdown, Djot, or plain text.
980
- *
981
- * Returns a `ConversionResult` with converted content plus optional metadata,
982
- * document structure, table data, inline images, and warnings depending on the
983
- * enabled features and conversion options.
984
- *
985
- * # Arguments
986
- *
987
- * * `html` — the HTML string to convert.
988
- * * `options` — conversion options. Rust accepts bare `ConversionOptions`,
989
- * `Some(options)`, or `None`. Language bindings expose the same option
990
- * fields through native constructors or optional parameters.
991
- *
992
- * # Example
993
- *
994
- *
995
- * # Errors
996
- *
997
- * Returns an error if HTML parsing fails or if the input contains invalid UTF-8.
998
- */
999
- export function convert(html: string, options?: WasmConversionOptions | null): WasmConversionResult;
978
+ export function convert(html: string, options?: WasmConversionOptions | null, visitor?: any | null): WasmConversionResult;
1000
979
 
1001
980
  export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
1002
981
 
@@ -1024,7 +1003,7 @@ export interface InitOutput {
1024
1003
  readonly __wbg_wasmtablegrid_free: (a: number, b: number) => void;
1025
1004
  readonly __wbg_wasmtextannotation_free: (a: number, b: number) => void;
1026
1005
  readonly __wbg_wasmvisitorhandle_free: (a: number, b: number) => void;
1027
- readonly convert: (a: number, b: number, c: number, d: number) => void;
1006
+ readonly convert: (a: number, b: number, c: number, d: number, e: number) => void;
1028
1007
  readonly wasmannotationkind_annotationType: (a: number, b: number) => void;
1029
1008
  readonly wasmannotationkind_default: () => number;
1030
1009
  readonly wasmannotationkind_set_annotationType: (a: number, b: number, c: number) => void;
@@ -1061,7 +1040,7 @@ export interface InitOutput {
1061
1040
  readonly wasmconversionoptions_listIndentWidth: (a: number) => number;
1062
1041
  readonly wasmconversionoptions_maxDepth: (a: number) => number;
1063
1042
  readonly wasmconversionoptions_maxImageSize: (a: number) => bigint;
1064
- readonly wasmconversionoptions_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number) => number;
1043
+ readonly wasmconversionoptions_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number, c2: number) => number;
1065
1044
  readonly wasmconversionoptions_newlineStyle: (a: number, b: number) => void;
1066
1045
  readonly wasmconversionoptions_outputFormat: (a: number, b: number) => void;
1067
1046
  readonly wasmconversionoptions_preprocessing: (a: number) => number;
@@ -1151,7 +1130,7 @@ export interface InitOutput {
1151
1130
  readonly wasmconversionoptionsupdate_listIndentWidth: (a: number) => number;
1152
1131
  readonly wasmconversionoptionsupdate_maxDepth: (a: number) => number;
1153
1132
  readonly wasmconversionoptionsupdate_maxImageSize: (a: number, b: number) => void;
1154
- readonly wasmconversionoptionsupdate_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number) => number;
1133
+ readonly wasmconversionoptionsupdate_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number, c2: number) => number;
1155
1134
  readonly wasmconversionoptionsupdate_newlineStyle: (a: number, b: number) => void;
1156
1135
  readonly wasmconversionoptionsupdate_outputFormat: (a: number, b: number) => void;
1157
1136
  readonly wasmconversionoptionsupdate_preprocessing: (a: number) => number;
@@ -1216,7 +1195,7 @@ export interface InitOutput {
1216
1195
  readonly wasmconversionresult_default: () => number;
1217
1196
  readonly wasmconversionresult_document: (a: number) => number;
1218
1197
  readonly wasmconversionresult_metadata: (a: number) => number;
1219
- readonly wasmconversionresult_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
1198
+ readonly wasmconversionresult_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
1220
1199
  readonly wasmconversionresult_set_content: (a: number, b: number, c: number) => void;
1221
1200
  readonly wasmconversionresult_set_document: (a: number, b: number) => void;
1222
1201
  readonly wasmconversionresult_set_metadata: (a: number, b: number) => void;
@@ -516,8 +516,9 @@ export class WasmConversionOptions {
516
516
  * @param {string[] | null} [excludeSelectors]
517
517
  * @param {WasmTierStrategy | null} [tierStrategy]
518
518
  * @param {number | null} [maxDepth]
519
+ * @param {WasmVisitorHandle | null} [visitor]
519
520
  */
520
- constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, excludeSelectors, tierStrategy, maxDepth) {
521
+ constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, excludeSelectors, tierStrategy, maxDepth, visitor) {
521
522
  var ptr0 = isLikeNone(bullets) ? 0 : passStringToWasm0(bullets, wasm.__wbindgen_export, wasm.__wbindgen_export2);
522
523
  var len0 = WASM_VECTOR_LEN;
523
524
  var ptr1 = isLikeNone(strongEmSymbol) ? 0 : passStringToWasm0(strongEmSymbol, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -543,7 +544,12 @@ export class WasmConversionOptions {
543
544
  var len9 = WASM_VECTOR_LEN;
544
545
  var ptr10 = isLikeNone(excludeSelectors) ? 0 : passArrayJsValueToWasm0(excludeSelectors, wasm.__wbindgen_export);
545
546
  var len10 = WASM_VECTOR_LEN;
546
- const ret = wasm.wasmconversionoptions_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0);
547
+ let ptr11 = 0;
548
+ if (!isLikeNone(visitor)) {
549
+ _assertClass(visitor, WasmVisitorHandle);
550
+ ptr11 = visitor.__destroy_into_raw();
551
+ }
552
+ const ret = wasm.wasmconversionoptions_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0, ptr11);
547
553
  this.__wbg_ptr = ret;
548
554
  WasmConversionOptionsFinalization.register(this, this.__wbg_ptr, this);
549
555
  return this;
@@ -1465,8 +1471,9 @@ export class WasmConversionOptionsUpdate {
1465
1471
  * @param {number | null} [maxDepth]
1466
1472
  * @param {string[] | null} [excludeSelectors]
1467
1473
  * @param {WasmTierStrategy | null} [tierStrategy]
1474
+ * @param {WasmVisitorHandle | null} [visitor]
1468
1475
  */
1469
- constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, maxDepth, excludeSelectors, tierStrategy) {
1476
+ constructor(headingStyle, listIndentType, listIndentWidth, bullets, strongEmSymbol, escapeAsterisks, escapeUnderscores, escapeMisc, escapeAscii, codeLanguage, autolinks, defaultTitle, brInTables, compactTables, highlightStyle, extractMetadata, whitespaceMode, stripNewlines, wrap, wrapWidth, convertAsInline, subSymbol, supSymbol, newlineStyle, codeBlockStyle, keepInlineImagesIn, preprocessing, encoding, debug, stripTags, preserveTags, skipImages, urlEscapeStyle, linkStyle, outputFormat, includeDocumentStructure, extractImages, maxImageSize, captureSvg, inferDimensions, maxDepth, excludeSelectors, tierStrategy, visitor) {
1470
1477
  var ptr0 = isLikeNone(bullets) ? 0 : passStringToWasm0(bullets, wasm.__wbindgen_export, wasm.__wbindgen_export2);
1471
1478
  var len0 = WASM_VECTOR_LEN;
1472
1479
  var ptr1 = isLikeNone(strongEmSymbol) ? 0 : passStringToWasm0(strongEmSymbol, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -1492,7 +1499,12 @@ export class WasmConversionOptionsUpdate {
1492
1499
  var len9 = WASM_VECTOR_LEN;
1493
1500
  var ptr10 = isLikeNone(excludeSelectors) ? 0 : passArrayJsValueToWasm0(excludeSelectors, wasm.__wbindgen_export);
1494
1501
  var len10 = WASM_VECTOR_LEN;
1495
- const ret = wasm.wasmconversionoptionsupdate_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy);
1502
+ let ptr11 = 0;
1503
+ if (!isLikeNone(visitor)) {
1504
+ _assertClass(visitor, WasmVisitorHandle);
1505
+ ptr11 = visitor.__destroy_into_raw();
1506
+ }
1507
+ const ret = wasm.wasmconversionoptionsupdate_new(isLikeNone(headingStyle) ? 3 : headingStyle, isLikeNone(listIndentType) ? 2 : listIndentType, isLikeNone(listIndentWidth) ? Number.MAX_SAFE_INTEGER : (listIndentWidth) >>> 0, ptr0, len0, ptr1, len1, isLikeNone(escapeAsterisks) ? 0xFFFFFF : escapeAsterisks ? 1 : 0, isLikeNone(escapeUnderscores) ? 0xFFFFFF : escapeUnderscores ? 1 : 0, isLikeNone(escapeMisc) ? 0xFFFFFF : escapeMisc ? 1 : 0, isLikeNone(escapeAscii) ? 0xFFFFFF : escapeAscii ? 1 : 0, ptr2, len2, isLikeNone(autolinks) ? 0xFFFFFF : autolinks ? 1 : 0, isLikeNone(defaultTitle) ? 0xFFFFFF : defaultTitle ? 1 : 0, isLikeNone(brInTables) ? 0xFFFFFF : brInTables ? 1 : 0, isLikeNone(compactTables) ? 0xFFFFFF : compactTables ? 1 : 0, isLikeNone(highlightStyle) ? 4 : highlightStyle, isLikeNone(extractMetadata) ? 0xFFFFFF : extractMetadata ? 1 : 0, isLikeNone(whitespaceMode) ? 2 : whitespaceMode, isLikeNone(stripNewlines) ? 0xFFFFFF : stripNewlines ? 1 : 0, isLikeNone(wrap) ? 0xFFFFFF : wrap ? 1 : 0, isLikeNone(wrapWidth) ? Number.MAX_SAFE_INTEGER : (wrapWidth) >>> 0, isLikeNone(convertAsInline) ? 0xFFFFFF : convertAsInline ? 1 : 0, ptr3, len3, ptr4, len4, isLikeNone(newlineStyle) ? 2 : newlineStyle, isLikeNone(codeBlockStyle) ? 3 : codeBlockStyle, ptr5, len5, ptr6, ptr7, len7, isLikeNone(debug) ? 0xFFFFFF : debug ? 1 : 0, ptr8, len8, ptr9, len9, isLikeNone(skipImages) ? 0xFFFFFF : skipImages ? 1 : 0, isLikeNone(urlEscapeStyle) ? 2 : urlEscapeStyle, isLikeNone(linkStyle) ? 2 : linkStyle, isLikeNone(outputFormat) ? 3 : outputFormat, isLikeNone(includeDocumentStructure) ? 0xFFFFFF : includeDocumentStructure ? 1 : 0, isLikeNone(extractImages) ? 0xFFFFFF : extractImages ? 1 : 0, !isLikeNone(maxImageSize), isLikeNone(maxImageSize) ? BigInt(0) : maxImageSize, isLikeNone(captureSvg) ? 0xFFFFFF : captureSvg ? 1 : 0, isLikeNone(inferDimensions) ? 0xFFFFFF : inferDimensions ? 1 : 0, isLikeNone(maxDepth) ? Number.MAX_SAFE_INTEGER : (maxDepth) >>> 0, ptr10, len10, isLikeNone(tierStrategy) ? 3 : tierStrategy, ptr11);
1496
1508
  this.__wbg_ptr = ret;
1497
1509
  WasmConversionOptionsUpdateFinalization.register(this, this.__wbg_ptr, this);
1498
1510
  return this;
@@ -2100,24 +2112,30 @@ export class WasmConversionResult {
2100
2112
  return WasmHtmlMetadata.__wrap(ret);
2101
2113
  }
2102
2114
  /**
2115
+ * @param {WasmHtmlMetadata | null} [metadata]
2103
2116
  * @param {WasmTableData[] | null} [tables]
2104
2117
  * @param {WasmProcessingWarning[] | null} [warnings]
2105
2118
  * @param {string | null} [content]
2106
2119
  * @param {WasmDocumentStructure | null} [document]
2107
2120
  */
2108
- constructor(tables, warnings, content, document) {
2109
- var ptr0 = isLikeNone(tables) ? 0 : passArrayJsValueToWasm0(tables, wasm.__wbindgen_export);
2110
- var len0 = WASM_VECTOR_LEN;
2111
- var ptr1 = isLikeNone(warnings) ? 0 : passArrayJsValueToWasm0(warnings, wasm.__wbindgen_export);
2121
+ constructor(metadata, tables, warnings, content, document) {
2122
+ let ptr0 = 0;
2123
+ if (!isLikeNone(metadata)) {
2124
+ _assertClass(metadata, WasmHtmlMetadata);
2125
+ ptr0 = metadata.__destroy_into_raw();
2126
+ }
2127
+ var ptr1 = isLikeNone(tables) ? 0 : passArrayJsValueToWasm0(tables, wasm.__wbindgen_export);
2112
2128
  var len1 = WASM_VECTOR_LEN;
2113
- var ptr2 = isLikeNone(content) ? 0 : passStringToWasm0(content, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2129
+ var ptr2 = isLikeNone(warnings) ? 0 : passArrayJsValueToWasm0(warnings, wasm.__wbindgen_export);
2114
2130
  var len2 = WASM_VECTOR_LEN;
2115
- let ptr3 = 0;
2131
+ var ptr3 = isLikeNone(content) ? 0 : passStringToWasm0(content, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2132
+ var len3 = WASM_VECTOR_LEN;
2133
+ let ptr4 = 0;
2116
2134
  if (!isLikeNone(document)) {
2117
2135
  _assertClass(document, WasmDocumentStructure);
2118
- ptr3 = document.__destroy_into_raw();
2136
+ ptr4 = document.__destroy_into_raw();
2119
2137
  }
2120
- const ret = wasm.wasmconversionresult_new(ptr0, len0, ptr1, len1, ptr2, len2, ptr3);
2138
+ const ret = wasm.wasmconversionresult_new(ptr0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4);
2121
2139
  this.__wbg_ptr = ret;
2122
2140
  WasmConversionResultFinalization.register(this, this.__wbg_ptr, this);
2123
2141
  return this;
@@ -5598,30 +5616,12 @@ export const WasmWhitespaceMode = Object.freeze({
5598
5616
  });
5599
5617
 
5600
5618
  /**
5601
- * Convert HTML to Markdown, Djot, or plain text.
5602
- *
5603
- * Returns a `ConversionResult` with converted content plus optional metadata,
5604
- * document structure, table data, inline images, and warnings depending on the
5605
- * enabled features and conversion options.
5606
- *
5607
- * # Arguments
5608
- *
5609
- * * `html` — the HTML string to convert.
5610
- * * `options` — conversion options. Rust accepts bare `ConversionOptions`,
5611
- * `Some(options)`, or `None`. Language bindings expose the same option
5612
- * fields through native constructors or optional parameters.
5613
- *
5614
- * # Example
5615
- *
5616
- *
5617
- * # Errors
5618
- *
5619
- * Returns an error if HTML parsing fails or if the input contains invalid UTF-8.
5620
5619
  * @param {string} html
5621
5620
  * @param {WasmConversionOptions | null} [options]
5621
+ * @param {any | null} [visitor]
5622
5622
  * @returns {WasmConversionResult}
5623
5623
  */
5624
- export function convert(html, options) {
5624
+ export function convert(html, options, visitor) {
5625
5625
  try {
5626
5626
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
5627
5627
  const ptr0 = passStringToWasm0(html, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -5631,7 +5631,7 @@ export function convert(html, options) {
5631
5631
  _assertClass(options, WasmConversionOptions);
5632
5632
  ptr1 = options.__destroy_into_raw();
5633
5633
  }
5634
- wasm.convert(retptr, ptr0, len0, ptr1);
5634
+ wasm.convert(retptr, ptr0, len0, ptr1, isLikeNone(visitor) ? 0 : addHeapObject(visitor));
5635
5635
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
5636
5636
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
5637
5637
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -23,7 +23,7 @@ export const __wbg_wasmtabledata_free: (a: number, b: number) => void;
23
23
  export const __wbg_wasmtablegrid_free: (a: number, b: number) => void;
24
24
  export const __wbg_wasmtextannotation_free: (a: number, b: number) => void;
25
25
  export const __wbg_wasmvisitorhandle_free: (a: number, b: number) => void;
26
- export const convert: (a: number, b: number, c: number, d: number) => void;
26
+ export const convert: (a: number, b: number, c: number, d: number, e: number) => void;
27
27
  export const wasmannotationkind_annotationType: (a: number, b: number) => void;
28
28
  export const wasmannotationkind_default: () => number;
29
29
  export const wasmannotationkind_set_annotationType: (a: number, b: number, c: number) => void;
@@ -60,7 +60,7 @@ export const wasmconversionoptions_listIndentType: (a: number, b: number) => voi
60
60
  export const wasmconversionoptions_listIndentWidth: (a: number) => number;
61
61
  export const wasmconversionoptions_maxDepth: (a: number) => number;
62
62
  export const wasmconversionoptions_maxImageSize: (a: number) => bigint;
63
- export const wasmconversionoptions_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number) => number;
63
+ export const wasmconversionoptions_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number, c2: number) => number;
64
64
  export const wasmconversionoptions_newlineStyle: (a: number, b: number) => void;
65
65
  export const wasmconversionoptions_outputFormat: (a: number, b: number) => void;
66
66
  export const wasmconversionoptions_preprocessing: (a: number) => number;
@@ -150,7 +150,7 @@ export const wasmconversionoptionsupdate_listIndentType: (a: number, b: number)
150
150
  export const wasmconversionoptionsupdate_listIndentWidth: (a: number) => number;
151
151
  export const wasmconversionoptionsupdate_maxDepth: (a: number) => number;
152
152
  export const wasmconversionoptionsupdate_maxImageSize: (a: number, b: number) => void;
153
- export const wasmconversionoptionsupdate_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number) => number;
153
+ export const wasmconversionoptionsupdate_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number, o1: number, p1: number, q1: number, r1: number, s1: number, t1: number, u1: number, v1: bigint, w1: number, x1: number, y1: number, z1: number, a2: number, b2: number, c2: number) => number;
154
154
  export const wasmconversionoptionsupdate_newlineStyle: (a: number, b: number) => void;
155
155
  export const wasmconversionoptionsupdate_outputFormat: (a: number, b: number) => void;
156
156
  export const wasmconversionoptionsupdate_preprocessing: (a: number) => number;
@@ -215,7 +215,7 @@ export const wasmconversionresult_content: (a: number, b: number) => void;
215
215
  export const wasmconversionresult_default: () => number;
216
216
  export const wasmconversionresult_document: (a: number) => number;
217
217
  export const wasmconversionresult_metadata: (a: number) => number;
218
- export const wasmconversionresult_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
218
+ export const wasmconversionresult_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
219
219
  export const wasmconversionresult_set_content: (a: number, b: number, c: number) => void;
220
220
  export const wasmconversionresult_set_document: (a: number, b: number) => void;
221
221
  export const wasmconversionresult_set_metadata: (a: number, b: number) => void;
@@ -2,7 +2,7 @@
2
2
  "name": "html-to-markdown-wasm",
3
3
  "type": "module",
4
4
  "description": "High-performance HTML to Markdown converter",
5
- "version": "3.8.0-rc.2",
5
+ "version": "3.8.1",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",