html-to-markdown-node 2.6.5 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -2
- package/index.d.ts +22 -14
- package/index.js +540 -207
- package/package.json +10 -12
package/README.md
CHANGED
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Native Node.js and Bun bindings for html-to-markdown using NAPI-RS v3.
|
|
4
4
|
|
|
5
|
-
Built on the shared Rust engine that powers the Python wheels, Ruby gem, WebAssembly package, and CLI – ensuring identical Markdown output across every language target.
|
|
5
|
+
Built on the shared Rust engine that powers the Python wheels, Ruby gem, PHP extension, WebAssembly package, and CLI – ensuring identical Markdown output across every language target.
|
|
6
6
|
|
|
7
7
|
High-performance HTML to Markdown conversion using native Rust code compiled to platform-specific binaries.
|
|
8
8
|
|
|
9
9
|
[](https://crates.io/crates/html-to-markdown-rs)
|
|
10
10
|
[](https://www.npmjs.com/package/html-to-markdown-node)
|
|
11
11
|
[](https://www.npmjs.com/package/html-to-markdown-wasm)
|
|
12
|
-
[](https://www.npmjs.com/package/html-to-markdown)
|
|
13
12
|
[](https://pypi.org/project/html-to-markdown/)
|
|
14
13
|
[](https://packagist.org/packages/goldziher/html-to-markdown)
|
|
15
14
|
[](https://rubygems.org/gems/html-to-markdown)
|
|
@@ -130,6 +129,45 @@ const options: JsConversionOptions = {
|
|
|
130
129
|
const markdown = convert('<h1>Hello</h1>', options);
|
|
131
130
|
```
|
|
132
131
|
|
|
132
|
+
### Reusing Parsed Options
|
|
133
|
+
|
|
134
|
+
Avoid re-parsing the same options object on every call (benchmarks, tight render loops) by creating a reusable handle:
|
|
135
|
+
|
|
136
|
+
```ts
|
|
137
|
+
import {
|
|
138
|
+
createConversionOptionsHandle,
|
|
139
|
+
convertWithOptionsHandle,
|
|
140
|
+
} from 'html-to-markdown-node';
|
|
141
|
+
|
|
142
|
+
const handle = createConversionOptionsHandle({ hocrSpatialTables: false });
|
|
143
|
+
const markdown = convertWithOptionsHandle('<h1>Handles</h1>', handle);
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Zero-Copy Buffer Input
|
|
147
|
+
|
|
148
|
+
Skip the intermediate UTF-16 string allocation by feeding `Buffer`/`Uint8Array` inputs directly—handy for benchmark harnesses or when you already have raw bytes:
|
|
149
|
+
|
|
150
|
+
```ts
|
|
151
|
+
import {
|
|
152
|
+
convertBuffer,
|
|
153
|
+
convertInlineImagesBuffer,
|
|
154
|
+
convertBufferWithOptionsHandle,
|
|
155
|
+
createConversionOptionsHandle,
|
|
156
|
+
} from 'html-to-markdown-node';
|
|
157
|
+
import { readFileSync } from 'node:fs';
|
|
158
|
+
|
|
159
|
+
const html = readFileSync('fixtures/lists.html'); // Buffer
|
|
160
|
+
const markdown = convertBuffer(html);
|
|
161
|
+
|
|
162
|
+
const handle = createConversionOptionsHandle({ headingStyle: 'Atx' });
|
|
163
|
+
const markdownFromHandle = convertBufferWithOptionsHandle(html, handle);
|
|
164
|
+
|
|
165
|
+
// Inline images work too:
|
|
166
|
+
const extraction = convertInlineImagesBuffer(html, null, {
|
|
167
|
+
maxDecodedSizeBytes: 5 * 1024 * 1024,
|
|
168
|
+
});
|
|
169
|
+
```
|
|
170
|
+
|
|
133
171
|
## Inline Images
|
|
134
172
|
|
|
135
173
|
Extract and decode inline images (data URIs, SVG):
|
|
@@ -191,6 +229,7 @@ Other runtimes:
|
|
|
191
229
|
|
|
192
230
|
- 🐍 Python: [`html-to-markdown`](https://pypi.org/project/html-to-markdown/)
|
|
193
231
|
- 💎 Ruby: [`html-to-markdown`](https://rubygems.org/gems/html-to-markdown)
|
|
232
|
+
- 🐘 PHP: [`goldziher/html-to-markdown`](https://packagist.org/packages/goldziher/html-to-markdown)
|
|
194
233
|
- 🌐 WebAssembly: [`html-to-markdown-wasm`](https://www.npmjs.com/package/html-to-markdown-wasm)
|
|
195
234
|
|
|
196
235
|
## Configuration Options
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/* auto-generated by NAPI-RS */
|
|
2
2
|
/* eslint-disable */
|
|
3
|
+
|
|
4
|
+
export declare class ExternalObject<T> {
|
|
5
|
+
readonly '': {
|
|
6
|
+
readonly '': unique symbol
|
|
7
|
+
[K: symbol]: T
|
|
8
|
+
}
|
|
9
|
+
}
|
|
3
10
|
/**
|
|
4
11
|
* Convert HTML to Markdown
|
|
5
12
|
*
|
|
@@ -20,6 +27,15 @@
|
|
|
20
27
|
*/
|
|
21
28
|
export declare function convert(html: string, options?: JsConversionOptions | undefined | null): string
|
|
22
29
|
|
|
30
|
+
/** Convert HTML to Markdown from a Buffer/Uint8Array without creating intermediate JS strings. */
|
|
31
|
+
export declare function convertBuffer(html: Buffer, options?: JsConversionOptions | undefined | null): string
|
|
32
|
+
|
|
33
|
+
/** Convert HTML Buffer data using a previously-created ConversionOptions handle. */
|
|
34
|
+
export declare function convertBufferWithOptionsHandle(html: Buffer, options: ExternalObject<RustConversionOptions>): string
|
|
35
|
+
|
|
36
|
+
/** Convert inline images from Buffer/Uint8Array input without an intermediate string allocation. */
|
|
37
|
+
export declare function convertInlineImagesBuffer(html: Buffer, options?: JsConversionOptions | undefined | null, imageConfig?: JsInlineImageConfig | undefined | null): JsHtmlExtraction
|
|
38
|
+
|
|
23
39
|
/**
|
|
24
40
|
* Convert HTML to Markdown while collecting inline images
|
|
25
41
|
*
|
|
@@ -28,23 +44,15 @@ export declare function convert(html: string, options?: JsConversionOptions | un
|
|
|
28
44
|
* * `html` - The HTML string to convert
|
|
29
45
|
* * `options` - Optional conversion options
|
|
30
46
|
* * `image_config` - Configuration for inline image extraction
|
|
31
|
-
*
|
|
32
|
-
* # Example
|
|
33
|
-
*
|
|
34
|
-
* ```javascript
|
|
35
|
-
* const { convertWithInlineImages } = require('html-to-markdown');
|
|
36
|
-
*
|
|
37
|
-
* const html = '<img src="data:image/png;base64,..." alt="test">';
|
|
38
|
-
* const result = convertWithInlineImages(html, null, {
|
|
39
|
-
* maxDecodedSizeBytes: 1024 * 1024,
|
|
40
|
-
* inferDimensions: true
|
|
41
|
-
* });
|
|
42
|
-
* console.log(result.markdown);
|
|
43
|
-
* console.log(result.inlineImages.length);
|
|
44
|
-
* ```
|
|
45
47
|
*/
|
|
46
48
|
export declare function convertWithInlineImages(html: string, options?: JsConversionOptions | undefined | null, imageConfig?: JsInlineImageConfig | undefined | null): JsHtmlExtraction
|
|
47
49
|
|
|
50
|
+
/** Convert HTML using a previously-created ConversionOptions handle. */
|
|
51
|
+
export declare function convertWithOptionsHandle(html: string, options: ExternalObject<RustConversionOptions>): string
|
|
52
|
+
|
|
53
|
+
/** Create a reusable ConversionOptions handle. */
|
|
54
|
+
export declare function createConversionOptionsHandle(options?: JsConversionOptions | undefined | null): ExternalObject<RustConversionOptions>
|
|
55
|
+
|
|
48
56
|
/** Code block style */
|
|
49
57
|
export declare const enum JsCodeBlockStyle {
|
|
50
58
|
/** Indented code blocks (4 spaces) - CommonMark default */
|
package/index.js
CHANGED
|
@@ -1,255 +1,588 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// prettier-ignore
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
// @ts-nocheck
|
|
4
|
+
/* auto-generated by NAPI-RS */
|
|
5
5
|
|
|
6
|
+
const { readFileSync } = require('node:fs')
|
|
6
7
|
let nativeBinding = null
|
|
7
|
-
|
|
8
|
-
let loadError = null
|
|
8
|
+
const loadErrors = []
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
10
|
+
const isMusl = () => {
|
|
11
|
+
let musl = false
|
|
12
|
+
if (process.platform === 'linux') {
|
|
13
|
+
musl = isMuslFromFilesystem()
|
|
14
|
+
if (musl === null) {
|
|
15
|
+
musl = isMuslFromReport()
|
|
16
|
+
}
|
|
17
|
+
if (musl === null) {
|
|
18
|
+
musl = isMuslFromChildProcess()
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return musl
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
|
|
25
|
+
|
|
26
|
+
const isMuslFromFilesystem = () => {
|
|
27
|
+
try {
|
|
28
|
+
return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl')
|
|
29
|
+
} catch {
|
|
30
|
+
return null
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const isMuslFromReport = () => {
|
|
35
|
+
let report = null
|
|
36
|
+
if (typeof process.report?.getReport === 'function') {
|
|
37
|
+
process.report.excludeNetwork = true
|
|
38
|
+
report = process.report.getReport()
|
|
39
|
+
}
|
|
40
|
+
if (!report) {
|
|
41
|
+
return null
|
|
42
|
+
}
|
|
43
|
+
if (report.header && report.header.glibcVersionRuntime) {
|
|
44
|
+
return false
|
|
45
|
+
}
|
|
46
|
+
if (Array.isArray(report.sharedObjects)) {
|
|
47
|
+
if (report.sharedObjects.some(isFileMusl)) {
|
|
17
48
|
return true
|
|
18
49
|
}
|
|
19
|
-
} else {
|
|
20
|
-
const { glibcVersionRuntime } = process.report.getReport().header
|
|
21
|
-
return !glibcVersionRuntime
|
|
22
50
|
}
|
|
51
|
+
return false
|
|
23
52
|
}
|
|
24
53
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
54
|
+
const isMuslFromChildProcess = () => {
|
|
55
|
+
try {
|
|
56
|
+
return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl')
|
|
57
|
+
} catch (e) {
|
|
58
|
+
// If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false
|
|
59
|
+
return false
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function requireNative() {
|
|
64
|
+
if (process.env.NAPI_RS_NATIVE_LIBRARY_PATH) {
|
|
65
|
+
try {
|
|
66
|
+
return require(process.env.NAPI_RS_NATIVE_LIBRARY_PATH);
|
|
67
|
+
} catch (err) {
|
|
68
|
+
loadErrors.push(err)
|
|
69
|
+
}
|
|
70
|
+
} else if (process.platform === 'android') {
|
|
71
|
+
if (process.arch === 'arm64') {
|
|
72
|
+
try {
|
|
73
|
+
return require('./html-to-markdown-node.android-arm64.node')
|
|
74
|
+
} catch (e) {
|
|
75
|
+
loadErrors.push(e)
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
const binding = require('html-to-markdown-node-android-arm64')
|
|
79
|
+
const bindingPackageVersion = require('html-to-markdown-node-android-arm64/package.json').version
|
|
80
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
81
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
82
|
+
}
|
|
83
|
+
return binding
|
|
84
|
+
} catch (e) {
|
|
85
|
+
loadErrors.push(e)
|
|
86
|
+
}
|
|
87
|
+
} else if (process.arch === 'arm') {
|
|
88
|
+
try {
|
|
89
|
+
return require('./html-to-markdown-node.android-arm-eabi.node')
|
|
90
|
+
} catch (e) {
|
|
91
|
+
loadErrors.push(e)
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
const binding = require('html-to-markdown-node-android-arm-eabi')
|
|
95
|
+
const bindingPackageVersion = require('html-to-markdown-node-android-arm-eabi/package.json').version
|
|
96
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
97
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
98
|
+
}
|
|
99
|
+
return binding
|
|
100
|
+
} catch (e) {
|
|
101
|
+
loadErrors.push(e)
|
|
102
|
+
}
|
|
103
|
+
} else {
|
|
104
|
+
loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`))
|
|
105
|
+
}
|
|
106
|
+
} else if (process.platform === 'win32') {
|
|
107
|
+
if (process.arch === 'x64') {
|
|
108
|
+
if (process.config?.variables?.shlib_suffix === 'dll.a' || process.config?.variables?.node_target_type === 'shared_library') {
|
|
109
|
+
try {
|
|
110
|
+
return require('./html-to-markdown-node.win32-x64-gnu.node')
|
|
111
|
+
} catch (e) {
|
|
112
|
+
loadErrors.push(e)
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const binding = require('html-to-markdown-node-win32-x64-gnu')
|
|
116
|
+
const bindingPackageVersion = require('html-to-markdown-node-win32-x64-gnu/package.json').version
|
|
117
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
118
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
119
|
+
}
|
|
120
|
+
return binding
|
|
121
|
+
} catch (e) {
|
|
122
|
+
loadErrors.push(e)
|
|
123
|
+
}
|
|
124
|
+
} else {
|
|
125
|
+
try {
|
|
126
|
+
return require('./html-to-markdown-node.win32-x64-msvc.node')
|
|
127
|
+
} catch (e) {
|
|
128
|
+
loadErrors.push(e)
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
const binding = require('html-to-markdown-node-win32-x64-msvc')
|
|
132
|
+
const bindingPackageVersion = require('html-to-markdown-node-win32-x64-msvc/package.json').version
|
|
133
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
134
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
135
|
+
}
|
|
136
|
+
return binding
|
|
137
|
+
} catch (e) {
|
|
138
|
+
loadErrors.push(e)
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
} else if (process.arch === 'ia32') {
|
|
142
|
+
try {
|
|
143
|
+
return require('./html-to-markdown-node.win32-ia32-msvc.node')
|
|
144
|
+
} catch (e) {
|
|
145
|
+
loadErrors.push(e)
|
|
146
|
+
}
|
|
147
|
+
try {
|
|
148
|
+
const binding = require('html-to-markdown-node-win32-ia32-msvc')
|
|
149
|
+
const bindingPackageVersion = require('html-to-markdown-node-win32-ia32-msvc/package.json').version
|
|
150
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
151
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
152
|
+
}
|
|
153
|
+
return binding
|
|
154
|
+
} catch (e) {
|
|
155
|
+
loadErrors.push(e)
|
|
156
|
+
}
|
|
157
|
+
} else if (process.arch === 'arm64') {
|
|
158
|
+
try {
|
|
159
|
+
return require('./html-to-markdown-node.win32-arm64-msvc.node')
|
|
160
|
+
} catch (e) {
|
|
161
|
+
loadErrors.push(e)
|
|
162
|
+
}
|
|
163
|
+
try {
|
|
164
|
+
const binding = require('html-to-markdown-node-win32-arm64-msvc')
|
|
165
|
+
const bindingPackageVersion = require('html-to-markdown-node-win32-arm64-msvc/package.json').version
|
|
166
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
167
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
168
|
+
}
|
|
169
|
+
return binding
|
|
170
|
+
} catch (e) {
|
|
171
|
+
loadErrors.push(e)
|
|
172
|
+
}
|
|
173
|
+
} else {
|
|
174
|
+
loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`))
|
|
175
|
+
}
|
|
176
|
+
} else if (process.platform === 'darwin') {
|
|
177
|
+
try {
|
|
178
|
+
return require('./html-to-markdown-node.darwin-universal.node')
|
|
179
|
+
} catch (e) {
|
|
180
|
+
loadErrors.push(e)
|
|
181
|
+
}
|
|
182
|
+
try {
|
|
183
|
+
const binding = require('html-to-markdown-node-darwin-universal')
|
|
184
|
+
const bindingPackageVersion = require('html-to-markdown-node-darwin-universal/package.json').version
|
|
185
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
186
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
187
|
+
}
|
|
188
|
+
return binding
|
|
189
|
+
} catch (e) {
|
|
190
|
+
loadErrors.push(e)
|
|
191
|
+
}
|
|
192
|
+
if (process.arch === 'x64') {
|
|
193
|
+
try {
|
|
194
|
+
return require('./html-to-markdown-node.darwin-x64.node')
|
|
195
|
+
} catch (e) {
|
|
196
|
+
loadErrors.push(e)
|
|
197
|
+
}
|
|
198
|
+
try {
|
|
199
|
+
const binding = require('html-to-markdown-node-darwin-x64')
|
|
200
|
+
const bindingPackageVersion = require('html-to-markdown-node-darwin-x64/package.json').version
|
|
201
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
202
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
203
|
+
}
|
|
204
|
+
return binding
|
|
205
|
+
} catch (e) {
|
|
206
|
+
loadErrors.push(e)
|
|
207
|
+
}
|
|
208
|
+
} else if (process.arch === 'arm64') {
|
|
209
|
+
try {
|
|
210
|
+
return require('./html-to-markdown-node.darwin-arm64.node')
|
|
211
|
+
} catch (e) {
|
|
212
|
+
loadErrors.push(e)
|
|
213
|
+
}
|
|
214
|
+
try {
|
|
215
|
+
const binding = require('html-to-markdown-node-darwin-arm64')
|
|
216
|
+
const bindingPackageVersion = require('html-to-markdown-node-darwin-arm64/package.json').version
|
|
217
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
218
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
219
|
+
}
|
|
220
|
+
return binding
|
|
221
|
+
} catch (e) {
|
|
222
|
+
loadErrors.push(e)
|
|
223
|
+
}
|
|
224
|
+
} else {
|
|
225
|
+
loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`))
|
|
226
|
+
}
|
|
227
|
+
} else if (process.platform === 'freebsd') {
|
|
228
|
+
if (process.arch === 'x64') {
|
|
229
|
+
try {
|
|
230
|
+
return require('./html-to-markdown-node.freebsd-x64.node')
|
|
231
|
+
} catch (e) {
|
|
232
|
+
loadErrors.push(e)
|
|
233
|
+
}
|
|
234
|
+
try {
|
|
235
|
+
const binding = require('html-to-markdown-node-freebsd-x64')
|
|
236
|
+
const bindingPackageVersion = require('html-to-markdown-node-freebsd-x64/package.json').version
|
|
237
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
238
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
239
|
+
}
|
|
240
|
+
return binding
|
|
241
|
+
} catch (e) {
|
|
242
|
+
loadErrors.push(e)
|
|
243
|
+
}
|
|
244
|
+
} else if (process.arch === 'arm64') {
|
|
245
|
+
try {
|
|
246
|
+
return require('./html-to-markdown-node.freebsd-arm64.node')
|
|
247
|
+
} catch (e) {
|
|
248
|
+
loadErrors.push(e)
|
|
249
|
+
}
|
|
250
|
+
try {
|
|
251
|
+
const binding = require('html-to-markdown-node-freebsd-arm64')
|
|
252
|
+
const bindingPackageVersion = require('html-to-markdown-node-freebsd-arm64/package.json').version
|
|
253
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
254
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
255
|
+
}
|
|
256
|
+
return binding
|
|
257
|
+
} catch (e) {
|
|
258
|
+
loadErrors.push(e)
|
|
259
|
+
}
|
|
260
|
+
} else {
|
|
261
|
+
loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`))
|
|
262
|
+
}
|
|
263
|
+
} else if (process.platform === 'linux') {
|
|
264
|
+
if (process.arch === 'x64') {
|
|
265
|
+
if (isMusl()) {
|
|
266
|
+
try {
|
|
267
|
+
return require('./html-to-markdown-node.linux-x64-musl.node')
|
|
36
268
|
} catch (e) {
|
|
37
|
-
|
|
269
|
+
loadErrors.push(e)
|
|
38
270
|
}
|
|
39
|
-
break
|
|
40
|
-
case 'arm':
|
|
41
|
-
localFileExisted = existsSync(join(__dirname, 'html-to-markdown-node.android-arm-eabi.node'))
|
|
42
271
|
try {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
272
|
+
const binding = require('html-to-markdown-node-linux-x64-musl')
|
|
273
|
+
const bindingPackageVersion = require('html-to-markdown-node-linux-x64-musl/package.json').version
|
|
274
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
275
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
47
276
|
}
|
|
277
|
+
return binding
|
|
48
278
|
} catch (e) {
|
|
49
|
-
|
|
279
|
+
loadErrors.push(e)
|
|
50
280
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
break
|
|
56
|
-
case 'win32':
|
|
57
|
-
switch (arch) {
|
|
58
|
-
case 'x64':
|
|
59
|
-
localFileExisted = existsSync(
|
|
60
|
-
join(__dirname, 'html-to-markdown-node.win32-x64-msvc.node')
|
|
61
|
-
)
|
|
62
|
-
try {
|
|
63
|
-
if (localFileExisted) {
|
|
64
|
-
nativeBinding = require('./html-to-markdown-node.win32-x64-msvc.node')
|
|
65
|
-
} else {
|
|
66
|
-
nativeBinding = require('html-to-markdown-node-win32-x64-msvc')
|
|
67
|
-
}
|
|
281
|
+
} else {
|
|
282
|
+
try {
|
|
283
|
+
return require('./html-to-markdown-node.linux-x64-gnu.node')
|
|
68
284
|
} catch (e) {
|
|
69
|
-
|
|
285
|
+
loadErrors.push(e)
|
|
70
286
|
}
|
|
71
|
-
break
|
|
72
|
-
case 'ia32':
|
|
73
|
-
localFileExisted = existsSync(
|
|
74
|
-
join(__dirname, 'html-to-markdown-node.win32-ia32-msvc.node')
|
|
75
|
-
)
|
|
76
287
|
try {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
288
|
+
const binding = require('html-to-markdown-node-linux-x64-gnu')
|
|
289
|
+
const bindingPackageVersion = require('html-to-markdown-node-linux-x64-gnu/package.json').version
|
|
290
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
291
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
81
292
|
}
|
|
293
|
+
return binding
|
|
82
294
|
} catch (e) {
|
|
83
|
-
|
|
295
|
+
loadErrors.push(e)
|
|
84
296
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
join(__dirname, 'html-to-markdown-node.win32-arm64-msvc.node')
|
|
89
|
-
)
|
|
297
|
+
}
|
|
298
|
+
} else if (process.arch === 'arm64') {
|
|
299
|
+
if (isMusl()) {
|
|
90
300
|
try {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
301
|
+
return require('./html-to-markdown-node.linux-arm64-musl.node')
|
|
302
|
+
} catch (e) {
|
|
303
|
+
loadErrors.push(e)
|
|
304
|
+
}
|
|
305
|
+
try {
|
|
306
|
+
const binding = require('html-to-markdown-node-linux-arm64-musl')
|
|
307
|
+
const bindingPackageVersion = require('html-to-markdown-node-linux-arm64-musl/package.json').version
|
|
308
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
309
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
95
310
|
}
|
|
311
|
+
return binding
|
|
96
312
|
} catch (e) {
|
|
97
|
-
|
|
313
|
+
loadErrors.push(e)
|
|
98
314
|
}
|
|
99
|
-
break
|
|
100
|
-
default:
|
|
101
|
-
throw new Error(`Unsupported architecture on Windows: ${arch}`)
|
|
102
|
-
}
|
|
103
|
-
break
|
|
104
|
-
case 'darwin':
|
|
105
|
-
localFileExisted = existsSync(join(__dirname, 'html-to-markdown-node.darwin-universal.node'))
|
|
106
|
-
try {
|
|
107
|
-
if (localFileExisted) {
|
|
108
|
-
nativeBinding = require('./html-to-markdown-node.darwin-universal.node')
|
|
109
315
|
} else {
|
|
110
316
|
try {
|
|
111
|
-
|
|
112
|
-
} catch {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
nativeBinding = require('html-to-markdown-node-darwin-x64')
|
|
121
|
-
}
|
|
122
|
-
} catch (e) {
|
|
123
|
-
loadError = e
|
|
124
|
-
}
|
|
125
|
-
break
|
|
126
|
-
case 'arm64':
|
|
127
|
-
localFileExisted = existsSync(
|
|
128
|
-
join(__dirname, 'html-to-markdown-node.darwin-arm64.node')
|
|
129
|
-
)
|
|
130
|
-
try {
|
|
131
|
-
if (localFileExisted) {
|
|
132
|
-
nativeBinding = require('./html-to-markdown-node.darwin-arm64.node')
|
|
133
|
-
} else {
|
|
134
|
-
nativeBinding = require('html-to-markdown-node-darwin-arm64')
|
|
135
|
-
}
|
|
136
|
-
} catch (e) {
|
|
137
|
-
loadError = e
|
|
138
|
-
}
|
|
139
|
-
break
|
|
140
|
-
default:
|
|
141
|
-
throw new Error(`Unsupported architecture on macOS: ${arch}`)
|
|
317
|
+
return require('./html-to-markdown-node.linux-arm64-gnu.node')
|
|
318
|
+
} catch (e) {
|
|
319
|
+
loadErrors.push(e)
|
|
320
|
+
}
|
|
321
|
+
try {
|
|
322
|
+
const binding = require('html-to-markdown-node-linux-arm64-gnu')
|
|
323
|
+
const bindingPackageVersion = require('html-to-markdown-node-linux-arm64-gnu/package.json').version
|
|
324
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
325
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
142
326
|
}
|
|
327
|
+
return binding
|
|
328
|
+
} catch (e) {
|
|
329
|
+
loadErrors.push(e)
|
|
143
330
|
}
|
|
144
331
|
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
332
|
+
} else if (process.arch === 'arm') {
|
|
333
|
+
if (isMusl()) {
|
|
334
|
+
try {
|
|
335
|
+
return require('./html-to-markdown-node.linux-arm-musleabihf.node')
|
|
336
|
+
} catch (e) {
|
|
337
|
+
loadErrors.push(e)
|
|
338
|
+
}
|
|
339
|
+
try {
|
|
340
|
+
const binding = require('html-to-markdown-node-linux-arm-musleabihf')
|
|
341
|
+
const bindingPackageVersion = require('html-to-markdown-node-linux-arm-musleabihf/package.json').version
|
|
342
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
343
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
344
|
+
}
|
|
345
|
+
return binding
|
|
346
|
+
} catch (e) {
|
|
347
|
+
loadErrors.push(e)
|
|
348
|
+
}
|
|
157
349
|
} else {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
localFileExisted = existsSync(
|
|
169
|
-
join(__dirname, 'html-to-markdown-node.linux-x64-musl.node')
|
|
170
|
-
)
|
|
171
|
-
try {
|
|
172
|
-
if (localFileExisted) {
|
|
173
|
-
nativeBinding = require('./html-to-markdown-node.linux-x64-musl.node')
|
|
174
|
-
} else {
|
|
175
|
-
nativeBinding = require('html-to-markdown-node-linux-x64-musl')
|
|
176
|
-
}
|
|
177
|
-
} catch (e) {
|
|
178
|
-
loadError = e
|
|
350
|
+
try {
|
|
351
|
+
return require('./html-to-markdown-node.linux-arm-gnueabihf.node')
|
|
352
|
+
} catch (e) {
|
|
353
|
+
loadErrors.push(e)
|
|
354
|
+
}
|
|
355
|
+
try {
|
|
356
|
+
const binding = require('html-to-markdown-node-linux-arm-gnueabihf')
|
|
357
|
+
const bindingPackageVersion = require('html-to-markdown-node-linux-arm-gnueabihf/package.json').version
|
|
358
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
359
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
179
360
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
361
|
+
return binding
|
|
362
|
+
} catch (e) {
|
|
363
|
+
loadErrors.push(e)
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
} else if (process.arch === 'loong64') {
|
|
367
|
+
if (isMusl()) {
|
|
368
|
+
try {
|
|
369
|
+
return require('./html-to-markdown-node.linux-loong64-musl.node')
|
|
370
|
+
} catch (e) {
|
|
371
|
+
loadErrors.push(e)
|
|
372
|
+
}
|
|
373
|
+
try {
|
|
374
|
+
const binding = require('html-to-markdown-node-linux-loong64-musl')
|
|
375
|
+
const bindingPackageVersion = require('html-to-markdown-node-linux-loong64-musl/package.json').version
|
|
376
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
377
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
192
378
|
}
|
|
379
|
+
return binding
|
|
380
|
+
} catch (e) {
|
|
381
|
+
loadErrors.push(e)
|
|
193
382
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
}
|
|
206
|
-
} catch (e) {
|
|
207
|
-
loadError = e
|
|
383
|
+
} else {
|
|
384
|
+
try {
|
|
385
|
+
return require('./html-to-markdown-node.linux-loong64-gnu.node')
|
|
386
|
+
} catch (e) {
|
|
387
|
+
loadErrors.push(e)
|
|
388
|
+
}
|
|
389
|
+
try {
|
|
390
|
+
const binding = require('html-to-markdown-node-linux-loong64-gnu')
|
|
391
|
+
const bindingPackageVersion = require('html-to-markdown-node-linux-loong64-gnu/package.json').version
|
|
392
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
393
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
208
394
|
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
395
|
+
return binding
|
|
396
|
+
} catch (e) {
|
|
397
|
+
loadErrors.push(e)
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
} else if (process.arch === 'riscv64') {
|
|
401
|
+
if (isMusl()) {
|
|
402
|
+
try {
|
|
403
|
+
return require('./html-to-markdown-node.linux-riscv64-musl.node')
|
|
404
|
+
} catch (e) {
|
|
405
|
+
loadErrors.push(e)
|
|
406
|
+
}
|
|
407
|
+
try {
|
|
408
|
+
const binding = require('html-to-markdown-node-linux-riscv64-musl')
|
|
409
|
+
const bindingPackageVersion = require('html-to-markdown-node-linux-riscv64-musl/package.json').version
|
|
410
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
411
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
221
412
|
}
|
|
413
|
+
return binding
|
|
414
|
+
} catch (e) {
|
|
415
|
+
loadErrors.push(e)
|
|
416
|
+
}
|
|
417
|
+
} else {
|
|
418
|
+
try {
|
|
419
|
+
return require('./html-to-markdown-node.linux-riscv64-gnu.node')
|
|
420
|
+
} catch (e) {
|
|
421
|
+
loadErrors.push(e)
|
|
222
422
|
}
|
|
223
|
-
break
|
|
224
|
-
case 'arm':
|
|
225
|
-
localFileExisted = existsSync(
|
|
226
|
-
join(__dirname, 'html-to-markdown-node.linux-arm-gnueabihf.node')
|
|
227
|
-
)
|
|
228
423
|
try {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
424
|
+
const binding = require('html-to-markdown-node-linux-riscv64-gnu')
|
|
425
|
+
const bindingPackageVersion = require('html-to-markdown-node-linux-riscv64-gnu/package.json').version
|
|
426
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
427
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
233
428
|
}
|
|
429
|
+
return binding
|
|
234
430
|
} catch (e) {
|
|
235
|
-
|
|
431
|
+
loadErrors.push(e)
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
} else if (process.arch === 'ppc64') {
|
|
435
|
+
try {
|
|
436
|
+
return require('./html-to-markdown-node.linux-ppc64-gnu.node')
|
|
437
|
+
} catch (e) {
|
|
438
|
+
loadErrors.push(e)
|
|
439
|
+
}
|
|
440
|
+
try {
|
|
441
|
+
const binding = require('html-to-markdown-node-linux-ppc64-gnu')
|
|
442
|
+
const bindingPackageVersion = require('html-to-markdown-node-linux-ppc64-gnu/package.json').version
|
|
443
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
444
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
445
|
+
}
|
|
446
|
+
return binding
|
|
447
|
+
} catch (e) {
|
|
448
|
+
loadErrors.push(e)
|
|
449
|
+
}
|
|
450
|
+
} else if (process.arch === 's390x') {
|
|
451
|
+
try {
|
|
452
|
+
return require('./html-to-markdown-node.linux-s390x-gnu.node')
|
|
453
|
+
} catch (e) {
|
|
454
|
+
loadErrors.push(e)
|
|
455
|
+
}
|
|
456
|
+
try {
|
|
457
|
+
const binding = require('html-to-markdown-node-linux-s390x-gnu')
|
|
458
|
+
const bindingPackageVersion = require('html-to-markdown-node-linux-s390x-gnu/package.json').version
|
|
459
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
460
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
461
|
+
}
|
|
462
|
+
return binding
|
|
463
|
+
} catch (e) {
|
|
464
|
+
loadErrors.push(e)
|
|
465
|
+
}
|
|
466
|
+
} else {
|
|
467
|
+
loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`))
|
|
468
|
+
}
|
|
469
|
+
} else if (process.platform === 'openharmony') {
|
|
470
|
+
if (process.arch === 'arm64') {
|
|
471
|
+
try {
|
|
472
|
+
return require('./html-to-markdown-node.openharmony-arm64.node')
|
|
473
|
+
} catch (e) {
|
|
474
|
+
loadErrors.push(e)
|
|
475
|
+
}
|
|
476
|
+
try {
|
|
477
|
+
const binding = require('html-to-markdown-node-openharmony-arm64')
|
|
478
|
+
const bindingPackageVersion = require('html-to-markdown-node-openharmony-arm64/package.json').version
|
|
479
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
480
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
481
|
+
}
|
|
482
|
+
return binding
|
|
483
|
+
} catch (e) {
|
|
484
|
+
loadErrors.push(e)
|
|
485
|
+
}
|
|
486
|
+
} else if (process.arch === 'x64') {
|
|
487
|
+
try {
|
|
488
|
+
return require('./html-to-markdown-node.openharmony-x64.node')
|
|
489
|
+
} catch (e) {
|
|
490
|
+
loadErrors.push(e)
|
|
491
|
+
}
|
|
492
|
+
try {
|
|
493
|
+
const binding = require('html-to-markdown-node-openharmony-x64')
|
|
494
|
+
const bindingPackageVersion = require('html-to-markdown-node-openharmony-x64/package.json').version
|
|
495
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
496
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
497
|
+
}
|
|
498
|
+
return binding
|
|
499
|
+
} catch (e) {
|
|
500
|
+
loadErrors.push(e)
|
|
501
|
+
}
|
|
502
|
+
} else if (process.arch === 'arm') {
|
|
503
|
+
try {
|
|
504
|
+
return require('./html-to-markdown-node.openharmony-arm.node')
|
|
505
|
+
} catch (e) {
|
|
506
|
+
loadErrors.push(e)
|
|
507
|
+
}
|
|
508
|
+
try {
|
|
509
|
+
const binding = require('html-to-markdown-node-openharmony-arm')
|
|
510
|
+
const bindingPackageVersion = require('html-to-markdown-node-openharmony-arm/package.json').version
|
|
511
|
+
if (bindingPackageVersion !== '2.7.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
512
|
+
throw new Error(`Native binding package version mismatch, expected 2.7.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
236
513
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
514
|
+
return binding
|
|
515
|
+
} catch (e) {
|
|
516
|
+
loadErrors.push(e)
|
|
517
|
+
}
|
|
518
|
+
} else {
|
|
519
|
+
loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`))
|
|
240
520
|
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
521
|
+
} else {
|
|
522
|
+
loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`))
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
nativeBinding = requireNative()
|
|
527
|
+
|
|
528
|
+
if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
|
|
529
|
+
let wasiBinding = null
|
|
530
|
+
let wasiBindingError = null
|
|
531
|
+
try {
|
|
532
|
+
wasiBinding = require('./html-to-markdown-node.wasi.cjs')
|
|
533
|
+
nativeBinding = wasiBinding
|
|
534
|
+
} catch (err) {
|
|
535
|
+
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
536
|
+
wasiBindingError = err
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
if (!nativeBinding) {
|
|
540
|
+
try {
|
|
541
|
+
wasiBinding = require('html-to-markdown-node-wasm32-wasi')
|
|
542
|
+
nativeBinding = wasiBinding
|
|
543
|
+
} catch (err) {
|
|
544
|
+
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
545
|
+
wasiBindingError.cause = err
|
|
546
|
+
loadErrors.push(err)
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
if (process.env.NAPI_RS_FORCE_WASI === 'error' && !wasiBinding) {
|
|
551
|
+
const error = new Error('WASI binding not found and NAPI_RS_FORCE_WASI is set to error')
|
|
552
|
+
error.cause = wasiBindingError
|
|
553
|
+
throw error
|
|
554
|
+
}
|
|
244
555
|
}
|
|
245
556
|
|
|
246
557
|
if (!nativeBinding) {
|
|
247
|
-
if (
|
|
248
|
-
throw
|
|
558
|
+
if (loadErrors.length > 0) {
|
|
559
|
+
throw new Error(
|
|
560
|
+
`Cannot find native binding. ` +
|
|
561
|
+
`npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). ` +
|
|
562
|
+
'Please try `npm i` again after removing both package-lock.json and node_modules directory.',
|
|
563
|
+
{
|
|
564
|
+
cause: loadErrors.reduce((err, cur) => {
|
|
565
|
+
cur.cause = err
|
|
566
|
+
return cur
|
|
567
|
+
}),
|
|
568
|
+
},
|
|
569
|
+
)
|
|
249
570
|
}
|
|
250
571
|
throw new Error(`Failed to load native binding`)
|
|
251
572
|
}
|
|
252
573
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
module.exports.
|
|
574
|
+
module.exports = nativeBinding
|
|
575
|
+
module.exports.convert = nativeBinding.convert
|
|
576
|
+
module.exports.convertBuffer = nativeBinding.convertBuffer
|
|
577
|
+
module.exports.convertBufferWithOptionsHandle = nativeBinding.convertBufferWithOptionsHandle
|
|
578
|
+
module.exports.convertInlineImagesBuffer = nativeBinding.convertInlineImagesBuffer
|
|
579
|
+
module.exports.convertWithInlineImages = nativeBinding.convertWithInlineImages
|
|
580
|
+
module.exports.convertWithOptionsHandle = nativeBinding.convertWithOptionsHandle
|
|
581
|
+
module.exports.createConversionOptionsHandle = nativeBinding.createConversionOptionsHandle
|
|
582
|
+
module.exports.JsCodeBlockStyle = nativeBinding.JsCodeBlockStyle
|
|
583
|
+
module.exports.JsHeadingStyle = nativeBinding.JsHeadingStyle
|
|
584
|
+
module.exports.JsHighlightStyle = nativeBinding.JsHighlightStyle
|
|
585
|
+
module.exports.JsListIndentType = nativeBinding.JsListIndentType
|
|
586
|
+
module.exports.JsNewlineStyle = nativeBinding.JsNewlineStyle
|
|
587
|
+
module.exports.JsPreprocessingPreset = nativeBinding.JsPreprocessingPreset
|
|
588
|
+
module.exports.JsWhitespaceMode = nativeBinding.JsWhitespaceMode
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "html-to-markdown-node",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "High-performance HTML to Markdown converter - Node.js native bindings",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -48,7 +48,6 @@
|
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@napi-rs/cli": "^3.4.1",
|
|
50
50
|
"@types/node": "^24.10.0",
|
|
51
|
-
"tinybench": "^5.1.0",
|
|
52
51
|
"tsx": "^4.20.6",
|
|
53
52
|
"vitest": "^4.0.8"
|
|
54
53
|
},
|
|
@@ -59,15 +58,15 @@
|
|
|
59
58
|
"up": "^1.0.2"
|
|
60
59
|
},
|
|
61
60
|
"optionalDependencies": {
|
|
62
|
-
"html-to-markdown-node-darwin-x64": "2.
|
|
63
|
-
"html-to-markdown-node-darwin-arm64": "2.
|
|
64
|
-
"html-to-markdown-node-win32-x64-msvc": "2.
|
|
65
|
-
"html-to-markdown-node-win32-arm64-msvc": "2.
|
|
66
|
-
"html-to-markdown-node-linux-x64-gnu": "2.
|
|
67
|
-
"html-to-markdown-node-linux-x64-musl": "2.
|
|
68
|
-
"html-to-markdown-node-linux-arm64-gnu": "2.
|
|
69
|
-
"html-to-markdown-node-linux-arm64-musl": "2.
|
|
70
|
-
"html-to-markdown-node-linux-arm-gnueabihf": "2.
|
|
61
|
+
"html-to-markdown-node-darwin-x64": "2.7.0",
|
|
62
|
+
"html-to-markdown-node-darwin-arm64": "2.7.0",
|
|
63
|
+
"html-to-markdown-node-win32-x64-msvc": "2.7.0",
|
|
64
|
+
"html-to-markdown-node-win32-arm64-msvc": "2.7.0",
|
|
65
|
+
"html-to-markdown-node-linux-x64-gnu": "2.7.0",
|
|
66
|
+
"html-to-markdown-node-linux-x64-musl": "2.7.0",
|
|
67
|
+
"html-to-markdown-node-linux-arm64-gnu": "2.7.0",
|
|
68
|
+
"html-to-markdown-node-linux-arm64-musl": "2.7.0",
|
|
69
|
+
"html-to-markdown-node-linux-arm-gnueabihf": "2.7.0"
|
|
71
70
|
},
|
|
72
71
|
"scripts": {
|
|
73
72
|
"artifacts": "napi artifacts",
|
|
@@ -76,7 +75,6 @@
|
|
|
76
75
|
"test": "vitest run",
|
|
77
76
|
"test:watch": "vitest",
|
|
78
77
|
"test:simple": "node test.js",
|
|
79
|
-
"bench": "tsx benchmark.ts",
|
|
80
78
|
"universal": "napi universal",
|
|
81
79
|
"version": "napi version",
|
|
82
80
|
"clean": "rm -rf dist node_modules *.node"
|