@css-inline/css-inline 0.17.0 → 0.19.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 +23 -7
- package/index.d.ts +4 -0
- package/js-binding.d.ts +18 -11
- package/js-binding.js +522 -219
- package/package.json +30 -29
package/README.md
CHANGED
|
@@ -40,7 +40,7 @@ into:
|
|
|
40
40
|
- Optionally caches external stylesheets
|
|
41
41
|
- Works on Linux, Windows, and macOS
|
|
42
42
|
- Supports HTML5 & CSS3
|
|
43
|
-
- Tested on Node.js
|
|
43
|
+
- Tested on Node.js 20 & 22.
|
|
44
44
|
|
|
45
45
|
## Playground
|
|
46
46
|
|
|
@@ -117,11 +117,13 @@ var inlined = inlineFragment(
|
|
|
117
117
|
- `keepStyleTags`. Specifies whether to keep "style" tags after inlining. Default: `false`
|
|
118
118
|
- `keepLinkTags`. Specifies whether to keep "link" tags after inlining. Default: `false`
|
|
119
119
|
- `keepAtRules`. Specifies whether to keep "at-rules" (starting with `@`) after inlining. Default: `false`
|
|
120
|
+
- `minifyCss`. Specifies whether to remove trailing semicolons and spaces between properties and values. Default: `false`
|
|
120
121
|
- `baseUrl`. The base URL used to resolve relative URLs. If you'd like to load stylesheets from your filesystem, use the `file://` scheme. Default: `null`
|
|
121
122
|
- `loadRemoteStylesheets`. Specifies whether remote stylesheets should be loaded. Default: `true`
|
|
122
123
|
- `cache`. Specifies caching options for external stylesheets (for example, `{size: 5}`). Default: `null`
|
|
123
124
|
- `extraCss`. Extra CSS to be inlined. Default: `null`
|
|
124
125
|
- `preallocateNodeCapacity`. **Advanced**. Preallocates capacity for HTML nodes during parsing. This can improve performance when you have an estimate of the number of nodes in your HTML document. Default: `32`
|
|
126
|
+
- `removeInlinedSelectors`. Specifies whether to remove selectors that were successfully inlined from `<style>` blocks. Default: `false`
|
|
125
127
|
|
|
126
128
|
You can also skip CSS inlining for an HTML tag by adding the `data-css-inline="ignore"` attribute to it:
|
|
127
129
|
|
|
@@ -177,6 +179,19 @@ Such tags will be kept in the resulting HTML even if the `keep_style_tags` optio
|
|
|
177
179
|
</body>
|
|
178
180
|
```
|
|
179
181
|
|
|
182
|
+
If you set the the `minify_css` option to `true`, the inlined styles will be minified by removing trailing semicolons
|
|
183
|
+
and spaces between properties and values.
|
|
184
|
+
|
|
185
|
+
```html
|
|
186
|
+
<head>
|
|
187
|
+
<!-- With minify_css=true, the <h1> will have `style="color:blue;font-weight:bold"` -->
|
|
188
|
+
<style>h1 { color: blue; font-weight: bold; }</style>
|
|
189
|
+
</head>
|
|
190
|
+
<body>
|
|
191
|
+
<h1>Big Text</h1>
|
|
192
|
+
</body>
|
|
193
|
+
```
|
|
194
|
+
|
|
180
195
|
You can also cache external stylesheets to avoid excessive network requests:
|
|
181
196
|
|
|
182
197
|
```typescript
|
|
@@ -232,15 +247,16 @@ Most of the time it achieves over a **3x** speed advantage compared to the next
|
|
|
232
247
|
|
|
233
248
|
Here is the performance comparison:
|
|
234
249
|
|
|
235
|
-
| | Size | `css-inline
|
|
236
|
-
|
|
237
|
-
| Basic | 230 B |
|
|
238
|
-
| Realistic-1 | 8.58 KB |
|
|
239
|
-
| Realistic-2 | 4.3 KB |
|
|
250
|
+
| | Size | `css-inline`| `css-inline-wasm` | `juice` | `inline-css` |
|
|
251
|
+
|-------------|---------|-------------|----------------------|-------------------------|-------------------------|
|
|
252
|
+
| Basic | 230 B | 8.37 µs | 15.96 µs (**1.91x**) | 42.32 µs (**5.06x**) | 80.85 µs (**9.66x**) |
|
|
253
|
+
| Realistic-1 | 8.58 KB | 168.95 µs | 344.59 µs (**2.04x**)| 524.38 µs (**3.10x**) | 1.15 ms (**6.78x**) |
|
|
254
|
+
| Realistic-2 | 4.3 KB | 90.36 µs | 180.31 µs (**2.00x**)| 634.52 µs (**7.02x**) | 898.47 µs (**9.94x**) |
|
|
255
|
+
| GitHub page | 1.81 MB | 62.31 ms | 117.81 ms (**1.89x**)| 1.55 s (**24.82x**) | 312.54 ms (**5.02x**) |
|
|
240
256
|
|
|
241
257
|
The "Basic" case was obtained from benchmarking the example from the Usage section.
|
|
242
258
|
|
|
243
|
-
The benchmarking code is available in the `benches/bench.ts` file. The benchmarks were conducted using the stable `rustc 1.
|
|
259
|
+
The benchmarking code is available in the `benches/bench.ts` file. The benchmarks were conducted using the stable `rustc 1.91` on Node.js `v22.21.1`.
|
|
244
260
|
|
|
245
261
|
## License
|
|
246
262
|
|
package/index.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export interface Options {
|
|
|
20
20
|
keepLinkTags?: boolean
|
|
21
21
|
/** Keep "at-rules" after inlining. */
|
|
22
22
|
keepAtRules?: boolean
|
|
23
|
+
/** Remove trailing semicolons and spaces between properties and values. */
|
|
24
|
+
minifyCss?: boolean
|
|
23
25
|
/** Used for loading external stylesheets via relative URLs. */
|
|
24
26
|
baseUrl?: string
|
|
25
27
|
/** Whether remote stylesheets should be loaded or not. */
|
|
@@ -33,6 +35,8 @@ export interface Options {
|
|
|
33
35
|
* It can improve performance when you have an estimate of the number of nodes in your HTML document.
|
|
34
36
|
*/
|
|
35
37
|
preallocateNodeCapacity?: number
|
|
38
|
+
/** Remove selectors that were successfully inlined from inline `<style>` blocks. */
|
|
39
|
+
removeInlinedSelectors?: boolean
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
export interface StylesheetCache {
|
package/js-binding.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
/*
|
|
1
|
+
/* auto-generated by NAPI-RS */
|
|
2
2
|
/* eslint-disable */
|
|
3
|
+
/** Inline CSS styles from <style> tags to matching elements in the HTML tree and return a string. */
|
|
4
|
+
export declare function inline(html: string, options?: Options | undefined | null): string
|
|
3
5
|
|
|
4
|
-
|
|
6
|
+
/** Inline CSS styles into an HTML fragment. */
|
|
7
|
+
export declare function inlineFragment(html: string, css: string, options?: Options | undefined | null): string
|
|
5
8
|
|
|
6
|
-
export interface StylesheetCache {
|
|
7
|
-
/** Cache size. */
|
|
8
|
-
size: number
|
|
9
|
-
}
|
|
10
9
|
export interface Options {
|
|
11
10
|
/**
|
|
12
11
|
* Whether to inline CSS from "style" tags.
|
|
@@ -19,6 +18,10 @@ export interface Options {
|
|
|
19
18
|
keepStyleTags?: boolean
|
|
20
19
|
/** Keep "link" tags after inlining. */
|
|
21
20
|
keepLinkTags?: boolean
|
|
21
|
+
/** Keep "at-rules" after inlining. */
|
|
22
|
+
keepAtRules?: boolean
|
|
23
|
+
/** Remove trailing semicolons and spaces between properties and values. */
|
|
24
|
+
minifyCss?: boolean
|
|
22
25
|
/** Used for loading external stylesheets via relative URLs. */
|
|
23
26
|
baseUrl?: string
|
|
24
27
|
/** Whether remote stylesheets should be loaded or not. */
|
|
@@ -32,10 +35,14 @@ export interface Options {
|
|
|
32
35
|
* It can improve performance when you have an estimate of the number of nodes in your HTML document.
|
|
33
36
|
*/
|
|
34
37
|
preallocateNodeCapacity?: number
|
|
38
|
+
/** Remove selectors that were successfully inlined from inline `<style>` blocks. */
|
|
39
|
+
removeInlinedSelectors?: boolean
|
|
35
40
|
}
|
|
36
|
-
|
|
37
|
-
export
|
|
38
|
-
/**
|
|
39
|
-
|
|
41
|
+
|
|
42
|
+
export interface StylesheetCache {
|
|
43
|
+
/** Cache size. */
|
|
44
|
+
size: number
|
|
45
|
+
}
|
|
46
|
+
|
|
40
47
|
/** Get the package version. */
|
|
41
|
-
export function version(): string
|
|
48
|
+
export declare function version(): string
|
package/js-binding.js
CHANGED
|
@@ -1,274 +1,577 @@
|
|
|
1
|
-
|
|
1
|
+
// prettier-ignore
|
|
2
2
|
/* eslint-disable */
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
// @ts-nocheck
|
|
5
4
|
/* auto-generated by NAPI-RS */
|
|
6
5
|
|
|
7
|
-
const {
|
|
8
|
-
|
|
6
|
+
const { readFileSync } = require('node:fs')
|
|
7
|
+
let nativeBinding = null
|
|
8
|
+
const loadErrors = []
|
|
9
9
|
|
|
10
|
-
const
|
|
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
|
+
}
|
|
11
23
|
|
|
12
|
-
|
|
13
|
-
let localFileExisted = false
|
|
14
|
-
let loadError = null
|
|
24
|
+
const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
|
|
15
25
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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)) {
|
|
23
48
|
return true
|
|
24
49
|
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
50
|
+
}
|
|
51
|
+
return false
|
|
52
|
+
}
|
|
53
|
+
|
|
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
|
|
28
60
|
}
|
|
29
61
|
}
|
|
30
62
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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('./css-inline.android-arm64.node')
|
|
74
|
+
} catch (e) {
|
|
75
|
+
loadErrors.push(e)
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
const binding = require('@css-inline/css-inline-android-arm64')
|
|
79
|
+
const bindingPackageVersion = require('@css-inline/css-inline-android-arm64/package.json').version
|
|
80
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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('./css-inline.android-arm-eabi.node')
|
|
90
|
+
} catch (e) {
|
|
91
|
+
loadErrors.push(e)
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
const binding = require('@css-inline/css-inline-android-arm-eabi')
|
|
95
|
+
const bindingPackageVersion = require('@css-inline/css-inline-android-arm-eabi/package.json').version
|
|
96
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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') {
|
|
36
109
|
try {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
110
|
+
return require('./css-inline.win32-x64-gnu.node')
|
|
111
|
+
} catch (e) {
|
|
112
|
+
loadErrors.push(e)
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const binding = require('@css-inline/css-inline-win32-x64-gnu')
|
|
116
|
+
const bindingPackageVersion = require('@css-inline/css-inline-win32-x64-gnu/package.json').version
|
|
117
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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('./css-inline.win32-x64-msvc.node')
|
|
127
|
+
} catch (e) {
|
|
128
|
+
loadErrors.push(e)
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
const binding = require('@css-inline/css-inline-win32-x64-msvc')
|
|
132
|
+
const bindingPackageVersion = require('@css-inline/css-inline-win32-x64-msvc/package.json').version
|
|
133
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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('./css-inline.win32-ia32-msvc.node')
|
|
144
|
+
} catch (e) {
|
|
145
|
+
loadErrors.push(e)
|
|
146
|
+
}
|
|
147
|
+
try {
|
|
148
|
+
const binding = require('@css-inline/css-inline-win32-ia32-msvc')
|
|
149
|
+
const bindingPackageVersion = require('@css-inline/css-inline-win32-ia32-msvc/package.json').version
|
|
150
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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('./css-inline.win32-arm64-msvc.node')
|
|
160
|
+
} catch (e) {
|
|
161
|
+
loadErrors.push(e)
|
|
162
|
+
}
|
|
163
|
+
try {
|
|
164
|
+
const binding = require('@css-inline/css-inline-win32-arm64-msvc')
|
|
165
|
+
const bindingPackageVersion = require('@css-inline/css-inline-win32-arm64-msvc/package.json').version
|
|
166
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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('./css-inline.darwin-universal.node')
|
|
179
|
+
} catch (e) {
|
|
180
|
+
loadErrors.push(e)
|
|
181
|
+
}
|
|
182
|
+
try {
|
|
183
|
+
const binding = require('@css-inline/css-inline-darwin-universal')
|
|
184
|
+
const bindingPackageVersion = require('@css-inline/css-inline-darwin-universal/package.json').version
|
|
185
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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('./css-inline.darwin-x64.node')
|
|
195
|
+
} catch (e) {
|
|
196
|
+
loadErrors.push(e)
|
|
197
|
+
}
|
|
198
|
+
try {
|
|
199
|
+
const binding = require('@css-inline/css-inline-darwin-x64')
|
|
200
|
+
const bindingPackageVersion = require('@css-inline/css-inline-darwin-x64/package.json').version
|
|
201
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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('./css-inline.darwin-arm64.node')
|
|
211
|
+
} catch (e) {
|
|
212
|
+
loadErrors.push(e)
|
|
213
|
+
}
|
|
214
|
+
try {
|
|
215
|
+
const binding = require('@css-inline/css-inline-darwin-arm64')
|
|
216
|
+
const bindingPackageVersion = require('@css-inline/css-inline-darwin-arm64/package.json').version
|
|
217
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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('./css-inline.freebsd-x64.node')
|
|
231
|
+
} catch (e) {
|
|
232
|
+
loadErrors.push(e)
|
|
233
|
+
}
|
|
234
|
+
try {
|
|
235
|
+
const binding = require('@css-inline/css-inline-freebsd-x64')
|
|
236
|
+
const bindingPackageVersion = require('@css-inline/css-inline-freebsd-x64/package.json').version
|
|
237
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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('./css-inline.freebsd-arm64.node')
|
|
247
|
+
} catch (e) {
|
|
248
|
+
loadErrors.push(e)
|
|
249
|
+
}
|
|
250
|
+
try {
|
|
251
|
+
const binding = require('@css-inline/css-inline-freebsd-arm64')
|
|
252
|
+
const bindingPackageVersion = require('@css-inline/css-inline-freebsd-arm64/package.json').version
|
|
253
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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('./css-inline.linux-x64-musl.node')
|
|
42
268
|
} catch (e) {
|
|
43
|
-
|
|
269
|
+
loadErrors.push(e)
|
|
44
270
|
}
|
|
45
|
-
break
|
|
46
|
-
case 'arm':
|
|
47
|
-
localFileExisted = existsSync(join(__dirname, 'css-inline.android-arm-eabi.node'))
|
|
48
271
|
try {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
272
|
+
const binding = require('@css-inline/css-inline-linux-x64-musl')
|
|
273
|
+
const bindingPackageVersion = require('@css-inline/css-inline-linux-x64-musl/package.json').version
|
|
274
|
+
if (bindingPackageVersion !== '0.18.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 0.18.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
53
276
|
}
|
|
277
|
+
return binding
|
|
54
278
|
} catch (e) {
|
|
55
|
-
|
|
279
|
+
loadErrors.push(e)
|
|
56
280
|
}
|
|
57
|
-
|
|
58
|
-
default:
|
|
59
|
-
throw new Error(`Unsupported architecture on Android ${arch}`)
|
|
60
|
-
}
|
|
61
|
-
break
|
|
62
|
-
case 'win32':
|
|
63
|
-
switch (arch) {
|
|
64
|
-
case 'x64':
|
|
65
|
-
localFileExisted = existsSync(
|
|
66
|
-
join(__dirname, 'css-inline.win32-x64-msvc.node')
|
|
67
|
-
)
|
|
281
|
+
} else {
|
|
68
282
|
try {
|
|
69
|
-
|
|
70
|
-
nativeBinding = require('./css-inline.win32-x64-msvc.node')
|
|
71
|
-
} else {
|
|
72
|
-
nativeBinding = require('@css-inline/css-inline-win32-x64-msvc')
|
|
73
|
-
}
|
|
283
|
+
return require('./css-inline.linux-x64-gnu.node')
|
|
74
284
|
} catch (e) {
|
|
75
|
-
|
|
285
|
+
loadErrors.push(e)
|
|
76
286
|
}
|
|
77
|
-
break
|
|
78
|
-
case 'ia32':
|
|
79
|
-
localFileExisted = existsSync(
|
|
80
|
-
join(__dirname, 'css-inline.win32-ia32-msvc.node')
|
|
81
|
-
)
|
|
82
287
|
try {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
288
|
+
const binding = require('@css-inline/css-inline-linux-x64-gnu')
|
|
289
|
+
const bindingPackageVersion = require('@css-inline/css-inline-linux-x64-gnu/package.json').version
|
|
290
|
+
if (bindingPackageVersion !== '0.18.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 0.18.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
87
292
|
}
|
|
293
|
+
return binding
|
|
88
294
|
} catch (e) {
|
|
89
|
-
|
|
295
|
+
loadErrors.push(e)
|
|
90
296
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
join(__dirname, 'css-inline.win32-arm64-msvc.node')
|
|
95
|
-
)
|
|
297
|
+
}
|
|
298
|
+
} else if (process.arch === 'arm64') {
|
|
299
|
+
if (isMusl()) {
|
|
96
300
|
try {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
301
|
+
return require('./css-inline.linux-arm64-musl.node')
|
|
302
|
+
} catch (e) {
|
|
303
|
+
loadErrors.push(e)
|
|
304
|
+
}
|
|
305
|
+
try {
|
|
306
|
+
const binding = require('@css-inline/css-inline-linux-arm64-musl')
|
|
307
|
+
const bindingPackageVersion = require('@css-inline/css-inline-linux-arm64-musl/package.json').version
|
|
308
|
+
if (bindingPackageVersion !== '0.18.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 0.18.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
101
310
|
}
|
|
311
|
+
return binding
|
|
102
312
|
} catch (e) {
|
|
103
|
-
|
|
313
|
+
loadErrors.push(e)
|
|
104
314
|
}
|
|
105
|
-
break
|
|
106
|
-
default:
|
|
107
|
-
throw new Error(`Unsupported architecture on Windows: ${arch}`)
|
|
108
|
-
}
|
|
109
|
-
break
|
|
110
|
-
case 'darwin':
|
|
111
|
-
localFileExisted = existsSync(join(__dirname, 'css-inline.darwin-universal.node'))
|
|
112
|
-
try {
|
|
113
|
-
if (localFileExisted) {
|
|
114
|
-
nativeBinding = require('./css-inline.darwin-universal.node')
|
|
115
315
|
} else {
|
|
116
|
-
nativeBinding = require('@css-inline/css-inline-darwin-universal')
|
|
117
|
-
}
|
|
118
|
-
break
|
|
119
|
-
} catch {}
|
|
120
|
-
switch (arch) {
|
|
121
|
-
case 'x64':
|
|
122
|
-
localFileExisted = existsSync(join(__dirname, 'css-inline.darwin-x64.node'))
|
|
123
316
|
try {
|
|
124
|
-
|
|
125
|
-
nativeBinding = require('./css-inline.darwin-x64.node')
|
|
126
|
-
} else {
|
|
127
|
-
nativeBinding = require('@css-inline/css-inline-darwin-x64')
|
|
128
|
-
}
|
|
317
|
+
return require('./css-inline.linux-arm64-gnu.node')
|
|
129
318
|
} catch (e) {
|
|
130
|
-
|
|
319
|
+
loadErrors.push(e)
|
|
131
320
|
}
|
|
132
|
-
break
|
|
133
|
-
case 'arm64':
|
|
134
|
-
localFileExisted = existsSync(
|
|
135
|
-
join(__dirname, 'css-inline.darwin-arm64.node')
|
|
136
|
-
)
|
|
137
321
|
try {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
322
|
+
const binding = require('@css-inline/css-inline-linux-arm64-gnu')
|
|
323
|
+
const bindingPackageVersion = require('@css-inline/css-inline-linux-arm64-gnu/package.json').version
|
|
324
|
+
if (bindingPackageVersion !== '0.18.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 0.18.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
142
326
|
}
|
|
327
|
+
return binding
|
|
143
328
|
} catch (e) {
|
|
144
|
-
|
|
329
|
+
loadErrors.push(e)
|
|
145
330
|
}
|
|
146
|
-
break
|
|
147
|
-
default:
|
|
148
|
-
throw new Error(`Unsupported architecture on macOS: ${arch}`)
|
|
149
|
-
}
|
|
150
|
-
break
|
|
151
|
-
case 'freebsd':
|
|
152
|
-
if (arch !== 'x64') {
|
|
153
|
-
throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
|
|
154
|
-
}
|
|
155
|
-
localFileExisted = existsSync(join(__dirname, 'css-inline.freebsd-x64.node'))
|
|
156
|
-
try {
|
|
157
|
-
if (localFileExisted) {
|
|
158
|
-
nativeBinding = require('./css-inline.freebsd-x64.node')
|
|
159
|
-
} else {
|
|
160
|
-
nativeBinding = require('@css-inline/css-inline-freebsd-x64')
|
|
161
331
|
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
)
|
|
173
|
-
|
|
174
|
-
if (localFileExisted) {
|
|
175
|
-
nativeBinding = require('./css-inline.linux-x64-musl.node')
|
|
176
|
-
} else {
|
|
177
|
-
nativeBinding = require('@css-inline/css-inline-linux-x64-musl')
|
|
178
|
-
}
|
|
179
|
-
} catch (e) {
|
|
180
|
-
loadError = e
|
|
332
|
+
} else if (process.arch === 'arm') {
|
|
333
|
+
if (isMusl()) {
|
|
334
|
+
try {
|
|
335
|
+
return require('./css-inline.linux-arm-musleabihf.node')
|
|
336
|
+
} catch (e) {
|
|
337
|
+
loadErrors.push(e)
|
|
338
|
+
}
|
|
339
|
+
try {
|
|
340
|
+
const binding = require('@css-inline/css-inline-linux-arm-musleabihf')
|
|
341
|
+
const bindingPackageVersion = require('@css-inline/css-inline-linux-arm-musleabihf/package.json').version
|
|
342
|
+
if (bindingPackageVersion !== '0.18.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 0.18.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
181
344
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
345
|
+
return binding
|
|
346
|
+
} catch (e) {
|
|
347
|
+
loadErrors.push(e)
|
|
348
|
+
}
|
|
349
|
+
} else {
|
|
350
|
+
try {
|
|
351
|
+
return require('./css-inline.linux-arm-gnueabihf.node')
|
|
352
|
+
} catch (e) {
|
|
353
|
+
loadErrors.push(e)
|
|
354
|
+
}
|
|
355
|
+
try {
|
|
356
|
+
const binding = require('@css-inline/css-inline-linux-arm-gnueabihf')
|
|
357
|
+
const bindingPackageVersion = require('@css-inline/css-inline-linux-arm-gnueabihf/package.json').version
|
|
358
|
+
if (bindingPackageVersion !== '0.18.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 0.18.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
194
360
|
}
|
|
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('./css-inline.linux-loong64-musl.node')
|
|
370
|
+
} catch (e) {
|
|
371
|
+
loadErrors.push(e)
|
|
195
372
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
)
|
|
202
|
-
try {
|
|
203
|
-
if (localFileExisted) {
|
|
204
|
-
nativeBinding = require('./css-inline.linux-arm64-musl.node')
|
|
205
|
-
} else {
|
|
206
|
-
nativeBinding = require('@css-inline/css-inline-linux-arm64-musl')
|
|
207
|
-
}
|
|
208
|
-
} catch (e) {
|
|
209
|
-
loadError = e
|
|
373
|
+
try {
|
|
374
|
+
const binding = require('@css-inline/css-inline-linux-loong64-musl')
|
|
375
|
+
const bindingPackageVersion = require('@css-inline/css-inline-linux-loong64-musl/package.json').version
|
|
376
|
+
if (bindingPackageVersion !== '0.18.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 0.18.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
210
378
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
379
|
+
return binding
|
|
380
|
+
} catch (e) {
|
|
381
|
+
loadErrors.push(e)
|
|
382
|
+
}
|
|
383
|
+
} else {
|
|
384
|
+
try {
|
|
385
|
+
return require('./css-inline.linux-loong64-gnu.node')
|
|
386
|
+
} catch (e) {
|
|
387
|
+
loadErrors.push(e)
|
|
388
|
+
}
|
|
389
|
+
try {
|
|
390
|
+
const binding = require('@css-inline/css-inline-linux-loong64-gnu')
|
|
391
|
+
const bindingPackageVersion = require('@css-inline/css-inline-linux-loong64-gnu/package.json').version
|
|
392
|
+
if (bindingPackageVersion !== '0.18.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 0.18.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
223
394
|
}
|
|
395
|
+
return binding
|
|
396
|
+
} catch (e) {
|
|
397
|
+
loadErrors.push(e)
|
|
224
398
|
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
loadError = e
|
|
399
|
+
}
|
|
400
|
+
} else if (process.arch === 'riscv64') {
|
|
401
|
+
if (isMusl()) {
|
|
402
|
+
try {
|
|
403
|
+
return require('./css-inline.linux-riscv64-musl.node')
|
|
404
|
+
} catch (e) {
|
|
405
|
+
loadErrors.push(e)
|
|
406
|
+
}
|
|
407
|
+
try {
|
|
408
|
+
const binding = require('@css-inline/css-inline-linux-riscv64-musl')
|
|
409
|
+
const bindingPackageVersion = require('@css-inline/css-inline-linux-riscv64-musl/package.json').version
|
|
410
|
+
if (bindingPackageVersion !== '0.18.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 0.18.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
239
412
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
413
|
+
return binding
|
|
414
|
+
} catch (e) {
|
|
415
|
+
loadErrors.push(e)
|
|
416
|
+
}
|
|
417
|
+
} else {
|
|
418
|
+
try {
|
|
419
|
+
return require('./css-inline.linux-riscv64-gnu.node')
|
|
420
|
+
} catch (e) {
|
|
421
|
+
loadErrors.push(e)
|
|
422
|
+
}
|
|
423
|
+
try {
|
|
424
|
+
const binding = require('@css-inline/css-inline-linux-riscv64-gnu')
|
|
425
|
+
const bindingPackageVersion = require('@css-inline/css-inline-linux-riscv64-gnu/package.json').version
|
|
426
|
+
if (bindingPackageVersion !== '0.18.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 0.18.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
252
428
|
}
|
|
429
|
+
return binding
|
|
430
|
+
} catch (e) {
|
|
431
|
+
loadErrors.push(e)
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
} else if (process.arch === 'ppc64') {
|
|
435
|
+
try {
|
|
436
|
+
return require('./css-inline.linux-ppc64-gnu.node')
|
|
437
|
+
} catch (e) {
|
|
438
|
+
loadErrors.push(e)
|
|
439
|
+
}
|
|
440
|
+
try {
|
|
441
|
+
const binding = require('@css-inline/css-inline-linux-ppc64-gnu')
|
|
442
|
+
const bindingPackageVersion = require('@css-inline/css-inline-linux-ppc64-gnu/package.json').version
|
|
443
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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('./css-inline.linux-s390x-gnu.node')
|
|
453
|
+
} catch (e) {
|
|
454
|
+
loadErrors.push(e)
|
|
455
|
+
}
|
|
456
|
+
try {
|
|
457
|
+
const binding = require('@css-inline/css-inline-linux-s390x-gnu')
|
|
458
|
+
const bindingPackageVersion = require('@css-inline/css-inline-linux-s390x-gnu/package.json').version
|
|
459
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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('./css-inline.openharmony-arm64.node')
|
|
473
|
+
} catch (e) {
|
|
474
|
+
loadErrors.push(e)
|
|
475
|
+
}
|
|
476
|
+
try {
|
|
477
|
+
const binding = require('@css-inline/css-inline-openharmony-arm64')
|
|
478
|
+
const bindingPackageVersion = require('@css-inline/css-inline-openharmony-arm64/package.json').version
|
|
479
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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('./css-inline.openharmony-x64.node')
|
|
489
|
+
} catch (e) {
|
|
490
|
+
loadErrors.push(e)
|
|
491
|
+
}
|
|
492
|
+
try {
|
|
493
|
+
const binding = require('@css-inline/css-inline-openharmony-x64')
|
|
494
|
+
const bindingPackageVersion = require('@css-inline/css-inline-openharmony-x64/package.json').version
|
|
495
|
+
if (bindingPackageVersion !== '0.18.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 0.18.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('./css-inline.openharmony-arm.node')
|
|
505
|
+
} catch (e) {
|
|
506
|
+
loadErrors.push(e)
|
|
507
|
+
}
|
|
508
|
+
try {
|
|
509
|
+
const binding = require('@css-inline/css-inline-openharmony-arm')
|
|
510
|
+
const bindingPackageVersion = require('@css-inline/css-inline-openharmony-arm/package.json').version
|
|
511
|
+
if (bindingPackageVersion !== '0.18.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 0.18.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
253
513
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
514
|
+
return binding
|
|
515
|
+
} catch (e) {
|
|
516
|
+
loadErrors.push(e)
|
|
517
|
+
}
|
|
518
|
+
} else {
|
|
519
|
+
loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`))
|
|
257
520
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
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('./css-inline.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('@css-inline/css-inline-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
|
+
}
|
|
261
555
|
}
|
|
262
556
|
|
|
263
557
|
if (!nativeBinding) {
|
|
264
|
-
if (
|
|
265
|
-
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
|
+
)
|
|
266
570
|
}
|
|
267
571
|
throw new Error(`Failed to load native binding`)
|
|
268
572
|
}
|
|
269
573
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
module.exports.
|
|
273
|
-
module.exports.
|
|
274
|
-
module.exports.version = version
|
|
574
|
+
module.exports = nativeBinding
|
|
575
|
+
module.exports.inline = nativeBinding.inline
|
|
576
|
+
module.exports.inlineFragment = nativeBinding.inlineFragment
|
|
577
|
+
module.exports.version = nativeBinding.version
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@css-inline/css-inline",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "High-performance library for inlining CSS into HTML 'style' attributes",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"repository": "https://github.com/Stranger6667/css-inline",
|
|
@@ -19,24 +19,25 @@
|
|
|
19
19
|
],
|
|
20
20
|
"types": "index.d.ts",
|
|
21
21
|
"napi": {
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
22
|
+
"binaryName": "css-inline",
|
|
23
|
+
"targets": [
|
|
24
|
+
"x86_64-apple-darwin",
|
|
25
|
+
"x86_64-pc-windows-msvc",
|
|
26
|
+
"x86_64-unknown-linux-gnu",
|
|
27
|
+
"x86_64-unknown-linux-musl",
|
|
28
|
+
"aarch64-apple-darwin",
|
|
29
|
+
"aarch64-linux-android",
|
|
30
|
+
"aarch64-pc-windows-msvc",
|
|
31
|
+
"aarch64-unknown-linux-gnu",
|
|
32
|
+
"aarch64-unknown-linux-musl",
|
|
33
|
+
"armv7-unknown-linux-gnueabihf",
|
|
34
|
+
"armv7-linux-androideabi"
|
|
35
|
+
]
|
|
35
36
|
},
|
|
36
37
|
"license": "MIT",
|
|
37
38
|
"devDependencies": {
|
|
38
39
|
"@ava/typescript": "^4.1.0",
|
|
39
|
-
"@napi-rs/cli": "^
|
|
40
|
+
"@napi-rs/cli": "^3.0.0",
|
|
40
41
|
"@swc-node/register": "^1.6.8",
|
|
41
42
|
"@swc/core": "^1.3.101",
|
|
42
43
|
"@types/copyfiles": "^2",
|
|
@@ -53,8 +54,8 @@
|
|
|
53
54
|
"eslint-plugin-import": "^2.29.1",
|
|
54
55
|
"eslint-plugin-prettier": "^5.1.2",
|
|
55
56
|
"eslint-plugin-sonarjs": "^0.23.0",
|
|
56
|
-
"inline-css": "^4.0.
|
|
57
|
-
"juice": "^
|
|
57
|
+
"inline-css": "^4.0.3",
|
|
58
|
+
"juice": "^11.0.3",
|
|
58
59
|
"npm-run-all2": "^6.1.1",
|
|
59
60
|
"prettier": "^3.1.1",
|
|
60
61
|
"typescript": "^5.3.3"
|
|
@@ -91,7 +92,7 @@
|
|
|
91
92
|
"copy-wasm": "copyfiles -f wasm/dist/index_bg.wasm ./wasm",
|
|
92
93
|
"lint": "eslint . -c ./.eslintrc.yml './**/*.{ts,tsx,js}'",
|
|
93
94
|
"lint:fix": "eslint . -c ./.eslintrc.yml './**/*.{ts,tsx,js}' --fix",
|
|
94
|
-
"prepublishOnly": "napi prepublish -t npm",
|
|
95
|
+
"prepublishOnly": "napi prepublish -t npm --no-gh-release",
|
|
95
96
|
"test": "ava __test__/index*.*",
|
|
96
97
|
"test:wasm": "ava __test__/**/wasm*.*",
|
|
97
98
|
"universal": "napi universal",
|
|
@@ -99,16 +100,16 @@
|
|
|
99
100
|
},
|
|
100
101
|
"packageManager": "yarn@4.9.2",
|
|
101
102
|
"optionalDependencies": {
|
|
102
|
-
"@css-inline/css-inline-
|
|
103
|
-
"@css-inline/css-inline-
|
|
104
|
-
"@css-inline/css-inline-linux-x64-gnu": "0.
|
|
105
|
-
"@css-inline/css-inline-
|
|
106
|
-
"@css-inline/css-inline-
|
|
107
|
-
"@css-inline/css-inline-
|
|
108
|
-
"@css-inline/css-inline-
|
|
109
|
-
"@css-inline/css-inline-linux-arm64-
|
|
110
|
-
"@css-inline/css-inline-linux-
|
|
111
|
-
"@css-inline/css-inline-linux-
|
|
112
|
-
"@css-inline/css-inline-android-arm-eabi": "0.
|
|
103
|
+
"@css-inline/css-inline-darwin-x64": "0.19.0",
|
|
104
|
+
"@css-inline/css-inline-win32-x64-msvc": "0.19.0",
|
|
105
|
+
"@css-inline/css-inline-linux-x64-gnu": "0.19.0",
|
|
106
|
+
"@css-inline/css-inline-linux-x64-musl": "0.19.0",
|
|
107
|
+
"@css-inline/css-inline-darwin-arm64": "0.19.0",
|
|
108
|
+
"@css-inline/css-inline-android-arm64": "0.19.0",
|
|
109
|
+
"@css-inline/css-inline-win32-arm64-msvc": "0.19.0",
|
|
110
|
+
"@css-inline/css-inline-linux-arm64-gnu": "0.19.0",
|
|
111
|
+
"@css-inline/css-inline-linux-arm64-musl": "0.19.0",
|
|
112
|
+
"@css-inline/css-inline-linux-arm-gnueabihf": "0.19.0",
|
|
113
|
+
"@css-inline/css-inline-android-arm-eabi": "0.19.0"
|
|
113
114
|
}
|
|
114
115
|
}
|