fastyaml-rs 0.1.4 → 0.1.6

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 CHANGED
@@ -1,248 +1,583 @@
1
- /**
2
- * fast-yaml-nodejs entry point
3
- *
4
- * This file will be auto-generated by NAPI-RS during build.
5
- * This placeholder ensures the module can be required during development.
6
- */
1
+ // prettier-ignore
2
+ /* eslint-disable */
3
+ // @ts-nocheck
4
+ /* auto-generated by NAPI-RS */
7
5
 
8
- const { existsSync, readFileSync } = require('fs');
9
- const { join } = require('path');
6
+ const { readFileSync } = require('node:fs')
7
+ let nativeBinding = null
8
+ const loadErrors = []
10
9
 
11
- const { platform, arch } = process;
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
+ }
12
23
 
13
- let nativeBinding = null;
14
- let localFileExisted = false;
15
- let loadError = null;
24
+ const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
16
25
 
17
- function isMusl() {
18
- // For Node 10
19
- if (!process.report || typeof process.report.getReport !== 'function') {
20
- try {
21
- const lddPath = require('child_process').execSync('which ldd').toString().trim();
22
- return readFileSync(lddPath, 'utf8').includes('musl');
23
- } catch (e) {
24
- return true;
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
25
49
  }
26
- } else {
27
- const { glibcVersionRuntime } = process.report.getReport().header;
28
- return !glibcVersionRuntime;
29
50
  }
51
+ return false
30
52
  }
31
53
 
32
- switch (platform) {
33
- case 'android':
34
- switch (arch) {
35
- case 'arm64':
36
- localFileExisted = existsSync(join(__dirname, 'fast-yaml.android-arm64.node'));
37
- try {
38
- if (localFileExisted) {
39
- nativeBinding = require('./fast-yaml.android-arm64.node');
40
- } else {
41
- nativeBinding = require('@fast-yaml/android-arm64');
42
- }
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('./fastyaml-rs.android-arm64.node')
74
+ } catch (e) {
75
+ loadErrors.push(e)
76
+ }
77
+ try {
78
+ const binding = require('fastyaml-rs-android-arm64')
79
+ const bindingPackageVersion = require('fastyaml-rs-android-arm64/package.json').version
80
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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('./fastyaml-rs.android-arm-eabi.node')
90
+ } catch (e) {
91
+ loadErrors.push(e)
92
+ }
93
+ try {
94
+ const binding = require('fastyaml-rs-android-arm-eabi')
95
+ const bindingPackageVersion = require('fastyaml-rs-android-arm-eabi/package.json').version
96
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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('./fastyaml-rs.win32-x64-gnu.node')
111
+ } catch (e) {
112
+ loadErrors.push(e)
113
+ }
114
+ try {
115
+ const binding = require('fastyaml-rs-win32-x64-gnu')
116
+ const bindingPackageVersion = require('fastyaml-rs-win32-x64-gnu/package.json').version
117
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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('./fastyaml-rs.win32-x64-msvc.node')
127
+ } catch (e) {
128
+ loadErrors.push(e)
129
+ }
130
+ try {
131
+ const binding = require('fastyaml-rs-win32-x64-msvc')
132
+ const bindingPackageVersion = require('fastyaml-rs-win32-x64-msvc/package.json').version
133
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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('./fastyaml-rs.win32-ia32-msvc.node')
144
+ } catch (e) {
145
+ loadErrors.push(e)
146
+ }
147
+ try {
148
+ const binding = require('fastyaml-rs-win32-ia32-msvc')
149
+ const bindingPackageVersion = require('fastyaml-rs-win32-ia32-msvc/package.json').version
150
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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('./fastyaml-rs.win32-arm64-msvc.node')
160
+ } catch (e) {
161
+ loadErrors.push(e)
162
+ }
163
+ try {
164
+ const binding = require('fastyaml-rs-win32-arm64-msvc')
165
+ const bindingPackageVersion = require('fastyaml-rs-win32-arm64-msvc/package.json').version
166
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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('./fastyaml-rs.darwin-universal.node')
179
+ } catch (e) {
180
+ loadErrors.push(e)
181
+ }
182
+ try {
183
+ const binding = require('fastyaml-rs-darwin-universal')
184
+ const bindingPackageVersion = require('fastyaml-rs-darwin-universal/package.json').version
185
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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('./fastyaml-rs.darwin-x64.node')
195
+ } catch (e) {
196
+ loadErrors.push(e)
197
+ }
198
+ try {
199
+ const binding = require('fastyaml-rs-darwin-x64')
200
+ const bindingPackageVersion = require('fastyaml-rs-darwin-x64/package.json').version
201
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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('./fastyaml-rs.darwin-arm64.node')
211
+ } catch (e) {
212
+ loadErrors.push(e)
213
+ }
214
+ try {
215
+ const binding = require('fastyaml-rs-darwin-arm64')
216
+ const bindingPackageVersion = require('fastyaml-rs-darwin-arm64/package.json').version
217
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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('./fastyaml-rs.freebsd-x64.node')
231
+ } catch (e) {
232
+ loadErrors.push(e)
233
+ }
234
+ try {
235
+ const binding = require('fastyaml-rs-freebsd-x64')
236
+ const bindingPackageVersion = require('fastyaml-rs-freebsd-x64/package.json').version
237
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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('./fastyaml-rs.freebsd-arm64.node')
247
+ } catch (e) {
248
+ loadErrors.push(e)
249
+ }
250
+ try {
251
+ const binding = require('fastyaml-rs-freebsd-arm64')
252
+ const bindingPackageVersion = require('fastyaml-rs-freebsd-arm64/package.json').version
253
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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('./fastyaml-rs.linux-x64-musl.node')
43
268
  } catch (e) {
44
- loadError = e;
269
+ loadErrors.push(e)
45
270
  }
46
- break;
47
- case 'arm':
48
- localFileExisted = existsSync(join(__dirname, 'fast-yaml.android-arm-eabi.node'));
49
271
  try {
50
- if (localFileExisted) {
51
- nativeBinding = require('./fast-yaml.android-arm-eabi.node');
52
- } else {
53
- nativeBinding = require('@fast-yaml/android-arm-eabi');
272
+ const binding = require('fastyaml-rs-linux-x64-musl')
273
+ const bindingPackageVersion = require('fastyaml-rs-linux-x64-musl/package.json').version
274
+ if (bindingPackageVersion !== '0.1.6' && 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.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
54
276
  }
277
+ return binding
55
278
  } catch (e) {
56
- loadError = e;
279
+ loadErrors.push(e)
57
280
  }
58
- break;
59
- default:
60
- throw new Error(`Unsupported architecture on Android ${arch}`);
61
- }
62
- break;
63
- case 'win32':
64
- switch (arch) {
65
- case 'x64':
66
- localFileExisted = existsSync(join(__dirname, 'fast-yaml.win32-x64-msvc.node'));
67
- try {
68
- if (localFileExisted) {
69
- nativeBinding = require('./fast-yaml.win32-x64-msvc.node');
70
- } else {
71
- nativeBinding = require('@fast-yaml/win32-x64-msvc');
72
- }
281
+ } else {
282
+ try {
283
+ return require('./fastyaml-rs.linux-x64-gnu.node')
73
284
  } catch (e) {
74
- loadError = e;
285
+ loadErrors.push(e)
75
286
  }
76
- break;
77
- case 'ia32':
78
- localFileExisted = existsSync(join(__dirname, 'fast-yaml.win32-ia32-msvc.node'));
79
287
  try {
80
- if (localFileExisted) {
81
- nativeBinding = require('./fast-yaml.win32-ia32-msvc.node');
82
- } else {
83
- nativeBinding = require('@fast-yaml/win32-ia32-msvc');
288
+ const binding = require('fastyaml-rs-linux-x64-gnu')
289
+ const bindingPackageVersion = require('fastyaml-rs-linux-x64-gnu/package.json').version
290
+ if (bindingPackageVersion !== '0.1.6' && 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.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
84
292
  }
293
+ return binding
85
294
  } catch (e) {
86
- loadError = e;
295
+ loadErrors.push(e)
87
296
  }
88
- break;
89
- case 'arm64':
90
- localFileExisted = existsSync(join(__dirname, 'fast-yaml.win32-arm64-msvc.node'));
297
+ }
298
+ } else if (process.arch === 'arm64') {
299
+ if (isMusl()) {
91
300
  try {
92
- if (localFileExisted) {
93
- nativeBinding = require('./fast-yaml.win32-arm64-msvc.node');
94
- } else {
95
- nativeBinding = require('@fast-yaml/win32-arm64-msvc');
301
+ return require('./fastyaml-rs.linux-arm64-musl.node')
302
+ } catch (e) {
303
+ loadErrors.push(e)
304
+ }
305
+ try {
306
+ const binding = require('fastyaml-rs-linux-arm64-musl')
307
+ const bindingPackageVersion = require('fastyaml-rs-linux-arm64-musl/package.json').version
308
+ if (bindingPackageVersion !== '0.1.6' && 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.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
96
310
  }
311
+ return binding
97
312
  } catch (e) {
98
- loadError = e;
313
+ loadErrors.push(e)
99
314
  }
100
- break;
101
- default:
102
- throw new Error(`Unsupported architecture on Windows: ${arch}`);
103
- }
104
- break;
105
- case 'darwin':
106
- localFileExisted = existsSync(join(__dirname, 'fast-yaml.darwin-universal.node'));
107
- try {
108
- if (localFileExisted) {
109
- nativeBinding = require('./fast-yaml.darwin-universal.node');
110
315
  } else {
111
- nativeBinding = require('@fast-yaml/darwin-universal');
112
- }
113
- break;
114
- } catch {}
115
- switch (arch) {
116
- case 'x64':
117
- localFileExisted = existsSync(join(__dirname, 'fast-yaml.darwin-x64.node'));
118
- try {
119
- if (localFileExisted) {
120
- nativeBinding = require('./fast-yaml.darwin-x64.node');
121
- } else {
122
- nativeBinding = require('@fast-yaml/darwin-x64');
316
+ try {
317
+ return require('./fastyaml-rs.linux-arm64-gnu.node')
318
+ } catch (e) {
319
+ loadErrors.push(e)
320
+ }
321
+ try {
322
+ const binding = require('fastyaml-rs-linux-arm64-gnu')
323
+ const bindingPackageVersion = require('fastyaml-rs-linux-arm64-gnu/package.json').version
324
+ if (bindingPackageVersion !== '0.1.6' && 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.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
123
326
  }
327
+ return binding
124
328
  } catch (e) {
125
- loadError = e;
329
+ loadErrors.push(e)
126
330
  }
127
- break;
128
- case 'arm64':
129
- localFileExisted = existsSync(join(__dirname, 'fast-yaml.darwin-arm64.node'));
331
+ }
332
+ } else if (process.arch === 'arm') {
333
+ if (isMusl()) {
130
334
  try {
131
- if (localFileExisted) {
132
- nativeBinding = require('./fast-yaml.darwin-arm64.node');
133
- } else {
134
- nativeBinding = require('@fast-yaml/darwin-arm64');
335
+ return require('./fastyaml-rs.linux-arm-musleabihf.node')
336
+ } catch (e) {
337
+ loadErrors.push(e)
338
+ }
339
+ try {
340
+ const binding = require('fastyaml-rs-linux-arm-musleabihf')
341
+ const bindingPackageVersion = require('fastyaml-rs-linux-arm-musleabihf/package.json').version
342
+ if (bindingPackageVersion !== '0.1.6' && 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.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
135
344
  }
345
+ return binding
136
346
  } catch (e) {
137
- loadError = e;
347
+ loadErrors.push(e)
138
348
  }
139
- break;
140
- default:
141
- throw new Error(`Unsupported architecture on macOS: ${arch}`);
142
- }
143
- break;
144
- case 'freebsd':
145
- if (arch !== 'x64') {
146
- throw new Error(`Unsupported architecture on FreeBSD: ${arch}`);
147
- }
148
- localFileExisted = existsSync(join(__dirname, 'fast-yaml.freebsd-x64.node'));
149
- try {
150
- if (localFileExisted) {
151
- nativeBinding = require('./fast-yaml.freebsd-x64.node');
152
349
  } else {
153
- nativeBinding = require('@fast-yaml/freebsd-x64');
154
- }
155
- } catch (e) {
156
- loadError = e;
157
- }
158
- break;
159
- case 'linux':
160
- switch (arch) {
161
- case 'x64':
162
- if (isMusl()) {
163
- localFileExisted = existsSync(join(__dirname, 'fast-yaml.linux-x64-musl.node'));
164
- try {
165
- if (localFileExisted) {
166
- nativeBinding = require('./fast-yaml.linux-x64-musl.node');
167
- } else {
168
- nativeBinding = require('@fast-yaml/linux-x64-musl');
169
- }
170
- } catch (e) {
171
- loadError = e;
350
+ try {
351
+ return require('./fastyaml-rs.linux-arm-gnueabihf.node')
352
+ } catch (e) {
353
+ loadErrors.push(e)
354
+ }
355
+ try {
356
+ const binding = require('fastyaml-rs-linux-arm-gnueabihf')
357
+ const bindingPackageVersion = require('fastyaml-rs-linux-arm-gnueabihf/package.json').version
358
+ if (bindingPackageVersion !== '0.1.6' && 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.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
172
360
  }
173
- } else {
174
- localFileExisted = existsSync(join(__dirname, 'fast-yaml.linux-x64-gnu.node'));
175
- try {
176
- if (localFileExisted) {
177
- nativeBinding = require('./fast-yaml.linux-x64-gnu.node');
178
- } else {
179
- nativeBinding = require('@fast-yaml/linux-x64-gnu');
180
- }
181
- } catch (e) {
182
- loadError = e;
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('./fastyaml-rs.linux-loong64-musl.node')
370
+ } catch (e) {
371
+ loadErrors.push(e)
372
+ }
373
+ try {
374
+ const binding = require('fastyaml-rs-linux-loong64-musl')
375
+ const bindingPackageVersion = require('fastyaml-rs-linux-loong64-musl/package.json').version
376
+ if (bindingPackageVersion !== '0.1.6' && 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.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
183
378
  }
379
+ return binding
380
+ } catch (e) {
381
+ loadErrors.push(e)
382
+ }
383
+ } else {
384
+ try {
385
+ return require('./fastyaml-rs.linux-loong64-gnu.node')
386
+ } catch (e) {
387
+ loadErrors.push(e)
184
388
  }
185
- break;
186
- case 'arm64':
187
- if (isMusl()) {
188
- localFileExisted = existsSync(join(__dirname, 'fast-yaml.linux-arm64-musl.node'));
189
- try {
190
- if (localFileExisted) {
191
- nativeBinding = require('./fast-yaml.linux-arm64-musl.node');
192
- } else {
193
- nativeBinding = require('@fast-yaml/linux-arm64-musl');
194
- }
195
- } catch (e) {
196
- loadError = e;
389
+ try {
390
+ const binding = require('fastyaml-rs-linux-loong64-gnu')
391
+ const bindingPackageVersion = require('fastyaml-rs-linux-loong64-gnu/package.json').version
392
+ if (bindingPackageVersion !== '0.1.6' && 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.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
197
394
  }
198
- } else {
199
- localFileExisted = existsSync(join(__dirname, 'fast-yaml.linux-arm64-gnu.node'));
200
- try {
201
- if (localFileExisted) {
202
- nativeBinding = require('./fast-yaml.linux-arm64-gnu.node');
203
- } else {
204
- nativeBinding = require('@fast-yaml/linux-arm64-gnu');
205
- }
206
- } catch (e) {
207
- loadError = e;
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('./fastyaml-rs.linux-riscv64-musl.node')
404
+ } catch (e) {
405
+ loadErrors.push(e)
406
+ }
407
+ try {
408
+ const binding = require('fastyaml-rs-linux-riscv64-musl')
409
+ const bindingPackageVersion = require('fastyaml-rs-linux-riscv64-musl/package.json').version
410
+ if (bindingPackageVersion !== '0.1.6' && 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.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
208
412
  }
413
+ return binding
414
+ } catch (e) {
415
+ loadErrors.push(e)
416
+ }
417
+ } else {
418
+ try {
419
+ return require('./fastyaml-rs.linux-riscv64-gnu.node')
420
+ } catch (e) {
421
+ loadErrors.push(e)
209
422
  }
210
- break;
211
- case 'arm':
212
- localFileExisted = existsSync(join(__dirname, 'fast-yaml.linux-arm-gnueabihf.node'));
213
423
  try {
214
- if (localFileExisted) {
215
- nativeBinding = require('./fast-yaml.linux-arm-gnueabihf.node');
216
- } else {
217
- nativeBinding = require('@fast-yaml/linux-arm-gnueabihf');
424
+ const binding = require('fastyaml-rs-linux-riscv64-gnu')
425
+ const bindingPackageVersion = require('fastyaml-rs-linux-riscv64-gnu/package.json').version
426
+ if (bindingPackageVersion !== '0.1.6' && 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.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
218
428
  }
429
+ return binding
219
430
  } catch (e) {
220
- loadError = e;
431
+ loadErrors.push(e)
432
+ }
433
+ }
434
+ } else if (process.arch === 'ppc64') {
435
+ try {
436
+ return require('./fastyaml-rs.linux-ppc64-gnu.node')
437
+ } catch (e) {
438
+ loadErrors.push(e)
439
+ }
440
+ try {
441
+ const binding = require('fastyaml-rs-linux-ppc64-gnu')
442
+ const bindingPackageVersion = require('fastyaml-rs-linux-ppc64-gnu/package.json').version
443
+ if (bindingPackageVersion !== '0.1.6' && 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.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
221
445
  }
222
- break;
223
- default:
224
- throw new Error(`Unsupported architecture on Linux: ${arch}`);
446
+ return binding
447
+ } catch (e) {
448
+ loadErrors.push(e)
449
+ }
450
+ } else if (process.arch === 's390x') {
451
+ try {
452
+ return require('./fastyaml-rs.linux-s390x-gnu.node')
453
+ } catch (e) {
454
+ loadErrors.push(e)
455
+ }
456
+ try {
457
+ const binding = require('fastyaml-rs-linux-s390x-gnu')
458
+ const bindingPackageVersion = require('fastyaml-rs-linux-s390x-gnu/package.json').version
459
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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}`))
225
468
  }
226
- break;
227
- default:
228
- throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`);
469
+ } else if (process.platform === 'openharmony') {
470
+ if (process.arch === 'arm64') {
471
+ try {
472
+ return require('./fastyaml-rs.openharmony-arm64.node')
473
+ } catch (e) {
474
+ loadErrors.push(e)
475
+ }
476
+ try {
477
+ const binding = require('fastyaml-rs-openharmony-arm64')
478
+ const bindingPackageVersion = require('fastyaml-rs-openharmony-arm64/package.json').version
479
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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('./fastyaml-rs.openharmony-x64.node')
489
+ } catch (e) {
490
+ loadErrors.push(e)
491
+ }
492
+ try {
493
+ const binding = require('fastyaml-rs-openharmony-x64')
494
+ const bindingPackageVersion = require('fastyaml-rs-openharmony-x64/package.json').version
495
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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('./fastyaml-rs.openharmony-arm.node')
505
+ } catch (e) {
506
+ loadErrors.push(e)
507
+ }
508
+ try {
509
+ const binding = require('fastyaml-rs-openharmony-arm')
510
+ const bindingPackageVersion = require('fastyaml-rs-openharmony-arm/package.json').version
511
+ if (bindingPackageVersion !== '0.1.6' && 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.6 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
+ }
229
524
  }
230
525
 
231
- if (!nativeBinding) {
232
- if (loadError) {
233
- throw loadError;
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('./fastyaml-rs.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('fastyaml-rs-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
234
554
  }
235
- throw new Error(`Failed to load native binding`);
236
555
  }
237
556
 
238
- const { version, safeLoad, safeLoadAll, safeDump, safeDumpAll } = nativeBinding;
557
+ if (!nativeBinding) {
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
+ )
570
+ }
571
+ throw new Error(`Failed to load native binding`)
572
+ }
239
573
 
240
- module.exports.version = version;
241
- module.exports.safeLoad = safeLoad;
242
- module.exports.safeLoadAll = safeLoadAll;
243
- module.exports.safeDump = safeDump;
244
- module.exports.safeDumpAll = safeDumpAll;
574
+ module.exports = nativeBinding
575
+ module.exports.safeDump = nativeBinding.safeDump
576
+ module.exports.safeDumpAll = nativeBinding.safeDumpAll
577
+ module.exports.safeLoad = nativeBinding.safeLoad
578
+ module.exports.safeLoadAll = nativeBinding.safeLoadAll
579
+ module.exports.version = nativeBinding.version
245
580
 
246
581
  // Aliases for js-yaml compatibility
247
- module.exports.load = safeLoad;
248
- module.exports.dump = safeDump;
582
+ module.exports.load = nativeBinding.safeLoad
583
+ module.exports.dump = nativeBinding.safeDump