From ea57037567c814eb40236cd6826c583f620e9a0b Mon Sep 17 00:00:00 2001 From: Ben Grant Date: Wed, 2 Jul 2025 09:36:09 -0700 Subject: [PATCH] Revert "Upgrade self-reported Node.js version from 22.6.0 to 24.3.0 (#20659) [publish images]" This reverts commit 80309e4d5930574d246750eb752cd0c80d54ac79. It breaks the Windows CI. --- .buildkite/ci.mjs | 3 + .claude/commands/upgrade-nodejs.md | 92 ---------------- cmake/Options.cmake | 4 +- cmake/scripts/PrepareNodeHeaders.cmake | 31 ------ cmake/targets/BuildBun.cmake | 6 -- scripts/bootstrap.ps1 | 6 +- scripts/bootstrap.sh | 80 +++----------- src/bun.js/bindings/BunProcess.cpp | 64 +---------- src/bun.js/bindings/CPUFeatures.cpp | 2 +- src/bun.js/bindings/napi.cpp | 14 +-- src/bun.js/bindings/napi.h | 3 - .../bindings/v8/V8FunctionCallbackInfo.cpp | 6 +- .../bindings/v8/V8FunctionCallbackInfo.h | 16 +-- src/bun.js/bindings/v8/V8Isolate.cpp | 11 +- src/bun.js/bindings/v8/V8Isolate.h | 2 +- .../bindings/v8/shim/FunctionTemplate.cpp | 13 ++- .../bindings/v8/shim/FunctionTemplate.h | 14 --- .../bindings/v8/shim/HandleScopeBuffer.h | 2 +- src/bun.js/bindings/v8/v8_api_internal.cpp | 19 ---- src/bun.js/bindings/v8/v8_api_internal.h | 8 -- src/bun.js/node/node_util_binding.zig | 1 - src/cli/publish_command.zig | 4 +- src/deps/libuv.zig | 1 - src/errno/darwin_errno.zig | 1 - src/errno/linux_errno.zig | 1 - src/errno/windows_errno.zig | 3 - src/napi/js_native_api.h | 2 +- src/napi/napi.zig | 2 - src/symbols.def | 1 - src/symbols.dyn | 1 - src/symbols.txt | 1 - test/bun.lock | 56 ++++++---- test/bundler/esbuild/default.test.ts | 12 +-- test/cli/install/bunx.test.ts | 20 ---- test/internal/ban-words.test.ts | 1 - .../bun/http/bun-serve-html-manifest.test.ts | 57 ++++++---- test/js/node/process/process.test.js | 36 ++----- .../test/parallel/test-net-bytes-stats.js | 78 -------------- test/napi/napi-app/bun.lock | 100 ++++++++---------- test/napi/napi-app/package.json | 2 +- test/napi/napi.test.ts | 2 +- test/napi/node-napi.test.ts | 5 +- test/no-validate-exceptions.txt | 1 - test/package.json | 2 +- .../v8/bad-modules/mismatched_abi_version.cpp | 2 +- test/v8/bad-modules/no_entrypoint.cpp | 2 +- test/v8/v8.test.ts | 10 +- 47 files changed, 203 insertions(+), 597 deletions(-) delete mode 100644 .claude/commands/upgrade-nodejs.md delete mode 100644 cmake/scripts/PrepareNodeHeaders.cmake delete mode 100644 test/js/node/test/parallel/test-net-bytes-stats.js diff --git a/.buildkite/ci.mjs b/.buildkite/ci.mjs index 971607eaa0..a51b691511 100755 --- a/.buildkite/ci.mjs +++ b/.buildkite/ci.mjs @@ -128,8 +128,11 @@ const testPlatforms = [ { os: "linux", arch: "x64", baseline: true, distro: "debian", release: "12", tier: "latest" }, { os: "linux", arch: "x64", profile: "asan", distro: "debian", release: "12", tier: "latest" }, { os: "linux", arch: "aarch64", distro: "ubuntu", release: "24.04", tier: "latest" }, + { os: "linux", arch: "aarch64", distro: "ubuntu", release: "20.04", tier: "oldest" }, { os: "linux", arch: "x64", distro: "ubuntu", release: "24.04", tier: "latest" }, + { os: "linux", arch: "x64", distro: "ubuntu", release: "20.04", tier: "oldest" }, { os: "linux", arch: "x64", baseline: true, distro: "ubuntu", release: "24.04", tier: "latest" }, + { os: "linux", arch: "x64", baseline: true, distro: "ubuntu", release: "20.04", tier: "oldest" }, { os: "linux", arch: "aarch64", abi: "musl", distro: "alpine", release: "3.21", tier: "latest" }, { os: "linux", arch: "x64", abi: "musl", distro: "alpine", release: "3.21", tier: "latest" }, { os: "linux", arch: "x64", abi: "musl", baseline: true, distro: "alpine", release: "3.21", tier: "latest" }, diff --git a/.claude/commands/upgrade-nodejs.md b/.claude/commands/upgrade-nodejs.md deleted file mode 100644 index 6ba1832ce6..0000000000 --- a/.claude/commands/upgrade-nodejs.md +++ /dev/null @@ -1,92 +0,0 @@ -# Upgrading Bun's Self-Reported Node.js Version - -This guide explains how to upgrade the Node.js version that Bun reports for compatibility with Node.js packages and native addons. - -## Overview - -Bun reports a Node.js version for compatibility with the Node.js ecosystem. This affects: -- `process.version` output -- Node-API (N-API) compatibility -- Native addon ABI compatibility -- V8 API compatibility for addons using V8 directly - -## Files That Always Need Updates - -### 1. Bootstrap Scripts -- `scripts/bootstrap.sh` - Update `NODEJS_VERSION=` -- `scripts/bootstrap.ps1` - Update `$NODEJS_VERSION =` - -### 2. CMake Configuration -- `cmake/Options.cmake` - - `NODEJS_VERSION` - The Node.js version string (e.g., "24.3.0") - - `NODEJS_ABI_VERSION` - The ABI version number (find using command below) - -### 3. Version Strings -- `src/bun.js/bindings/BunProcess.cpp` - - Update `Bun__versions_node` with the Node.js version - - Update `Bun__versions_v8` with the V8 version (find using command below) - -### 4. N-API Version -- `src/napi/js_native_api.h` - - Update `NAPI_VERSION` define (check Node.js release notes) - -## Files That May Need Updates - -Only check these if the build fails or tests crash after updating version numbers: -- V8 compatibility files in `src/bun.js/bindings/v8/` (if V8 API changed) -- Test files (if Node.js requires newer C++ standard) - -## Quick Commands to Find Version Info - -```bash -# Get latest Node.js version info -curl -s https://nodejs.org/dist/index.json | jq '.[0]' - -# Get V8 version for a specific Node.js version (replace v24.3.0) -curl -s https://nodejs.org/dist/v24.3.0/node-v24.3.0-headers.tar.gz | tar -xzO node-v24.3.0/include/node/node_version.h | grep V8_VERSION - -# Get ABI version for a specific Node.js version -curl -s https://nodejs.org/dist/v24.3.0/node-v24.3.0-headers.tar.gz | tar -xzO node-v24.3.0/include/node/node_version.h | grep NODE_MODULE_VERSION - -# Or use the ABI registry -curl -s https://raw.githubusercontent.com/nodejs/node/main/doc/abi_version_registry.json | jq '.NODE_MODULE_VERSION.""' -``` - -## Update Process - -1. **Gather version info** using the commands above -2. **Update the required files** listed in the sections above -3. **Build and test**: - ```bash - bun bd - bun bd -e "console.log(process.version)" - bun bd -e "console.log(process.versions.v8)" - bun bd test test/v8/v8.test.ts - bun bd test test/napi/napi.test.ts - ``` - -4. **Check for V8 API changes** only if build fails or tests crash: - - Compare v8-function-callback.h between versions - - Check v8-internal.h for Isolate size changes - - Look for new required APIs in build errors - -## If Build Fails or Tests Crash - -The V8 API rarely has breaking changes between minor Node.js versions. If you encounter issues: -1. Check build errors for missing symbols or type mismatches -2. Compare V8 headers between old and new Node.js versions -3. Most issues can be resolved by implementing missing functions or adjusting structures - -## Testing Checklist - -- [ ] `process.version` returns correct version -- [ ] `process.versions.v8` returns correct V8 version -- [ ] `process.config.variables.node_module_version` returns correct ABI -- [ ] V8 tests pass -- [ ] N-API tests pass - -## Notes - -- Most upgrades only require updating version numbers -- Major V8 version changes (rare) may require API updates -- The V8 shim implements only APIs used by common native addons \ No newline at end of file diff --git a/cmake/Options.cmake b/cmake/Options.cmake index 1b20044471..412cb068b3 100644 --- a/cmake/Options.cmake +++ b/cmake/Options.cmake @@ -139,10 +139,10 @@ endif() optionx(REVISION STRING "The git revision of the build" DEFAULT ${DEFAULT_REVISION}) # Used in process.version, process.versions.node, napi, and elsewhere -optionx(NODEJS_VERSION STRING "The version of Node.js to report" DEFAULT "24.3.0") +optionx(NODEJS_VERSION STRING "The version of Node.js to report" DEFAULT "22.6.0") # Used in process.versions.modules and compared while loading V8 modules -optionx(NODEJS_ABI_VERSION STRING "The ABI version of Node.js to report" DEFAULT "137") +optionx(NODEJS_ABI_VERSION STRING "The ABI version of Node.js to report" DEFAULT "127") if(APPLE) set(DEFAULT_STATIC_SQLITE OFF) diff --git a/cmake/scripts/PrepareNodeHeaders.cmake b/cmake/scripts/PrepareNodeHeaders.cmake deleted file mode 100644 index 40328860cf..0000000000 --- a/cmake/scripts/PrepareNodeHeaders.cmake +++ /dev/null @@ -1,31 +0,0 @@ -# This script prepares Node.js headers for use with Bun -# It removes conflicting OpenSSL and libuv headers since Bun uses BoringSSL and its own libuv - -if(NOT DEFINED NODE_INCLUDE_DIR) - message(FATAL_ERROR "NODE_INCLUDE_DIR not defined") -endif() - -if(NOT EXISTS "${NODE_INCLUDE_DIR}/node") - message(FATAL_ERROR "Node headers not found at ${NODE_INCLUDE_DIR}/node") -endif() - -# Remove OpenSSL headers that conflict with BoringSSL -if(EXISTS "${NODE_INCLUDE_DIR}/node/openssl") - file(REMOVE_RECURSE "${NODE_INCLUDE_DIR}/node/openssl") - message(STATUS "Removed conflicting OpenSSL headers") -endif() - -# Remove libuv headers that might conflict -if(EXISTS "${NODE_INCLUDE_DIR}/node/uv") - file(REMOVE_RECURSE "${NODE_INCLUDE_DIR}/node/uv") - message(STATUS "Removed conflicting libuv headers") -endif() - -if(EXISTS "${NODE_INCLUDE_DIR}/node/uv.h") - file(REMOVE "${NODE_INCLUDE_DIR}/node/uv.h") - message(STATUS "Removed conflicting uv.h header") -endif() - -# Add the node directory to include path for cppgc -# This is needed because cppgc internal headers use relative includes -file(WRITE "${NODE_INCLUDE_DIR}/.node-headers-prepared" "1") diff --git a/cmake/targets/BuildBun.cmake b/cmake/targets/BuildBun.cmake index 0b0879d3ec..2c7d1574d0 100644 --- a/cmake/targets/BuildBun.cmake +++ b/cmake/targets/BuildBun.cmake @@ -650,13 +650,8 @@ register_command( -DDOWNLOAD_PATH=${NODEJS_HEADERS_PATH} -DDOWNLOAD_URL=https://nodejs.org/dist/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}-headers.tar.gz -P ${CWD}/cmake/scripts/DownloadUrl.cmake - COMMAND - ${CMAKE_COMMAND} - -DNODE_INCLUDE_DIR=${NODEJS_HEADERS_PATH}/include - -P ${CWD}/cmake/scripts/PrepareNodeHeaders.cmake OUTPUTS ${NODEJS_HEADERS_PATH}/include/node/node_version.h - ${NODEJS_HEADERS_PATH}/include/.node-headers-prepared ) list(APPEND BUN_CPP_SOURCES @@ -768,7 +763,6 @@ target_include_directories(${bun} PRIVATE ${VENDOR_PATH} ${VENDOR_PATH}/picohttpparser ${NODEJS_HEADERS_PATH}/include - ${NODEJS_HEADERS_PATH}/include/node ) if(NOT WIN32) diff --git a/scripts/bootstrap.ps1 b/scripts/bootstrap.ps1 index b50ca4772b..10e7756f32 100755 --- a/scripts/bootstrap.ps1 +++ b/scripts/bootstrap.ps1 @@ -1,4 +1,4 @@ -# Version: 9 +# Version: 8 # A script that installs the dependencies needed to build and test Bun. # This should work on Windows 10 or newer with PowerShell. @@ -240,11 +240,11 @@ function Install-Git { } function Install-NodeJs { - Install-Package nodejs -Command node -Version "24.3.0" + Install-Package nodejs -Command node -Version "22.9.0" } function Install-Bun { - Install-Package bun -Version "1.2.17" + Install-Package bun -Version "1.1.30" } function Install-Cygwin { diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 14b26452f2..16ea4089d5 100755 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Version: 12 +# Version: 11 # A script that installs the dependencies needed to build and test Bun. # This should work on macOS and Linux with a POSIX shell. @@ -130,7 +130,7 @@ create_directory() { create_tmp_directory() { mktemp="$(require mktemp)" path="$(execute "$mktemp" -d)" - grant_to_user "$path" + grant_to_user "$path" print "$path" } @@ -191,7 +191,7 @@ download_file() { fetch "$file_url" >"$file_tmp_path" grant_to_user "$file_tmp_path" - + print "$file_tmp_path" } @@ -317,7 +317,7 @@ check_operating_system() { distro="$("$sw_vers" -productName)" release="$("$sw_vers" -productVersion)" fi - + case "$arch" in x64) sysctl="$(which sysctl)" @@ -534,7 +534,7 @@ check_ulimit() { append_file "$dpkg_conf" "force-unsafe-io" append_file "$dpkg_conf" "no-debsig" - apt_conf="/etc/apt/apt.conf.d/99-ci-options" + apt_conf="/etc/apt/apt.conf.d/99-ci-options" execute_sudo create_directory "$(dirname "$apt_conf")" append_file "$apt_conf" 'Acquire::Languages "none";' append_file "$apt_conf" 'Acquire::GzipIndexes "true";' @@ -711,7 +711,12 @@ install_common_software() { } nodejs_version_exact() { - print "24.3.0" + # https://unofficial-builds.nodejs.org/download/release/ + if ! [ "$abi" = "musl" ] && [ -n "$abi_version" ] && ! [ "$(compare_version "$abi_version" "2.27")" = "1" ]; then + print "16.9.1" + else + print "22.9.0" + fi } nodejs_version() { @@ -751,68 +756,16 @@ install_nodejs() { } install_nodejs_headers() { - nodejs_version="$(nodejs_version_exact)" - nodejs_headers_tar="$(download_file "https://nodejs.org/download/release/v$nodejs_version/node-v$nodejs_version-headers.tar.gz")" + nodejs_headers_tar="$(download_file "https://nodejs.org/download/release/v$(nodejs_version_exact)/node-v$(nodejs_version_exact)-headers.tar.gz")" nodejs_headers_dir="$(dirname "$nodejs_headers_tar")" execute tar -xzf "$nodejs_headers_tar" -C "$nodejs_headers_dir" - nodejs_headers_include="$nodejs_headers_dir/node-v$nodejs_version/include" + nodejs_headers_include="$nodejs_headers_dir/node-v$(nodejs_version_exact)/include" execute_sudo cp -R "$nodejs_headers_include/" "/usr" - - # Also install to node-gyp cache locations for different node-gyp versions - # This ensures node-gyp finds headers without downloading them - setup_node_gyp_cache "$nodejs_version" "$nodejs_headers_dir/node-v$nodejs_version" -} - -setup_node_gyp_cache() { - nodejs_version="$1" - headers_source="$2" - - # Common node-gyp cache locations - cache_locations=" - $HOME/.node-gyp/$nodejs_version - $HOME/.cache/node-gyp/$nodejs_version - $HOME/.npm/_cacache/node-gyp/$nodejs_version - $current_home/.node-gyp/$nodejs_version - $current_home/.cache/node-gyp/$nodejs_version - " - - for cache_dir in $cache_locations; do - if ! [ -z "$cache_dir" ]; then - create_directory "$cache_dir" - - # Copy headers - if [ -d "$headers_source/include" ]; then - cp -R "$headers_source/include" "$cache_dir/" 2>/dev/null || true - fi - - # Create installVersion file (node-gyp expects this) - echo "11" > "$cache_dir/installVersion" 2>/dev/null || true - - # For Linux, we don't need .lib files like Windows - # but create the directory structure node-gyp expects - case "$arch" in - x86_64|amd64) - create_directory "$cache_dir/lib/x64" 2>/dev/null || true - ;; - aarch64|arm64) - create_directory "$cache_dir/lib/arm64" 2>/dev/null || true - ;; - *) - create_directory "$cache_dir/lib" 2>/dev/null || true - ;; - esac - - # Set proper ownership for buildkite user - if [ "$ci" = "1" ] && [ "$user" = "buildkite-agent" ]; then - execute_sudo chown -R "$user:$user" "$cache_dir" 2>/dev/null || true - fi - fi - done } bun_version_exact() { - print "1.2.17" + print "1.2.0" } install_bun() { @@ -957,7 +910,7 @@ install_llvm() { bash="$(require bash)" llvm_script="$(download_file "https://apt.llvm.org/llvm.sh")" execute_sudo "$bash" "$llvm_script" "$(llvm_version)" all - + # Install llvm-symbolizer explicitly to ensure it's available for ASAN install_packages "llvm-$(llvm_version)-tools" ;; @@ -977,8 +930,7 @@ install_llvm() { } install_gcc() { - if ! [ "$os" = "linux" ] || ! [ "$distro" = "ubuntu" ] || [ -z "$gcc_version" ] - then + if ! [ "$os" = "linux" ] || ! [ "$distro" = "ubuntu" ] || [ -z "$gcc_version" ]; then return fi diff --git a/src/bun.js/bindings/BunProcess.cpp b/src/bun.js/bindings/BunProcess.cpp index b3c316c09e..cc511af28d 100644 --- a/src/bun.js/bindings/BunProcess.cpp +++ b/src/bun.js/bindings/BunProcess.cpp @@ -206,13 +206,13 @@ static JSValue constructVersions(VM& vm, JSObject* processObject) object->putDirect(vm, JSC::Identifier::fromString(vm, "usockets"_s), JSC::jsOwnedString(vm, ASCIILiteral::fromLiteralUnsafe(Bun__versions_usockets)), 0); object->putDirect(vm, JSC::Identifier::fromString(vm, "lshpack"_s), JSC::jsOwnedString(vm, ASCIILiteral::fromLiteralUnsafe(Bun__versions_lshpack)), 0); object->putDirect(vm, JSC::Identifier::fromString(vm, "zstd"_s), JSC::jsOwnedString(vm, ASCIILiteral::fromLiteralUnsafe(Bun__versions_zstd)), 0); - object->putDirect(vm, JSC::Identifier::fromString(vm, "v8"_s), JSValue(JSC::jsOwnedString(vm, String("13.6.233.10-node.18"_s))), 0); + object->putDirect(vm, JSC::Identifier::fromString(vm, "v8"_s), JSValue(JSC::jsOwnedString(vm, String("12.4.254.14-node.12"_s))), 0); #if OS(WINDOWS) object->putDirect(vm, JSC::Identifier::fromString(vm, "uv"_s), JSValue(JSC::jsOwnedString(vm, String::fromLatin1(uv_version_string()))), 0); #else object->putDirect(vm, JSC::Identifier::fromString(vm, "uv"_s), JSValue(JSC::jsOwnedString(vm, String("1.48.0"_s))), 0); #endif - object->putDirect(vm, JSC::Identifier::fromString(vm, "napi"_s), JSValue(JSC::jsOwnedString(vm, String("10"_s))), 0); + object->putDirect(vm, JSC::Identifier::fromString(vm, "napi"_s), JSValue(JSC::jsOwnedString(vm, String("9"_s))), 0); object->putDirect(vm, JSC::Identifier::fromString(vm, "icu"_s), JSValue(JSC::jsOwnedString(vm, String(ASCIILiteral::fromLiteralUnsafe(U_ICU_VERSION)))), 0); object->putDirect(vm, JSC::Identifier::fromString(vm, "unicode"_s), JSValue(JSC::jsOwnedString(vm, String(ASCIILiteral::fromLiteralUnsafe(U_UNICODE_VERSION)))), 0); @@ -2111,68 +2111,8 @@ static JSValue constructProcessConfigObject(VM& vm, JSObject* processObject) variables->putDirect(vm, JSC::Identifier::fromString(vm, "v8_enable_i8n_support"_s), JSC::jsNumber(1), 0); variables->putDirect(vm, JSC::Identifier::fromString(vm, "enable_lto"_s), JSC::jsBoolean(false), 0); variables->putDirect(vm, JSC::Identifier::fromString(vm, "node_module_version"_s), JSC::jsNumber(REPORTED_NODEJS_ABI_VERSION), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "napi_build_version"_s), JSC::jsNumber(Napi::DEFAULT_NAPI_VERSION), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "node_builtin_shareable_builtins"_s), JSC::constructEmptyArray(globalObject, nullptr), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "node_byteorder"_s), JSC::jsString(vm, String("little"_s)), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "clang"_s), JSC::jsNumber(0), 0); - config->putDirect(vm, JSC::Identifier::fromString(vm, "target_defaults"_s), JSC::constructEmptyObject(globalObject), 0); config->putDirect(vm, JSC::Identifier::fromString(vm, "variables"_s), variables, 0); -#if OS(WINDOWS) - variables->putDirect(vm, JSC::Identifier::fromString(vm, "asan"_s), JSC::jsNumber(0), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "control_flow_guard"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "coverage"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "dcheck_always_on"_s), JSC::jsNumber(0), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "debug_nghttp2"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "debug_node"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "enable_lto"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "enable_pgo_generate"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "enable_pgo_use"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "error_on_warn"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "force_dynamic_crt"_s), JSC::jsNumber(0), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "napi_build_version"_s), JSC::jsNumber(Napi::DEFAULT_NAPI_VERSION), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "nasm_version"_s), JSC::jsNumber(2), 0); -#elif OS(MACOS) - variables->putDirect(vm, JSC::Identifier::fromString(vm, "asan"_s), JSC::jsNumber(0), 0); // TODO: ASAN_ENABLED - variables->putDirect(vm, JSC::Identifier::fromString(vm, "control_flow_guard"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "coverage"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "dcheck_always_on"_s), JSC::jsNumber(0), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "debug_nghttp2"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "debug_node"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "enable_lto"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "enable_pgo_generate"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "enable_pgo_use"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "error_on_warn"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "force_dynamic_crt"_s), JSC::jsNumber(0), 0); -#if CPU(ARM64) - variables->putDirect(vm, JSC::Identifier::fromString(vm, "arm_fpu"_s), JSC::jsString(vm, String("neon"_s)), 0); -#endif -#elif OS(LINUX) - variables->putDirect(vm, JSC::Identifier::fromString(vm, "asan"_s), JSC::jsNumber(0), 0); // TODO: ASAN_ENABLED - variables->putDirect(vm, JSC::Identifier::fromString(vm, "control_flow_guard"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "coverage"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "dcheck_always_on"_s), JSC::jsNumber(0), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "debug_nghttp2"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "debug_node"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "enable_lto"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "enable_pgo_generate"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "enable_pgo_use"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "error_on_warn"_s), JSC::jsBoolean(false), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "force_dynamic_crt"_s), JSC::jsNumber(0), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "napi_build"_s), JSC::jsString(vm, String("0.0"_s)), 0); -#else -#error "Unsupported OS" -#endif - -#if CPU(X86_64) - variables->putDirect(vm, JSC::Identifier::fromString(vm, "host_arch"_s), JSC::jsString(vm, String("x64"_s)), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "target_arch"_s), JSC::jsString(vm, String("x64"_s)), 0); -#elif CPU(ARM64) - variables->putDirect(vm, JSC::Identifier::fromString(vm, "host_arch"_s), JSC::jsString(vm, String("arm64"_s)), 0); - variables->putDirect(vm, JSC::Identifier::fromString(vm, "target_arch"_s), JSC::jsString(vm, String("arm64"_s)), 0); -#else -#error "Unsupported architecture" -#endif config->freeze(vm); return config; diff --git a/src/bun.js/bindings/CPUFeatures.cpp b/src/bun.js/bindings/CPUFeatures.cpp index aba699b6fc..367a2134e7 100644 --- a/src/bun.js/bindings/CPUFeatures.cpp +++ b/src/bun.js/bindings/CPUFeatures.cpp @@ -125,6 +125,6 @@ extern "C" uint8_t bun_cpu_features() #elif CPU(ARM64) return aarch64_cpu_features(); #else -#error "Unknown architecture" + return 0; #endif } diff --git a/src/bun.js/bindings/napi.cpp b/src/bun.js/bindings/napi.cpp index 84c4c70402..6f172101c5 100644 --- a/src/bun.js/bindings/napi.cpp +++ b/src/bun.js/bindings/napi.cpp @@ -2042,7 +2042,7 @@ extern "C" napi_status napi_get_value_int64(napi_env env, napi_value value, int6 // must match src/bun.js/node/types.zig#Encoding, which matches WebCore::BufferEncodingType enum class NapiStringEncoding : uint8_t { utf8 = static_cast(WebCore::BufferEncodingType::utf8), - utf16 = static_cast(WebCore::BufferEncodingType::utf16le), + utf16le = static_cast(WebCore::BufferEncodingType::utf16le), latin1 = static_cast(WebCore::BufferEncodingType::latin1), }; @@ -2052,7 +2052,7 @@ struct BufferElement { }; template<> -struct BufferElement { +struct BufferElement { using Type = char16_t; }; @@ -2081,7 +2081,7 @@ napi_status napi_get_value_string_any_encoding(napi_env env, napi_value napiValu *writtenPtr = Bun__encoding__byteLengthUTF16AsUTF8(view->span16().data(), view->length()); } break; - case NapiStringEncoding::utf16: + case NapiStringEncoding::utf16le: [[fallthrough]]; case NapiStringEncoding::latin1: // if the string's encoding is the same as the destination encoding, this is trivially correct @@ -2106,14 +2106,14 @@ napi_status napi_get_value_string_any_encoding(napi_env env, napi_value napiValu size_t written; std::span writable_byte_slice(reinterpret_cast(buf), - EncodeTo == NapiStringEncoding::utf16 + EncodeTo == NapiStringEncoding::utf16le // don't write encoded text to the last element of the destination buffer // since we need to put a null terminator there ? 2 * (bufsize - 1) : bufsize - 1); if (view->is8Bit()) { const auto span = view->span8(); - if constexpr (EncodeTo == NapiStringEncoding::utf16) { + if constexpr (EncodeTo == NapiStringEncoding::utf16le) { // pass subslice to work around Bun__encoding__writeLatin1 asserting that the output has room written = Bun__encoding__writeLatin1(span.data(), @@ -2130,7 +2130,7 @@ napi_status napi_get_value_string_any_encoding(napi_env env, napi_value napiValu } // convert bytes to code units - if constexpr (EncodeTo == NapiStringEncoding::utf16) { + if constexpr (EncodeTo == NapiStringEncoding::utf16le) { written /= 2; } @@ -2169,7 +2169,7 @@ extern "C" napi_status napi_get_value_string_utf16(napi_env env, napi_value napi NAPI_PREAMBLE_NO_THROW_SCOPE(env); NAPI_CHECK_ENV_NOT_IN_GC(env); // this function does set_last_error - return napi_get_value_string_any_encoding(env, napiValue, buf, bufsize, writtenPtr); + return napi_get_value_string_any_encoding(env, napiValue, buf, bufsize, writtenPtr); } extern "C" napi_status napi_get_value_bool(napi_env env, napi_value value, bool* result) diff --git a/src/bun.js/bindings/napi.h b/src/bun.js/bindings/napi.h index db9c25ffd8..16a3a715c8 100644 --- a/src/bun.js/bindings/napi.h +++ b/src/bun.js/bindings/napi.h @@ -24,9 +24,6 @@ extern "C" void napi_internal_crash_in_gc(napi_env); extern "C" void Bun__crashHandler(const char* message, size_t message_len); namespace Napi { - -static constexpr int DEFAULT_NAPI_VERSION = 10; - struct AsyncCleanupHook { napi_async_cleanup_hook function = nullptr; void* data = nullptr; diff --git a/src/bun.js/bindings/v8/V8FunctionCallbackInfo.cpp b/src/bun.js/bindings/v8/V8FunctionCallbackInfo.cpp index f044d67ffd..f819282b5b 100644 --- a/src/bun.js/bindings/v8/V8FunctionCallbackInfo.cpp +++ b/src/bun.js/bindings/v8/V8FunctionCallbackInfo.cpp @@ -9,11 +9,11 @@ == sizeof(void*) * real_v8::FunctionCallbackInfo::V8_NAME, \ "Position of `" #BUN_NAME "` in implicit arguments does not match V8"); -CHECK_IMPLICIT_ARG(unused, kUnusedIndex) +CHECK_IMPLICIT_ARG(holder, kHolderIndex) CHECK_IMPLICIT_ARG(isolate, kIsolateIndex) -CHECK_IMPLICIT_ARG(context, kContextIndex) +CHECK_IMPLICIT_ARG(unused, kUnusedIndex) CHECK_IMPLICIT_ARG(return_value, kReturnValueIndex) -CHECK_IMPLICIT_ARG(target, kTargetIndex) +CHECK_IMPLICIT_ARG(data, kDataIndex) CHECK_IMPLICIT_ARG(new_target, kNewTargetIndex) ASSERT_V8_TYPE_LAYOUT_MATCHES(v8::FunctionCallbackInfo) diff --git a/src/bun.js/bindings/v8/V8FunctionCallbackInfo.h b/src/bun.js/bindings/v8/V8FunctionCallbackInfo.h index bfb9f97779..7e9f6f9177 100644 --- a/src/bun.js/bindings/v8/V8FunctionCallbackInfo.h +++ b/src/bun.js/bindings/v8/V8FunctionCallbackInfo.h @@ -9,13 +9,15 @@ class Context; class Value; struct ImplicitArgs { - // v8-function-callback.h:149-154 - void* unused; // kUnusedIndex = 0 - Isolate* isolate; // kIsolateIndex = 1 - void* context; // kContextIndex = 2 - TaggedPointer return_value; // kReturnValueIndex = 3 - TaggedPointer target; // kTargetIndex = 4 - void* new_target; // kNewTargetIndex = 5 + // v8-function-callback.h:168 + void* holder; + Isolate* isolate; + void* unused; + // overwritten by the callback + TaggedPointer return_value; + // holds the value passed for data in FunctionTemplate::New + TaggedPointer data; + void* new_target; }; // T = return value diff --git a/src/bun.js/bindings/v8/V8Isolate.cpp b/src/bun.js/bindings/v8/V8Isolate.cpp index 2f6928b49a..f6385c53b9 100644 --- a/src/bun.js/bindings/v8/V8Isolate.cpp +++ b/src/bun.js/bindings/v8/V8Isolate.cpp @@ -5,11 +5,14 @@ #include "real_v8.h" #include "v8_compatibility_assertions.h" -static_assert(offsetof(v8::Isolate, m_roots) == real_v8::internal::Internals::kIsolateRootsOffset, "Isolate roots array is at wrong offset"); +static_assert(offsetof(v8::Isolate, m_roots) == real_v8::internal::Internals::kIsolateRootsOffset, + "Isolate roots array is at wrong offset"); -#define CHECK_ROOT_INDEX(NAME) \ - static_assert(v8::Isolate::NAME == real_v8::internal::Internals::NAME, "Isolate root index " #NAME " does not match between Bun and V8"); \ - static_assert(v8::Isolate::NAME < std::tuple_size_v, "Bun v8::Isolate roots array is too small for index " #NAME); +#define CHECK_ROOT_INDEX(NAME) \ + static_assert(v8::Isolate::NAME == real_v8::internal::Internals::NAME, \ + "Isolate root index " #NAME " does not match between Bun and V8"); \ + static_assert(v8::Isolate::NAME < std::tuple_size_v, \ + "Bun v8::Isolate roots array is too small for index " #NAME); CHECK_ROOT_INDEX(kUndefinedValueRootIndex) CHECK_ROOT_INDEX(kTheHoleValueRootIndex) diff --git a/src/bun.js/bindings/v8/V8Isolate.h b/src/bun.js/bindings/v8/V8Isolate.h index 5069cbd3e9..de603e0690 100644 --- a/src/bun.js/bindings/v8/V8Isolate.h +++ b/src/bun.js/bindings/v8/V8Isolate.h @@ -50,7 +50,7 @@ public: shim::GlobalInternals* m_globalInternals; Zig::GlobalObject* m_globalObject; - uintptr_t m_padding[78]; + uintptr_t m_padding[72]; std::array m_roots; }; diff --git a/src/bun.js/bindings/v8/shim/FunctionTemplate.cpp b/src/bun.js/bindings/v8/shim/FunctionTemplate.cpp index affa454e3f..d10063e301 100644 --- a/src/bun.js/bindings/v8/shim/FunctionTemplate.cpp +++ b/src/bun.js/bindings/v8/shim/FunctionTemplate.cpp @@ -82,17 +82,16 @@ JSC::EncodedJSValue FunctionTemplate::functionCall(JSC::JSGlobalObject* globalOb args[i + 1] = argValue.tagged(); } - // In V8, the target is the function being called - Local target = hs.createLocal(vm, callee); + Local data = hs.createLocal(vm, functionTemplate->m_data.get()); ImplicitArgs implicit_args = { - .unused = nullptr, + .holder = nullptr, .isolate = isolate, - // Context is always a reinterpret pointer to Zig::GlobalObject - .context = reinterpret_cast(globalObject), + .unused = nullptr, .return_value = TaggedPointer(), - // target holds the Function being called, which contains the FunctionTemplate - .target = target.tagged(), + // data may be an object + // put it in the handle scope so that it has a map ptr + .data = data.tagged(), .new_target = nullptr, }; diff --git a/src/bun.js/bindings/v8/shim/FunctionTemplate.h b/src/bun.js/bindings/v8/shim/FunctionTemplate.h index cdc264efaa..29027bd3fc 100644 --- a/src/bun.js/bindings/v8/shim/FunctionTemplate.h +++ b/src/bun.js/bindings/v8/shim/FunctionTemplate.h @@ -7,18 +7,6 @@ namespace v8 { class FunctionTemplate; -template -class Local; -class Value; -class Data; - -class Isolate; - -namespace api_internal { -// Forward declaration - defined in v8_api_internal.cpp -Local GetFunctionTemplateData(Isolate* isolate, Local target); -} - namespace shim { class FunctionTemplate : public JSC::InternalFunction { @@ -47,8 +35,6 @@ public: static JSC::EncodedJSValue JSC_HOST_CALL_ATTRIBUTES functionCall(JSC::JSGlobalObject* globalObject, JSC::CallFrame* callFrame); - friend v8::Local api_internal::GetFunctionTemplateData(v8::Isolate* isolate, v8::Local target); - private: FunctionCallback m_callback; JSC::WriteBarrier m_data; diff --git a/src/bun.js/bindings/v8/shim/HandleScopeBuffer.h b/src/bun.js/bindings/v8/shim/HandleScopeBuffer.h index f30c535c23..e51e59e9e8 100644 --- a/src/bun.js/bindings/v8/shim/HandleScopeBuffer.h +++ b/src/bun.js/bindings/v8/shim/HandleScopeBuffer.h @@ -1,7 +1,6 @@ #pragma once #include "../v8.h" -#include "../V8Isolate.h" #include "TaggedPointer.h" #include "Map.h" #include "Handle.h" @@ -9,6 +8,7 @@ namespace v8 { +class Isolate; class EscapableHandleScopeBase; namespace shim { diff --git a/src/bun.js/bindings/v8/v8_api_internal.cpp b/src/bun.js/bindings/v8/v8_api_internal.cpp index 10384fc017..8f45b84073 100644 --- a/src/bun.js/bindings/v8/v8_api_internal.cpp +++ b/src/bun.js/bindings/v8/v8_api_internal.cpp @@ -1,12 +1,7 @@ #include "v8_api_internal.h" #include "V8Isolate.h" -#include "V8HandleScope.h" -#include "V8Data.h" -#include "V8Value.h" #include "shim/HandleScopeBuffer.h" #include "shim/GlobalInternals.h" -#include "shim/Function.h" -#include "shim/FunctionTemplate.h" namespace v8 { @@ -36,19 +31,5 @@ void DisposeGlobal(uintptr_t* location) (void)location; } -Local GetFunctionTemplateData(Isolate* isolate, Local target) -{ - // The target should be a Function that was created from a FunctionTemplate - // Use operator* to get the Data* from Local, then call localToObjectPointer - auto* function = target->localToObjectPointer(); - if (!function) return Local(); - - auto* functionTemplate = function->functionTemplate(); - if (!functionTemplate) return Local(); - - JSC::JSValue data = functionTemplate->m_data.get(); - return isolate->currentHandleScope()->createLocal(isolate->vm(), data); -} - } // namespace api_internal } // namespace v8 diff --git a/src/bun.js/bindings/v8/v8_api_internal.h b/src/bun.js/bindings/v8/v8_api_internal.h index 3d3a5a0716..df54422290 100644 --- a/src/bun.js/bindings/v8/v8_api_internal.h +++ b/src/bun.js/bindings/v8/v8_api_internal.h @@ -4,20 +4,12 @@ #include "v8_internal.h" namespace v8 { - -class Isolate; -template -class Local; -class Value; -class Data; - namespace api_internal { BUN_EXPORT void ToLocalEmpty(); BUN_EXPORT void FromJustIsNothing(); BUN_EXPORT uintptr_t* GlobalizeReference(v8::internal::Isolate* isolate, uintptr_t address); BUN_EXPORT void DisposeGlobal(uintptr_t* location); -BUN_EXPORT Local GetFunctionTemplateData(Isolate* isolate, Local target); } // namespace api_internal } // namespace v8 diff --git a/src/bun.js/node/node_util_binding.zig b/src/bun.js/node/node_util_binding.zig index 78e0791b8d..bc580c85e8 100644 --- a/src/bun.js/node/node_util_binding.zig +++ b/src/bun.js/node/node_util_binding.zig @@ -101,7 +101,6 @@ pub fn internalErrorName(globalThis: *JSC.JSGlobalObject, callframe: *JSC.CallFr if (err_int == -bun.sys.UV_E.SOCKTNOSUPPORT) return bun.String.static("ESOCKTNOSUPPORT").toJS(globalThis); if (err_int == -bun.sys.UV_E.NODATA) return bun.String.static("ENODATA").toJS(globalThis); if (err_int == -bun.sys.UV_E.UNATCH) return bun.String.static("EUNATCH").toJS(globalThis); - if (err_int == -bun.sys.UV_E.NOEXEC) return bun.String.static("ENOEXEC").toJS(globalThis); var fmtstring = bun.String.createFormat("Unknown system error {d}", .{err_int}) catch bun.outOfMemory(); return fmtstring.transferToJS(globalThis); diff --git a/src/cli/publish_command.zig b/src/cli/publish_command.zig index ae9cd7df01..8aea179caf 100644 --- a/src/cli/publish_command.zig +++ b/src/cli/publish_command.zig @@ -1246,7 +1246,7 @@ pub const PublishCommand = struct { if (ci_name != null) " ci/" else "", ci_name orelse "", }); - // headers.count("user-agent", "npm/10.8.3 node/v24.3.0 darwin arm64 workspaces/false"); + // headers.count("user-agent", "npm/10.8.3 node/v22.6.0 darwin arm64 workspaces/false"); headers.count("user-agent", print_buf.items); print_buf.clearRetainingCapacity(); @@ -1295,7 +1295,7 @@ pub const PublishCommand = struct { if (ci_name != null) " ci/" else "", ci_name orelse "", }); - // headers.append("user-agent", "npm/10.8.3 node/v24.3.0 darwin arm64 workspaces/false"); + // headers.append("user-agent", "npm/10.8.3 node/v22.6.0 darwin arm64 workspaces/false"); headers.append("user-agent", print_buf.items); print_buf.clearRetainingCapacity(); diff --git a/src/deps/libuv.zig b/src/deps/libuv.zig index 0fe7d29eb0..f1955a827d 100644 --- a/src/deps/libuv.zig +++ b/src/deps/libuv.zig @@ -887,7 +887,6 @@ pub const UV_EILSEQ: c_int = -4027; pub const UV_ESOCKTNOSUPPORT: c_int = -4025; pub const UV_ENODATA: c_int = -4024; pub const UV_EUNATCH: c_int = -4023; -pub const UV_ENOEXEC: c_int = -4022; pub const UV_ERRNO_MAX: c_int = -4096; pub const uv_errno_t = c_int; pub const UV_UNKNOWN_HANDLE: c_int = 0; diff --git a/src/errno/darwin_errno.zig b/src/errno/darwin_errno.zig index f7fb51d659..b254f4a542 100644 --- a/src/errno/darwin_errno.zig +++ b/src/errno/darwin_errno.zig @@ -193,7 +193,6 @@ pub const UV_E = struct { pub const SOCKTNOSUPPORT: i32 = @intFromEnum(SystemErrno.ESOCKTNOSUPPORT); pub const NODATA: i32 = @intFromEnum(SystemErrno.ENODATA); pub const UNATCH: i32 = -bun.windows.libuv.UV_EUNATCH; - pub const NOEXEC: i32 = @intFromEnum(SystemErrno.ENOEXEC); }; pub fn getErrno(rc: anytype) E { if (rc == -1) { diff --git a/src/errno/linux_errno.zig b/src/errno/linux_errno.zig index d4379a88c7..22ab85ce21 100644 --- a/src/errno/linux_errno.zig +++ b/src/errno/linux_errno.zig @@ -222,7 +222,6 @@ pub const UV_E = struct { pub const SOCKTNOSUPPORT: i32 = @intFromEnum(SystemErrno.ESOCKTNOSUPPORT); pub const NODATA: i32 = @intFromEnum(SystemErrno.ENODATA); pub const UNATCH: i32 = @intFromEnum(SystemErrno.EUNATCH); - pub const NOEXEC: i32 = @intFromEnum(SystemErrno.ENOEXEC); }; pub fn getErrno(rc: anytype) E { const Type = @TypeOf(rc); diff --git a/src/errno/windows_errno.zig b/src/errno/windows_errno.zig index b486f10a2c..106785702b 100644 --- a/src/errno/windows_errno.zig +++ b/src/errno/windows_errno.zig @@ -222,7 +222,6 @@ pub const E = enum(u16) { UV_ESOCKTNOSUPPORT = -uv.UV_ESOCKTNOSUPPORT, UV_ERRNO_MAX = -uv.UV_ERRNO_MAX, UV_EUNATCH = -uv.UV_EUNATCH, - UV_ENOEXEC = -uv.UV_ENOEXEC, }; pub const S = struct { @@ -525,7 +524,6 @@ pub const SystemErrno = enum(u16) { UV_ESOCKTNOSUPPORT = -uv.UV_ESOCKTNOSUPPORT, UV_ERRNO_MAX = -uv.UV_ERRNO_MAX, UV_EUNATCH = -uv.UV_EUNATCH, - UV_ENOEXEC = -uv.UV_ENOEXEC, pub const max = 137; @@ -1164,7 +1162,6 @@ pub const UV_E = struct { pub const SOCKTNOSUPPORT = -uv.UV_ESOCKTNOSUPPORT; pub const NODATA = -uv.UV_ENODATA; pub const UNATCH = -uv.UV_EUNATCH; - pub const NOEXEC = -uv.UV_ENOEXEC; }; const std = @import("std"); const bun = @import("bun"); diff --git a/src/napi/js_native_api.h b/src/napi/js_native_api.h index a96d99cce8..3840310cdd 100644 --- a/src/napi/js_native_api.h +++ b/src/napi/js_native_api.h @@ -17,7 +17,7 @@ // functions available in a new version of N-API that is not yet ported in all // LTS versions, they can set NAPI_VERSION knowing that they have specifically // depended on that version. -#define NAPI_VERSION 10 +#define NAPI_VERSION 8 #endif #endif diff --git a/src/napi/napi.zig b/src/napi/napi.zig index 95ece81f92..649c8210df 100644 --- a/src/napi/napi.zig +++ b/src/napi/napi.zig @@ -1843,7 +1843,6 @@ const V8API = if (!bun.Environment.isWindows) struct { pub extern fn _ZNK2v86String19ContainsOnlyOneByteEv() *anyopaque; pub extern fn _ZN2v812api_internal18GlobalizeReferenceEPNS_8internal7IsolateEm() *anyopaque; pub extern fn _ZN2v812api_internal13DisposeGlobalEPm() *anyopaque; - pub extern fn _ZN2v812api_internal23GetFunctionTemplateDataEPNS_7IsolateENS_5LocalINS_4DataEEE() *anyopaque; pub extern fn _ZNK2v88Function7GetNameEv() *anyopaque; pub extern fn _ZNK2v85Value10IsFunctionEv() *anyopaque; pub extern fn _ZN2v812api_internal17FromJustIsNothingEv() *anyopaque; @@ -1915,7 +1914,6 @@ const V8API = if (!bun.Environment.isWindows) struct { pub extern fn @"?ContainsOnlyOneByte@String@v8@@QEBA_NXZ"() *anyopaque; pub extern fn @"?GlobalizeReference@api_internal@v8@@YAPEA_KPEAVIsolate@internal@2@_K@Z"() *anyopaque; pub extern fn @"?DisposeGlobal@api_internal@v8@@YAXPEA_K@Z"() *anyopaque; - pub extern fn @"?GetFunctionTemplateData@api_internal@v8@@YA?AV?$Local@VValue@v8@@@2@PEAVIsolate@2@V?$Local@VData@v8@@@2@@Z"() *anyopaque; pub extern fn @"?GetName@Function@v8@@QEBA?AV?$Local@VValue@v8@@@2@XZ"() *anyopaque; pub extern fn @"?IsFunction@Value@v8@@QEBA_NXZ"() *anyopaque; pub extern fn @"?FromJustIsNothing@api_internal@v8@@YAXXZ"() *anyopaque; diff --git a/src/symbols.def b/src/symbols.def index e323c71c96..ed8dce0cff 100644 --- a/src/symbols.def +++ b/src/symbols.def @@ -635,4 +635,3 @@ EXPORTS ?GetName@Function@v8@@QEBA?AV?$Local@VValue@v8@@@2@XZ ?IsFunction@Value@v8@@QEBA_NXZ ?FromJustIsNothing@api_internal@v8@@YAXXZ - ?GetFunctionTemplateData@api_internal@v8@@YA?AV?$Local@VValue@v8@@@2@PEAVIsolate@2@V?$Local@VData@v8@@@2@@Z diff --git a/src/symbols.dyn b/src/symbols.dyn index 52ac723141..bd733b5ede 100644 --- a/src/symbols.dyn +++ b/src/symbols.dyn @@ -7,7 +7,6 @@ __ZN2v812api_internal13DisposeGlobalEPm; __ZN2v812api_internal17FromJustIsNothingEv; __ZN2v812api_internal18GlobalizeReferenceEPNS_8internal7IsolateEm; - __ZN2v812api_internal23GetFunctionTemplateDataEPNS_7IsolateENS_5LocalINS_4DataEEE; __ZN2v814ObjectTemplate11NewInstanceENS_5LocalINS_7ContextEEE; __ZN2v814ObjectTemplate21SetInternalFieldCountEi; __ZN2v814ObjectTemplate3NewEPNS_7IsolateENS_5LocalINS_16FunctionTemplateEEE; diff --git a/src/symbols.txt b/src/symbols.txt index 30da904b1f..56f7a8f68b 100644 --- a/src/symbols.txt +++ b/src/symbols.txt @@ -6,7 +6,6 @@ __ZN2v812api_internal12ToLocalEmptyEv __ZN2v812api_internal13DisposeGlobalEPm __ZN2v812api_internal17FromJustIsNothingEv __ZN2v812api_internal18GlobalizeReferenceEPNS_8internal7IsolateEm -__ZN2v812api_internal23GetFunctionTemplateDataEPNS_7IsolateENS_5LocalINS_4DataEEE __ZN2v814ObjectTemplate11NewInstanceENS_5LocalINS_7ContextEEE __ZN2v814ObjectTemplate21SetInternalFieldCountEi __ZN2v814ObjectTemplate3NewEPNS_7IsolateENS_5LocalINS_16FunctionTemplateEEE diff --git a/test/bun.lock b/test/bun.lock index 9789a4e0ee..1b3732741f 100644 --- a/test/bun.lock +++ b/test/bun.lock @@ -32,7 +32,7 @@ "commander": "12.1.0", "detect-libc": "2.0.3", "devalue": "5.1.1", - "duckdb": "1.3.1", + "duckdb": "1.1.3", "es-module-lexer": "1.3.0", "esbuild": "0.18.6", "express": "4.18.2", @@ -326,8 +326,6 @@ "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], - "@isaacs/fs-minipass": ["@isaacs/fs-minipass@4.0.1", "", { "dependencies": { "minipass": "^7.0.4" } }, "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="], - "@jest/schemas": ["@jest/schemas@29.6.3", "", { "dependencies": { "@sinclair/typebox": "^0.27.8" } }, "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA=="], "@jimp/core": ["@jimp/core@1.6.0", "", { "dependencies": { "@jimp/file-ops": "1.6.0", "@jimp/types": "1.6.0", "@jimp/utils": "1.6.0", "await-to-js": "^3.0.0", "exif-parser": "^0.1.12", "file-type": "^16.0.0", "mime": "3" } }, "sha512-EQQlKU3s9QfdJqiSrZWNTxBs3rKXgO2W+GxNXDtwchF3a4IqxDheFX1ti+Env9hdJXDiYLp2jTRjlxhPthsk8w=="], @@ -402,7 +400,7 @@ "@lukeed/csprng": ["@lukeed/csprng@1.1.0", "", {}, "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA=="], - "@mapbox/node-pre-gyp": ["@mapbox/node-pre-gyp@2.0.0", "", { "dependencies": { "consola": "^3.2.3", "detect-libc": "^2.0.0", "https-proxy-agent": "^7.0.5", "node-fetch": "^2.6.7", "nopt": "^8.0.0", "semver": "^7.5.3", "tar": "^7.4.0" }, "bin": { "node-pre-gyp": "bin/node-pre-gyp" } }, "sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg=="], + "@mapbox/node-pre-gyp": ["@mapbox/node-pre-gyp@1.0.11", "", { "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", "make-dir": "^3.1.0", "node-fetch": "^2.6.7", "nopt": "^5.0.0", "npmlog": "^5.0.1", "rimraf": "^3.0.2", "semver": "^7.3.5", "tar": "^6.1.11" }, "bin": { "node-pre-gyp": "bin/node-pre-gyp" } }, "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ=="], "@mongodb-js/saslprep": ["@mongodb-js/saslprep@1.1.7", "", { "dependencies": { "sparse-bitfield": "^3.0.3" } }, "sha512-dCHW/oEX0KJ4NjDULBo3JiOaK5+6axtpBbS+ao2ZInoAL9/YRQLhXzSNAFz7hP4nzLkIqsfYAK/PDE3+XHny0Q=="], @@ -868,7 +866,7 @@ "aproba": ["aproba@2.0.0", "", {}, "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="], - "are-we-there-yet": ["are-we-there-yet@3.0.1", "", { "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" } }, "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg=="], + "are-we-there-yet": ["are-we-there-yet@2.0.0", "", { "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" } }, "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw=="], "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], @@ -1186,7 +1184,7 @@ "dset": ["dset@3.1.4", "", {}, "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA=="], - "duckdb": ["duckdb@1.3.1", "", { "dependencies": { "@mapbox/node-pre-gyp": "^2.0.0", "node-addon-api": "^7.0.0", "node-gyp": "^9.3.0" } }, "sha512-wSCxu6zSkHkGHtLrI5MmHYUOpbi08s2eIY/QCg2f1YsSyohjA3MRnUMdDb88oqgLa7/h+/wHuIe1RXRu4k04Sw=="], + "duckdb": ["duckdb@1.1.3", "", { "dependencies": { "@mapbox/node-pre-gyp": "^1.0.0", "node-addon-api": "^7.0.0", "node-gyp": "^9.3.0" } }, "sha512-tIpZr2NsSkYmfGC1ETl75RuVsaDyjvR3yAOrECcIyw7bdluzcyzEXOXoiuT+4t54hT+CppZv43gk/HiZdKW9Vw=="], "duplexify": ["duplexify@4.1.3", "", { "dependencies": { "end-of-stream": "^1.4.1", "inherits": "^2.0.3", "readable-stream": "^3.1.1", "stream-shift": "^1.0.2" } }, "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA=="], @@ -1368,7 +1366,7 @@ "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], - "gauge": ["gauge@4.0.4", "", { "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", "console-control-strings": "^1.1.0", "has-unicode": "^2.0.1", "signal-exit": "^3.0.7", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.5" } }, "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg=="], + "gauge": ["gauge@3.0.2", "", { "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", "console-control-strings": "^1.0.0", "has-unicode": "^2.0.1", "object-assign": "^4.1.1", "signal-exit": "^3.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.2" } }, "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q=="], "generate-function": ["generate-function@2.3.1", "", { "dependencies": { "is-property": "^1.0.2" } }, "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ=="], @@ -1702,6 +1700,8 @@ "magicast": ["magicast@0.3.5", "", { "dependencies": { "@babel/parser": "^7.25.4", "@babel/types": "^7.25.4", "source-map-js": "^1.2.0" } }, "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ=="], + "make-dir": ["make-dir@3.1.0", "", { "dependencies": { "semver": "^6.0.0" } }, "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw=="], + "make-fetch-happen": ["make-fetch-happen@13.0.1", "", { "dependencies": { "@npmcli/agent": "^2.0.0", "cacache": "^18.0.0", "http-cache-semantics": "^4.1.1", "is-lambda": "^1.0.1", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "proc-log": "^4.2.0", "promise-retry": "^2.0.1", "ssri": "^10.0.0" } }, "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA=="], "markdown-table": ["markdown-table@3.0.4", "", {}, "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw=="], @@ -1898,7 +1898,7 @@ "npm-run-path": ["npm-run-path@4.0.1", "", { "dependencies": { "path-key": "^3.0.0" } }, "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="], - "npmlog": ["npmlog@6.0.2", "", { "dependencies": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", "gauge": "^4.0.3", "set-blocking": "^2.0.0" } }, "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg=="], + "npmlog": ["npmlog@5.0.1", "", { "dependencies": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", "gauge": "^3.0.0", "set-blocking": "^2.0.0" } }, "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw=="], "nwsapi": ["nwsapi@2.2.16", "", {}, "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ=="], @@ -2744,11 +2744,11 @@ "@jridgewell/trace-mapping/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.4.15", "", {}, "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="], - "@mapbox/node-pre-gyp/https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], + "@mapbox/node-pre-gyp/https-proxy-agent": ["https-proxy-agent@5.0.1", "", { "dependencies": { "agent-base": "6", "debug": "4" } }, "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA=="], - "@mapbox/node-pre-gyp/nopt": ["nopt@8.1.0", "", { "dependencies": { "abbrev": "^3.0.0" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A=="], + "@mapbox/node-pre-gyp/nopt": ["nopt@5.0.0", "", { "dependencies": { "abbrev": "1" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ=="], - "@mapbox/node-pre-gyp/tar": ["tar@7.4.3", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.0.1", "mkdirp": "^3.0.1", "yallist": "^5.0.0" } }, "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw=="], + "@mapbox/node-pre-gyp/semver": ["semver@7.6.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="], "@nestjs/common/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], @@ -3014,6 +3014,8 @@ "jsonwebtoken/semver": ["semver@7.6.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w=="], + "make-dir/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "make-fetch-happen/proc-log": ["proc-log@4.2.0", "", {}, "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA=="], "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], @@ -3276,19 +3278,11 @@ "@isaacs/cliui/wrap-ansi/ansi-styles": ["ansi-styles@6.2.1", "", {}, "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="], - "@mapbox/node-pre-gyp/https-proxy-agent/agent-base": ["agent-base@7.1.3", "", {}, "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw=="], + "@mapbox/node-pre-gyp/https-proxy-agent/agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], - "@mapbox/node-pre-gyp/https-proxy-agent/debug": ["debug@4.3.7", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ=="], + "@mapbox/node-pre-gyp/https-proxy-agent/debug": ["debug@4.3.5", "", { "dependencies": { "ms": "2.1.2" } }, "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg=="], - "@mapbox/node-pre-gyp/nopt/abbrev": ["abbrev@3.0.1", "", {}, "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg=="], - - "@mapbox/node-pre-gyp/tar/chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], - - "@mapbox/node-pre-gyp/tar/minizlib": ["minizlib@3.0.2", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA=="], - - "@mapbox/node-pre-gyp/tar/mkdirp": ["mkdirp@3.0.1", "", { "bin": { "mkdirp": "dist/cjs/src/bin.js" } }, "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg=="], - - "@mapbox/node-pre-gyp/tar/yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], + "@mapbox/node-pre-gyp/nopt/abbrev": ["abbrev@1.1.1", "", {}, "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="], "@npmcli/agent/https-proxy-agent/debug": ["debug@4.3.5", "", { "dependencies": { "ms": "2.1.2" } }, "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg=="], @@ -3462,6 +3456,8 @@ "duckdb/node-gyp/nopt": ["nopt@6.0.0", "", { "dependencies": { "abbrev": "^1.0.0" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g=="], + "duckdb/node-gyp/npmlog": ["npmlog@6.0.2", "", { "dependencies": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", "gauge": "^4.0.3", "set-blocking": "^2.0.0" } }, "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg=="], + "duckdb/node-gyp/semver": ["semver@7.6.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="], "duckdb/node-gyp/which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], @@ -3710,6 +3706,8 @@ "@inquirer/core/wrap-ansi/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + "@mapbox/node-pre-gyp/https-proxy-agent/debug/ms": ["ms@2.1.2", "", {}, "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="], + "@npmcli/agent/https-proxy-agent/debug/ms": ["ms@2.1.2", "", {}, "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="], "@npmcli/agent/socks-proxy-agent/debug/ms": ["ms@2.1.2", "", {}, "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="], @@ -3758,6 +3756,10 @@ "duckdb/node-gyp/nopt/abbrev": ["abbrev@1.1.1", "", {}, "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="], + "duckdb/node-gyp/npmlog/are-we-there-yet": ["are-we-there-yet@3.0.1", "", { "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" } }, "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg=="], + + "duckdb/node-gyp/npmlog/gauge": ["gauge@4.0.4", "", { "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", "console-control-strings": "^1.1.0", "has-unicode": "^2.0.1", "signal-exit": "^3.0.7", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.5" } }, "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg=="], + "duckdb/node-gyp/which/isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], "jest-diff/chalk/supports-color/has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], @@ -3920,6 +3922,12 @@ "duckdb/node-gyp/make-fetch-happen/https-proxy-agent/debug": ["debug@4.3.5", "", { "dependencies": { "ms": "2.1.2" } }, "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg=="], + "duckdb/node-gyp/npmlog/are-we-there-yet/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], + + "duckdb/node-gyp/npmlog/gauge/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + + "duckdb/node-gyp/npmlog/gauge/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "duckdb/node-gyp/make-fetch-happen/cacache/glob/minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="], "duckdb/node-gyp/make-fetch-happen/cacache/unique-filename/unique-slug": ["unique-slug@3.0.0", "", { "dependencies": { "imurmurhash": "^0.1.4" } }, "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w=="], @@ -3928,6 +3936,10 @@ "duckdb/node-gyp/make-fetch-happen/https-proxy-agent/debug/ms": ["ms@2.1.2", "", {}, "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="], + "duckdb/node-gyp/npmlog/gauge/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + + "duckdb/node-gyp/npmlog/gauge/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "duckdb/node-gyp/make-fetch-happen/cacache/glob/minimatch/brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], "duckdb/node-gyp/make-fetch-happen/http-proxy-agent/agent-base/debug/ms": ["ms@2.1.2", "", {}, "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="], diff --git a/test/bundler/esbuild/default.test.ts b/test/bundler/esbuild/default.test.ts index a17df2e2ff..e824e5aad8 100644 --- a/test/bundler/esbuild/default.test.ts +++ b/test/bundler/esbuild/default.test.ts @@ -1,6 +1,6 @@ import assert from "assert"; import { describe, expect } from "bun:test"; -import { isMacOS, isMusl, osSlashes } from "harness"; +import { osSlashes } from "harness"; import path from "path"; import { dedent, ESBUILD_PATH, itBundled } from "../expectBundled"; @@ -5313,7 +5313,6 @@ describe("bundler", () => { }, }); const RequireShimSubstitutionBrowser = itBundled("default/RequireShimSubstitutionBrowser", { - todo: isMacOS || isMusl, files: { "/entry.js": /* js */ ` Promise.all([ @@ -5375,13 +5374,12 @@ describe("bundler", () => { number 567 string ${JSON.stringify(osSlashes("/node_modules/some-path/index.js"))} string ${JSON.stringify(osSlashes("/node_modules/second-path/index.js"))} - object {"default":123,"module.exports":123} - object {"default":567,"module.exports":567} + object {"default":123} + object {"default":567} `, }, }); itBundled("default/RequireShimSubstitutionNode", { - todo: isMacOS || isMusl, files: RequireShimSubstitutionBrowser.options.files, runtimeFiles: RequireShimSubstitutionBrowser.options.runtimeFiles, target: "node", @@ -5402,8 +5400,8 @@ describe("bundler", () => { number 567 string ${JSON.stringify(osSlashes("/node_modules/some-path/index.js"))} string ${JSON.stringify(osSlashes("/node_modules/second-path/index.js"))} - object {"default":123,"module.exports":123} - object {"default":567,"module.exports":567} + object {"default":123} + object {"default":567} `, }, }); diff --git a/test/cli/install/bunx.test.ts b/test/cli/install/bunx.test.ts index 2bd65f5791..4b0c9e609e 100644 --- a/test/cli/install/bunx.test.ts +++ b/test/cli/install/bunx.test.ts @@ -497,23 +497,3 @@ it("should handle postinstall scripts correctly with symlinked bunx", async () = expect(out.trim()).not.toContain(Bun.version); expect(exited).toBe(0); }); - -it("should handle package that requires node 24", async () => { - const subprocess = spawn({ - cmd: [bunExe(), "x", "--bun", "@angular/cli@latest", "--help"], - cwd: x_dir, - stdout: "pipe", - stdin: "inherit", - stderr: "pipe", - env, - }); - - let [err, out, exited] = await Promise.all([ - new Response(subprocess.stderr).text(), - new Response(subprocess.stdout).text(), - subprocess.exited, - ]); - expect(err).not.toContain("error:"); - expect(out.trim()).not.toContain(Bun.version); - expect(exited).toBe(0); -}); diff --git a/test/internal/ban-words.test.ts b/test/internal/ban-words.test.ts index 35575f992d..8d078763e3 100644 --- a/test/internal/ban-words.test.ts +++ b/test/internal/ban-words.test.ts @@ -43,7 +43,6 @@ const words: Record ".stdDir()": { reason: "Prefer bun.sys + bun.FD instead of std.fs.File. Zig hides 'errno' when Bun wants to match libuv", limit: 49 }, ".arguments_old(": { reason: "Please migrate to .argumentsAsArray() or another argument API", limit: 280 }, "// autofix": { reason: "Evaluate if this variable should be deleted entirely or explicitly discarded.", limit: 174 }, - "global.hasException": { reason: "Incompatible with strict exception checks. Use a CatchScope instead.", limit: 28 }, "globalObject.hasException": { reason: "Incompatible with strict exception checks. Use a CatchScope instead.", limit: 47 }, "globalThis.hasException": { reason: "Incompatible with strict exception checks. Use a CatchScope instead.", limit: 140 }, diff --git a/test/js/bun/http/bun-serve-html-manifest.test.ts b/test/js/bun/http/bun-serve-html-manifest.test.ts index 7173fd64ad..939489eefe 100644 --- a/test/js/bun/http/bun-serve-html-manifest.test.ts +++ b/test/js/bun/http/bun-serve-html-manifest.test.ts @@ -277,7 +277,7 @@ describe("Bun.serve HTML manifest", () => { "server.ts": ` import index from "./index.html"; - using server = Bun.serve({ + const server = Bun.serve({ port: 0, routes: { "/": index, @@ -313,7 +313,7 @@ describe("Bun.serve HTML manifest", () => { using cleanup = { [Symbol.dispose]: () => rmScope(dir) }; // Build first to generate the manifest - await using buildProc = Bun.spawn({ + const buildProc = Bun.spawn({ cmd: [bunExe(), "build", join(dir, "server.ts"), "--outdir", join(dir, "dist"), "--target", "bun"], cwd: dir, env: bunEnv, @@ -326,7 +326,7 @@ describe("Bun.serve HTML manifest", () => { expect(buildProc.exitCode).toBe(0); // Run the built server - await using proc = Bun.spawn({ + const proc = Bun.spawn({ cmd: [bunExe(), "run", join(dir, "dist", "server.js")], cwd: join(dir, "dist"), env: bunEnv, @@ -336,26 +336,37 @@ describe("Bun.serve HTML manifest", () => { }); // Read stdout line by line to collect all output - const out = await new Response(proc.stdout).text(); - expect(await proc.exited).toBe(0); + const reader = proc.stdout.getReader(); + const decoder = new StringDecoder("utf8"); + let buffer = ""; + let output = ""; + let etagCount = 0; + const expectedEtagLines = 2; // One for HTML, one for CSS - expect( - out - .trim() - .replaceAll(/PORT=\d+/g, "PORT=99999") - .replaceAll(/.\/index-[a-z0-9]+\.js/g, "index-[hash].js") - .replaceAll(/.\/index-[a-z0-9]+\.css/g, "index-[hash].css"), - ).toMatchInlineSnapshot(` - "PORT=99999 - File: index-[hash].js Loader: js - Content-Type: text/javascript;charset=utf-8 - Has ETag: true - File: ./index.html Loader: html - Content-Type: text/html;charset=utf-8 - Has ETag: true - File: index-[hash].css Loader: css - Content-Type: text/css;charset=utf-8 - Has ETag: true" - `); + while (etagCount < expectedEtagLines) { + const { done, value } = await reader.read(); + if (done) break; + + buffer += decoder.write(value); + const lines = buffer.split("\n"); + buffer = lines.pop() || ""; + + for (const line of lines) { + output += line + "\n"; + if (line.includes("Has ETag:")) { + etagCount++; + } + } + } + + reader.releaseLock(); + + // Should have proper content types + expect(output).toContain("text/html"); + expect(output).toContain("text/css"); + expect(output).toContain("Has ETag:"); + + proc.kill(); + await proc.exited; }); }); diff --git a/test/js/node/process/process.test.js b/test/js/node/process/process.test.js index 8881891627..2eb79daaa8 100644 --- a/test/js/node/process/process.test.js +++ b/test/js/node/process/process.test.js @@ -2,7 +2,7 @@ import { spawnSync, which } from "bun"; import { describe, expect, it } from "bun:test"; import { familySync } from "detect-libc"; import { existsSync, readFileSync, writeFileSync } from "fs"; -import { bunEnv, bunExe, isMacOS, isMusl, isWindows, tmpdirSync } from "harness"; +import { bunEnv, bunExe, isWindows, tmpdirSync } from "harness"; import { basename, join, resolve } from "path"; expect.extend({ @@ -269,7 +269,7 @@ it("process.umask()", () => { const generated_versions_list = join(import.meta.dir, "../../../../src/generated_versions_list.zig"); const versions = existsSync(generated_versions_list); -it.skipIf(!versions)("process.versions", () => { +(versions ? it : it.skip)("process.versions", () => { // Generate a list of all the versions in the versions object // example: // pub const boringssl = "b275c5ce1c88bc06f5a967026d3c0ce1df2be815"; @@ -305,9 +305,14 @@ it.skipIf(!versions)("process.versions", () => { }); it("process.config", () => { - expect(process.config.variables.clang).toBeNumber(); - expect(process.config.variables.host_arch).toBeDefined(); - expect(process.config.variables.target_arch).toBeDefined(); + expect(process.config).toEqual({ + variables: { + enable_lto: false, + node_module_version: expect.any(Number), + v8_enable_i8n_support: 1, + }, + target_defaults: {}, + }); }); it("process.execArgv", () => { @@ -1126,24 +1131,3 @@ it.each(["stdin", "stdout", "stderr"])("%s stream accessor should handle excepti 1, ]).toRunInlineFixture(); }); - -it("process.versions", () => { - expect(process.versions.node).toEqual("24.3.0"); - expect(process.versions.v8).toEqual("13.6.233.10-node.18"); - expect(process.versions.napi).toEqual("10"); - expect(process.versions.modules).toEqual("137"); -}); - -it.todoIf(isMacOS || isMusl)("should be the node version on the host that we expect", async () => { - const subprocess = Bun.spawn({ - cmd: ["node", "--version"], - stdout: "pipe", - stdin: "inherit", - stderr: "pipe", - env: bunEnv, - }); - - let [out, exited] = await Promise.all([new Response(subprocess.stdout).text(), subprocess.exited]); - expect(out.trim()).toEqual("v24.3.0"); - expect(exited).toBe(0); -}); diff --git a/test/js/node/test/parallel/test-net-bytes-stats.js b/test/js/node/test/parallel/test-net-bytes-stats.js deleted file mode 100644 index 40fa13d415..0000000000 --- a/test/js/node/test/parallel/test-net-bytes-stats.js +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -require('../common'); -const assert = require('assert'); -const net = require('net'); - -let bytesRead = 0; -let bytesWritten = 0; -let count = 0; - -const tcp = net.Server(function(s) { - console.log('tcp server connection'); - - // trigger old mode. - s.resume(); - - s.on('end', function() { - bytesRead += s.bytesRead; - console.log(`tcp socket disconnect #${count}`); - }); -}); - -tcp.listen(0, function doTest() { - console.error('listening'); - const socket = net.createConnection(this.address().port); - - socket.on('connect', function() { - count++; - console.error('CLIENT connect #%d', count); - - socket.write('foo', function() { - console.error('CLIENT: write cb'); - socket.end('bar'); - }); - }); - - socket.on('finish', function() { - bytesWritten += socket.bytesWritten; - console.error('CLIENT end event #%d', count); - }); - - socket.on('close', function() { - console.error('CLIENT close event #%d', count); - console.log(`Bytes read: ${bytesRead}`); - console.log(`Bytes written: ${bytesWritten}`); - if (count < 2) { - console.error('RECONNECTING'); - socket.connect(tcp.address().port); - } else { - tcp.close(); - } - }); -}); - -process.on('exit', function() { - assert.strictEqual(bytesRead, 12); - assert.strictEqual(bytesWritten, 12); -}); diff --git a/test/napi/napi-app/bun.lock b/test/napi/napi-app/bun.lock index 605f6d4777..ac82ef2d88 100644 --- a/test/napi/napi-app/bun.lock +++ b/test/napi/napi-app/bun.lock @@ -3,28 +3,30 @@ "workspaces": { "": { "name": "napi-buffer-bug", + "dependencies": { + "node-api-headers": "1.5.0", + }, "devDependencies": { "node-addon-api": "^8.0.0", - "node-api-headers": "1.5.0", - "node-gyp": "^11.2.0", + "node-gyp": "^10.1.0", }, }, }, "packages": { "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], - "@isaacs/fs-minipass": ["@isaacs/fs-minipass@4.0.1", "", { "dependencies": { "minipass": "^7.0.4" } }, "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="], + "@npmcli/agent": ["@npmcli/agent@2.2.0", "", { "dependencies": { "agent-base": "^7.1.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.1", "lru-cache": "^10.0.1", "socks-proxy-agent": "^8.0.1" } }, "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q=="], - "@npmcli/agent": ["@npmcli/agent@3.0.0", "", { "dependencies": { "agent-base": "^7.1.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.1", "lru-cache": "^10.0.1", "socks-proxy-agent": "^8.0.3" } }, "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q=="], - - "@npmcli/fs": ["@npmcli/fs@4.0.0", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q=="], + "@npmcli/fs": ["@npmcli/fs@3.1.0", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w=="], "@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="], - "abbrev": ["abbrev@3.0.1", "", {}, "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg=="], + "abbrev": ["abbrev@2.0.0", "", {}, "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ=="], "agent-base": ["agent-base@7.1.0", "", { "dependencies": { "debug": "^4.3.4" } }, "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg=="], + "aggregate-error": ["aggregate-error@3.1.0", "", { "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" } }, "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA=="], + "ansi-regex": ["ansi-regex@6.0.1", "", {}, "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="], "ansi-styles": ["ansi-styles@6.2.1", "", {}, "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="], @@ -33,9 +35,11 @@ "brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], - "cacache": ["cacache@19.0.1", "", { "dependencies": { "@npmcli/fs": "^4.0.0", "fs-minipass": "^3.0.0", "glob": "^10.2.2", "lru-cache": "^10.0.1", "minipass": "^7.0.3", "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^7.0.2", "ssri": "^12.0.0", "tar": "^7.4.3", "unique-filename": "^4.0.0" } }, "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ=="], + "cacache": ["cacache@18.0.0", "", { "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", "glob": "^10.2.2", "lru-cache": "^10.0.1", "minipass": "^7.0.3", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" } }, "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w=="], - "chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], + "chownr": ["chownr@2.0.0", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="], + + "clean-stack": ["clean-stack@2.2.0", "", {}, "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="], "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], @@ -57,11 +61,9 @@ "exponential-backoff": ["exponential-backoff@3.1.1", "", {}, "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw=="], - "fdir": ["fdir@6.4.6", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w=="], - "foreground-child": ["foreground-child@3.1.1", "", { "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" } }, "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg=="], - "fs-minipass": ["fs-minipass@3.0.3", "", { "dependencies": { "minipass": "^7.0.3" } }, "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw=="], + "fs-minipass": ["fs-minipass@2.1.0", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg=="], "glob": ["glob@10.3.10", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.5", "minimatch": "^9.0.1", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", "path-scurry": "^1.10.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g=="], @@ -77,27 +79,29 @@ "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], - "ip-address": ["ip-address@9.0.5", "", { "dependencies": { "jsbn": "1.1.0", "sprintf-js": "^1.1.3" } }, "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g=="], + "indent-string": ["indent-string@4.0.0", "", {}, "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="], + + "ip": ["ip@2.0.0", "", {}, "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ=="], "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + "is-lambda": ["is-lambda@1.0.1", "", {}, "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ=="], + "isexe": ["isexe@3.1.1", "", {}, "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ=="], "jackspeak": ["jackspeak@2.3.6", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ=="], - "jsbn": ["jsbn@1.1.0", "", {}, "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A=="], - "lru-cache": ["lru-cache@6.0.0", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="], - "make-fetch-happen": ["make-fetch-happen@14.0.3", "", { "dependencies": { "@npmcli/agent": "^3.0.0", "cacache": "^19.0.1", "http-cache-semantics": "^4.1.1", "minipass": "^7.0.2", "minipass-fetch": "^4.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^1.0.0", "proc-log": "^5.0.0", "promise-retry": "^2.0.1", "ssri": "^12.0.0" } }, "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ=="], + "make-fetch-happen": ["make-fetch-happen@13.0.0", "", { "dependencies": { "@npmcli/agent": "^2.0.0", "cacache": "^18.0.0", "http-cache-semantics": "^4.1.1", "is-lambda": "^1.0.1", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "ssri": "^10.0.0" } }, "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A=="], "minimatch": ["minimatch@9.0.3", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg=="], - "minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], + "minipass": ["minipass@7.0.4", "", {}, "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ=="], - "minipass-collect": ["minipass-collect@2.0.1", "", { "dependencies": { "minipass": "^7.0.3" } }, "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw=="], + "minipass-collect": ["minipass-collect@1.0.2", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA=="], - "minipass-fetch": ["minipass-fetch@4.0.1", "", { "dependencies": { "minipass": "^7.0.3", "minipass-sized": "^1.0.3", "minizlib": "^3.0.1" }, "optionalDependencies": { "encoding": "^0.1.13" } }, "sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ=="], + "minipass-fetch": ["minipass-fetch@3.0.4", "", { "dependencies": { "minipass": "^7.0.3", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, "optionalDependencies": { "encoding": "^0.1.13" } }, "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg=="], "minipass-flush": ["minipass-flush@1.0.5", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw=="], @@ -105,31 +109,29 @@ "minipass-sized": ["minipass-sized@1.0.3", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g=="], - "minizlib": ["minizlib@3.0.2", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA=="], + "minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="], - "mkdirp": ["mkdirp@3.0.1", "", { "bin": { "mkdirp": "dist/cjs/src/bin.js" } }, "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg=="], + "mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="], "ms": ["ms@2.1.2", "", {}, "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="], - "negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="], + "negotiator": ["negotiator@0.6.3", "", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], "node-addon-api": ["node-addon-api@8.0.0", "", {}, "sha512-ipO7rsHEBqa9STO5C5T10fj732ml+5kLN1cAG8/jdHd56ldQeGj3Q7+scUS+VHK/qy1zLEwC4wMK5+yM0btPvw=="], "node-api-headers": ["node-api-headers@1.5.0", "", {}, "sha512-Yi/FgnN8IU/Cd6KeLxyHkylBUvDTsSScT0Tna2zTrz8klmc8qF2ppj6Q1LHsmOueJWhigQwR4cO2p0XBGW5IaQ=="], - "node-gyp": ["node-gyp@11.2.0", "", { "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", "graceful-fs": "^4.2.6", "make-fetch-happen": "^14.0.3", "nopt": "^8.0.0", "proc-log": "^5.0.0", "semver": "^7.3.5", "tar": "^7.4.3", "tinyglobby": "^0.2.12", "which": "^5.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" } }, "sha512-T0S1zqskVUSxcsSTkAsLc7xCycrRYmtDHadDinzocrThjyQCn5kMlEBSj6H4qDbgsIOSLmmlRIeb0lZXj+UArA=="], + "node-gyp": ["node-gyp@10.1.0", "", { "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", "glob": "^10.3.10", "graceful-fs": "^4.2.6", "make-fetch-happen": "^13.0.0", "nopt": "^7.0.0", "proc-log": "^3.0.0", "semver": "^7.3.5", "tar": "^6.1.2", "which": "^4.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" } }, "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA=="], - "nopt": ["nopt@8.1.0", "", { "dependencies": { "abbrev": "^3.0.0" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A=="], + "nopt": ["nopt@7.2.0", "", { "dependencies": { "abbrev": "^2.0.0" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA=="], - "p-map": ["p-map@7.0.3", "", {}, "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA=="], + "p-map": ["p-map@4.0.0", "", { "dependencies": { "aggregate-error": "^3.0.0" } }, "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ=="], "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], "path-scurry": ["path-scurry@1.10.1", "", { "dependencies": { "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ=="], - "picomatch": ["picomatch@4.0.2", "", {}, "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="], - - "proc-log": ["proc-log@5.0.0", "", {}, "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ=="], + "proc-log": ["proc-log@3.0.0", "", {}, "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A=="], "promise-retry": ["promise-retry@2.0.1", "", { "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" } }, "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g=="], @@ -147,13 +149,11 @@ "smart-buffer": ["smart-buffer@4.2.0", "", {}, "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="], - "socks": ["socks@2.8.5", "", { "dependencies": { "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" } }, "sha512-iF+tNDQla22geJdTyJB1wM/qrX9DMRwWrciEPwWLPRWAUEM8sQiyxgckLxWT1f7+9VabJS0jTGGr4QgBuvi6Ww=="], + "socks": ["socks@2.7.1", "", { "dependencies": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" } }, "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ=="], - "socks-proxy-agent": ["socks-proxy-agent@8.0.5", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" } }, "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw=="], + "socks-proxy-agent": ["socks-proxy-agent@8.0.2", "", { "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", "socks": "^2.7.1" } }, "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g=="], - "sprintf-js": ["sprintf-js@1.1.3", "", {}, "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA=="], - - "ssri": ["ssri@12.0.0", "", { "dependencies": { "minipass": "^7.0.3" } }, "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ=="], + "ssri": ["ssri@10.0.5", "", { "dependencies": { "minipass": "^7.0.3" } }, "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A=="], "string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], @@ -163,33 +163,31 @@ "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "tar": ["tar@7.4.3", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.0.1", "mkdirp": "^3.0.1", "yallist": "^5.0.0" } }, "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw=="], + "tar": ["tar@6.2.0", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ=="], - "tinyglobby": ["tinyglobby@0.2.14", "", { "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" } }, "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ=="], + "unique-filename": ["unique-filename@3.0.0", "", { "dependencies": { "unique-slug": "^4.0.0" } }, "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g=="], - "unique-filename": ["unique-filename@4.0.0", "", { "dependencies": { "unique-slug": "^5.0.0" } }, "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ=="], + "unique-slug": ["unique-slug@4.0.0", "", { "dependencies": { "imurmurhash": "^0.1.4" } }, "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ=="], - "unique-slug": ["unique-slug@5.0.0", "", { "dependencies": { "imurmurhash": "^0.1.4" } }, "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg=="], - - "which": ["which@5.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ=="], + "which": ["which@4.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg=="], "wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], - "yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], + "yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], "@npmcli/agent/lru-cache": ["lru-cache@10.0.2", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg=="], + "cacache/fs-minipass": ["fs-minipass@3.0.3", "", { "dependencies": { "minipass": "^7.0.3" } }, "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw=="], + "cacache/lru-cache": ["lru-cache@10.0.2", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg=="], "cross-spawn/which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], - "fs-minipass/minipass": ["minipass@7.0.4", "", {}, "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ=="], + "fs-minipass/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], - "glob/minipass": ["minipass@7.0.4", "", {}, "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ=="], - - "lru-cache/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + "minipass-collect/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], "minipass-flush/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], @@ -197,18 +195,18 @@ "minipass-sized/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "minizlib/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "path-scurry/lru-cache": ["lru-cache@10.0.2", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg=="], - "path-scurry/minipass": ["minipass@7.0.4", "", {}, "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ=="], - - "socks-proxy-agent/agent-base": ["agent-base@7.1.3", "", {}, "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw=="], - "string-width-cjs/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], "string-width-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], "strip-ansi-cjs/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "tar/minipass": ["minipass@5.0.0", "", {}, "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="], + "wrap-ansi-cjs/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], "wrap-ansi-cjs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], @@ -217,12 +215,6 @@ "cross-spawn/which/isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], - "minipass-flush/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], - - "minipass-pipeline/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], - - "minipass-sized/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], - "string-width-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], "wrap-ansi-cjs/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], diff --git a/test/napi/napi-app/package.json b/test/napi/napi-app/package.json index c3a3ff5a6d..5f2c942861 100644 --- a/test/napi/napi-app/package.json +++ b/test/napi/napi-app/package.json @@ -8,7 +8,7 @@ "clean": "node-gyp clean" }, "devDependencies": { - "node-gyp": "^11.2.0", + "node-gyp": "^10.1.0", "node-addon-api": "^8.0.0", "node-api-headers": "1.5.0" } diff --git a/test/napi/napi.test.ts b/test/napi/napi.test.ts index 557158e9b7..e4abc9c071 100644 --- a/test/napi/napi.test.ts +++ b/test/napi/napi.test.ts @@ -185,7 +185,7 @@ describe("napi", () => { expect(result).toEndWith("str: abcdef"); }); - it.todo("copies auto len", async () => { + it("copies auto len", async () => { const result = await checkSameOutput("test_napi_get_value_string_utf8_with_buffer", ["abcdef", 424242]); expect(result).toEndWith("str:"); }); diff --git a/test/napi/node-napi.test.ts b/test/napi/node-napi.test.ts index f21dbee357..5efeb52154 100644 --- a/test/napi/node-napi.test.ts +++ b/test/napi/node-napi.test.ts @@ -98,15 +98,14 @@ beforeAll(async () => { async function buildOne(dir: string) { const child = spawn({ - cmd: [bunExe(), "x", "node-gyp@11", "rebuild", "--debug", "-j", "max"], + cmd: [bunExe(), "x", "node-gyp", "rebuild", "--debug", "-j", "max"], cwd: dir, stderr: "pipe", stdout: "ignore", stdin: "inherit", env: { ...bunEnv, - npm_config_target: "v24.3.0", - CXXFLAGS: (bunEnv.CXXFLAGS ?? "") + (process.platform == "win32" ? " -std=c++20" : " -std=gnu++20"), + npm_config_target: "v23.2.0", // on linux CI, node-gyp will default to g++ and the version installed there is very old, // so we make it use clang instead ...(process.platform == "linux" && isCI diff --git a/test/no-validate-exceptions.txt b/test/no-validate-exceptions.txt index 2b64395bf3..00fa53b912 100644 --- a/test/no-validate-exceptions.txt +++ b/test/no-validate-exceptions.txt @@ -1253,7 +1253,6 @@ test/js/node/test/parallel/test-net-better-error-messages-port-hostname.js test/js/node/test/parallel/test-net-bind-twice.js test/js/node/test/parallel/test-net-blocklist.js test/js/node/test/parallel/test-net-buffersize.js -test/js/node/test/parallel/test-net-bytes-stats.js test/js/node/test/parallel/test-net-bytes-written-large.js test/js/node/test/parallel/test-net-can-reset-timeout.js test/js/node/test/parallel/test-net-child-process-connect-reset.js diff --git a/test/package.json b/test/package.json index a710c5ef02..8d0ae2e945 100644 --- a/test/package.json +++ b/test/package.json @@ -37,7 +37,7 @@ "commander": "12.1.0", "detect-libc": "2.0.3", "devalue": "5.1.1", - "duckdb": "1.3.1", + "duckdb": "1.1.3", "es-module-lexer": "1.3.0", "esbuild": "0.18.6", "express": "4.18.2", diff --git a/test/v8/bad-modules/mismatched_abi_version.cpp b/test/v8/bad-modules/mismatched_abi_version.cpp index 73b2e78c03..46f1a5f124 100644 --- a/test/v8/bad-modules/mismatched_abi_version.cpp +++ b/test/v8/bad-modules/mismatched_abi_version.cpp @@ -8,7 +8,7 @@ void init(v8::Local exports, v8::Local module, extern "C" { static node::node_module _module = { - // bun expects 137 (Node.js 24.3.0) + // bun expects 127 42, // nm_version 0, // nm_flags nullptr, // nm_dso_handle diff --git a/test/v8/bad-modules/no_entrypoint.cpp b/test/v8/bad-modules/no_entrypoint.cpp index 2ebb9ae7c4..710ddf2ef4 100644 --- a/test/v8/bad-modules/no_entrypoint.cpp +++ b/test/v8/bad-modules/no_entrypoint.cpp @@ -2,7 +2,7 @@ extern "C" { static node::node_module _module = { - 137, // nm_version (Node.js 24.3.0) + 127, // nm_version 0, // nm_flags nullptr, // nm_dso_handle "no_entrypoint.cpp", // nm_filename diff --git a/test/v8/v8.test.ts b/test/v8/v8.test.ts index 30ac602941..353bcdab87 100644 --- a/test/v8/v8.test.ts +++ b/test/v8/v8.test.ts @@ -19,13 +19,9 @@ enum BuildMode { // test environment delete bunEnv.CC; delete bunEnv.CXX; - -// Node.js 24.3.0 requires C++20 -bunEnv.CXXFLAGS ??= ""; if (process.platform == "darwin") { - bunEnv.CXXFLAGS += " -std=gnu++20"; -} else { - bunEnv.CXXFLAGS += " -std=c++20"; + bunEnv.CXXFLAGS ??= ""; + bunEnv.CXXFLAGS += "-std=gnu++17"; } // https://github.com/isaacs/node-tar/blob/bef7b1e4ffab822681fea2a9b22187192ed14717/lib/get-write-flag.js // prevent node-tar from using UV_FS_O_FILEMAP @@ -76,7 +72,7 @@ async function build( "-j", "max", ] - : [bunExe(), "x", "node-gyp@11", "rebuild", "--release", "-j", "max"], // for node.js we don't bother with debug mode + : [bunExe(), "x", "node-gyp", "rebuild", "--release", "-j", "max"], // for node.js we don't bother with debug mode cwd: tmpDir, env: bunEnv, stdin: "inherit",