@voltkit/volt-native 0.1.14 → 0.1.15
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/index.js +53 -600
- package/loader/musl.js +28 -32
- package/loader/native-loader.js +47 -16
- package/package.json +1 -1
- package/volt-native.darwin-arm64.node +0 -0
- package/volt-native.darwin-x64.node +0 -0
- package/volt-native.linux-x64-gnu.node +0 -0
- package/volt-native.win32-x64-msvc.node +0 -0
package/index.js
CHANGED
|
@@ -1,562 +1,14 @@
|
|
|
1
|
-
// prettier-ignore
|
|
2
1
|
/* eslint-disable */
|
|
3
2
|
// @ts-nocheck
|
|
4
|
-
/* auto-generated by NAPI-RS */
|
|
5
3
|
|
|
6
|
-
const {
|
|
7
|
-
|
|
8
|
-
const
|
|
4
|
+
const { loadNativeBinding } = require('./loader/native-loader');
|
|
5
|
+
const { isMusl } = require('./loader/musl');
|
|
6
|
+
const { loadWasiFallback } = require('./loader/wasi-loader');
|
|
9
7
|
|
|
10
|
-
const
|
|
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)) {
|
|
48
|
-
return true
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return false
|
|
52
|
-
}
|
|
8
|
+
const loadErrors = [];
|
|
53
9
|
|
|
54
|
-
|
|
55
|
-
|
|
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('./volt-native.android-arm64.node')
|
|
74
|
-
} catch (e) {
|
|
75
|
-
loadErrors.push(e)
|
|
76
|
-
}
|
|
77
|
-
try {
|
|
78
|
-
const binding = require('@voltkit/volt-native-android-arm64')
|
|
79
|
-
const bindingPackageVersion = require('@voltkit/volt-native-android-arm64/package.json').version
|
|
80
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.android-arm-eabi.node')
|
|
90
|
-
} catch (e) {
|
|
91
|
-
loadErrors.push(e)
|
|
92
|
-
}
|
|
93
|
-
try {
|
|
94
|
-
const binding = require('@voltkit/volt-native-android-arm-eabi')
|
|
95
|
-
const bindingPackageVersion = require('@voltkit/volt-native-android-arm-eabi/package.json').version
|
|
96
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.win32-x64-gnu.node')
|
|
111
|
-
} catch (e) {
|
|
112
|
-
loadErrors.push(e)
|
|
113
|
-
}
|
|
114
|
-
try {
|
|
115
|
-
const binding = require('@voltkit/volt-native-win32-x64-gnu')
|
|
116
|
-
const bindingPackageVersion = require('@voltkit/volt-native-win32-x64-gnu/package.json').version
|
|
117
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.win32-x64-msvc.node')
|
|
127
|
-
} catch (e) {
|
|
128
|
-
loadErrors.push(e)
|
|
129
|
-
}
|
|
130
|
-
try {
|
|
131
|
-
const binding = require('@voltkit/volt-native-win32-x64-msvc')
|
|
132
|
-
const bindingPackageVersion = require('@voltkit/volt-native-win32-x64-msvc/package.json').version
|
|
133
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.win32-ia32-msvc.node')
|
|
144
|
-
} catch (e) {
|
|
145
|
-
loadErrors.push(e)
|
|
146
|
-
}
|
|
147
|
-
try {
|
|
148
|
-
const binding = require('@voltkit/volt-native-win32-ia32-msvc')
|
|
149
|
-
const bindingPackageVersion = require('@voltkit/volt-native-win32-ia32-msvc/package.json').version
|
|
150
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.win32-arm64-msvc.node')
|
|
160
|
-
} catch (e) {
|
|
161
|
-
loadErrors.push(e)
|
|
162
|
-
}
|
|
163
|
-
try {
|
|
164
|
-
const binding = require('@voltkit/volt-native-win32-arm64-msvc')
|
|
165
|
-
const bindingPackageVersion = require('@voltkit/volt-native-win32-arm64-msvc/package.json').version
|
|
166
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.darwin-universal.node')
|
|
179
|
-
} catch (e) {
|
|
180
|
-
loadErrors.push(e)
|
|
181
|
-
}
|
|
182
|
-
try {
|
|
183
|
-
const binding = require('@voltkit/volt-native-darwin-universal')
|
|
184
|
-
const bindingPackageVersion = require('@voltkit/volt-native-darwin-universal/package.json').version
|
|
185
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.darwin-x64.node')
|
|
195
|
-
} catch (e) {
|
|
196
|
-
loadErrors.push(e)
|
|
197
|
-
}
|
|
198
|
-
try {
|
|
199
|
-
const binding = require('@voltkit/volt-native-darwin-x64')
|
|
200
|
-
const bindingPackageVersion = require('@voltkit/volt-native-darwin-x64/package.json').version
|
|
201
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.darwin-arm64.node')
|
|
211
|
-
} catch (e) {
|
|
212
|
-
loadErrors.push(e)
|
|
213
|
-
}
|
|
214
|
-
try {
|
|
215
|
-
const binding = require('@voltkit/volt-native-darwin-arm64')
|
|
216
|
-
const bindingPackageVersion = require('@voltkit/volt-native-darwin-arm64/package.json').version
|
|
217
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.freebsd-x64.node')
|
|
231
|
-
} catch (e) {
|
|
232
|
-
loadErrors.push(e)
|
|
233
|
-
}
|
|
234
|
-
try {
|
|
235
|
-
const binding = require('@voltkit/volt-native-freebsd-x64')
|
|
236
|
-
const bindingPackageVersion = require('@voltkit/volt-native-freebsd-x64/package.json').version
|
|
237
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.freebsd-arm64.node')
|
|
247
|
-
} catch (e) {
|
|
248
|
-
loadErrors.push(e)
|
|
249
|
-
}
|
|
250
|
-
try {
|
|
251
|
-
const binding = require('@voltkit/volt-native-freebsd-arm64')
|
|
252
|
-
const bindingPackageVersion = require('@voltkit/volt-native-freebsd-arm64/package.json').version
|
|
253
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.linux-x64-musl.node')
|
|
268
|
-
} catch (e) {
|
|
269
|
-
loadErrors.push(e)
|
|
270
|
-
}
|
|
271
|
-
try {
|
|
272
|
-
const binding = require('@voltkit/volt-native-linux-x64-musl')
|
|
273
|
-
const bindingPackageVersion = require('@voltkit/volt-native-linux-x64-musl/package.json').version
|
|
274
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
276
|
-
}
|
|
277
|
-
return binding
|
|
278
|
-
} catch (e) {
|
|
279
|
-
loadErrors.push(e)
|
|
280
|
-
}
|
|
281
|
-
} else {
|
|
282
|
-
try {
|
|
283
|
-
return require('./volt-native.linux-x64-gnu.node')
|
|
284
|
-
} catch (e) {
|
|
285
|
-
loadErrors.push(e)
|
|
286
|
-
}
|
|
287
|
-
try {
|
|
288
|
-
const binding = require('@voltkit/volt-native-linux-x64-gnu')
|
|
289
|
-
const bindingPackageVersion = require('@voltkit/volt-native-linux-x64-gnu/package.json').version
|
|
290
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
292
|
-
}
|
|
293
|
-
return binding
|
|
294
|
-
} catch (e) {
|
|
295
|
-
loadErrors.push(e)
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
} else if (process.arch === 'arm64') {
|
|
299
|
-
if (isMusl()) {
|
|
300
|
-
try {
|
|
301
|
-
return require('./volt-native.linux-arm64-musl.node')
|
|
302
|
-
} catch (e) {
|
|
303
|
-
loadErrors.push(e)
|
|
304
|
-
}
|
|
305
|
-
try {
|
|
306
|
-
const binding = require('@voltkit/volt-native-linux-arm64-musl')
|
|
307
|
-
const bindingPackageVersion = require('@voltkit/volt-native-linux-arm64-musl/package.json').version
|
|
308
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
310
|
-
}
|
|
311
|
-
return binding
|
|
312
|
-
} catch (e) {
|
|
313
|
-
loadErrors.push(e)
|
|
314
|
-
}
|
|
315
|
-
} else {
|
|
316
|
-
try {
|
|
317
|
-
return require('./volt-native.linux-arm64-gnu.node')
|
|
318
|
-
} catch (e) {
|
|
319
|
-
loadErrors.push(e)
|
|
320
|
-
}
|
|
321
|
-
try {
|
|
322
|
-
const binding = require('@voltkit/volt-native-linux-arm64-gnu')
|
|
323
|
-
const bindingPackageVersion = require('@voltkit/volt-native-linux-arm64-gnu/package.json').version
|
|
324
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
326
|
-
}
|
|
327
|
-
return binding
|
|
328
|
-
} catch (e) {
|
|
329
|
-
loadErrors.push(e)
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
} else if (process.arch === 'arm') {
|
|
333
|
-
if (isMusl()) {
|
|
334
|
-
try {
|
|
335
|
-
return require('./volt-native.linux-arm-musleabihf.node')
|
|
336
|
-
} catch (e) {
|
|
337
|
-
loadErrors.push(e)
|
|
338
|
-
}
|
|
339
|
-
try {
|
|
340
|
-
const binding = require('@voltkit/volt-native-linux-arm-musleabihf')
|
|
341
|
-
const bindingPackageVersion = require('@voltkit/volt-native-linux-arm-musleabihf/package.json').version
|
|
342
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
344
|
-
}
|
|
345
|
-
return binding
|
|
346
|
-
} catch (e) {
|
|
347
|
-
loadErrors.push(e)
|
|
348
|
-
}
|
|
349
|
-
} else {
|
|
350
|
-
try {
|
|
351
|
-
return require('./volt-native.linux-arm-gnueabihf.node')
|
|
352
|
-
} catch (e) {
|
|
353
|
-
loadErrors.push(e)
|
|
354
|
-
}
|
|
355
|
-
try {
|
|
356
|
-
const binding = require('@voltkit/volt-native-linux-arm-gnueabihf')
|
|
357
|
-
const bindingPackageVersion = require('@voltkit/volt-native-linux-arm-gnueabihf/package.json').version
|
|
358
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
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('./volt-native.linux-loong64-musl.node')
|
|
370
|
-
} catch (e) {
|
|
371
|
-
loadErrors.push(e)
|
|
372
|
-
}
|
|
373
|
-
try {
|
|
374
|
-
const binding = require('@voltkit/volt-native-linux-loong64-musl')
|
|
375
|
-
const bindingPackageVersion = require('@voltkit/volt-native-linux-loong64-musl/package.json').version
|
|
376
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
378
|
-
}
|
|
379
|
-
return binding
|
|
380
|
-
} catch (e) {
|
|
381
|
-
loadErrors.push(e)
|
|
382
|
-
}
|
|
383
|
-
} else {
|
|
384
|
-
try {
|
|
385
|
-
return require('./volt-native.linux-loong64-gnu.node')
|
|
386
|
-
} catch (e) {
|
|
387
|
-
loadErrors.push(e)
|
|
388
|
-
}
|
|
389
|
-
try {
|
|
390
|
-
const binding = require('@voltkit/volt-native-linux-loong64-gnu')
|
|
391
|
-
const bindingPackageVersion = require('@voltkit/volt-native-linux-loong64-gnu/package.json').version
|
|
392
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
394
|
-
}
|
|
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('./volt-native.linux-riscv64-musl.node')
|
|
404
|
-
} catch (e) {
|
|
405
|
-
loadErrors.push(e)
|
|
406
|
-
}
|
|
407
|
-
try {
|
|
408
|
-
const binding = require('@voltkit/volt-native-linux-riscv64-musl')
|
|
409
|
-
const bindingPackageVersion = require('@voltkit/volt-native-linux-riscv64-musl/package.json').version
|
|
410
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
412
|
-
}
|
|
413
|
-
return binding
|
|
414
|
-
} catch (e) {
|
|
415
|
-
loadErrors.push(e)
|
|
416
|
-
}
|
|
417
|
-
} else {
|
|
418
|
-
try {
|
|
419
|
-
return require('./volt-native.linux-riscv64-gnu.node')
|
|
420
|
-
} catch (e) {
|
|
421
|
-
loadErrors.push(e)
|
|
422
|
-
}
|
|
423
|
-
try {
|
|
424
|
-
const binding = require('@voltkit/volt-native-linux-riscv64-gnu')
|
|
425
|
-
const bindingPackageVersion = require('@voltkit/volt-native-linux-riscv64-gnu/package.json').version
|
|
426
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
428
|
-
}
|
|
429
|
-
return binding
|
|
430
|
-
} catch (e) {
|
|
431
|
-
loadErrors.push(e)
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
} else if (process.arch === 'ppc64') {
|
|
435
|
-
try {
|
|
436
|
-
return require('./volt-native.linux-ppc64-gnu.node')
|
|
437
|
-
} catch (e) {
|
|
438
|
-
loadErrors.push(e)
|
|
439
|
-
}
|
|
440
|
-
try {
|
|
441
|
-
const binding = require('@voltkit/volt-native-linux-ppc64-gnu')
|
|
442
|
-
const bindingPackageVersion = require('@voltkit/volt-native-linux-ppc64-gnu/package.json').version
|
|
443
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.linux-s390x-gnu.node')
|
|
453
|
-
} catch (e) {
|
|
454
|
-
loadErrors.push(e)
|
|
455
|
-
}
|
|
456
|
-
try {
|
|
457
|
-
const binding = require('@voltkit/volt-native-linux-s390x-gnu')
|
|
458
|
-
const bindingPackageVersion = require('@voltkit/volt-native-linux-s390x-gnu/package.json').version
|
|
459
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.openharmony-arm64.node')
|
|
473
|
-
} catch (e) {
|
|
474
|
-
loadErrors.push(e)
|
|
475
|
-
}
|
|
476
|
-
try {
|
|
477
|
-
const binding = require('@voltkit/volt-native-openharmony-arm64')
|
|
478
|
-
const bindingPackageVersion = require('@voltkit/volt-native-openharmony-arm64/package.json').version
|
|
479
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.openharmony-x64.node')
|
|
489
|
-
} catch (e) {
|
|
490
|
-
loadErrors.push(e)
|
|
491
|
-
}
|
|
492
|
-
try {
|
|
493
|
-
const binding = require('@voltkit/volt-native-openharmony-x64')
|
|
494
|
-
const bindingPackageVersion = require('@voltkit/volt-native-openharmony-x64/package.json').version
|
|
495
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 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('./volt-native.openharmony-arm.node')
|
|
505
|
-
} catch (e) {
|
|
506
|
-
loadErrors.push(e)
|
|
507
|
-
}
|
|
508
|
-
try {
|
|
509
|
-
const binding = require('@voltkit/volt-native-openharmony-arm')
|
|
510
|
-
const bindingPackageVersion = require('@voltkit/volt-native-openharmony-arm/package.json').version
|
|
511
|
-
if (bindingPackageVersion !== '0.1.10' && 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.1.10 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
513
|
-
}
|
|
514
|
-
return binding
|
|
515
|
-
} catch (e) {
|
|
516
|
-
loadErrors.push(e)
|
|
517
|
-
}
|
|
518
|
-
} else {
|
|
519
|
-
loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`))
|
|
520
|
-
}
|
|
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('./volt-native.wasi.cjs')
|
|
533
|
-
nativeBinding = wasiBinding
|
|
534
|
-
} catch (err) {
|
|
535
|
-
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
536
|
-
wasiBindingError = err
|
|
537
|
-
}
|
|
538
|
-
}
|
|
539
|
-
if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
|
|
540
|
-
try {
|
|
541
|
-
wasiBinding = require('@voltkit/volt-native-wasm32-wasi')
|
|
542
|
-
nativeBinding = wasiBinding
|
|
543
|
-
} catch (err) {
|
|
544
|
-
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
545
|
-
if (!wasiBindingError) {
|
|
546
|
-
wasiBindingError = err
|
|
547
|
-
} else {
|
|
548
|
-
wasiBindingError.cause = err
|
|
549
|
-
}
|
|
550
|
-
loadErrors.push(err)
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
if (process.env.NAPI_RS_FORCE_WASI === 'error' && !wasiBinding) {
|
|
555
|
-
const error = new Error('WASI binding not found and NAPI_RS_FORCE_WASI is set to error')
|
|
556
|
-
error.cause = wasiBindingError
|
|
557
|
-
throw error
|
|
558
|
-
}
|
|
559
|
-
}
|
|
10
|
+
let nativeBinding = loadNativeBinding(loadErrors, require, isMusl);
|
|
11
|
+
nativeBinding = loadWasiFallback(nativeBinding, loadErrors, require);
|
|
560
12
|
|
|
561
13
|
if (!nativeBinding) {
|
|
562
14
|
if (loadErrors.length > 0) {
|
|
@@ -566,54 +18,55 @@ if (!nativeBinding) {
|
|
|
566
18
|
'Please try `npm i` again after removing both package-lock.json and node_modules directory.',
|
|
567
19
|
{
|
|
568
20
|
cause: loadErrors.reduce((err, cur) => {
|
|
569
|
-
cur.cause = err
|
|
570
|
-
return cur
|
|
21
|
+
cur.cause = err;
|
|
22
|
+
return cur;
|
|
571
23
|
}),
|
|
572
24
|
},
|
|
573
|
-
)
|
|
25
|
+
);
|
|
574
26
|
}
|
|
575
|
-
|
|
27
|
+
|
|
28
|
+
throw new Error('Failed to load native binding');
|
|
576
29
|
}
|
|
577
30
|
|
|
578
|
-
module.exports = nativeBinding
|
|
579
|
-
module.exports.VoltApp = nativeBinding.VoltApp
|
|
580
|
-
module.exports.VoltGlobalShortcut = nativeBinding.VoltGlobalShortcut
|
|
581
|
-
module.exports.VoltIpc = nativeBinding.VoltIpc
|
|
582
|
-
module.exports.VoltMenu = nativeBinding.VoltMenu
|
|
583
|
-
module.exports.VoltTray = nativeBinding.VoltTray
|
|
584
|
-
module.exports.clipboardReadImage = nativeBinding.clipboardReadImage
|
|
585
|
-
module.exports.clipboardReadText = nativeBinding.clipboardReadText
|
|
586
|
-
module.exports.clipboardWriteImage = nativeBinding.clipboardWriteImage
|
|
587
|
-
module.exports.clipboardWriteText = nativeBinding.clipboardWriteText
|
|
588
|
-
module.exports.dialogShowMessage = nativeBinding.dialogShowMessage
|
|
589
|
-
module.exports.dialogShowOpen = nativeBinding.dialogShowOpen
|
|
590
|
-
module.exports.dialogShowOpenWithGrant = nativeBinding.dialogShowOpenWithGrant
|
|
591
|
-
module.exports.dialogShowSave = nativeBinding.dialogShowSave
|
|
592
|
-
module.exports.fsCopy = nativeBinding.fsCopy
|
|
593
|
-
module.exports.fsExists = nativeBinding.fsExists
|
|
594
|
-
module.exports.fsMkdir = nativeBinding.fsMkdir
|
|
595
|
-
module.exports.fsReadDir = nativeBinding.fsReadDir
|
|
596
|
-
module.exports.fsReadFile = nativeBinding.fsReadFile
|
|
597
|
-
module.exports.fsReadFileText = nativeBinding.fsReadFileText
|
|
598
|
-
module.exports.fsRemove = nativeBinding.fsRemove
|
|
599
|
-
module.exports.fsRename = nativeBinding.fsRename
|
|
600
|
-
module.exports.fsResolveGrant = nativeBinding.fsResolveGrant
|
|
601
|
-
module.exports.fsStat = nativeBinding.fsStat
|
|
602
|
-
module.exports.fsWatchClose = nativeBinding.fsWatchClose
|
|
603
|
-
module.exports.fsWatchPoll = nativeBinding.fsWatchPoll
|
|
604
|
-
module.exports.fsWatchStart = nativeBinding.fsWatchStart
|
|
605
|
-
module.exports.fsWriteFile = nativeBinding.fsWriteFile
|
|
606
|
-
module.exports.notificationShow = nativeBinding.notificationShow
|
|
607
|
-
module.exports.shellOpenExternal = nativeBinding.shellOpenExternal
|
|
608
|
-
module.exports.shellShowItemInFolder = nativeBinding.shellShowItemInFolder
|
|
609
|
-
module.exports.updaterApply = nativeBinding.updaterApply
|
|
610
|
-
module.exports.updaterCheck = nativeBinding.updaterCheck
|
|
611
|
-
module.exports.updaterDownloadAndVerify = nativeBinding.updaterDownloadAndVerify
|
|
612
|
-
module.exports.windowClose = nativeBinding.windowClose
|
|
613
|
-
module.exports.windowCount = nativeBinding.windowCount
|
|
614
|
-
module.exports.windowEvalScript = nativeBinding.windowEvalScript
|
|
615
|
-
module.exports.windowFocus = nativeBinding.windowFocus
|
|
616
|
-
module.exports.windowMaximize = nativeBinding.windowMaximize
|
|
617
|
-
module.exports.windowMinimize = nativeBinding.windowMinimize
|
|
618
|
-
module.exports.windowRestore = nativeBinding.windowRestore
|
|
619
|
-
module.exports.windowShow = nativeBinding.windowShow
|
|
31
|
+
module.exports = nativeBinding;
|
|
32
|
+
module.exports.VoltApp = nativeBinding.VoltApp;
|
|
33
|
+
module.exports.VoltGlobalShortcut = nativeBinding.VoltGlobalShortcut;
|
|
34
|
+
module.exports.VoltIpc = nativeBinding.VoltIpc;
|
|
35
|
+
module.exports.VoltMenu = nativeBinding.VoltMenu;
|
|
36
|
+
module.exports.VoltTray = nativeBinding.VoltTray;
|
|
37
|
+
module.exports.clipboardReadImage = nativeBinding.clipboardReadImage;
|
|
38
|
+
module.exports.clipboardReadText = nativeBinding.clipboardReadText;
|
|
39
|
+
module.exports.clipboardWriteImage = nativeBinding.clipboardWriteImage;
|
|
40
|
+
module.exports.clipboardWriteText = nativeBinding.clipboardWriteText;
|
|
41
|
+
module.exports.dialogShowMessage = nativeBinding.dialogShowMessage;
|
|
42
|
+
module.exports.dialogShowOpen = nativeBinding.dialogShowOpen;
|
|
43
|
+
module.exports.dialogShowOpenWithGrant = nativeBinding.dialogShowOpenWithGrant;
|
|
44
|
+
module.exports.dialogShowSave = nativeBinding.dialogShowSave;
|
|
45
|
+
module.exports.fsCopy = nativeBinding.fsCopy;
|
|
46
|
+
module.exports.fsExists = nativeBinding.fsExists;
|
|
47
|
+
module.exports.fsMkdir = nativeBinding.fsMkdir;
|
|
48
|
+
module.exports.fsReadDir = nativeBinding.fsReadDir;
|
|
49
|
+
module.exports.fsReadFile = nativeBinding.fsReadFile;
|
|
50
|
+
module.exports.fsReadFileText = nativeBinding.fsReadFileText;
|
|
51
|
+
module.exports.fsRemove = nativeBinding.fsRemove;
|
|
52
|
+
module.exports.fsRename = nativeBinding.fsRename;
|
|
53
|
+
module.exports.fsResolveGrant = nativeBinding.fsResolveGrant;
|
|
54
|
+
module.exports.fsStat = nativeBinding.fsStat;
|
|
55
|
+
module.exports.fsWatchClose = nativeBinding.fsWatchClose;
|
|
56
|
+
module.exports.fsWatchPoll = nativeBinding.fsWatchPoll;
|
|
57
|
+
module.exports.fsWatchStart = nativeBinding.fsWatchStart;
|
|
58
|
+
module.exports.fsWriteFile = nativeBinding.fsWriteFile;
|
|
59
|
+
module.exports.notificationShow = nativeBinding.notificationShow;
|
|
60
|
+
module.exports.shellOpenExternal = nativeBinding.shellOpenExternal;
|
|
61
|
+
module.exports.shellShowItemInFolder = nativeBinding.shellShowItemInFolder;
|
|
62
|
+
module.exports.updaterApply = nativeBinding.updaterApply;
|
|
63
|
+
module.exports.updaterCheck = nativeBinding.updaterCheck;
|
|
64
|
+
module.exports.updaterDownloadAndVerify = nativeBinding.updaterDownloadAndVerify;
|
|
65
|
+
module.exports.windowClose = nativeBinding.windowClose;
|
|
66
|
+
module.exports.windowCount = nativeBinding.windowCount;
|
|
67
|
+
module.exports.windowEvalScript = nativeBinding.windowEvalScript;
|
|
68
|
+
module.exports.windowFocus = nativeBinding.windowFocus;
|
|
69
|
+
module.exports.windowMaximize = nativeBinding.windowMaximize;
|
|
70
|
+
module.exports.windowMinimize = nativeBinding.windowMinimize;
|
|
71
|
+
module.exports.windowRestore = nativeBinding.windowRestore;
|
|
72
|
+
module.exports.windowShow = nativeBinding.windowShow;
|
package/loader/musl.js
CHANGED
|
@@ -1,60 +1,56 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
// @ts-nocheck
|
|
3
3
|
|
|
4
|
-
const { readFileSync } = require('node:fs')
|
|
4
|
+
const { readFileSync } = require('node:fs');
|
|
5
|
+
const { execSync } = require('node:child_process');
|
|
5
6
|
|
|
6
|
-
const isFileMusl = (
|
|
7
|
+
const isFileMusl = (filePath) => filePath.includes('libc.musl-') || filePath.includes('ld-musl-');
|
|
7
8
|
|
|
8
9
|
const isMuslFromFilesystem = () => {
|
|
9
10
|
try {
|
|
10
|
-
return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl')
|
|
11
|
+
return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl');
|
|
11
12
|
} catch {
|
|
12
|
-
return null
|
|
13
|
+
return null;
|
|
13
14
|
}
|
|
14
|
-
}
|
|
15
|
+
};
|
|
15
16
|
|
|
16
17
|
const isMuslFromReport = () => {
|
|
17
|
-
let report = null
|
|
18
|
+
let report = null;
|
|
19
|
+
|
|
18
20
|
if (typeof process.report?.getReport === 'function') {
|
|
19
|
-
process.report.excludeNetwork = true
|
|
20
|
-
report = process.report.getReport()
|
|
21
|
+
process.report.excludeNetwork = true;
|
|
22
|
+
report = process.report.getReport();
|
|
21
23
|
}
|
|
24
|
+
|
|
22
25
|
if (!report) {
|
|
23
|
-
return null
|
|
26
|
+
return null;
|
|
24
27
|
}
|
|
25
28
|
if (report.header && report.header.glibcVersionRuntime) {
|
|
26
|
-
return false
|
|
29
|
+
return false;
|
|
27
30
|
}
|
|
28
|
-
if (Array.isArray(report.sharedObjects)) {
|
|
29
|
-
|
|
30
|
-
return true
|
|
31
|
-
}
|
|
31
|
+
if (Array.isArray(report.sharedObjects) && report.sharedObjects.some(isFileMusl)) {
|
|
32
|
+
return true;
|
|
32
33
|
}
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
|
|
35
|
+
return false;
|
|
36
|
+
};
|
|
35
37
|
|
|
36
38
|
const isMuslFromChildProcess = () => {
|
|
37
39
|
try {
|
|
38
|
-
return
|
|
39
|
-
} catch
|
|
40
|
-
return false
|
|
40
|
+
return execSync('ldd --version', { encoding: 'utf8' }).includes('musl');
|
|
41
|
+
} catch {
|
|
42
|
+
return false;
|
|
41
43
|
}
|
|
42
|
-
}
|
|
44
|
+
};
|
|
43
45
|
|
|
44
46
|
const isMusl = () => {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
musl = isMuslFromFilesystem()
|
|
48
|
-
if (musl === null) {
|
|
49
|
-
musl = isMuslFromReport()
|
|
50
|
-
}
|
|
51
|
-
if (musl === null) {
|
|
52
|
-
musl = isMuslFromChildProcess()
|
|
53
|
-
}
|
|
47
|
+
if (process.platform !== 'linux') {
|
|
48
|
+
return false;
|
|
54
49
|
}
|
|
55
|
-
|
|
56
|
-
|
|
50
|
+
|
|
51
|
+
return isMuslFromFilesystem() ?? isMuslFromReport() ?? isMuslFromChildProcess();
|
|
52
|
+
};
|
|
57
53
|
|
|
58
54
|
module.exports = {
|
|
59
55
|
isMusl,
|
|
60
|
-
}
|
|
56
|
+
};
|
package/loader/native-loader.js
CHANGED
|
@@ -1,32 +1,63 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
// @ts-nocheck
|
|
3
3
|
|
|
4
|
-
const {
|
|
5
|
-
const { resolveNativeTargets } = require('./native-loader-targets')
|
|
4
|
+
const { resolveNativeTargets } = require('./native-loader-targets');
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
const EXPECTED_BINDING_VERSION = '0.1.10';
|
|
7
|
+
|
|
8
|
+
const shouldEnforceVersionCheck = () =>
|
|
9
|
+
process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0';
|
|
10
|
+
|
|
11
|
+
const createVersionError = (actualVersion) =>
|
|
12
|
+
new Error(
|
|
13
|
+
`Native binding package version mismatch, expected ${EXPECTED_BINDING_VERSION} but got ${actualVersion}. You can reinstall dependencies to fix this issue.`,
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
function loadTargetBinding(target, loadErrors, localRequire) {
|
|
17
|
+
try {
|
|
18
|
+
return localRequire(target.localPath);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
loadErrors.push(error);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
const binding = localRequire(target.packageName);
|
|
25
|
+
const bindingPackageVersion = localRequire(`${target.packageName}/package.json`).version;
|
|
26
|
+
if (shouldEnforceVersionCheck() && bindingPackageVersion !== EXPECTED_BINDING_VERSION) {
|
|
27
|
+
throw createVersionError(bindingPackageVersion);
|
|
28
|
+
}
|
|
29
|
+
return binding;
|
|
30
|
+
} catch (error) {
|
|
31
|
+
loadErrors.push(error);
|
|
14
32
|
}
|
|
15
33
|
|
|
16
|
-
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
17
36
|
|
|
37
|
+
function loadNativeBinding(loadErrors, localRequire, isMusl) {
|
|
38
|
+
if (process.env.NAPI_RS_NATIVE_LIBRARY_PATH) {
|
|
39
|
+
try {
|
|
40
|
+
return localRequire(process.env.NAPI_RS_NATIVE_LIBRARY_PATH);
|
|
41
|
+
} catch (error) {
|
|
42
|
+
loadErrors.push(error);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const { targets, unsupportedError } = resolveNativeTargets(isMusl);
|
|
18
47
|
for (const target of targets) {
|
|
19
|
-
const binding =
|
|
48
|
+
const binding = loadTargetBinding(target, loadErrors, localRequire);
|
|
20
49
|
if (binding) {
|
|
21
|
-
return binding
|
|
50
|
+
return binding;
|
|
22
51
|
}
|
|
23
52
|
}
|
|
24
53
|
|
|
25
|
-
if (unsupportedError) {
|
|
26
|
-
loadErrors.push(unsupportedError)
|
|
54
|
+
if (targets.length === 0 && unsupportedError) {
|
|
55
|
+
loadErrors.push(unsupportedError);
|
|
27
56
|
}
|
|
57
|
+
|
|
58
|
+
return null;
|
|
28
59
|
}
|
|
29
60
|
|
|
30
61
|
module.exports = {
|
|
31
|
-
|
|
32
|
-
}
|
|
62
|
+
loadNativeBinding,
|
|
63
|
+
};
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|