diff --git a/.cargo/config.toml b/.cargo/config.toml
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/.cargo/config.toml
@@ -0,0 +1 @@
+
diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml
new file mode 100644
index 0000000..f3e1c6c
--- /dev/null
+++ b/.github/workflows/CI.yml
@@ -0,0 +1,183 @@
+name: CI
+env:
+ DEBUG: napi:*
+ APP_NAME: xdelta3-node
+ RUST_BACKTRACE: full
+permissions:
+ contents: write
+ id-token: write
+"on":
+ push:
+ branches:
+ - main
+ tags-ignore:
+ - "**"
+ paths-ignore:
+ - "**/*.md"
+ - LICENSE
+ - "**/*.gitignore"
+ - .editorconfig
+ - docs/**
+ pull_request: null
+
+defaults:
+ run:
+ shell: bash
+
+jobs:
+ build:
+ strategy:
+ fail-fast: false
+ matrix:
+ targets:
+ - x86_64-apple-darwin
+ - aarch64-apple-darwin
+ - x86_64-unknown-linux-gnu
+ - aarch64-unknown-linux-gnu
+ - x86_64-unknown-linux-musl
+ - aarch64-unknown-linux-musl
+ - x86_64-pc-windows-msvc
+ # - aarch64-pc-windows-msvc
+ runs-on: ubuntu-latest
+ name: Build - ${{ matrix.targets }}
+ steps:
+ - uses: actions/checkout@v4
+ - name: Cache cargo registry
+ uses: actions/cache@v4
+ with:
+ path: |
+ ~/.cargo
+ ${{ github.workspace }}/.xwin
+ ~/.napi-rs
+ ./target
+ key: ${{ matrix.targets }}-cargo-cache
+ - name: Install Rust Tool Chain
+ uses: dtolnay/rust-toolchain@stable
+ with:
+ toolchain: stable
+ targets: ${{ matrix.targets }}
+ - name: Install NodeJS
+ uses: actions/setup-node@v4
+ with:
+ node-version: "20"
+ cache: "yarn"
+ - name: Install ziglang
+ uses: mlugg/setup-zig@v1
+ with:
+ version: 0.13.0
+ - name: Install packages
+ run: sudo apt install libclang-dev llvm
+ shell: bash
+ - name: Install cargo toolchains for windows
+ if: ${{ contains(matrix.targets, 'msvc') }}
+ uses: taiki-e/install-action@v2
+ env:
+ GITHUB_TOKEN: ${{ github.token }}
+ with:
+ tool: cargo-xwin
+ - name: Install cargo toolchains for linux/unix
+ if: ${{ !contains(matrix.targets, 'msvc') }}
+ uses: taiki-e/install-action@v2
+ env:
+ GITHUB_TOKEN: ${{ github.token }}
+ with:
+ tool: cargo-zigbuild
+ - name: Install rupstup target
+ run: rustup target add ${{ matrix.targets }}
+ shell: bash
+ - run: yarn install
+ - name: Build
+ run: yarn build --target ${{ matrix.targets }} --cross-compile
+ - name: Upload artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: bindings-${{ matrix.targets }}
+ path: ${{ env.APP_NAME }}.*.node
+ if-no-files-found: error
+
+ test:
+ strategy:
+ fail-fast: false
+ matrix:
+ settings:
+ - target: x86_64-apple-darwin
+ host: macos-latest
+ architecture: x64
+ - target: aarch64-apple-darwin
+ host: macos-latest
+ architecture: arm64
+ - target: x86_64-unknown-linux-gnu
+ host: ubuntu-latest
+ archicture: x64
+ docker: node:20-slim
+ args: ''
+ - target: aarch64-unknown-linux-gnu
+ host: ubuntu-latest
+ archicture: arm64
+ docker: node:20-slim
+ args: '--platform linux/arm64'
+ - target: x86_64-unknown-linux-musl
+ host: ubuntu-latest
+ archicture: x64
+ docker: node:20-alpine
+ args: ''
+ - target: aarch64-unknown-linux-musl
+ host: ubuntu-latest
+ archicture: arm64
+ docker: node:20-alpine
+ args: '--platform linux/arm64'
+ - target: x86_64-pc-windows-msvc
+ host: windows-latest
+ architecture: x64
+ # - target: aarch64-pc-windows-msvc
+ # host: windows-latest
+ # architecture: arm64
+ node: ["20"]
+ runs-on: ${{ matrix.settings.host }}
+ name: Test node@${{ matrix.node }} - ${{ matrix.settings.target }}
+ needs:
+ - build
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
+ with:
+ node-version: ${{ matrix.node }}
+ cache: "yarn"
+ architecture: ${{ matrix.settings.architecture }}
+ - name: Install dependencies
+ run: yarn install
+ - name: Download bindings
+ uses: actions/download-artifact@v4
+ with:
+ name: bindings-${{ matrix.settings.target }}
+ - name: Run tests on host
+ if: ${{ !matrix.settings.docker }}
+ run: yarn test
+ - name: Set up QEMU
+ if: ${{ matrix.settings.docker }}
+ uses: docker/setup-qemu-action@v3
+ with:
+ platforms: arm64,arm
+ - name: Setup docker
+ if: ${{ matrix.settings.docker }}
+ run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
+ - name: Run tests in docker for x86_64
+ if: ${{ matrix.settings.docker && contains(matrix.settings.target, 'aarch64') }}
+ uses: addnab/docker-run-action@v3
+ with:
+ image: ${{ matrix.settings.docker }}
+ options: ${{ matrix.settings.args }} -v ${{ github.workspace }}:/build -w /build
+ run: |
+ set -e
+ yarn add -D @rollup/rollup-linux-arm64-gnu @rollup/rollup-linux-arm64-musl
+ yarn test
+ - name: Run tests in docker for aarch64
+ if: ${{ matrix.settings.docker && !contains(matrix.settings.target, 'aarch64') }}
+ uses: addnab/docker-run-action@v3
+ with:
+ image: ${{ matrix.settings.docker }}
+ options: ${{ matrix.settings.args }} -v ${{ github.workspace }}:/build -w /build
+ run: |
+ set -e
+ yarn test
+
\ No newline at end of file
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
deleted file mode 100644
index 5a65e25..0000000
--- a/.github/workflows/test.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-name: Tests
-# only one can run at a time
-concurrency:
- # If PR, cancel prev commits. head_ref = source branch name on pull_request, null if push
- group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-on:
- push:
- pull_request:
- workflow_dispatch:
-
-jobs:
- build:
- name: Build
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- node: [22.4]
- steps:
- - uses: actions/checkout@v4
- - name: Setup Node
- uses: actions/setup-node@v4
- with:
- node-version: ${{matrix.node}}
- check-latest: true
- cache: npm
- - uses: mlugg/setup-zig@v1
- with:
- version: 0.13.0
- - name: Initialize git submodules
- shell: bash
- run: git submodule init && git submodule update
- - name: Install npm
- shell: bash
- run: npm install
- - name: Build
- shell: bash
- run: npm run build
- - name: Check Build
- shell: bash
- run: npm run check:build
-
- unit-tests:
- name: Unit Tests
- needs: ["build"]
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- node: [22.4]
- steps:
- - uses: actions/checkout@v4
- - name: Setup Node
- uses: actions/setup-node@v4
- with:
- node-version: ${{matrix.node}}
- check-latest: true
- cache: npm
- - uses: mlugg/setup-zig@v1
- with:
- version: 0.13.0
- - name: Initialize git submodules
- shell: bash
- run: git submodule init && git submodule update
- - name: Install npm
- shell: bash
- run: npm install
- - name: Build
- shell: bash
- run: npm run build
- - name: Unit tests
- run: npm run test:unit
diff --git a/.gitignore b/.gitignore
index 24c3f87..5e2577b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,48 +1,197 @@
+# Created by https://www.toptal.com/developers/gitignore/api/node
+# Edit at https://www.toptal.com/developers/gitignore?templates=node
+
+### Node ###
# Logs
logs
*.log
npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+lerna-debug.log*
+
+# Diagnostic reports (https://nodejs.org/api/report.html)
+report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
+*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
+*.lcov
# nyc test coverage
.nyc_output
-# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
+# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
+# Bower dependency directory (https://bower.io/)
+bower_components
+
# node-waf configuration
.lock-wscript
-# Compiled binary addons (http://nodejs.org/api/addons.html)
-build
+# Compiled binary addons (https://nodejs.org/api/addons.html)
+build/Release
# Dependency directories
-node_modules
-jspm_packages
+node_modules/
+jspm_packages/
+
+# TypeScript v1 declaration files
+typings/
+
+# TypeScript cache
+*.tsbuildinfo
# Optional npm cache directory
.npm
+# Optional eslint cache
+.eslintcache
+
+# Microbundle cache
+.rpt2_cache/
+.rts2_cache_cjs/
+.rts2_cache_es/
+.rts2_cache_umd/
+
# Optional REPL history
.node_repl_history
-# Zig and Zigar
-.zig-cache
-.zigar-cache
-**/**/*.zigar
+# Output of 'npm pack'
+*.tgz
+
+# Yarn Integrity file
+.yarn-integrity
+
+# dotenv environment variables file
+.env
+.env.test
+
+# parcel-bundler cache (https://parceljs.org/)
+.cache
+
+# Next.js build output
+.next
+
+# Nuxt.js build / generate output
+.nuxt
+dist
+
+# Gatsby files
+.cache/
+# Comment in the public line in if your project uses Gatsby and not Next.js
+# https://nextjs.org/blog/next-9-1#public-directory-support
+# public
+
+# vuepress build output
+.vuepress/dist
+
+# Serverless directories
+.serverless/
+
+# FuseBox cache
+.fusebox/
+
+# DynamoDB Local files
+.dynamodb/
+
+# TernJS port file
+.tern-port
+
+# Stores VSCode versions used for testing VSCode extensions
+.vscode-test
+
+# End of https://www.toptal.com/developers/gitignore/api/node
+
+# Created by https://www.toptal.com/developers/gitignore/api/macos
+# Edit at https://www.toptal.com/developers/gitignore?templates=macos
+
+### macOS ###
+# General
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+### macOS Patch ###
+# iCloud generated files
+*.icloud
+
+# End of https://www.toptal.com/developers/gitignore/api/macos
+
+# Created by https://www.toptal.com/developers/gitignore/api/windows
+# Edit at https://www.toptal.com/developers/gitignore?templates=windows
+
+### Windows ###
+# Windows thumbnail cache files
+Thumbs.db
+Thumbs.db:encryptable
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
+
+# End of https://www.toptal.com/developers/gitignore/api/windows
+
+#Added by cargo
+
+/target
+Cargo.lock
-# Distribution
-lib/
+.pnp.*
+.yarn/*
+!.yarn/patches
+!.yarn/plugins
+!.yarn/releases
+!.yarn/sdks
+!.yarn/versions
-# IDEs
-.vscode
\ No newline at end of file
+*.node
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 7f5a9e4..0000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "xdelta"]
- path = xdelta
- url = https://github.com/jmacd/xdelta
diff --git a/Cargo.toml b/Cargo.toml
new file mode 100644
index 0000000..fff52fa
--- /dev/null
+++ b/Cargo.toml
@@ -0,0 +1,22 @@
+[package]
+edition = "2021"
+name = "chainsafe_xdelta3-node"
+version = "0.0.0"
+
+[lib]
+crate-type = ["cdylib"]
+
+[dependencies]
+# Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix
+napi = { version = "2", default-features = false, features = ["napi4"] }
+napi-derive = "2"
+futures-io = "0.3"
+futures-util = { version = "0.3", default-features = false, features = ["default", "io"] }
+xdelta3 = { git = "https://github.com:/ChainSafe/xdelta3-rs.git", branch = "nh/update-build-script" }
+
+[build-dependencies]
+napi-build = "2"
+
+[profile.release]
+lto = true
+strip = "symbols"
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..811dbaf
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,13 @@
+ Copyright 2024 ChainSafe Systems
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/LICENSE-LGPL b/LICENSE-LGPL
deleted file mode 100644
index 10747d3..0000000
--- a/LICENSE-LGPL
+++ /dev/null
@@ -1,172 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
-
-END OF TERMS AND CONDITIONS
-
-License applies to:
-- lodestar/packages/beacon-node
-- lodestar/packages/cli
-- lodestar/packages/validator
diff --git a/build.rs b/build.rs
new file mode 100644
index 0000000..1f866b6
--- /dev/null
+++ b/build.rs
@@ -0,0 +1,5 @@
+extern crate napi_build;
+
+fn main() {
+ napi_build::setup();
+}
diff --git a/index.d.ts b/index.d.ts
new file mode 100644
index 0000000..e46b81c
--- /dev/null
+++ b/index.d.ts
@@ -0,0 +1,7 @@
+/* tslint:disable */
+/* eslint-disable */
+
+/* auto-generated by NAPI-RS */
+
+export declare function encodeSync(src: Uint8Array, dest: Uint8Array): Uint8Array
+export declare function decodeSync(src: Uint8Array, patch: Uint8Array): Uint8Array
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..9f07e09
--- /dev/null
+++ b/index.js
@@ -0,0 +1,365 @@
+// prettier-ignore
+/* eslint-disable */
+/* auto-generated by NAPI-RS */
+
+const { readFileSync } = require('fs')
+
+let nativeBinding = null
+const loadErrors = []
+
+const isMusl = () => {
+ let musl = false
+ if (process.platform === 'linux') {
+ musl = isMuslFromFilesystem()
+ if (musl === null) {
+ musl = isMuslFromReport()
+ }
+ if (musl === null) {
+ musl = isMuslFromChildProcess()
+ }
+ }
+ return musl
+}
+
+const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
+
+const isMuslFromFilesystem = () => {
+ try {
+ return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl')
+ } catch {
+ return null
+ }
+}
+
+const isMuslFromReport = () => {
+ const report = typeof process.report.getReport === 'function' ? process.report.getReport() : null
+ if (!report) {
+ return null
+ }
+ if (report.header && report.header.glibcVersionRuntime) {
+ return false
+ }
+ if (Array.isArray(report.sharedObjects)) {
+ if (report.sharedObjects.some(isFileMusl)) {
+ return true
+ }
+ }
+ return false
+}
+
+const isMuslFromChildProcess = () => {
+ try {
+ return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl')
+ } catch (e) {
+ // If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false
+ return false
+ }
+}
+
+function requireNative() {
+ if (process.platform === 'android') {
+ if (process.arch === 'arm64') {
+ try {
+ return require('./xdelta3-node.android-arm64.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-android-arm64')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else if (process.arch === 'arm') {
+ try {
+ return require('./xdelta3-node.android-arm-eabi.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-android-arm-eabi')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`))
+ }
+ } else if (process.platform === 'win32') {
+ if (process.arch === 'x64') {
+ try {
+ return require('./xdelta3-node.win32-x64-msvc.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-win32-x64-msvc')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else if (process.arch === 'ia32') {
+ try {
+ return require('./xdelta3-node.win32-ia32-msvc.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-win32-ia32-msvc')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else if (process.arch === 'arm64') {
+ try {
+ return require('./xdelta3-node.win32-arm64-msvc.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-win32-arm64-msvc')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`))
+ }
+ } else if (process.platform === 'darwin') {
+ try {
+ return require('./xdelta3-node.darwin-universal.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-darwin-universal')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ if (process.arch === 'x64') {
+ try {
+ return require('./xdelta3-node.darwin-x64.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-darwin-x64')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else if (process.arch === 'arm64') {
+ try {
+ return require('./xdelta3-node.darwin-arm64.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-darwin-arm64')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`))
+ }
+ } else if (process.platform === 'freebsd') {
+ if (process.arch === 'x64') {
+ try {
+ return require('./xdelta3-node.freebsd-x64.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-freebsd-x64')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else if (process.arch === 'arm64') {
+ try {
+ return require('./xdelta3-node.freebsd-arm64.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-freebsd-arm64')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`))
+ }
+ } else if (process.platform === 'linux') {
+ if (process.arch === 'x64') {
+ if (isMusl()) {
+ try {
+ return require('./xdelta3-node.linux-x64-musl.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-linux-x64-musl')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else {
+ try {
+ return require('./xdelta3-node.linux-x64-gnu.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-linux-x64-gnu')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ }
+ } else if (process.arch === 'arm64') {
+ if (isMusl()) {
+ try {
+ return require('./xdelta3-node.linux-arm64-musl.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-linux-arm64-musl')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else {
+ try {
+ return require('./xdelta3-node.linux-arm64-gnu.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-linux-arm64-gnu')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ }
+ } else if (process.arch === 'arm') {
+ if (isMusl()) {
+ try {
+ return require('./xdelta3-node.linux-arm-musleabihf.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-linux-arm-musleabihf')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else {
+ try {
+ return require('./xdelta3-node.linux-arm-gnueabihf.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-linux-arm-gnueabihf')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ }
+ } else if (process.arch === 'riscv64') {
+ if (isMusl()) {
+ try {
+ return require('./xdelta3-node.linux-riscv64-musl.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-linux-riscv64-musl')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else {
+ try {
+ return require('./xdelta3-node.linux-riscv64-gnu.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-linux-riscv64-gnu')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ }
+ } else if (process.arch === 'ppc64') {
+ try {
+ return require('./xdelta3-node.linux-ppc64-gnu.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-linux-ppc64-gnu')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else if (process.arch === 's390x') {
+ try {
+ return require('./xdelta3-node.linux-s390x-gnu.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@chainsafe/xdelta3-node-linux-s390x-gnu')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`))
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`))
+ }
+}
+
+nativeBinding = requireNative()
+
+if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
+ try {
+ nativeBinding = require('./xdelta3-node.wasi.cjs')
+ } catch (err) {
+ if (process.env.NAPI_RS_FORCE_WASI) {
+ loadErrors.push(err)
+ }
+ }
+ if (!nativeBinding) {
+ try {
+ nativeBinding = require('@chainsafe/xdelta3-node-wasm32-wasi')
+ } catch (err) {
+ if (process.env.NAPI_RS_FORCE_WASI) {
+ loadErrors.push(err)
+ }
+ }
+ }
+}
+
+if (!nativeBinding) {
+ if (loadErrors.length > 0) {
+ // TODO Link to documentation with potential fixes
+ // - The package owner could build/publish bindings for this arch
+ // - The user may need to bundle the correct files
+ // - The user may need to re-install node_modules to get new packages
+ throw new Error('Failed to load native binding', { cause: loadErrors })
+ }
+ throw new Error(`Failed to load native binding`)
+}
+
+module.exports.decodeSync = nativeBinding.decodeSync
+module.exports.encodeSync = nativeBinding.encodeSync
diff --git a/node-zigar.config.json b/node-zigar.config.json
deleted file mode 100644
index ec53861..0000000
--- a/node-zigar.config.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "optimize": "ReleaseSmall",
- "quiet": false,
- "sourceFiles": {
- "lib/xdelta3-node.zigar": "zig/xdelta3-node.zig"
- },
- "targets": [
- { "platform": "linux", "arch": "x64" },
- { "platform": "linux", "arch": "arm64" },
- { "platform": "darwin", "arch": "x64" },
- { "platform": "darwin", "arch": "arm64" },
- { "platform": "win32", "arch": "x64" },
- { "platform": "win32", "arch": "arm64" }
- ]
-}
diff --git a/npm/darwin-arm64/README.md b/npm/darwin-arm64/README.md
new file mode 100644
index 0000000..ea3f720
--- /dev/null
+++ b/npm/darwin-arm64/README.md
@@ -0,0 +1,3 @@
+# `@chainsafe/xdelta3-node-darwin-arm64`
+
+This is the **aarch64-apple-darwin** binary for `@chainsafe/xdelta3-node`
diff --git a/npm/darwin-arm64/package.json b/npm/darwin-arm64/package.json
new file mode 100644
index 0000000..ffbe52c
--- /dev/null
+++ b/npm/darwin-arm64/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "@chainsafe/xdelta3-node-darwin-arm64",
+ "version": "0.1.0",
+ "cpu": [
+ "arm64"
+ ],
+ "main": "xdelta3-node.darwin-arm64.node",
+ "files": [
+ "xdelta3-node.darwin-arm64.node"
+ ],
+ "description": "A xdelta3 native binding for Nodejs",
+ "keywords": [
+ "xdelta3",
+ "binary diff",
+ "delta compression",
+ "VCDIFF",
+ "RFC3284"
+ ],
+ "author": "ChainSafe Systems",
+ "homepage": "https://github.com/ChainSafe/xdelta3-node#readme",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">= 10"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com:ChainSafe/xdelta3-node.git"
+ },
+ "bugs": {
+ "url": "https://github.com/ChainSafe/xdelta3-node/issues"
+ },
+ "os": [
+ "darwin"
+ ]
+}
diff --git a/npm/darwin-x64/README.md b/npm/darwin-x64/README.md
new file mode 100644
index 0000000..645403e
--- /dev/null
+++ b/npm/darwin-x64/README.md
@@ -0,0 +1,3 @@
+# `@chainsafe/xdelta3-node-darwin-x64`
+
+This is the **x86_64-apple-darwin** binary for `@chainsafe/xdelta3-node`
diff --git a/npm/darwin-x64/package.json b/npm/darwin-x64/package.json
new file mode 100644
index 0000000..957644a
--- /dev/null
+++ b/npm/darwin-x64/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "@chainsafe/xdelta3-node-darwin-x64",
+ "version": "0.1.0",
+ "cpu": [
+ "x64"
+ ],
+ "main": "xdelta3-node.darwin-x64.node",
+ "files": [
+ "xdelta3-node.darwin-x64.node"
+ ],
+ "description": "A xdelta3 native binding for Nodejs",
+ "keywords": [
+ "xdelta3",
+ "binary diff",
+ "delta compression",
+ "VCDIFF",
+ "RFC3284"
+ ],
+ "author": "ChainSafe Systems",
+ "homepage": "https://github.com/ChainSafe/xdelta3-node#readme",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">= 10"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com:ChainSafe/xdelta3-node.git"
+ },
+ "bugs": {
+ "url": "https://github.com/ChainSafe/xdelta3-node/issues"
+ },
+ "os": [
+ "darwin"
+ ]
+}
diff --git a/npm/linux-arm64-gnu/README.md b/npm/linux-arm64-gnu/README.md
new file mode 100644
index 0000000..0591024
--- /dev/null
+++ b/npm/linux-arm64-gnu/README.md
@@ -0,0 +1,3 @@
+# `@chainsafe/xdelta3-node-linux-arm64-gnu`
+
+This is the **aarch64-unknown-linux-gnu** binary for `@chainsafe/xdelta3-node`
diff --git a/npm/linux-arm64-gnu/package.json b/npm/linux-arm64-gnu/package.json
new file mode 100644
index 0000000..3034389
--- /dev/null
+++ b/npm/linux-arm64-gnu/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "@chainsafe/xdelta3-node-linux-arm64-gnu",
+ "version": "0.1.0",
+ "cpu": [
+ "arm64"
+ ],
+ "main": "xdelta3-node.linux-arm64-gnu.node",
+ "files": [
+ "xdelta3-node.linux-arm64-gnu.node"
+ ],
+ "description": "A xdelta3 native binding for Nodejs",
+ "keywords": [
+ "xdelta3",
+ "binary diff",
+ "delta compression",
+ "VCDIFF",
+ "RFC3284"
+ ],
+ "author": "ChainSafe Systems",
+ "homepage": "https://github.com/ChainSafe/xdelta3-node#readme",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">= 10"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com:ChainSafe/xdelta3-node.git"
+ },
+ "bugs": {
+ "url": "https://github.com/ChainSafe/xdelta3-node/issues"
+ },
+ "os": [
+ "linux"
+ ],
+ "libc": [
+ "glibc"
+ ]
+}
diff --git a/npm/linux-arm64-musl/README.md b/npm/linux-arm64-musl/README.md
new file mode 100644
index 0000000..35670e4
--- /dev/null
+++ b/npm/linux-arm64-musl/README.md
@@ -0,0 +1,3 @@
+# `@chainsafe/xdelta3-node-linux-arm64-musl`
+
+This is the **aarch64-unknown-linux-musl** binary for `@chainsafe/xdelta3-node`
diff --git a/npm/linux-arm64-musl/package.json b/npm/linux-arm64-musl/package.json
new file mode 100644
index 0000000..083d1db
--- /dev/null
+++ b/npm/linux-arm64-musl/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "@chainsafe/xdelta3-node-linux-arm64-musl",
+ "version": "0.1.0",
+ "cpu": [
+ "arm64"
+ ],
+ "main": "xdelta3-node.linux-arm64-musl.node",
+ "files": [
+ "xdelta3-node.linux-arm64-musl.node"
+ ],
+ "description": "A xdelta3 native binding for Nodejs",
+ "keywords": [
+ "xdelta3",
+ "binary diff",
+ "delta compression",
+ "VCDIFF",
+ "RFC3284"
+ ],
+ "author": "ChainSafe Systems",
+ "homepage": "https://github.com/ChainSafe/xdelta3-node#readme",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">= 10"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com:ChainSafe/xdelta3-node.git"
+ },
+ "bugs": {
+ "url": "https://github.com/ChainSafe/xdelta3-node/issues"
+ },
+ "os": [
+ "linux"
+ ],
+ "libc": [
+ "musl"
+ ]
+}
diff --git a/npm/linux-x64-gnu/README.md b/npm/linux-x64-gnu/README.md
new file mode 100644
index 0000000..af136e2
--- /dev/null
+++ b/npm/linux-x64-gnu/README.md
@@ -0,0 +1,3 @@
+# `@chainsafe/xdelta3-node-linux-x64-gnu`
+
+This is the **x86_64-unknown-linux-gnu** binary for `@chainsafe/xdelta3-node`
diff --git a/npm/linux-x64-gnu/package.json b/npm/linux-x64-gnu/package.json
new file mode 100644
index 0000000..a3358c5
--- /dev/null
+++ b/npm/linux-x64-gnu/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "@chainsafe/xdelta3-node-linux-x64-gnu",
+ "version": "0.1.0",
+ "cpu": [
+ "x64"
+ ],
+ "main": "xdelta3-node.linux-x64-gnu.node",
+ "files": [
+ "xdelta3-node.linux-x64-gnu.node"
+ ],
+ "description": "A xdelta3 native binding for Nodejs",
+ "keywords": [
+ "xdelta3",
+ "binary diff",
+ "delta compression",
+ "VCDIFF",
+ "RFC3284"
+ ],
+ "author": "ChainSafe Systems",
+ "homepage": "https://github.com/ChainSafe/xdelta3-node#readme",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">= 10"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com:ChainSafe/xdelta3-node.git"
+ },
+ "bugs": {
+ "url": "https://github.com/ChainSafe/xdelta3-node/issues"
+ },
+ "os": [
+ "linux"
+ ],
+ "libc": [
+ "glibc"
+ ]
+}
diff --git a/npm/linux-x64-musl/README.md b/npm/linux-x64-musl/README.md
new file mode 100644
index 0000000..e921ac0
--- /dev/null
+++ b/npm/linux-x64-musl/README.md
@@ -0,0 +1,3 @@
+# `@chainsafe/xdelta3-node-linux-x64-musl`
+
+This is the **x86_64-unknown-linux-musl** binary for `@chainsafe/xdelta3-node`
diff --git a/npm/linux-x64-musl/package.json b/npm/linux-x64-musl/package.json
new file mode 100644
index 0000000..b45dc55
--- /dev/null
+++ b/npm/linux-x64-musl/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "@chainsafe/xdelta3-node-linux-x64-musl",
+ "version": "0.1.0",
+ "cpu": [
+ "x64"
+ ],
+ "main": "xdelta3-node.linux-x64-musl.node",
+ "files": [
+ "xdelta3-node.linux-x64-musl.node"
+ ],
+ "description": "A xdelta3 native binding for Nodejs",
+ "keywords": [
+ "xdelta3",
+ "binary diff",
+ "delta compression",
+ "VCDIFF",
+ "RFC3284"
+ ],
+ "author": "ChainSafe Systems",
+ "homepage": "https://github.com/ChainSafe/xdelta3-node#readme",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">= 10"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com:ChainSafe/xdelta3-node.git"
+ },
+ "bugs": {
+ "url": "https://github.com/ChainSafe/xdelta3-node/issues"
+ },
+ "os": [
+ "linux"
+ ],
+ "libc": [
+ "musl"
+ ]
+}
diff --git a/npm/win32-x64-msvc/README.md b/npm/win32-x64-msvc/README.md
new file mode 100644
index 0000000..a86a6dc
--- /dev/null
+++ b/npm/win32-x64-msvc/README.md
@@ -0,0 +1,3 @@
+# `@chainsafe/xdelta3-node-win32-x64-msvc`
+
+This is the **x86_64-pc-windows-msvc** binary for `@chainsafe/xdelta3-node`
diff --git a/npm/win32-x64-msvc/package.json b/npm/win32-x64-msvc/package.json
new file mode 100644
index 0000000..1ab59ef
--- /dev/null
+++ b/npm/win32-x64-msvc/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "@chainsafe/xdelta3-node-win32-x64-msvc",
+ "version": "0.1.0",
+ "cpu": [
+ "x64"
+ ],
+ "main": "xdelta3-node.win32-x64-msvc.node",
+ "files": [
+ "xdelta3-node.win32-x64-msvc.node"
+ ],
+ "description": "A xdelta3 native binding for Nodejs",
+ "keywords": [
+ "xdelta3",
+ "binary diff",
+ "delta compression",
+ "VCDIFF",
+ "RFC3284"
+ ],
+ "author": "ChainSafe Systems",
+ "homepage": "https://github.com/ChainSafe/xdelta3-node#readme",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">= 10"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com:ChainSafe/xdelta3-node.git"
+ },
+ "bugs": {
+ "url": "https://github.com/ChainSafe/xdelta3-node/issues"
+ },
+ "os": [
+ "win32"
+ ]
+}
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index 3f0b1c1..0000000
--- a/package-lock.json
+++ /dev/null
@@ -1,1541 +0,0 @@
-{
- "name": "@chainsafe/xdelta3-node",
- "version": "0.1.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "@chainsafe/xdelta3-node",
- "version": "0.1.0",
- "license": "LGPL-3.0",
- "dependencies": {
- "node-zigar": "^0.13.2"
- },
- "devDependencies": {
- "ts-node": "^10.9.2",
- "typescript": "^5.6.2",
- "vitest": "^2.1.1"
- }
- },
- "node_modules/@cspotcode/source-map-support": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
- "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/trace-mapping": "0.3.9"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz",
- "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz",
- "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz",
- "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz",
- "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz",
- "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz",
- "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz",
- "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz",
- "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz",
- "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz",
- "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz",
- "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz",
- "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz",
- "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz",
- "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz",
- "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz",
- "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@tsconfig/node10": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
- "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tsconfig/node12": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
- "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tsconfig/node14": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
- "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tsconfig/node16": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
- "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/estree": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
- "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/node": {
- "version": "22.6.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.6.1.tgz",
- "integrity": "sha512-V48tCfcKb/e6cVUigLAaJDAILdMP0fUW6BidkPK4GpGjXcfbnoHasCZDwz3N3yVt5we2RHm4XTQCpv0KJz9zqw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "undici-types": "~6.19.2"
- }
- },
- "node_modules/@vitest/expect": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.1.tgz",
- "integrity": "sha512-YeueunS0HiHiQxk+KEOnq/QMzlUuOzbU1Go+PgAsHvvv3tUkJPm9xWt+6ITNTlzsMXUjmgm5T+U7KBPK2qQV6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/spy": "2.1.1",
- "@vitest/utils": "2.1.1",
- "chai": "^5.1.1",
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/mocker": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.1.tgz",
- "integrity": "sha512-LNN5VwOEdJqCmJ/2XJBywB11DLlkbY0ooDJW3uRX5cZyYCrc4PI/ePX0iQhE3BiEGiQmK4GE7Q/PqCkkaiPnrA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/spy": "^2.1.0-beta.1",
- "estree-walker": "^3.0.3",
- "magic-string": "^0.30.11"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "@vitest/spy": "2.1.1",
- "msw": "^2.3.5",
- "vite": "^5.0.0"
- },
- "peerDependenciesMeta": {
- "msw": {
- "optional": true
- },
- "vite": {
- "optional": true
- }
- }
- },
- "node_modules/@vitest/pretty-format": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.1.tgz",
- "integrity": "sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/runner": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.1.tgz",
- "integrity": "sha512-uTPuY6PWOYitIkLPidaY5L3t0JJITdGTSwBtwMjKzo5O6RCOEncz9PUN+0pDidX8kTHYjO0EwUIvhlGpnGpxmA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/utils": "2.1.1",
- "pathe": "^1.1.2"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/snapshot": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.1.tgz",
- "integrity": "sha512-BnSku1WFy7r4mm96ha2FzN99AZJgpZOWrAhtQfoxjUU5YMRpq1zmHRq7a5K9/NjqonebO7iVDla+VvZS8BOWMw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/pretty-format": "2.1.1",
- "magic-string": "^0.30.11",
- "pathe": "^1.1.2"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/spy": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.1.tgz",
- "integrity": "sha512-ZM39BnZ9t/xZ/nF4UwRH5il0Sw93QnZXd9NAZGRpIgj0yvVwPpLd702s/Cx955rGaMlyBQkZJ2Ir7qyY48VZ+g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tinyspy": "^3.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/utils": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.1.tgz",
- "integrity": "sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/pretty-format": "2.1.1",
- "loupe": "^3.1.1",
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/acorn": {
- "version": "8.12.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
- "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-walk": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
- "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.11.0"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/assertion-error": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
- "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/cac": {
- "version": "6.7.14",
- "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
- "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/chai": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz",
- "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "assertion-error": "^2.0.1",
- "check-error": "^2.1.1",
- "deep-eql": "^5.0.1",
- "loupe": "^3.1.0",
- "pathval": "^2.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/check-error": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
- "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 16"
- }
- },
- "node_modules/create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/deep-eql": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
- "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/esbuild": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
- }
- },
- "node_modules/estree-walker": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
- "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0"
- }
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/get-func-name": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
- "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/loupe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.1.tgz",
- "integrity": "sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "get-func-name": "^2.0.1"
- }
- },
- "node_modules/magic-string": {
- "version": "0.30.11",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz",
- "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0"
- }
- },
- "node_modules/make-error": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/nanoid": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
- "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/node-api-headers": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/node-api-headers/-/node-api-headers-1.3.0.tgz",
- "integrity": "sha512-8Bviwtw4jNhv0B2qDjj4M5e6GyAuGtxsmZTrFJu3S3Z0+oHwIgSUdIKkKJmZd+EbMo7g3v4PLBbrjxwmZOqMBg==",
- "license": "MIT"
- },
- "node_modules/node-zigar": {
- "version": "0.13.2",
- "resolved": "https://registry.npmjs.org/node-zigar/-/node-zigar-0.13.2.tgz",
- "integrity": "sha512-cARRpRQcoY3hYzWUz5nzrjBHdIca26UAErmYKATqMcVKJ8YmCnnae3dn+JmVn8C5MiUBmkhnqQGZZFQ4K6YqVg==",
- "license": "MIT",
- "dependencies": {
- "node-zigar-addon": "^0.13.2",
- "zigar-compiler": "^0.13.2"
- },
- "bin": {
- "node-zigar": "bin/cli.js"
- }
- },
- "node_modules/node-zigar-addon": {
- "version": "0.13.2",
- "resolved": "https://registry.npmjs.org/node-zigar-addon/-/node-zigar-addon-0.13.2.tgz",
- "integrity": "sha512-3/7dLz8q0TqD+rhJXuFsg7EVPncuAc/Vcbm2ujajKYoP/l097E9cff5pgKjZfwdLYQFaFzyZbmy8t4LI5GzHYA==",
- "license": "MIT",
- "dependencies": {
- "node-api-headers": "^1.2.0"
- }
- },
- "node_modules/pathe": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/pathval": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
- "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 14.16"
- }
- },
- "node_modules/picocolors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
- "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/postcss": {
- "version": "8.4.47",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
- "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.7",
- "picocolors": "^1.1.0",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/rollup": {
- "version": "4.22.4",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz",
- "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "1.0.5"
- },
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.22.4",
- "@rollup/rollup-android-arm64": "4.22.4",
- "@rollup/rollup-darwin-arm64": "4.22.4",
- "@rollup/rollup-darwin-x64": "4.22.4",
- "@rollup/rollup-linux-arm-gnueabihf": "4.22.4",
- "@rollup/rollup-linux-arm-musleabihf": "4.22.4",
- "@rollup/rollup-linux-arm64-gnu": "4.22.4",
- "@rollup/rollup-linux-arm64-musl": "4.22.4",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4",
- "@rollup/rollup-linux-riscv64-gnu": "4.22.4",
- "@rollup/rollup-linux-s390x-gnu": "4.22.4",
- "@rollup/rollup-linux-x64-gnu": "4.22.4",
- "@rollup/rollup-linux-x64-musl": "4.22.4",
- "@rollup/rollup-win32-arm64-msvc": "4.22.4",
- "@rollup/rollup-win32-ia32-msvc": "4.22.4",
- "@rollup/rollup-win32-x64-msvc": "4.22.4",
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/rollup/node_modules/@types/estree": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/siginfo": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
- "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/stackback": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
- "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/std-env": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz",
- "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tinybench": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
- "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tinyexec": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.0.tgz",
- "integrity": "sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tinypool": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz",
- "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- }
- },
- "node_modules/tinyrainbow": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz",
- "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/tinyspy": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
- "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/ts-node": {
- "version": "10.9.2",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
- "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@cspotcode/source-map-support": "^0.8.0",
- "@tsconfig/node10": "^1.0.7",
- "@tsconfig/node12": "^1.0.7",
- "@tsconfig/node14": "^1.0.0",
- "@tsconfig/node16": "^1.0.2",
- "acorn": "^8.4.1",
- "acorn-walk": "^8.1.1",
- "arg": "^4.1.0",
- "create-require": "^1.1.0",
- "diff": "^4.0.1",
- "make-error": "^1.1.1",
- "v8-compile-cache-lib": "^3.0.1",
- "yn": "3.1.1"
- },
- "bin": {
- "ts-node": "dist/bin.js",
- "ts-node-cwd": "dist/bin-cwd.js",
- "ts-node-esm": "dist/bin-esm.js",
- "ts-node-script": "dist/bin-script.js",
- "ts-node-transpile-only": "dist/bin-transpile.js",
- "ts-script": "dist/bin-script-deprecated.js"
- },
- "peerDependencies": {
- "@swc/core": ">=1.2.50",
- "@swc/wasm": ">=1.2.50",
- "@types/node": "*",
- "typescript": ">=2.7"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "@swc/wasm": {
- "optional": true
- }
- }
- },
- "node_modules/typescript": {
- "version": "5.6.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz",
- "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/undici-types": {
- "version": "6.19.8",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
- "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/v8-compile-cache-lib": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
- "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/vite": {
- "version": "5.4.7",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.7.tgz",
- "integrity": "sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "esbuild": "^0.21.3",
- "postcss": "^8.4.43",
- "rollup": "^4.20.0"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^18.0.0 || >=20.0.0",
- "less": "*",
- "lightningcss": "^1.21.0",
- "sass": "*",
- "sass-embedded": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.4.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- }
- }
- },
- "node_modules/vite-node": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.1.tgz",
- "integrity": "sha512-N/mGckI1suG/5wQI35XeR9rsMsPqKXzq1CdUndzVstBj/HvyxxGctwnK6WX43NGt5L3Z5tcRf83g4TITKJhPrA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cac": "^6.7.14",
- "debug": "^4.3.6",
- "pathe": "^1.1.2",
- "vite": "^5.0.0"
- },
- "bin": {
- "vite-node": "vite-node.mjs"
- },
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/vitest": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.1.tgz",
- "integrity": "sha512-97We7/VC0e9X5zBVkvt7SGQMGrRtn3KtySFQG5fpaMlS+l62eeXRQO633AYhSTC3z7IMebnPPNjGXVGNRFlxBA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/expect": "2.1.1",
- "@vitest/mocker": "2.1.1",
- "@vitest/pretty-format": "^2.1.1",
- "@vitest/runner": "2.1.1",
- "@vitest/snapshot": "2.1.1",
- "@vitest/spy": "2.1.1",
- "@vitest/utils": "2.1.1",
- "chai": "^5.1.1",
- "debug": "^4.3.6",
- "magic-string": "^0.30.11",
- "pathe": "^1.1.2",
- "std-env": "^3.7.0",
- "tinybench": "^2.9.0",
- "tinyexec": "^0.3.0",
- "tinypool": "^1.0.0",
- "tinyrainbow": "^1.2.0",
- "vite": "^5.0.0",
- "vite-node": "2.1.1",
- "why-is-node-running": "^2.3.0"
- },
- "bin": {
- "vitest": "vitest.mjs"
- },
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "@edge-runtime/vm": "*",
- "@types/node": "^18.0.0 || >=20.0.0",
- "@vitest/browser": "2.1.1",
- "@vitest/ui": "2.1.1",
- "happy-dom": "*",
- "jsdom": "*"
- },
- "peerDependenciesMeta": {
- "@edge-runtime/vm": {
- "optional": true
- },
- "@types/node": {
- "optional": true
- },
- "@vitest/browser": {
- "optional": true
- },
- "@vitest/ui": {
- "optional": true
- },
- "happy-dom": {
- "optional": true
- },
- "jsdom": {
- "optional": true
- }
- }
- },
- "node_modules/why-is-node-running": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
- "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "siginfo": "^2.0.0",
- "stackback": "0.0.2"
- },
- "bin": {
- "why-is-node-running": "cli.js"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yn": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/zigar-compiler": {
- "version": "0.13.2",
- "resolved": "https://registry.npmjs.org/zigar-compiler/-/zigar-compiler-0.13.2.tgz",
- "integrity": "sha512-Fd1WouXy7EyWxmVUKR2JmizGP0cfT6Z9bzvcW0eKM5jfH1J4MLtK/Lf4x2hW13mEbHurD4TzAQyNiFL1mwe2nQ==",
- "license": "MIT"
- }
- }
-}
diff --git a/package.json b/package.json
index 649da10..e439b90 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
"version": "0.1.0",
"type": "module",
"description": "A xdelta3 native binding for Nodejs",
- "license": "LGPL-3.0",
+ "license": "Apache-2.0",
"author": "ChainSafe Systems",
"homepage": "https://github.com/ChainSafe/xdelta3-node#readme",
"repository": {
@@ -14,21 +14,23 @@
"url": "https://github.com/ChainSafe/xdelta3-node/issues"
},
"scripts": {
- "start": "node --loader=node-zigar --no-warnings src/index.js",
- "build": "npm run build:native && npm run build:ts",
- "build:native": "./scripts/patch_xdelta3.sh && node-zigar build",
- "build:ts": "tsc -p tsconfig.build.json",
- "test:unit": "npx vitest run --dir test/unit",
- "check:build": "node -e \"(async function() { await import('./lib/index.js') })()\""
+ "artifacts": "napi artifacts",
+ "build": "napi build --platform --release",
+ "build:debug": "napi build --platform",
+ "prepublishOnly": "napi prepublish -t npm",
+ "test": "vitest run --dir test/unit",
+ "universal": "napi universal",
+ "version": "napi version"
},
- "main": "lib/index.js",
- "types": "lib/index.d.ts",
- "dependencies": {
- "node-zigar": "^0.13.2"
+ "main": "index.js",
+ "types": "index.d.ts",
+ "engines": {
+ "node": ">= 10"
},
+ "dependencies": {},
"devDependencies": {
- "typescript": "^5.6.2",
- "ts-node": "^10.9.2",
+ "@types/node": "^22.7.2",
+ "@napi-rs/cli": "^3.0.0-alpha.63",
"vitest": "^2.1.1"
},
"keywords": [
@@ -37,5 +39,17 @@
"delta compression",
"VCDIFF",
"RFC3284"
- ]
+ ],
+ "napi": {
+ "binaryName": "xdelta3-node",
+ "targets": [
+ "x86_64-apple-darwin",
+ "aarch64-apple-darwin",
+ "x86_64-unknown-linux-gnu",
+ "aarch64-unknown-linux-gnu",
+ "x86_64-unknown-linux-musl",
+ "aarch64-unknown-linux-musl",
+ "x86_64-pc-windows-msvc"
+ ]
+ }
}
diff --git a/rustfmt.toml b/rustfmt.toml
new file mode 100644
index 0000000..cab5731
--- /dev/null
+++ b/rustfmt.toml
@@ -0,0 +1,2 @@
+tab_spaces = 2
+edition = "2021"
diff --git a/scripts/patch_xdelta3.sh b/scripts/patch_xdelta3.sh
deleted file mode 100755
index b936235..0000000
--- a/scripts/patch_xdelta3.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-sed 's/^static_assert/\/\/ static_assert/g' xdelta/xdelta3/xdelta3.h > xdelta/xdelta3/xdelta3.h.new
-mv xdelta/xdelta3/xdelta3.h.new xdelta/xdelta3/xdelta3.h
diff --git a/src/index.ts b/src/index.ts
deleted file mode 100644
index b0d99e7..0000000
--- a/src/index.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import assert from "assert";
-const { createRequire } = await import("node-zigar/cjs");
-
-interface ZigArray {
- typedArray: T;
- string: string;
- base64: string;
-}
-
-interface ZigModule {
- encodeSync(src: Uint8Array, dest: Uint8Array): ZigArray;
- decodeSync(src: Uint8Array, patch: Uint8Array): ZigArray;
-}
-
-const xdelta3Node = createRequire(import.meta.url)(
- process.env.MODE === "test" || process.env.DEV
- ? "../zig/xdelta3-node.zig"
- : "../lib/xdelta3-node.zigar"
-) as ZigModule;
-
-export function encodeSync(src: Uint8Array, dest: Uint8Array): Uint8Array {
- assert(
- src.constructor === Uint8Array || Buffer.isBuffer(src),
- "src value should be an Uint8Array"
- );
- assert(
- dest.constructor === Uint8Array || Buffer.isBuffer(dest),
- "dest value should be an Uint8Array"
- );
-
- return xdelta3Node.encodeSync(src, dest).typedArray;
-}
-
-export function decodeSync(src: Uint8Array, patch: Uint8Array): Uint8Array {
- assert(
- src.constructor === Uint8Array || Buffer.isBuffer(src),
- "src value should be an Uint8Array"
- );
- assert(
- patch.constructor === Uint8Array || Buffer.isBuffer(patch),
- "patch value should be an Uint8Array"
- );
-
- return xdelta3Node.decodeSync(src, patch).typedArray;
-}
diff --git a/src/lib.rs b/src/lib.rs
new file mode 100644
index 0000000..abe1f7c
--- /dev/null
+++ b/src/lib.rs
@@ -0,0 +1,61 @@
+#![deny(clippy::all)]
+use napi::bindgen_prelude::Error;
+use napi::bindgen_prelude::Uint8Array;
+use xdelta3;
+
+#[macro_use]
+extern crate napi_derive;
+
+pub enum XDelta3Error {
+ EncodingError,
+ DecodingError,
+}
+
+impl AsRef for XDelta3Error {
+ fn as_ref(&self) -> &str {
+ match self {
+ XDelta3Error::EncodingError => "ENCODING_ERROR",
+ XDelta3Error::DecodingError => "DECODING_ERROR",
+ }
+ }
+}
+
+#[napi]
+pub fn encode_sync(src: Uint8Array, dest: Uint8Array) -> Result> {
+ let output = xdelta3::encode(dest.to_vec().as_slice(), src.to_vec().as_slice());
+ match output {
+ Some(data) => {
+ return Ok(Uint8Array::from(data));
+ }
+ None => {
+ return Err(Error::new(
+ XDelta3Error::EncodingError,
+ "empty encoding response",
+ ));
+ }
+ }
+}
+
+#[napi]
+pub fn decode_sync(src: Uint8Array, patch: Uint8Array) -> Result> {
+ if patch.len() == 0 {
+ return Err(Error::new(
+ XDelta3Error::DecodingError,
+ "invalid empty patch",
+ ));
+ }
+
+ let output = xdelta3::decode(patch.to_vec().as_slice(), src.to_vec().as_slice());
+
+ match output {
+ Some(data) => {
+ return Ok(Uint8Array::from(data));
+ }
+ None => {
+ return Err(Error::new(
+ XDelta3Error::DecodingError,
+ "empty decoding response",
+ ));
+ }
+ }
+}
diff --git a/test/data/holesky-state-patch-2548736 b/test/data/holesky-state-patch-2548736
index 14ced93..dd043cb 100644
Binary files a/test/data/holesky-state-patch-2548736 and b/test/data/holesky-state-patch-2548736 differ
diff --git a/test/unit/index.test.ts b/test/unit/index.test.ts
index db9d912..0b8c049 100644
--- a/test/unit/index.test.ts
+++ b/test/unit/index.test.ts
@@ -1,32 +1,51 @@
import { describe, it, expect } from "vitest";
-import { encodeSync, decodeSync } from "../../src/index.js";
-import fs from "fs";
-import path from "path";
+import { encodeSync, decodeSync } from "../../index";
+import fs from "node:fs";
+import path from "node:path";
// As the git have limit on file size, so we have to split large files into multiple chunks
-function readFiles(prefix: string, suffixes: string[]): Buffer {
+function readFiles(prefix: string, suffixes?: string[]): Uint8Array {
let output = Buffer.alloc(0);
- for (const suffix of suffixes) {
- output = Buffer.concat([output, fs.readFileSync(`${prefix}-${suffix}`)]);
+ if (!suffixes || suffixes.length === 0) {
+ output = fs.readFileSync(prefix);
+ } else {
+ for (const suffix of suffixes) {
+ output = Buffer.concat([output, fs.readFileSync(`${prefix}-${suffix}`)]);
+ }
}
- return output;
+ return Uint8Array.from(output);
}
+function taFor(text: string): Uint8Array {
+ return Uint8Array.from(Buffer.from(text, "utf8"));
+}
+
+const emptyPatch = new Uint8Array([
+ 214, 195, 196, 0, 0, 1, 4, 0, 7, 4, 0, 0, 1, 1, 20, 0,
+]);
+
describe("xdelta3-node", () => {
describe("encodeSync", () => {
- it("should not throw any error", () => {
- expect(() =>
- encodeSync(Buffer.from("init"), Buffer.from("init-updated"))
- ).not.toThrow();
+ it("should throw error with empty src and dest", () => {
+ expect(() => encodeSync(taFor(""), taFor(""))).toThrowError(
+ "empty encoding response"
+ );
});
- it("should encode successfully", () => {
- const patch = encodeSync(
- Buffer.from("init"),
- Buffer.from("init+updated")
+ it("should throw error with an empty dest", () => {
+ expect(() => encodeSync(taFor("init"), taFor(""))).toThrowError(
+ "empty encoding response"
);
+ });
+
+ it("should not throw any error for dest without any change", () => {
+ expect(encodeSync(taFor("init"), taFor("init"))).toEqual(emptyPatch);
+ });
+
+ it("should encode successfully", () => {
+ const patch = encodeSync(taFor("init"), taFor("init+updated"));
expect(patch).toBeDefined();
expect(patch).toBeInstanceOf(Uint8Array);
@@ -58,6 +77,18 @@ describe("xdelta3-node", () => {
});
describe("decodeSync", () => {
+ it("should throw error for empty src and patch", () => {
+ expect(() => decodeSync(taFor(""), taFor(""))).toThrowError(
+ "invalid empty patch"
+ );
+ });
+
+ it("should throw error for empty patch", () => {
+ expect(() => decodeSync(taFor("init"), taFor(""))).toThrowError(
+ "invalid empty patch"
+ );
+ });
+
it("should not throw any error", () => {
const patch = encodeSync(
Buffer.from("init"),
@@ -68,15 +99,15 @@ describe("xdelta3-node", () => {
});
it("should decode successfully", () => {
- const src = Buffer.from("init");
- const dest = Buffer.from("init+updated");
+ const src = taFor("init");
+ const dest = taFor("init+updated");
const patch = encodeSync(src, dest);
- const output = decodeSync(Buffer.from("init"), patch);
+ const output = decodeSync(taFor("init"), patch);
- expect(Buffer.from(output).toString("hex")).toStrictEqual(
- dest.toString("hex")
+ expect(Buffer.from(output).toString("utf8")).toStrictEqual(
+ Buffer.from(dest).toString("utf8")
);
});
@@ -89,13 +120,15 @@ describe("xdelta3-node", () => {
path.resolve(import.meta.dirname, "../data/holesky-state-dest-2548736"),
["00", "01", "02"]
);
+ const patch = readFiles(
+ path.resolve(import.meta.dirname, "../data/holesky-state-patch-2548736")
+ );
- const patch = encodeSync(src, dest);
const reproducedOutput = decodeSync(src, patch);
expect(reproducedOutput).toBeDefined();
expect(Buffer.from(reproducedOutput).toString("hex")).toEqual(
- dest.toString("hex")
+ Buffer.from(dest).toString("hex")
);
});
});
diff --git a/tsconfig.build.json b/tsconfig.build.json
deleted file mode 100644
index 5824d93..0000000
--- a/tsconfig.build.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "extends": "./tsconfig.json",
- "compilerOptions": {
- "outDir": "lib",
- "declaration": true,
- }
-}
\ No newline at end of file
diff --git a/types/node-zigar/index.d.ts b/types/node-zigar/index.d.ts
deleted file mode 100644
index 7b5eb34..0000000
--- a/types/node-zigar/index.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-declare module "node-zigar/cjs" {
- export function createRequire(url: string): (modulePath: string) => unknown;
-}
\ No newline at end of file
diff --git a/xdelta b/xdelta
deleted file mode 160000
index 7508fd2..0000000
--- a/xdelta
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 7508fd2a823443b1f0173ca361620f21d62a7d37
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..85251b0
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,1355 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@emnapi/core@^1.1.0":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.3.0.tgz#0605f34043d48de3f28ec60a5566724075a8e76e"
+ integrity sha512-9hRqVlhwqBqCoToZ3hFcNVqL+uyHV06Y47ax4UB8L6XgVRqYz7MFnfessojo6+5TK89pKwJnpophwjTMOeKI9Q==
+ dependencies:
+ "@emnapi/wasi-threads" "1.0.1"
+ tslib "^2.4.0"
+
+"@emnapi/runtime@^1.1.0":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.3.0.tgz#63ebb77b9212ef7334f19ab8842ff76039c4f953"
+ integrity sha512-XMBySMuNZs3DM96xcJmLW4EfGnf+uGmFNjzpehMjuX5PLB5j87ar2Zc4e3PVeZ3I5g3tYtAqskB28manlF69Zw==
+ dependencies:
+ tslib "^2.4.0"
+
+"@emnapi/wasi-threads@1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz#d7ae71fd2166b1c916c6cd2d0df2ef565a2e1a5b"
+ integrity sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==
+ dependencies:
+ tslib "^2.4.0"
+
+"@esbuild/aix-ppc64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f"
+ integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==
+
+"@esbuild/android-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052"
+ integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==
+
+"@esbuild/android-arm@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28"
+ integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==
+
+"@esbuild/android-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e"
+ integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==
+
+"@esbuild/darwin-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a"
+ integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==
+
+"@esbuild/darwin-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22"
+ integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==
+
+"@esbuild/freebsd-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e"
+ integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==
+
+"@esbuild/freebsd-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261"
+ integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==
+
+"@esbuild/linux-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b"
+ integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==
+
+"@esbuild/linux-arm@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9"
+ integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==
+
+"@esbuild/linux-ia32@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2"
+ integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==
+
+"@esbuild/linux-loong64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df"
+ integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==
+
+"@esbuild/linux-mips64el@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe"
+ integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==
+
+"@esbuild/linux-ppc64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4"
+ integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==
+
+"@esbuild/linux-riscv64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc"
+ integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==
+
+"@esbuild/linux-s390x@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de"
+ integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==
+
+"@esbuild/linux-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0"
+ integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==
+
+"@esbuild/netbsd-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047"
+ integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==
+
+"@esbuild/openbsd-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70"
+ integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==
+
+"@esbuild/sunos-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b"
+ integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==
+
+"@esbuild/win32-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d"
+ integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==
+
+"@esbuild/win32-ia32@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b"
+ integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==
+
+"@esbuild/win32-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c"
+ integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==
+
+"@inquirer/checkbox@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-3.0.1.tgz#0a57f704265f78c36e17f07e421b98efb4b9867b"
+ integrity sha512-0hm2nrToWUdD6/UHnel/UKGdk1//ke5zGUpHIvk5ZWmaKezlGxZkOJXNSWsdxO/rEqTkbB3lNC2J6nBElV2aAQ==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/figures" "^1.0.6"
+ "@inquirer/type" "^2.0.0"
+ ansi-escapes "^4.3.2"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/confirm@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-4.0.1.tgz#9106d6bffa0b2fdd0e4f60319b6f04f2e06e6e25"
+ integrity sha512-46yL28o2NJ9doViqOy0VDcoTzng7rAb6yPQKU7VDLqkmbCaH4JqK4yk4XqlzNWy9PVC5pG1ZUXPBQv+VqnYs2w==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/type" "^2.0.0"
+
+"@inquirer/core@^9.2.1":
+ version "9.2.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-9.2.1.tgz#677c49dee399c9063f31e0c93f0f37bddc67add1"
+ integrity sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==
+ dependencies:
+ "@inquirer/figures" "^1.0.6"
+ "@inquirer/type" "^2.0.0"
+ "@types/mute-stream" "^0.0.4"
+ "@types/node" "^22.5.5"
+ "@types/wrap-ansi" "^3.0.0"
+ ansi-escapes "^4.3.2"
+ cli-width "^4.1.0"
+ mute-stream "^1.0.0"
+ signal-exit "^4.1.0"
+ strip-ansi "^6.0.1"
+ wrap-ansi "^6.2.0"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/editor@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-3.0.1.tgz#d109f21e050af6b960725388cb1c04214ed7c7bc"
+ integrity sha512-VA96GPFaSOVudjKFraokEEmUQg/Lub6OXvbIEZU1SDCmBzRkHGhxoFAVaF30nyiB4m5cEbDgiI2QRacXZ2hw9Q==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/type" "^2.0.0"
+ external-editor "^3.1.0"
+
+"@inquirer/expand@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-3.0.1.tgz#aed9183cac4d12811be47a4a895ea8e82a17e22c"
+ integrity sha512-ToG8d6RIbnVpbdPdiN7BCxZGiHOTomOX94C2FaT5KOHupV40tKEDozp12res6cMIfRKrXLJyexAZhWVHgbALSQ==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/type" "^2.0.0"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/figures@^1.0.6":
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.7.tgz#d050ccc0eabfacc0248c4ff647a9dfba1b01594b"
+ integrity sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==
+
+"@inquirer/input@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-3.0.1.tgz#de63d49e516487388508d42049deb70f2cb5f28e"
+ integrity sha512-BDuPBmpvi8eMCxqC5iacloWqv+5tQSJlUafYWUe31ow1BVXjW2a5qe3dh4X/Z25Wp22RwvcaLCc2siHobEOfzg==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/type" "^2.0.0"
+
+"@inquirer/number@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-2.0.1.tgz#b9863080d02ab7dc2e56e16433d83abea0f2a980"
+ integrity sha512-QpR8jPhRjSmlr/mD2cw3IR8HRO7lSVOnqUvQa8scv1Lsr3xoAMMworcYW3J13z3ppjBFBD2ef1Ci6AE5Qn8goQ==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/type" "^2.0.0"
+
+"@inquirer/password@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-3.0.1.tgz#2a9a9143591088336bbd573bcb05d5bf080dbf87"
+ integrity sha512-haoeEPUisD1NeE2IanLOiFr4wcTXGWrBOyAyPZi1FfLJuXOzNmxCJPgUrGYKVh+Y8hfGJenIfz5Wb/DkE9KkMQ==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/type" "^2.0.0"
+ ansi-escapes "^4.3.2"
+
+"@inquirer/prompts@^6.0.0":
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-6.0.1.tgz#43f5c0ed35c5ebfe52f1d43d46da2d363d950071"
+ integrity sha512-yl43JD/86CIj3Mz5mvvLJqAOfIup7ncxfJ0Btnl0/v5TouVUyeEdcpknfgc+yMevS/48oH9WAkkw93m7otLb/A==
+ dependencies:
+ "@inquirer/checkbox" "^3.0.1"
+ "@inquirer/confirm" "^4.0.1"
+ "@inquirer/editor" "^3.0.1"
+ "@inquirer/expand" "^3.0.1"
+ "@inquirer/input" "^3.0.1"
+ "@inquirer/number" "^2.0.1"
+ "@inquirer/password" "^3.0.1"
+ "@inquirer/rawlist" "^3.0.1"
+ "@inquirer/search" "^2.0.1"
+ "@inquirer/select" "^3.0.1"
+
+"@inquirer/rawlist@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-3.0.1.tgz#729def358419cc929045f264131878ed379e0af3"
+ integrity sha512-VgRtFIwZInUzTiPLSfDXK5jLrnpkuSOh1ctfaoygKAdPqjcjKYmGh6sCY1pb0aGnCGsmhUxoqLDUAU0ud+lGXQ==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/type" "^2.0.0"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/search@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-2.0.1.tgz#69b774a0a826de2e27b48981d01bc5ad81e73721"
+ integrity sha512-r5hBKZk3g5MkIzLVoSgE4evypGqtOannnB3PKTG9NRZxyFRKcfzrdxXXPcoJQsxJPzvdSU2Rn7pB7lw0GCmGAg==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/figures" "^1.0.6"
+ "@inquirer/type" "^2.0.0"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/select@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-3.0.1.tgz#1df9ed27fb85a5f526d559ac5ce7cc4e9dc4e7ec"
+ integrity sha512-lUDGUxPhdWMkN/fHy1Lk7pF3nK1fh/gqeyWXmctefhxLYxlDsc7vsPBEpxrfVGDsVdyYJsiJoD4bJ1b623cV1Q==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/figures" "^1.0.6"
+ "@inquirer/type" "^2.0.0"
+ ansi-escapes "^4.3.2"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/type@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-2.0.0.tgz#08fa513dca2cb6264fe1b0a2fabade051444e3f6"
+ integrity sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==
+ dependencies:
+ mute-stream "^1.0.0"
+
+"@jridgewell/sourcemap-codec@^1.5.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
+ integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
+
+"@napi-rs/cli@^3.0.0-alpha.63":
+ version "3.0.0-alpha.63"
+ resolved "https://registry.yarnpkg.com/@napi-rs/cli/-/cli-3.0.0-alpha.63.tgz#f4679ab5ff04b3291a5aedb4570a73e10a81a1ba"
+ integrity sha512-kccKMymb6IyS1nEfGHBYNq6aAXwGd3iVvQ6Wx7Wu4ewjO+6i5c6oSgLb75rd4qXL/KtskZp/AOlw7TB5XslTmA==
+ dependencies:
+ "@inquirer/prompts" "^6.0.0"
+ "@napi-rs/cross-toolchain" "^0.0.16"
+ "@napi-rs/wasm-tools" "^0.0.2"
+ "@octokit/rest" "^21.0.0"
+ clipanion "^3.2.1"
+ colorette "^2.0.20"
+ debug "^4.3.4"
+ emnapi "^1.2.0"
+ js-yaml "^4.1.0"
+ lodash-es "^4.17.21"
+ semver "^7.5.4"
+ toml "^3.0.0"
+ typanion "^3.14.0"
+ wasm-sjlj "^1.0.5"
+
+"@napi-rs/cross-toolchain@^0.0.16":
+ version "0.0.16"
+ resolved "https://registry.yarnpkg.com/@napi-rs/cross-toolchain/-/cross-toolchain-0.0.16.tgz#e3cdb8624207ef8f3411794583bdcba688c6430a"
+ integrity sha512-jwdjHT5L0m9MH0CmzDwPp0ckn/UO7afHCsPeo7NugHUvYgvlgS7SWhdMVgIgJW2HHqhcW/2nhaLLGpAU1c7QRQ==
+ dependencies:
+ "@napi-rs/lzma" "^1.3.1"
+ "@napi-rs/tar" "^0.1.1"
+ debug "^4.3.4"
+
+"@napi-rs/lzma-android-arm-eabi@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-android-arm-eabi/-/lzma-android-arm-eabi-1.4.1.tgz#24a28c503f479adf45be351a1f4870122b36b88b"
+ integrity sha512-yenreSpZ9IrqppJOiWDqWMmja7XtSgio9LhtxYwgdILmy/OJTe/mlTYv+FhJBf7hIV9Razu5eBuEa3zKri81IA==
+
+"@napi-rs/lzma-android-arm64@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-android-arm64/-/lzma-android-arm64-1.4.1.tgz#f4a86adbd6850030c7c3f02b1eb5a8eff52aa448"
+ integrity sha512-piutVBz5B1TNxXeEjub0n/IKI6dMaXPPRbVSXuc4gnZgzcihNDUh68vcLZgYd+IMiACZvBxvx2O3t5nthtph3A==
+
+"@napi-rs/lzma-darwin-arm64@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-darwin-arm64/-/lzma-darwin-arm64-1.4.1.tgz#dbc4a5292ce4ae84401498684305f7b31a00c9de"
+ integrity sha512-sDfOhQQFqV8lGbpgJN9DqNLBPR7QOfYjcWUv8FOGPaVP1LPJDnrc5uCpRWWEa2zIKmTiO8P9xzIl0TDzrYmghg==
+
+"@napi-rs/lzma-darwin-x64@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-darwin-x64/-/lzma-darwin-x64-1.4.1.tgz#1b7de5ba2040f23dc2c02c40ef05121a91a1da1a"
+ integrity sha512-S5/RbC6EP4QkYy2xhxbfm48ZD9FkysfpWY4Slve0nj5RGGsHvcJBg2Pi69jrTPB/zLKz2SUa0i+RfUt9zvZNaw==
+
+"@napi-rs/lzma-freebsd-x64@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-freebsd-x64/-/lzma-freebsd-x64-1.4.1.tgz#88db584b98adbbdf9de6f31a7260fbbf5d092eb4"
+ integrity sha512-4AFnq6aZnclwameSBkDWu5Ftb8y4GwvVXeQXJKbN7hf7O5GG/8QpQB1R1NJw2QORUhpKwjAQUpbkTyhL2GFWWw==
+
+"@napi-rs/lzma-linux-arm-gnueabihf@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-arm-gnueabihf/-/lzma-linux-arm-gnueabihf-1.4.1.tgz#465e79e937e4039ec20e8730075956fe30df3dfb"
+ integrity sha512-j5rL1YRIm6rWmmGAvN6DPX6QuRjvFGB93xJ7DTRB47GXW4zHekXae6ivowjJ95vT4Iz4hSWkZbuwAy95eFrWRA==
+
+"@napi-rs/lzma-linux-arm64-gnu@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-arm64-gnu/-/lzma-linux-arm64-gnu-1.4.1.tgz#0e7e9e3cf15c48b4f0883ba60044aff958c42c5a"
+ integrity sha512-1XdFGKyTS9m+VrRQYs9uz+ToHf4Jwm0ejHU48k9lT9MPl8jSqzKdVtFzZBPzronHteSynBfKmUq0+HeWmjrsOQ==
+
+"@napi-rs/lzma-linux-arm64-musl@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-arm64-musl/-/lzma-linux-arm64-musl-1.4.1.tgz#f22ba40129e44cbf1969f3172b303039b1a81a32"
+ integrity sha512-9d09tYS0/rBwIk1QTcO2hMZEB/ZpsG2+uFW5am1RHElSWMclObirB1An7b6AMDJcRvcomkOg2GZ9COzrvHKwEA==
+
+"@napi-rs/lzma-linux-ppc64-gnu@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-ppc64-gnu/-/lzma-linux-ppc64-gnu-1.4.1.tgz#c40f45f5b05e8a13a2e84bbcb3ea4f4df00c81f3"
+ integrity sha512-UzEkmsgoJ3IOGIRb6kBzNiw+ThUpiighop7dVYfSqlF5juGzwf7YewC57RGn4FoJCvadOCrSm5VikAcgrwVgAw==
+
+"@napi-rs/lzma-linux-riscv64-gnu@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-riscv64-gnu/-/lzma-linux-riscv64-gnu-1.4.1.tgz#88758e3ea74809258114f5df5ca32f3cc04ba594"
+ integrity sha512-9dUKlZ1PdwxTaFF+j3oc+xjlk9nqFwo1NWWOH30uwjl4Rm5Gkv+Fx0pHrzu4kR/iVA+oyQqa9/2uDYnGSTijBA==
+
+"@napi-rs/lzma-linux-s390x-gnu@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-s390x-gnu/-/lzma-linux-s390x-gnu-1.4.1.tgz#e0874366e9d8e55fc10d958a2c31ece8b8e8c88b"
+ integrity sha512-MOVXUWJSLLCJDCCAlGa39sh7nv9XjvXzCf7QJus7rD8Ciz0mpXNXF9mg0ji7/MZ7pZlKPlXjXDnpVCfFdSEaFQ==
+
+"@napi-rs/lzma-linux-x64-gnu@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.4.1.tgz#e149fef974e4b41b44bbd71734c675d447a6f227"
+ integrity sha512-Sxu7aJxU1sDbUTqjqLVDV3DCOAlbsFKvmuCN/S5uXBJd1IF2wJ9jK3NbFzfqTAo5Hudx8Y7kOb6+3K+fYPI1KQ==
+
+"@napi-rs/lzma-linux-x64-musl@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-x64-musl/-/lzma-linux-x64-musl-1.4.1.tgz#9bfde421fb4f1eab4f4c8d4aea731a547854be90"
+ integrity sha512-4I3BeKBQJSE5gF2/VTEv7wCLLjhapeutbCGpZPmDiLHZ74rm9edmNXAlKpdjADQ4YDLJ2GIBzttvwLXkJ9U+cw==
+
+"@napi-rs/lzma-wasm32-wasi@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-wasm32-wasi/-/lzma-wasm32-wasi-1.4.1.tgz#c70cca60b91c67f45502d061f3f4a071f5847198"
+ integrity sha512-s32HdKqQWbohf6DGWpG9YMODaBdbKJ++JpNr6Ii7821sKf4h/o+p8IRFTOaWdmdJdllEWlRirnd5crA29VivJQ==
+ dependencies:
+ "@napi-rs/wasm-runtime" "^0.2.4"
+
+"@napi-rs/lzma-win32-arm64-msvc@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-win32-arm64-msvc/-/lzma-win32-arm64-msvc-1.4.1.tgz#8fc7bea33e35a9d21e03f008e3b6e49e6fff81ee"
+ integrity sha512-ISz+v7ML5mKnjEZ7Kk4Z1BIn411r/fz3tDy9j5yDnwQI0MgTsUQFrIQElGUpULWYs2aYc6EZ9PhECbLBfSjh7A==
+
+"@napi-rs/lzma-win32-ia32-msvc@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-win32-ia32-msvc/-/lzma-win32-ia32-msvc-1.4.1.tgz#f1cc52857810ee5d3b4a6b40c70390a5889ede69"
+ integrity sha512-3WKuCpZBrd7Jrw+h1jSu5XAsRWepMJu0sYuRoA4Y4Cwfu9gI7p5Z5Bc510nfjg7M7xvdpkI4UoW2WY7kBFRYrQ==
+
+"@napi-rs/lzma-win32-x64-msvc@1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-win32-x64-msvc/-/lzma-win32-x64-msvc-1.4.1.tgz#8cf5c8fe0af2de4f9a0f45d35a4cdd8610ca2731"
+ integrity sha512-0ixRo5z1zFXdh62hlrTV+QCTKHK0te5NHKaExOluhtcc6AdpMmpslvM9JhUxNHI+zM46w/DmmcvcOtqsaTmHgg==
+
+"@napi-rs/lzma@^1.3.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@napi-rs/lzma/-/lzma-1.4.1.tgz#bbc0231858231a6d0db1e9fb5c2fda48acf377d8"
+ integrity sha512-5f8K9NHjwHjZKGm3SS+7CFxXQhz8rbg2umBm/9g0xQRXBdYEI31N5z1ACuk9bmBQOusXAq9CArGfs/ZQso2rUA==
+ optionalDependencies:
+ "@napi-rs/lzma-android-arm-eabi" "1.4.1"
+ "@napi-rs/lzma-android-arm64" "1.4.1"
+ "@napi-rs/lzma-darwin-arm64" "1.4.1"
+ "@napi-rs/lzma-darwin-x64" "1.4.1"
+ "@napi-rs/lzma-freebsd-x64" "1.4.1"
+ "@napi-rs/lzma-linux-arm-gnueabihf" "1.4.1"
+ "@napi-rs/lzma-linux-arm64-gnu" "1.4.1"
+ "@napi-rs/lzma-linux-arm64-musl" "1.4.1"
+ "@napi-rs/lzma-linux-ppc64-gnu" "1.4.1"
+ "@napi-rs/lzma-linux-riscv64-gnu" "1.4.1"
+ "@napi-rs/lzma-linux-s390x-gnu" "1.4.1"
+ "@napi-rs/lzma-linux-x64-gnu" "1.4.1"
+ "@napi-rs/lzma-linux-x64-musl" "1.4.1"
+ "@napi-rs/lzma-wasm32-wasi" "1.4.1"
+ "@napi-rs/lzma-win32-arm64-msvc" "1.4.1"
+ "@napi-rs/lzma-win32-ia32-msvc" "1.4.1"
+ "@napi-rs/lzma-win32-x64-msvc" "1.4.1"
+
+"@napi-rs/tar-android-arm-eabi@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-android-arm-eabi/-/tar-android-arm-eabi-0.1.4.tgz#c86ccab3818282a2ec970b34b69293fb5062b2ef"
+ integrity sha512-LMSysWp5AmZj1NOCB2jshc9KCvp4gm7vm0Cra5U2crMvlj/fwGrvv6+EzSw49y8wCkNEcQ8QaGq5NBQKiLogSg==
+
+"@napi-rs/tar-android-arm64@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-android-arm64/-/tar-android-arm64-0.1.4.tgz#4a597ea693737f0b3a32dd478d54b14dc0d178d1"
+ integrity sha512-A/2rl8xr7F5yOtHVARROoSwjRRDNL1RlXCsg/K+RE5/V9iPBojsJsLpFPilp7InF6bi+z7aYn+yWCD6wSwfF4A==
+
+"@napi-rs/tar-darwin-arm64@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-darwin-arm64/-/tar-darwin-arm64-0.1.4.tgz#ccda1a0007b0b83acc5853cb69adc45a37c086d8"
+ integrity sha512-mnGBswBRtxDqUwXUZx+f9Uuy2uPssxuvcWFTYgUSZqlS2pg/XIWZdHZhbqWqKGpjpZrYcr+42roytbWlZ+epMA==
+
+"@napi-rs/tar-darwin-x64@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-darwin-x64/-/tar-darwin-x64-0.1.4.tgz#1b8291d1706159b59dc14ad3c0aa60e5d241c6ca"
+ integrity sha512-I81Fvl/cfnFVBET49xywNd57dXLJPO7jqrjD9Z2bKeXA0v0Zt1cwV1IOOTihFZXJv7kgu6EfNB7oumoLOTqq5A==
+
+"@napi-rs/tar-freebsd-x64@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-freebsd-x64/-/tar-freebsd-x64-0.1.4.tgz#a18bb25a735bfb1c7b88b50576aa8eff157e78d3"
+ integrity sha512-p5OFr3MqidZHkt9bHV2FgeS6k06g+s0GR2kvj/wm2mIxr7u3/sj3+RTr7GHz5DQq08T7uH85HhsrGYWN3vxmSg==
+
+"@napi-rs/tar-linux-arm-gnueabihf@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-linux-arm-gnueabihf/-/tar-linux-arm-gnueabihf-0.1.4.tgz#2755ff547c74a0fdedb8d15408d8e711cd1f03e5"
+ integrity sha512-POp2zb/Yuw6taEmrTlEoQI5S+2HmgfV1VtqGQZgRmCa85NlWLDsR6vbW9euu/6NbLj3ld15cCeJC2oJkv9k/xg==
+
+"@napi-rs/tar-linux-arm64-gnu@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-linux-arm64-gnu/-/tar-linux-arm64-gnu-0.1.4.tgz#0d758944574f53d6451a76315d1d2df8b0370625"
+ integrity sha512-TV+2AppSgJx5U9nk1C9bh1afWcBVnnANJ4SmtqUF6ediHcDS2rLebeI8BGljfnX9F149qbT9gOGN+R8tofpCsg==
+
+"@napi-rs/tar-linux-arm64-musl@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-linux-arm64-musl/-/tar-linux-arm64-musl-0.1.4.tgz#75688403784252b2dabd4d988465247b7a48fc06"
+ integrity sha512-UFBvKpYmuQRbgmXuSSPb8mRjq4JRZLYJhqwrWWnlfQP13xK2WB7mL2GhewBgynSH4YKDm6biKhK6U5RrSWEDgw==
+
+"@napi-rs/tar-linux-ppc64-gnu@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-linux-ppc64-gnu/-/tar-linux-ppc64-gnu-0.1.4.tgz#ee9e5f2bb061e25437be51cf8fc5646f5544a6fd"
+ integrity sha512-HT+h6Wv51SKXqks8UBF+KVuNJ09fM1GyO+SvCnDB5MF66tGiI2C6/MSX69zf1ZeqjACds1K/UwKiZCmE76/j9A==
+
+"@napi-rs/tar-linux-s390x-gnu@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-linux-s390x-gnu/-/tar-linux-s390x-gnu-0.1.4.tgz#595068a80ecbf09ab40f1f9abf378a59b4f57256"
+ integrity sha512-SJ+HSr281Y6cgJrQ4nkYbXaTHAmTLv/FZm5k9ZRA6Khml//ZoWi7CiT8dnPeD4QxYwCzAFA4aYMUOQJM/mk2/w==
+
+"@napi-rs/tar-linux-x64-gnu@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-linux-x64-gnu/-/tar-linux-x64-gnu-0.1.4.tgz#e915b6c344124753fce514063a8ab472fcbd17d2"
+ integrity sha512-LrF0lRFiFOkO40jfgTdF8dRTvYOLV52fdZ/YnJuBodNcxqEl9rChO3v5Uag//sy0me85FjqtobQNRQP8Nd80dA==
+
+"@napi-rs/tar-linux-x64-musl@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-linux-x64-musl/-/tar-linux-x64-musl-0.1.4.tgz#fbc0684193086bea848d9f5c5f68e98fcf7e921a"
+ integrity sha512-etGUWbs+Tk1PtzgyWrVzXa2fQrHNKSc/whHm+4x1Num8Oz+wGdjCDTUktYxAVy33PKZhdblVxxE83QXxkgjneQ==
+
+"@napi-rs/tar-wasm32-wasi@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-wasm32-wasi/-/tar-wasm32-wasi-0.1.4.tgz#843b7747bba548348f103047ac669cb6642f0704"
+ integrity sha512-mANkm93AKy+OspkOBAC5WI64SopXT0VawdTjpeGW1OgyUSJWdUB5rhs3I7B/HW1bi5tsUoZOZQe3rVgYdfzA6g==
+ dependencies:
+ "@napi-rs/wasm-runtime" "^0.2.4"
+
+"@napi-rs/tar-win32-arm64-msvc@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-win32-arm64-msvc/-/tar-win32-arm64-msvc-0.1.4.tgz#c911804d0cf4f0e70a6d45cae2e75c71a2136948"
+ integrity sha512-/5/gp6WR9b36CysJDe8AdyjNeje+NqCniYJz/AZc+UvpKwG8MG9nS6TMpJ9IgrQacJXvc4lWXxYyn6uuPQVvaQ==
+
+"@napi-rs/tar-win32-ia32-msvc@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-win32-ia32-msvc/-/tar-win32-ia32-msvc-0.1.4.tgz#688254b528cc66dd4d200709770e720863b57504"
+ integrity sha512-HnQi0op9BqJqPekKXhEAI1TWkLtavxKDBDGXNhUSm2//jriMeRykahUcKoUUxr1UGrmtxpc5dx0cThBt13paEw==
+
+"@napi-rs/tar-win32-x64-msvc@0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar-win32-x64-msvc/-/tar-win32-x64-msvc-0.1.4.tgz#a44911ec3b335f6c09dbd20e1ac06f2366d860c5"
+ integrity sha512-vy2ebEXerblni6XOgi3a27+CnI6PdQ9Phy/ru5HM4bVd/oulAJohmynAmBAB1AmXg1NLbAEWu43nATEDp5O2hA==
+
+"@napi-rs/tar@^0.1.1":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/tar/-/tar-0.1.4.tgz#ccf609fbb6691624149070b4ae1edcc2d4f926b6"
+ integrity sha512-hDsvmMZY8tl2CcLfjnTeE1o5W1eGTSL+ZIX8YEybtcJwA+Cc8SNHb7l6JqMnGcjOrWBZbHt8tzTN+W7qHS5Wmg==
+ optionalDependencies:
+ "@napi-rs/tar-android-arm-eabi" "0.1.4"
+ "@napi-rs/tar-android-arm64" "0.1.4"
+ "@napi-rs/tar-darwin-arm64" "0.1.4"
+ "@napi-rs/tar-darwin-x64" "0.1.4"
+ "@napi-rs/tar-freebsd-x64" "0.1.4"
+ "@napi-rs/tar-linux-arm-gnueabihf" "0.1.4"
+ "@napi-rs/tar-linux-arm64-gnu" "0.1.4"
+ "@napi-rs/tar-linux-arm64-musl" "0.1.4"
+ "@napi-rs/tar-linux-ppc64-gnu" "0.1.4"
+ "@napi-rs/tar-linux-s390x-gnu" "0.1.4"
+ "@napi-rs/tar-linux-x64-gnu" "0.1.4"
+ "@napi-rs/tar-linux-x64-musl" "0.1.4"
+ "@napi-rs/tar-wasm32-wasi" "0.1.4"
+ "@napi-rs/tar-win32-arm64-msvc" "0.1.4"
+ "@napi-rs/tar-win32-ia32-msvc" "0.1.4"
+ "@napi-rs/tar-win32-x64-msvc" "0.1.4"
+
+"@napi-rs/wasm-runtime@^0.2.3", "@napi-rs/wasm-runtime@^0.2.4":
+ version "0.2.5"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.5.tgz#b6f5079408305fe6a3529ccb2bb8ba8d9b7a02e7"
+ integrity sha512-kwUxR7J9WLutBbulqg1dfOrMTwhMdXLdcGUhcbCcGwnPLt3gz19uHVdwH1syKVDbE022ZS2vZxOWflFLS0YTjw==
+ dependencies:
+ "@emnapi/core" "^1.1.0"
+ "@emnapi/runtime" "^1.1.0"
+ "@tybys/wasm-util" "^0.9.0"
+
+"@napi-rs/wasm-tools-android-arm-eabi@0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-tools-android-arm-eabi/-/wasm-tools-android-arm-eabi-0.0.2.tgz#da9978903a97516aad404c12434974c3b8dfea5a"
+ integrity sha512-/b+UU3suXjW4P0DzHRNdrnebQtFKcQf/YMeZJH+xUlKgvwli5kbmWjx8Wqqz0VETVkUTuPqJMBDIVLyc+14FGw==
+
+"@napi-rs/wasm-tools-android-arm64@0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-tools-android-arm64/-/wasm-tools-android-arm64-0.0.2.tgz#5d295edece8988f42e4821d3d6fd7816be3587dc"
+ integrity sha512-j57GbDflwJdZtT8pZj5fOV4JAP+LdKN+wzsUYs+QRUoBqpWbbUANudolqfw63bkS9sD4z7fbCuz8iwtJqzxTVA==
+
+"@napi-rs/wasm-tools-darwin-arm64@0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-tools-darwin-arm64/-/wasm-tools-darwin-arm64-0.0.2.tgz#e551a9aa5401f0665d942111cd7f87b0915332e4"
+ integrity sha512-P2ChgWgVuv9GwmbxN89R84KzIImoTqXINteEixUvmkdnhyFiR+I8deNs89Yed+5w8QLC6MEfrtRqLP9YI+NoQA==
+
+"@napi-rs/wasm-tools-darwin-x64@0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-tools-darwin-x64/-/wasm-tools-darwin-x64-0.0.2.tgz#0162f36ac9f46fa49bc532337e6481b8e4cc6957"
+ integrity sha512-T/kQQ0gt8+wau1Z821PKVAD76QhmwVoLs2CT7Z9tTBs2pJvwSCP0C/kQiQAHcJIMi7A2E9Ab/Mez0BERy50EFA==
+
+"@napi-rs/wasm-tools-freebsd-x64@0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-tools-freebsd-x64/-/wasm-tools-freebsd-x64-0.0.2.tgz#71ea63deaec98a8d683fb7dcc7d8adbf41d4801b"
+ integrity sha512-GnnHu+r5sfzuxC/1J5UMF/h3BOZnHb3NQZ5hmbCfZYCKzpzRxrAJhzRunlbRN+v0x8M/49dztVTYR3s7K4ooAw==
+
+"@napi-rs/wasm-tools-linux-arm64-gnu@0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-tools-linux-arm64-gnu/-/wasm-tools-linux-arm64-gnu-0.0.2.tgz#7ff25497a4e927ce85e9e035e68c5a48893acf4a"
+ integrity sha512-KnZdLT0OnKb1CG2kdt3/WvM43vr9i+FEwXCvSOVC/6Tsifz7ynhMg7LAVESILd03HubzQJfg9nbRsk0bQ+IOwg==
+
+"@napi-rs/wasm-tools-linux-arm64-musl@0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-tools-linux-arm64-musl/-/wasm-tools-linux-arm64-musl-0.0.2.tgz#3d167346cf82e5392f85a702a4011c893702d884"
+ integrity sha512-HkpZOID2U8P6pWqK3mqZ8bxU5xcuT3iA2fO+jrxn78h006iYgfNmdc5JaVhHnHazMmk32xKhSV4iV0VUh8UWDg==
+
+"@napi-rs/wasm-tools-linux-x64-gnu@0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-tools-linux-x64-gnu/-/wasm-tools-linux-x64-gnu-0.0.2.tgz#0303a385e5898ce6fe58e07230f9b15644f738c5"
+ integrity sha512-YksJWBCyOalB9ogtP9+/dZKP+vR6+h7BmzMXaXMT71WW/GvIsifMVgv+DY/FRSNJQupp5Y+ugjqVAOUOc/G65g==
+
+"@napi-rs/wasm-tools-linux-x64-musl@0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-tools-linux-x64-musl/-/wasm-tools-linux-x64-musl-0.0.2.tgz#28dcdd7aca90ff64292ad2cb956558ccf4a1cee3"
+ integrity sha512-sPtRxPMdw05KdTcxgSPMmSXG2+PiK3vJ/l2+g9hvjnnKtvslJN2Hr7j8zgzuoKRAUFPaJVe6+D2xVh5cpdqhww==
+
+"@napi-rs/wasm-tools-wasm32-wasi@0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-tools-wasm32-wasi/-/wasm-tools-wasm32-wasi-0.0.2.tgz#f279a65ef1bb6e4046065efda23c9bbc38ff1a11"
+ integrity sha512-muRvZK7AIuo88G2AxYx3gA59rHMQgoN004saQkBvXnz3K/DVHKfTZ6TtUebss8zI3dURU6xExL8drxFWYxjEbQ==
+ dependencies:
+ "@napi-rs/wasm-runtime" "^0.2.3"
+
+"@napi-rs/wasm-tools-win32-arm64-msvc@0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-tools-win32-arm64-msvc/-/wasm-tools-win32-arm64-msvc-0.0.2.tgz#5a2c438492f44b3ec2e27dd6d303f3dc5f0464a0"
+ integrity sha512-Cn13WQ+tpFqdVwx0DIWKbsI9auFyzVZV4F5UNOUeDt6GgOL+NndgJul0Pc9bSU6fi03AylMPfF/nTCaDWO2Wgw==
+
+"@napi-rs/wasm-tools-win32-ia32-msvc@0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-tools-win32-ia32-msvc/-/wasm-tools-win32-ia32-msvc-0.0.2.tgz#4602b14ba57f3e13df94a7015fd080e17a39591f"
+ integrity sha512-xsg5DkIQi82a8rcx6246Y3XC8TIqHamY+/C6sIlPLaZEuHctDkMECAw0AANwRf5vN//D2oo2oljOuoYtB1GOKw==
+
+"@napi-rs/wasm-tools-win32-x64-msvc@0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-tools-win32-x64-msvc/-/wasm-tools-win32-x64-msvc-0.0.2.tgz#7d393345b12167a7c17653829921ca1821d6e0bc"
+ integrity sha512-yHigltEt33eq8bappvKsIliz4MxfMPn1M+NWbIFRWN+IS1Z57mhmc1osuk+IRXrSlq0Tom0R6MYN1jpkZKz81Q==
+
+"@napi-rs/wasm-tools@^0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-tools/-/wasm-tools-0.0.2.tgz#030a69d158380681af31119fd05312f1615f3527"
+ integrity sha512-kBvDQCP5BLw2TxTENXLp3Of7vVEx0uyIye824JHE4dduzzOHVgSoOFVhVqAT3Fx/hLV445RVWfEqQbXMg4w/Mw==
+ optionalDependencies:
+ "@napi-rs/wasm-tools-android-arm-eabi" "0.0.2"
+ "@napi-rs/wasm-tools-android-arm64" "0.0.2"
+ "@napi-rs/wasm-tools-darwin-arm64" "0.0.2"
+ "@napi-rs/wasm-tools-darwin-x64" "0.0.2"
+ "@napi-rs/wasm-tools-freebsd-x64" "0.0.2"
+ "@napi-rs/wasm-tools-linux-arm64-gnu" "0.0.2"
+ "@napi-rs/wasm-tools-linux-arm64-musl" "0.0.2"
+ "@napi-rs/wasm-tools-linux-x64-gnu" "0.0.2"
+ "@napi-rs/wasm-tools-linux-x64-musl" "0.0.2"
+ "@napi-rs/wasm-tools-wasm32-wasi" "0.0.2"
+ "@napi-rs/wasm-tools-win32-arm64-msvc" "0.0.2"
+ "@napi-rs/wasm-tools-win32-ia32-msvc" "0.0.2"
+ "@napi-rs/wasm-tools-win32-x64-msvc" "0.0.2"
+
+"@octokit/auth-token@^5.0.0":
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-5.1.1.tgz#3bbfe905111332a17f72d80bd0b51a3e2fa2cf07"
+ integrity sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==
+
+"@octokit/core@^6.1.2":
+ version "6.1.2"
+ resolved "https://registry.yarnpkg.com/@octokit/core/-/core-6.1.2.tgz#20442d0a97c411612da206411e356014d1d1bd17"
+ integrity sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==
+ dependencies:
+ "@octokit/auth-token" "^5.0.0"
+ "@octokit/graphql" "^8.0.0"
+ "@octokit/request" "^9.0.0"
+ "@octokit/request-error" "^6.0.1"
+ "@octokit/types" "^13.0.0"
+ before-after-hook "^3.0.2"
+ universal-user-agent "^7.0.0"
+
+"@octokit/endpoint@^10.0.0":
+ version "10.1.1"
+ resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-10.1.1.tgz#1a9694e7aef6aa9d854dc78dd062945945869bcc"
+ integrity sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==
+ dependencies:
+ "@octokit/types" "^13.0.0"
+ universal-user-agent "^7.0.2"
+
+"@octokit/graphql@^8.0.0":
+ version "8.1.1"
+ resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-8.1.1.tgz#3cacab5f2e55d91c733e3bf481d3a3f8a5f639c4"
+ integrity sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==
+ dependencies:
+ "@octokit/request" "^9.0.0"
+ "@octokit/types" "^13.0.0"
+ universal-user-agent "^7.0.0"
+
+"@octokit/openapi-types@^22.2.0":
+ version "22.2.0"
+ resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-22.2.0.tgz#75aa7dcd440821d99def6a60b5f014207ae4968e"
+ integrity sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==
+
+"@octokit/plugin-paginate-rest@^11.0.0":
+ version "11.3.5"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.5.tgz#a1929b3ba3dc7b63bc73bb6d3c7a3faf2a9c7649"
+ integrity sha512-cgwIRtKrpwhLoBi0CUNuY83DPGRMaWVjqVI/bGKsLJ4PzyWZNaEmhHroI2xlrVXkk6nFv0IsZpOp+ZWSWUS2AQ==
+ dependencies:
+ "@octokit/types" "^13.6.0"
+
+"@octokit/plugin-request-log@^5.3.1":
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-5.3.1.tgz#ccb75d9705de769b2aa82bcd105cc96eb0c00f69"
+ integrity sha512-n/lNeCtq+9ofhC15xzmJCNKP2BWTv8Ih2TTy+jatNCCq/gQP/V7rK3fjIfuz0pDWDALO/o/4QY4hyOF6TQQFUw==
+
+"@octokit/plugin-rest-endpoint-methods@^13.0.0":
+ version "13.2.6"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.6.tgz#b9d343dbe88a6cb70cc7fa16faa98f0a29ffe654"
+ integrity sha512-wMsdyHMjSfKjGINkdGKki06VEkgdEldIGstIEyGX0wbYHGByOwN/KiM+hAAlUwAtPkP3gvXtVQA9L3ITdV2tVw==
+ dependencies:
+ "@octokit/types" "^13.6.1"
+
+"@octokit/request-error@^6.0.1":
+ version "6.1.5"
+ resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-6.1.5.tgz#907099e341c4e6179db623a0328d678024f54653"
+ integrity sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ==
+ dependencies:
+ "@octokit/types" "^13.0.0"
+
+"@octokit/request@^9.0.0":
+ version "9.1.3"
+ resolved "https://registry.yarnpkg.com/@octokit/request/-/request-9.1.3.tgz#42b693bc06238f43af3c037ebfd35621c6457838"
+ integrity sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==
+ dependencies:
+ "@octokit/endpoint" "^10.0.0"
+ "@octokit/request-error" "^6.0.1"
+ "@octokit/types" "^13.1.0"
+ universal-user-agent "^7.0.2"
+
+"@octokit/rest@^21.0.0":
+ version "21.0.2"
+ resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-21.0.2.tgz#9b767dbc1098daea8310fd8b76bf7a97215d5972"
+ integrity sha512-+CiLisCoyWmYicH25y1cDfCrv41kRSvTq6pPWtRroRJzhsCZWZyCqGyI8foJT5LmScADSwRAnr/xo+eewL04wQ==
+ dependencies:
+ "@octokit/core" "^6.1.2"
+ "@octokit/plugin-paginate-rest" "^11.0.0"
+ "@octokit/plugin-request-log" "^5.3.1"
+ "@octokit/plugin-rest-endpoint-methods" "^13.0.0"
+
+"@octokit/types@^13.0.0", "@octokit/types@^13.1.0", "@octokit/types@^13.6.0", "@octokit/types@^13.6.1":
+ version "13.6.1"
+ resolved "https://registry.yarnpkg.com/@octokit/types/-/types-13.6.1.tgz#432fc6c0aaae54318e5b2d3e15c22ac97fc9b15f"
+ integrity sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==
+ dependencies:
+ "@octokit/openapi-types" "^22.2.0"
+
+"@rollup/rollup-android-arm-eabi@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz#8b613b9725e8f9479d142970b106b6ae878610d5"
+ integrity sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==
+
+"@rollup/rollup-android-arm64@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz#654ca1049189132ff602bfcf8df14c18da1f15fb"
+ integrity sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==
+
+"@rollup/rollup-darwin-arm64@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz#6d241d099d1518ef0c2205d96b3fa52e0fe1954b"
+ integrity sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==
+
+"@rollup/rollup-darwin-x64@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz#42bd19d292a57ee11734c980c4650de26b457791"
+ integrity sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==
+
+"@rollup/rollup-linux-arm-gnueabihf@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz#f23555ee3d8fe941c5c5fd458cd22b65eb1c2232"
+ integrity sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==
+
+"@rollup/rollup-linux-arm-musleabihf@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz#f3bbd1ae2420f5539d40ac1fde2b38da67779baa"
+ integrity sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==
+
+"@rollup/rollup-linux-arm64-gnu@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz#7abe900120113e08a1f90afb84c7c28774054d15"
+ integrity sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==
+
+"@rollup/rollup-linux-arm64-musl@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz#9e655285c8175cd44f57d6a1e8e5dedfbba1d820"
+ integrity sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==
+
+"@rollup/rollup-linux-powerpc64le-gnu@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz#9a79ae6c9e9d8fe83d49e2712ecf4302db5bef5e"
+ integrity sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==
+
+"@rollup/rollup-linux-riscv64-gnu@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz#67ac70eca4ace8e2942fabca95164e8874ab8128"
+ integrity sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==
+
+"@rollup/rollup-linux-s390x-gnu@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz#9f883a7440f51a22ed7f99e1d070bd84ea5005fc"
+ integrity sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==
+
+"@rollup/rollup-linux-x64-gnu@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz#70116ae6c577fe367f58559e2cffb5641a1dd9d0"
+ integrity sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==
+
+"@rollup/rollup-linux-x64-musl@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz#f473f88219feb07b0b98b53a7923be716d1d182f"
+ integrity sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==
+
+"@rollup/rollup-win32-arm64-msvc@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz#4349482d17f5d1c58604d1c8900540d676f420e0"
+ integrity sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==
+
+"@rollup/rollup-win32-ia32-msvc@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz#a6fc39a15db618040ec3c2a24c1e26cb5f4d7422"
+ integrity sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==
+
+"@rollup/rollup-win32-x64-msvc@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz#3dd5d53e900df2a40841882c02e56f866c04d202"
+ integrity sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==
+
+"@tybys/wasm-util@^0.9.0":
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.9.0.tgz#3e75eb00604c8d6db470bf18c37b7d984a0e3355"
+ integrity sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==
+ dependencies:
+ tslib "^2.4.0"
+
+"@types/estree@1.0.5":
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
+ integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
+
+"@types/estree@^1.0.0":
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
+ integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
+
+"@types/mute-stream@^0.0.4":
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/@types/mute-stream/-/mute-stream-0.0.4.tgz#77208e56a08767af6c5e1237be8888e2f255c478"
+ integrity sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==
+ dependencies:
+ "@types/node" "*"
+
+"@types/node@*", "@types/node@^22.5.5":
+ version "22.7.4"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.4.tgz#e35d6f48dca3255ce44256ddc05dee1c23353fcc"
+ integrity sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==
+ dependencies:
+ undici-types "~6.19.2"
+
+"@types/node@^22.7.2":
+ version "22.7.2"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.2.tgz#80ed66c0a5025ffa037587fd69a816f29b54e4c7"
+ integrity sha512-866lXSrpGpgyHBZUa2m9YNWqHDjjM0aBTJlNtYaGEw4rqY/dcD7deRVTbBBAJelfA7oaGDbNftXF/TL/A6RgoA==
+ dependencies:
+ undici-types "~6.19.2"
+
+"@types/wrap-ansi@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz#18b97a972f94f60a679fd5c796d96421b9abb9fd"
+ integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==
+
+"@vitest/expect@2.1.1":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.1.1.tgz#907137a86246c5328929d796d741c4e95d1ee19d"
+ integrity sha512-YeueunS0HiHiQxk+KEOnq/QMzlUuOzbU1Go+PgAsHvvv3tUkJPm9xWt+6ITNTlzsMXUjmgm5T+U7KBPK2qQV6w==
+ dependencies:
+ "@vitest/spy" "2.1.1"
+ "@vitest/utils" "2.1.1"
+ chai "^5.1.1"
+ tinyrainbow "^1.2.0"
+
+"@vitest/mocker@2.1.1":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-2.1.1.tgz#3e37c80ac267318d4aa03c5073a017d148dc8e67"
+ integrity sha512-LNN5VwOEdJqCmJ/2XJBywB11DLlkbY0ooDJW3uRX5cZyYCrc4PI/ePX0iQhE3BiEGiQmK4GE7Q/PqCkkaiPnrA==
+ dependencies:
+ "@vitest/spy" "^2.1.0-beta.1"
+ estree-walker "^3.0.3"
+ magic-string "^0.30.11"
+
+"@vitest/pretty-format@2.1.1", "@vitest/pretty-format@^2.1.1":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-2.1.1.tgz#fea25dd4e88c3c1329fbccd1d16b1d607eb40067"
+ integrity sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==
+ dependencies:
+ tinyrainbow "^1.2.0"
+
+"@vitest/runner@2.1.1":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-2.1.1.tgz#f3b1fbc3c109fc44e2cceecc881344453f275559"
+ integrity sha512-uTPuY6PWOYitIkLPidaY5L3t0JJITdGTSwBtwMjKzo5O6RCOEncz9PUN+0pDidX8kTHYjO0EwUIvhlGpnGpxmA==
+ dependencies:
+ "@vitest/utils" "2.1.1"
+ pathe "^1.1.2"
+
+"@vitest/snapshot@2.1.1":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-2.1.1.tgz#38ef23104e90231fea5540754a19d8468afbba66"
+ integrity sha512-BnSku1WFy7r4mm96ha2FzN99AZJgpZOWrAhtQfoxjUU5YMRpq1zmHRq7a5K9/NjqonebO7iVDla+VvZS8BOWMw==
+ dependencies:
+ "@vitest/pretty-format" "2.1.1"
+ magic-string "^0.30.11"
+ pathe "^1.1.2"
+
+"@vitest/spy@2.1.1", "@vitest/spy@^2.1.0-beta.1":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-2.1.1.tgz#20891f7421a994256ea0d739ed72f05532c78488"
+ integrity sha512-ZM39BnZ9t/xZ/nF4UwRH5il0Sw93QnZXd9NAZGRpIgj0yvVwPpLd702s/Cx955rGaMlyBQkZJ2Ir7qyY48VZ+g==
+ dependencies:
+ tinyspy "^3.0.0"
+
+"@vitest/utils@2.1.1":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-2.1.1.tgz#284d016449ecb4f8704d198d049fde8360cc136e"
+ integrity sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==
+ dependencies:
+ "@vitest/pretty-format" "2.1.1"
+ loupe "^3.1.1"
+ tinyrainbow "^1.2.0"
+
+ansi-escapes@^4.3.2:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
+ integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+ dependencies:
+ type-fest "^0.21.3"
+
+ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-styles@^4.0.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ dependencies:
+ color-convert "^2.0.1"
+
+argparse@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+ integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
+assertion-error@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7"
+ integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==
+
+before-after-hook@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-3.0.2.tgz#d5665a5fa8b62294a5aa0a499f933f4a1016195d"
+ integrity sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==
+
+cac@^6.7.14:
+ version "6.7.14"
+ resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959"
+ integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==
+
+chai@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/chai/-/chai-5.1.1.tgz#f035d9792a22b481ead1c65908d14bb62ec1c82c"
+ integrity sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==
+ dependencies:
+ assertion-error "^2.0.1"
+ check-error "^2.1.1"
+ deep-eql "^5.0.1"
+ loupe "^3.1.0"
+ pathval "^2.0.0"
+
+chardet@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
+ integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
+
+check-error@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc"
+ integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==
+
+cli-width@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5"
+ integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==
+
+clipanion@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/clipanion/-/clipanion-3.2.1.tgz#2887db4cb232e80ba57cf19347a4e3a1c4a74133"
+ integrity sha512-dYFdjLb7y1ajfxQopN05mylEpK9ZX0sO1/RfMXdfmwjlIsPkbh4p7A682x++zFPLDCo1x3p82dtljHf5cW2LKA==
+ dependencies:
+ typanion "^3.8.0"
+
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
+color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+colorette@^2.0.20:
+ version "2.0.20"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
+ integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
+
+debug@^4.3.4, debug@^4.3.6:
+ version "4.3.7"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52"
+ integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
+ dependencies:
+ ms "^2.1.3"
+
+deep-eql@^5.0.1:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341"
+ integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==
+
+emnapi@^1.2.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/emnapi/-/emnapi-1.3.0.tgz#dda090e014bbbbb4cb5a1c757789a3ed01c7b023"
+ integrity sha512-VXpPgNMFG64CJaGgFacGsfpH5Rt+eabaFdm5BCZl359hX9xTcAxUHGl6MT7iSUU6ZVdme8z6O95+FGdHQ2pBqA==
+
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+esbuild@^0.21.3:
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d"
+ integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==
+ optionalDependencies:
+ "@esbuild/aix-ppc64" "0.21.5"
+ "@esbuild/android-arm" "0.21.5"
+ "@esbuild/android-arm64" "0.21.5"
+ "@esbuild/android-x64" "0.21.5"
+ "@esbuild/darwin-arm64" "0.21.5"
+ "@esbuild/darwin-x64" "0.21.5"
+ "@esbuild/freebsd-arm64" "0.21.5"
+ "@esbuild/freebsd-x64" "0.21.5"
+ "@esbuild/linux-arm" "0.21.5"
+ "@esbuild/linux-arm64" "0.21.5"
+ "@esbuild/linux-ia32" "0.21.5"
+ "@esbuild/linux-loong64" "0.21.5"
+ "@esbuild/linux-mips64el" "0.21.5"
+ "@esbuild/linux-ppc64" "0.21.5"
+ "@esbuild/linux-riscv64" "0.21.5"
+ "@esbuild/linux-s390x" "0.21.5"
+ "@esbuild/linux-x64" "0.21.5"
+ "@esbuild/netbsd-x64" "0.21.5"
+ "@esbuild/openbsd-x64" "0.21.5"
+ "@esbuild/sunos-x64" "0.21.5"
+ "@esbuild/win32-arm64" "0.21.5"
+ "@esbuild/win32-ia32" "0.21.5"
+ "@esbuild/win32-x64" "0.21.5"
+
+estree-walker@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d"
+ integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==
+ dependencies:
+ "@types/estree" "^1.0.0"
+
+external-editor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
+ integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
+ dependencies:
+ chardet "^0.7.0"
+ iconv-lite "^0.4.24"
+ tmp "^0.0.33"
+
+fsevents@~2.3.2, fsevents@~2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+
+get-func-name@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41"
+ integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==
+
+iconv-lite@^0.4.24:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+js-yaml@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+ integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+ dependencies:
+ argparse "^2.0.1"
+
+lodash-es@^4.17.21:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
+ integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+
+loupe@^3.1.0, loupe@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.1.tgz#71d038d59007d890e3247c5db97c1ec5a92edc54"
+ integrity sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==
+ dependencies:
+ get-func-name "^2.0.1"
+
+magic-string@^0.30.11:
+ version "0.30.11"
+ resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954"
+ integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==
+ dependencies:
+ "@jridgewell/sourcemap-codec" "^1.5.0"
+
+ms@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+mute-stream@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e"
+ integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==
+
+nanoid@^3.3.7:
+ version "3.3.7"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
+ integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
+
+os-tmpdir@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+ integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
+
+pathe@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec"
+ integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==
+
+pathval@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25"
+ integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==
+
+picocolors@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59"
+ integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==
+
+postcss@^8.4.43:
+ version "8.4.47"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.47.tgz#5bf6c9a010f3e724c503bf03ef7947dcb0fea365"
+ integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==
+ dependencies:
+ nanoid "^3.3.7"
+ picocolors "^1.1.0"
+ source-map-js "^1.2.1"
+
+rollup@^4.20.0:
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.22.4.tgz#4135a6446671cd2a2453e1ad42a45d5973ec3a0f"
+ integrity sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==
+ dependencies:
+ "@types/estree" "1.0.5"
+ optionalDependencies:
+ "@rollup/rollup-android-arm-eabi" "4.22.4"
+ "@rollup/rollup-android-arm64" "4.22.4"
+ "@rollup/rollup-darwin-arm64" "4.22.4"
+ "@rollup/rollup-darwin-x64" "4.22.4"
+ "@rollup/rollup-linux-arm-gnueabihf" "4.22.4"
+ "@rollup/rollup-linux-arm-musleabihf" "4.22.4"
+ "@rollup/rollup-linux-arm64-gnu" "4.22.4"
+ "@rollup/rollup-linux-arm64-musl" "4.22.4"
+ "@rollup/rollup-linux-powerpc64le-gnu" "4.22.4"
+ "@rollup/rollup-linux-riscv64-gnu" "4.22.4"
+ "@rollup/rollup-linux-s390x-gnu" "4.22.4"
+ "@rollup/rollup-linux-x64-gnu" "4.22.4"
+ "@rollup/rollup-linux-x64-musl" "4.22.4"
+ "@rollup/rollup-win32-arm64-msvc" "4.22.4"
+ "@rollup/rollup-win32-ia32-msvc" "4.22.4"
+ "@rollup/rollup-win32-x64-msvc" "4.22.4"
+ fsevents "~2.3.2"
+
+"safer-buffer@>= 2.1.2 < 3":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+semver@^7.5.4:
+ version "7.6.3"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
+ integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
+
+siginfo@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30"
+ integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==
+
+signal-exit@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
+ integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+
+source-map-js@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
+ integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
+
+stackback@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b"
+ integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==
+
+std-env@^3.7.0:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2"
+ integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==
+
+string-width@^4.1.0:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
+tinybench@^2.9.0:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b"
+ integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==
+
+tinyexec@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.0.tgz#ed60cfce19c17799d4a241e06b31b0ec2bee69e6"
+ integrity sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==
+
+tinypool@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.0.1.tgz#c64233c4fac4304e109a64340178760116dbe1fe"
+ integrity sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==
+
+tinyrainbow@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-1.2.0.tgz#5c57d2fc0fb3d1afd78465c33ca885d04f02abb5"
+ integrity sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==
+
+tinyspy@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-3.0.2.tgz#86dd3cf3d737b15adcf17d7887c84a75201df20a"
+ integrity sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==
+
+tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
+ dependencies:
+ os-tmpdir "~1.0.2"
+
+toml@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee"
+ integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==
+
+tslib@^2.4.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01"
+ integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==
+
+typanion@^3.14.0, typanion@^3.8.0:
+ version "3.14.0"
+ resolved "https://registry.yarnpkg.com/typanion/-/typanion-3.14.0.tgz#a766a91810ce8258033975733e836c43a2929b94"
+ integrity sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==
+
+type-fest@^0.21.3:
+ version "0.21.3"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
+ integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+
+undici-types@~6.19.2:
+ version "6.19.8"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02"
+ integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
+
+universal-user-agent@^7.0.0, universal-user-agent@^7.0.2:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-7.0.2.tgz#52e7d0e9b3dc4df06cc33cb2b9fd79041a54827e"
+ integrity sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==
+
+vite-node@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-2.1.1.tgz#7d46f623c04dfed6df34e7127711508a3386fa1c"
+ integrity sha512-N/mGckI1suG/5wQI35XeR9rsMsPqKXzq1CdUndzVstBj/HvyxxGctwnK6WX43NGt5L3Z5tcRf83g4TITKJhPrA==
+ dependencies:
+ cac "^6.7.14"
+ debug "^4.3.6"
+ pathe "^1.1.2"
+ vite "^5.0.0"
+
+vite@^5.0.0:
+ version "5.4.8"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.8.tgz#af548ce1c211b2785478d3ba3e8da51e39a287e8"
+ integrity sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==
+ dependencies:
+ esbuild "^0.21.3"
+ postcss "^8.4.43"
+ rollup "^4.20.0"
+ optionalDependencies:
+ fsevents "~2.3.3"
+
+vitest@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/vitest/-/vitest-2.1.1.tgz#24a6f6f5d894509f10685b82de008c507faacbb1"
+ integrity sha512-97We7/VC0e9X5zBVkvt7SGQMGrRtn3KtySFQG5fpaMlS+l62eeXRQO633AYhSTC3z7IMebnPPNjGXVGNRFlxBA==
+ dependencies:
+ "@vitest/expect" "2.1.1"
+ "@vitest/mocker" "2.1.1"
+ "@vitest/pretty-format" "^2.1.1"
+ "@vitest/runner" "2.1.1"
+ "@vitest/snapshot" "2.1.1"
+ "@vitest/spy" "2.1.1"
+ "@vitest/utils" "2.1.1"
+ chai "^5.1.1"
+ debug "^4.3.6"
+ magic-string "^0.30.11"
+ pathe "^1.1.2"
+ std-env "^3.7.0"
+ tinybench "^2.9.0"
+ tinyexec "^0.3.0"
+ tinypool "^1.0.0"
+ tinyrainbow "^1.2.0"
+ vite "^5.0.0"
+ vite-node "2.1.1"
+ why-is-node-running "^2.3.0"
+
+wasm-sjlj@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/wasm-sjlj/-/wasm-sjlj-1.0.5.tgz#a15f035c94d82cd0a5b0a086292f6bb593862474"
+ integrity sha512-Z/MHJeOkAvJJVWnGX3/YZGYldGaawZbYHX4ldYG9kLhcdB8H31F5x66M7Zc4BP/7pg0aLsusQj1629m2B3Rilg==
+
+why-is-node-running@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04"
+ integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==
+ dependencies:
+ siginfo "^2.0.0"
+ stackback "0.0.2"
+
+wrap-ansi@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+ integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+yoctocolors-cjs@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242"
+ integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==
diff --git a/zig/build.zig b/zig/build.zig
deleted file mode 100644
index 0402f3e..0000000
--- a/zig/build.zig
+++ /dev/null
@@ -1,59 +0,0 @@
-const std = @import("std");
-const cfg = @import("./build-cfg.zig");
-
-fn comptime_concat(comptime a: []const u8, comptime b: []const u8) []const u8 {
- return a ++ b;
-}
-
-pub fn build(b: *std.Build) void {
- const target = b.standardTargetOptions(.{});
- const optimize = b.standardOptimizeOption(.{});
- const lib = b.addSharedLibrary(.{
- .name = cfg.module_name,
- .root_source_file = .{ .cwd_relative = cfg.stub_path },
- .target = target,
- .optimize = optimize,
- });
- const imports = .{};
- const mod = b.createModule(.{
- .root_source_file = .{ .cwd_relative = cfg.module_path },
- .imports = &imports,
- });
-
- mod.addIncludePath(.{ .cwd_relative = cfg.module_dir });
- lib.root_module.addImport("module", mod);
-
- // xdelta3 Build Configuration
- // -------------------------------------------------
- var gpa = std.heap.GeneralPurposeAllocator(.{}){};
- const allocator = gpa.allocator();
-
- const xdelta3_dir = std.fs.path.resolve(allocator, &.{ cfg.module_dir, "../xdelta/xdelta3" }) catch unreachable;
- const xdelta3_src = std.fs.path.resolve(allocator, &.{ xdelta3_dir, "xdelta3.c" }) catch unreachable;
-
- defer allocator.free(xdelta3_dir);
- defer allocator.free(xdelta3_src);
-
- lib.addIncludePath(.{ .cwd_relative = xdelta3_dir });
- lib.addCSourceFile(.{ .file = .{ .cwd_relative = xdelta3_src }, .flags = &.{ "-Wall", "-DSIZEOF_SIZE_T=8", "-std=c99" } });
- // -------------------------------------------------
-
- if (cfg.is_wasm) {
- // WASM needs to be compiled as exe
- lib.kind = .exe;
- lib.linkage = .static;
- lib.entry = .disabled;
- lib.rdynamic = true;
- lib.wasi_exec_model = .reactor;
- }
- if (cfg.use_libc) {
- lib.linkLibC();
- }
- const wf = switch (@hasDecl(std.Build, "addUpdateSourceFiles")) {
- true => b.addUpdateSourceFiles(),
- false => b.addWriteFiles(),
- };
- wf.addCopyFileToSource(lib.getEmittedBin(), cfg.output_path);
- wf.step.dependOn(&lib.step);
- b.getInstallStep().dependOn(&wf.step);
-}
diff --git a/zig/build.zig.zon b/zig/build.zig.zon
deleted file mode 100644
index 3ff8fe1..0000000
--- a/zig/build.zig.zon
+++ /dev/null
@@ -1,75 +0,0 @@
-.{
- // This is the default name used by packages depending on this one. For
- // example, when a user runs `zig fetch --save `, this field is used
- // as the key in the `dependencies` table. Although the user can choose a
- // different name, most users will stick with this provided value.
- //
- // It is redundant to include "zig" in this name because it is already
- // within the Zig package namespace.
- .name = "xdelta3-node",
-
- // This is a [Semantic Version](https://semver.org/).
- // In a future version of Zig it will be used for package deduplication.
- .version = "0.1.0",
-
- // This field is optional.
- // This is currently advisory only; Zig does not yet do anything
- // with this value.
- //.minimum_zig_version = "0.11.0",
-
- // This field is optional.
- // Each dependency must either provide a `url` and `hash`, or a `path`.
- // `zig build --fetch` can be used to fetch all dependencies of a package, recursively.
- // Once all dependencies are fetched, `zig build` no longer requires
- // internet connectivity.
- .dependencies = .{
- // See `zig fetch --save ` for a command-line interface for adding dependencies.
- //.example = .{
- // // When updating this field to a new URL, be sure to delete the corresponding
- // // `hash`, otherwise you are communicating that you expect to find the old hash at
- // // the new URL.
- // .url = "https://example.com/foo.tar.gz",
- //
- // // This is computed from the file contents of the directory of files that is
- // // obtained after fetching `url` and applying the inclusion rules given by
- // // `paths`.
- // //
- // // This field is the source of truth; packages do not come from a `url`; they
- // // come from a `hash`. `url` is just one of many possible mirrors for how to
- // // obtain a package matching this `hash`.
- // //
- // // Uses the [multihash](https://multiformats.io/multihash/) format.
- // .hash = "...",
- //
- // // When this is provided, the package is found in a directory relative to the
- // // build root. In this case the package's hash is irrelevant and therefore not
- // // computed. This field and `url` are mutually exclusive.
- // .path = "foo",
-
- // // When this is set to `true`, a package is declared to be lazily
- // // fetched. This makes the dependency only get fetched if it is
- // // actually used.
- // .lazy = false,
- //},
- .xdelta3 = .{
- .path = "xdelta/xdelta3",
- },
- },
-
- // Specifies the set of files and directories that are included in this package.
- // Only files and directories listed here are included in the `hash` that
- // is computed for this package. Only files listed here will remain on disk
- // when using the zig package manager. As a rule of thumb, one should list
- // files required for compilation plus any license(s).
- // Paths are relative to the build root. Use the empty string (`""`) to refer to
- // the build root itself.
- // A directory listed here means that all files within, recursively, are included.
- .paths = .{
- "build.zig",
- "build.zig.zon",
- "src",
- // For example...
- //"LICENSE",
- //"README.md",
- },
-}
diff --git a/zig/xdelta3-node.zig b/zig/xdelta3-node.zig
deleted file mode 100644
index 87fbeca..0000000
--- a/zig/xdelta3-node.zig
+++ /dev/null
@@ -1,63 +0,0 @@
-const std = @import("std");
-const xdelta3 = @import("./xdelta3.zig");
-
-// Compression level 9
-const encoding_flags = xdelta3.XD3_COMPLEVEL_1 | xdelta3.XD3_SMATCH_FASTEST;
-const decoding_flags = xdelta3.XD3_COMPLEVEL_1;
-
-const Process = enum {
- Encoding,
- Decoding,
-};
-
-pub fn processXd3InMemory(src: []const u8, dest: []const u8, process: Process, flags: i32) ![]const u8 {
- var gpa = std.heap.GeneralPurposeAllocator(.{}){};
- const allocator = gpa.allocator();
-
- const src_len: usize = src.len;
- const dest_len: usize = dest.len;
-
- // We don't know exact size for the patch yet
- var output_size: usize = 0;
- // Let's allocate some memory based on estiamte
- var output_allocated_size = src_len + dest_len;
- // Add 20% more to larget buffer
- output_allocated_size = output_allocated_size + (output_allocated_size * 20 / 100);
- var output_buffer = try std.ArrayList(u8).initCapacity(allocator, output_allocated_size);
- defer output_buffer.deinit();
-
- while (true) {
- const ret = if (process == Process.Encoding) xdelta3.xd3_encode_memory(&dest[0], dest_len, &src[0], src_len, output_buffer.items.ptr, &output_size, output_allocated_size, flags) else xdelta3.xd3_decode_memory(&dest[0], dest_len, &src[0], src_len, output_buffer.items.ptr, &output_size, output_allocated_size, flags);
- if (ret == 0) break;
-
- switch (@as(std.c.E, @enumFromInt(ret))) {
- .NOSPC => {
- // Add 10% more size
- output_allocated_size = output_allocated_size + (output_allocated_size / 10 * 100);
- output_buffer.ensureTotalCapacity(output_allocated_size) catch unreachable;
- },
- else => {
- std.debug.print("{} failure:! {}\n", .{ process, ret });
- break;
- },
- }
- }
-
- // Now we know the exact size of the patch
- output_buffer.shrinkAndFree(output_size);
-
- // As the buffer list will be deallocated on the return of the function
- // we need to copy it in a memory which does not deallocate
- const output = try allocator.alloc(u8, output_buffer.capacity);
- @memcpy(output, output_buffer.items);
-
- return output;
-}
-
-pub fn encodeSync(src: []const u8, dest: []const u8) ![]const u8 {
- return processXd3InMemory(src, dest, Process.Encoding, decoding_flags);
-}
-
-pub fn decodeSync(src: []const u8, patch: []const u8) ![]const u8 {
- return processXd3InMemory(src, patch, Process.Decoding, decoding_flags);
-}
diff --git a/zig/xdelta3.zig b/zig/xdelta3.zig
deleted file mode 100644
index f585ff7..0000000
--- a/zig/xdelta3.zig
+++ /dev/null
@@ -1,4 +0,0 @@
-pub usingnamespace @cImport({
- @cDefine("SIZEOF_SIZE_T", "8");
- @cInclude("../xdelta/xdelta3/xdelta3.h");
-});