UNPKG

oxc-parser

Version:
726 lines (710 loc) 29.9 kB
// prettier-ignore /* eslint-disable */ // @ts-nocheck /* auto-generated by NAPI-RS */ import { createRequire } from 'module' const require = createRequire(import.meta.url) const __dirname = new URL('.', import.meta.url).pathname const { readFileSync } = require('fs') let nativeBinding = null const loadErrors = [] const isMusl = () => { let musl = false if (process.platform === 'linux') { musl = isMuslFromFilesystem() if (musl === null) { musl = isMuslFromReport() } if (musl === null) { musl = isMuslFromChildProcess() } } return musl } const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-') const isMuslFromFilesystem = () => { try { return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl') } catch { return null } } const isMuslFromReport = () => { let report = null if (process.report && typeof process.report.getReport === 'function') { process.report.excludeNetwork = true report = process.report.getReport() } if (!report) { return null } if (report.header && report.header.glibcVersionRuntime) { return false } if (Array.isArray(report.sharedObjects)) { if (report.sharedObjects.some(isFileMusl)) { return true } } return false } const isMuslFromChildProcess = () => { try { return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl') } catch (e) { // If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false return false } } function requireNative() { if (process.env.NAPI_RS_NATIVE_LIBRARY_PATH) { try { return require(process.env.NAPI_RS_NATIVE_LIBRARY_PATH); } catch (err) { loadErrors.push(err) } } else if (process.platform === 'android') { if (process.arch === 'arm64') { try { return require('./parser.android-arm64.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-android-arm64') const bindingPackageVersion = require('@oxc-parser/binding-android-arm64/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else if (process.arch === 'arm') { try { return require('./parser.android-arm-eabi.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-android-arm-eabi') const bindingPackageVersion = require('@oxc-parser/binding-android-arm-eabi/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else { loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`)) } } else if (process.platform === 'win32') { if (process.arch === 'x64') { if ((process.config && process.config.variables && process.config.variables.shlib_suffix === 'dll.a') || (process.config && process.config.variables && process.config.variables.node_target_type === 'shared_library')) { try { return require('./parser.win32-x64-gnu.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-win32-x64-gnu') const bindingPackageVersion = require('@oxc-parser/binding-win32-x64-gnu/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else { try { return require('./parser.win32-x64-msvc.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-win32-x64-msvc') const bindingPackageVersion = require('@oxc-parser/binding-win32-x64-msvc/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } } else if (process.arch === 'ia32') { try { return require('./parser.win32-ia32-msvc.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-win32-ia32-msvc') const bindingPackageVersion = require('@oxc-parser/binding-win32-ia32-msvc/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else if (process.arch === 'arm64') { try { return require('./parser.win32-arm64-msvc.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-win32-arm64-msvc') const bindingPackageVersion = require('@oxc-parser/binding-win32-arm64-msvc/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else { loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`)) } } else if (process.platform === 'darwin') { try { return require('./parser.darwin-universal.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-darwin-universal') const bindingPackageVersion = require('@oxc-parser/binding-darwin-universal/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } if (process.arch === 'x64') { try { return require('./parser.darwin-x64.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-darwin-x64') const bindingPackageVersion = require('@oxc-parser/binding-darwin-x64/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else if (process.arch === 'arm64') { try { return require('./parser.darwin-arm64.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-darwin-arm64') const bindingPackageVersion = require('@oxc-parser/binding-darwin-arm64/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else { loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`)) } } else if (process.platform === 'freebsd') { if (process.arch === 'x64') { try { return require('./parser.freebsd-x64.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-freebsd-x64') const bindingPackageVersion = require('@oxc-parser/binding-freebsd-x64/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else if (process.arch === 'arm64') { try { return require('./parser.freebsd-arm64.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-freebsd-arm64') const bindingPackageVersion = require('@oxc-parser/binding-freebsd-arm64/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else { loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`)) } } else if (process.platform === 'linux') { if (process.arch === 'x64') { if (isMusl()) { try { return require('./parser.linux-x64-musl.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-linux-x64-musl') const bindingPackageVersion = require('@oxc-parser/binding-linux-x64-musl/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else { try { return require('./parser.linux-x64-gnu.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-linux-x64-gnu') const bindingPackageVersion = require('@oxc-parser/binding-linux-x64-gnu/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } } else if (process.arch === 'arm64') { if (isMusl()) { try { return require('./parser.linux-arm64-musl.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-linux-arm64-musl') const bindingPackageVersion = require('@oxc-parser/binding-linux-arm64-musl/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else { try { return require('./parser.linux-arm64-gnu.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-linux-arm64-gnu') const bindingPackageVersion = require('@oxc-parser/binding-linux-arm64-gnu/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } } else if (process.arch === 'arm') { if (isMusl()) { try { return require('./parser.linux-arm-musleabihf.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-linux-arm-musleabihf') const bindingPackageVersion = require('@oxc-parser/binding-linux-arm-musleabihf/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else { try { return require('./parser.linux-arm-gnueabihf.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-linux-arm-gnueabihf') const bindingPackageVersion = require('@oxc-parser/binding-linux-arm-gnueabihf/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } } else if (process.arch === 'loong64') { if (isMusl()) { try { return require('./parser.linux-loong64-musl.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-linux-loong64-musl') const bindingPackageVersion = require('@oxc-parser/binding-linux-loong64-musl/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else { try { return require('./parser.linux-loong64-gnu.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-linux-loong64-gnu') const bindingPackageVersion = require('@oxc-parser/binding-linux-loong64-gnu/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } } else if (process.arch === 'riscv64') { if (isMusl()) { try { return require('./parser.linux-riscv64-musl.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-linux-riscv64-musl') const bindingPackageVersion = require('@oxc-parser/binding-linux-riscv64-musl/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else { try { return require('./parser.linux-riscv64-gnu.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-linux-riscv64-gnu') const bindingPackageVersion = require('@oxc-parser/binding-linux-riscv64-gnu/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } } else if (process.arch === 'ppc64') { try { return require('./parser.linux-ppc64-gnu.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-linux-ppc64-gnu') const bindingPackageVersion = require('@oxc-parser/binding-linux-ppc64-gnu/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else if (process.arch === 's390x') { try { return require('./parser.linux-s390x-gnu.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-linux-s390x-gnu') const bindingPackageVersion = require('@oxc-parser/binding-linux-s390x-gnu/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else { loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`)) } } else if (process.platform === 'openharmony') { if (process.arch === 'arm64') { try { return require('./parser.openharmony-arm64.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-openharmony-arm64') const bindingPackageVersion = require('@oxc-parser/binding-openharmony-arm64/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else if (process.arch === 'x64') { try { return require('./parser.openharmony-x64.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-openharmony-x64') const bindingPackageVersion = require('@oxc-parser/binding-openharmony-x64/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else if (process.arch === 'arm') { try { return require('./parser.openharmony-arm.node') } catch (e) { loadErrors.push(e) } try { const binding = require('@oxc-parser/binding-openharmony-arm') const bindingPackageVersion = require('@oxc-parser/binding-openharmony-arm/package.json').version if (bindingPackageVersion !== '0.143.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { throw new Error(`Native binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } return binding } catch (e) { loadErrors.push(e) } } else { loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`)) } } else { loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`)) } } function createLoadErrorChain(errors) { return errors.reduce((previous, current) => { let message try { message = current && typeof current.message === 'string' ? current.message : String(current) } catch { message = 'Unknown error' } const error = new Error(message) error.cause = previous return error }, null) } // NAPI_RS_FORCE_WASI is a tri-state flag: // unset / any other value → native binding preferred, WASI is only a fallback // 'true' → prefer WASI, but retain native as a lazy fallback // 'error' → require WASI without initializing a native fallback // Treating any non-empty string as truthy (the historical behavior) meant // NAPI_RS_FORCE_WASI=false, NAPI_RS_FORCE_WASI=0, etc. inadvertently triggered // the WASI path, causing ENOENT for packages shipped without a .wasi.cjs file. // // NAPI_RS_WASI_FLAVOR selects one exact generated flavor and implies strict // WASI loading. It never crosses into another flavor or falls back to native. const __napiWasiFlavors = ["wasm32-wasi"] const __napiWasiFlavor = process.env.NAPI_RS_WASI_FLAVOR const __napiWasiFlavorRequested = typeof __napiWasiFlavor === 'string' && __napiWasiFlavor.length > 0 if ( __napiWasiFlavorRequested && __napiWasiFlavors.indexOf(__napiWasiFlavor) === -1 ) { throw new Error( 'Unsupported WASI flavor "' + __napiWasiFlavor + '". Available flavors: ' + __napiWasiFlavors.join(', '), ) } const forceWasiError = process.env.NAPI_RS_FORCE_WASI === 'error' const forceWasi = process.env.NAPI_RS_FORCE_WASI === 'true' || forceWasiError || __napiWasiFlavorRequested if (!forceWasi) { nativeBinding = requireNative() } if (!nativeBinding || forceWasi) { let wasiBinding = null let wasiBindingLoaded = false const wasiBindingErrors = [] const __napiWasiResolveCandidate = (specifier, isPackage, localArtifacts) => { try { require.resolve(specifier) } catch (resolveError) { if (!resolveError || resolveError.code !== 'MODULE_NOT_FOUND') { throw resolveError } if (isPackage) { try { require.resolve(specifier + '/package.json') } catch (packageError) { if (packageError && packageError.code === 'MODULE_NOT_FOUND') { return resolveError } // An exports restriction proves the package exists even when its // package.json is not public. Preserve the root resolution failure. throw resolveError } // The package exists but its main/export target is broken. throw resolveError } return resolveError } if (localArtifacts) { let artifactError = null for (let i = 0; i < localArtifacts.length; i++) { try { require.resolve(localArtifacts[i]) return null } catch (resolveError) { if (!resolveError || resolveError.code !== 'MODULE_NOT_FOUND') { throw resolveError } artifactError = resolveError } } return artifactError } return null } if (!wasiBindingLoaded && (!__napiWasiFlavorRequested || __napiWasiFlavor === "wasm32-wasi")) { let candidateError = null let candidateFailed = false try { candidateError = __napiWasiResolveCandidate('./parser.wasi.cjs', false, ["./parser.wasm32-wasi.debug.wasm","./parser.wasm32-wasi.wasm"]) candidateFailed = candidateError !== null if (!candidateFailed) { wasiBinding = require('./parser.wasi.cjs') nativeBinding = wasiBinding wasiBindingLoaded = true } } catch (err) { candidateError = err candidateFailed = true } if (candidateFailed) { wasiBindingErrors.push(candidateError) loadErrors.push(candidateError) } } if (!wasiBindingLoaded && (!__napiWasiFlavorRequested || __napiWasiFlavor === "wasm32-wasi")) { let candidateError = null let candidateFailed = false try { candidateError = __napiWasiResolveCandidate('@oxc-parser/binding-wasm32-wasi', true, undefined) candidateFailed = candidateError !== null if (!candidateFailed) { if (process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') { const bindingPackageVersion = require('@oxc-parser/binding-wasm32-wasi/package.json').version if (bindingPackageVersion !== '0.143.0') { throw new Error(`WASI binding package version mismatch, expected 0.143.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`) } } wasiBinding = require('@oxc-parser/binding-wasm32-wasi') nativeBinding = wasiBinding wasiBindingLoaded = true } } catch (err) { candidateError = err candidateFailed = true } if (candidateFailed) { wasiBindingErrors.push(candidateError) loadErrors.push(candidateError) } } if ( !wasiBindingLoaded && forceWasi && !forceWasiError && !__napiWasiFlavorRequested ) { nativeBinding = requireNative() } if ((forceWasiError || __napiWasiFlavorRequested) && !wasiBindingLoaded) { const error = new Error( __napiWasiFlavorRequested ? 'WASI binding for flavor "' + __napiWasiFlavor + '" not found' : 'WASI binding not found and NAPI_RS_FORCE_WASI is set to error', ) error.cause = createLoadErrorChain(wasiBindingErrors) throw error } } if (!nativeBinding && globalThis.process?.versions?.["webcontainer"]) { try { nativeBinding = require('./webcontainer-fallback.cjs'); } catch (err) { loadErrors.push(err) } } if (!nativeBinding) { if (loadErrors.length > 0) { const error = new Error( `Cannot find native binding. ` + `npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). ` + 'Please try `npm i` again after removing both package-lock.json and node_modules directory.', ) // assign instead of the `new Error(message, { cause })` options form, // which Node < 16.9 silently ignores error.cause = createLoadErrorChain(loadErrors) throw error } throw new Error(`Failed to load native binding`) } const { Severity, ParseResult, ExportExportNameKind, ExportImportNameKind, ExportLocalNameKind, ImportNameKind, parse, parseSync, rawTransferSupported } = nativeBinding export { Severity } export { ParseResult } export { ExportExportNameKind } export { ExportImportNameKind } export { ExportLocalNameKind } export { ImportNameKind } export { parse } export { parseSync } export { rawTransferSupported } const { getBufferOffset, parseRaw, parseRawSync } = nativeBinding export { getBufferOffset, parseRaw, parseRawSync }