diff --git a/.changes/appimage-files.md b/.changes/appimage-files.md
new file mode 100644
index 00000000..99962a9d
--- /dev/null
+++ b/.changes/appimage-files.md
@@ -0,0 +1,5 @@
+---
+"cargo-packager": minor
+---
+
+Added `files` configuration under `AppImageConfig` for adding custom files on the AppImage's AppDir.
diff --git a/.changes/binary-path-breaking-change.md b/.changes/binary-path-breaking-change.md
new file mode 100644
index 00000000..29c15e6d
--- /dev/null
+++ b/.changes/binary-path-breaking-change.md
@@ -0,0 +1,5 @@
+---
+"cargo-packager": minor
+---
+
+Renamed binary `filename` property to `path`, which supports absolute paths.
diff --git a/.changes/config.json b/.changes/config.json
index 5069f7ad..bc1822c1 100644
--- a/.changes/config.json
+++ b/.changes/config.json
@@ -31,6 +31,64 @@
"git tag ${ pkg.pkg }-v${ pkgFile.versionMajor }.${ pkgFile.versionMinor } -f",
"git push --tags -f"
]
+ },
+ "javascript": {
+ "version": true,
+ "getPublishedVersion": {
+ "use": "fetch:check",
+ "options": {
+ "url": "https://registry.npmjs.com/${ pkg.pkg }/${ pkg.pkgFile.version }"
+ }
+ },
+ "prepublish": [
+ {
+ "command": "pnpm install",
+ "dryRunCommand": true
+ },
+ {
+ "command": "echo '\nPNPM Audit
\n\n```'",
+ "dryRunCommand": true,
+ "pipe": true
+ },
+ {
+ "command": "pnpm audit",
+ "dryRunCommand": true,
+ "runFromRoot": true,
+ "pipe": true
+ },
+ {
+ "command": "echo '```\n\n \n'",
+ "dryRunCommand": true,
+ "pipe": true
+ },
+ {
+ "command": "npm pack",
+ "dryRunCommand": true
+ }
+ ],
+ "publish": [
+ "sleep 15s",
+ {
+ "command": "echo '\nPNPM Publish
\n\n```'",
+ "dryRunCommand": true,
+ "pipe": true
+ },
+ {
+ "command": "pnpm publish --access public",
+ "dryRunCommand": "npm publish --dry-run --access public",
+ "pipe": true
+ },
+ {
+ "command": "echo '```\n\n \n'",
+ "dryRunCommand": true,
+ "pipe": true
+ }
+ ],
+ "postpublish": [
+ "git tag ${ pkg.pkg }-v${ pkgFile.versionMajor } -f",
+ "git tag ${ pkg.pkg }-v${ pkgFile.versionMajor }.${ pkgFile.versionMinor } -f",
+ "git push --tags -f"
+ ]
}
},
"packages": {
@@ -44,6 +102,14 @@
"name": "${ pkg.pkg }-${ pkgFile.version }.crate"
}
]
+ },
+ "@crabnebula/packager": {
+ "path": "./bindings/packager/nodejs",
+ "manager": "javascript",
+ "dependencies": ["cargo-packager"],
+ "prepublish": [],
+ "publish": [],
+ "postpublish": []
}
}
}
diff --git a/.changes/packager-nodejs-initial-release.md b/.changes/packager-nodejs-initial-release.md
new file mode 100644
index 00000000..1c26682d
--- /dev/null
+++ b/.changes/packager-nodejs-initial-release.md
@@ -0,0 +1,5 @@
+---
+"@crabnebula/packager": minor
+---
+
+Initial release.
diff --git a/.github/workflows/check-packager-binding.yml b/.github/workflows/check-packager-binding.yml
new file mode 100644
index 00000000..63ea3cb2
--- /dev/null
+++ b/.github/workflows/check-packager-binding.yml
@@ -0,0 +1,64 @@
+name: Test `@crabnebula/packager`
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - ".github/workflows/check-packager-binding.yml"
+ - "crates/packager/**"
+ - "bindings/packager/nodejs/**"
+ pull_request:
+ branches:
+ - main
+ paths:
+ - ".github/workflows/check-packager-binding.yml"
+ - "crates/packager/**"
+ - "bindings/packager/nodejs/**"
+
+env:
+ RUST_BACKTRACE: 1
+ CARGO_PROFILE_DEV_DEBUG: 0 # This would add unnecessary bloat to the target folder, decreasing cache efficiency.
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ test:
+ runs-on: ${{ matrix.platform }}
+
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [ubuntu-latest, macos-latest, windows-latest]
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: install Rust stable
+ uses: dtolnay/rust-toolchain@stable
+
+ - name: Install pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: 8.6.4
+
+ - name: setup node
+ uses: actions/setup-node@v2
+ with:
+ node-version: 18
+ cache: pnpm
+ cache-dependency-path: bindings/packager/nodejs/pnpm-lock.yaml
+
+ - uses: Swatinem/rust-cache@v2
+ with:
+ workspaces: crates/packager
+
+ - name: test
+ timeout-minutes: 30
+ run: |
+ cd bindings/packager/nodejs
+ pnpm install
+ pnpm build
+ pnpm test
diff --git a/.github/workflows/covector-version-or-publish.yml b/.github/workflows/covector-version-or-publish.yml
index cbfb1f2c..077063a6 100644
--- a/.github/workflows/covector-version-or-publish.yml
+++ b/.github/workflows/covector-version-or-publish.yml
@@ -48,3 +48,25 @@ jobs:
commit-message: "release: apply version updates from current changes"
labels: "version updates"
body: ${{ steps.covector.outputs.change }}
+
+ - name: Get `@crabnebula/packager` release id
+ uses: actions/github-script@v6
+ id: cliReleaseId
+ if: |
+ steps.covector.outputs.successfulPublish == 'true' &&
+ contains(steps.covector.outputs.packagesPublished, '@crabnebula/packager')
+ with:
+ result-encoding: string
+ script: |
+ const output = `${{ toJSON(steps.covector.outputs) }}`;
+ const [_, id] = /"-crabnebula-packager-releaseId": "([0-9]+)"/g.exec(output);
+ return id;
+
+ - name: Trigger `@crabnebula/packager` publishing workflow
+ if: |
+ steps.covector.outputs.successfulPublish == 'true' &&
+ contains(steps.covector.outputs.packagesPublished, '@crabnebula/packager')
+ uses: peter-evans/repository-dispatch@v1
+ with:
+ event-type: publish-packager-nodejs
+ client-payload: '{"releaseId": "${{ steps.cliReleaseId.outputs.result }}" }'
diff --git a/.github/workflows/publish-packager-nodejs.yml b/.github/workflows/publish-packager-nodejs.yml
new file mode 100644
index 00000000..1ace28ab
--- /dev/null
+++ b/.github/workflows/publish-packager-nodejs.yml
@@ -0,0 +1,465 @@
+name: Publish `@crabnebula/packager`
+
+env:
+ DEBUG: napi:*
+ APP_NAME: packager
+ MACOSX_DEPLOYMENT_TARGET: "10.13"
+
+permissions:
+ contents: write
+ id-token: write
+
+on:
+ workflow_dispatch:
+ inputs:
+ releaseId:
+ description: "ID of the `@crabnebula/packager` release"
+ required: true
+ repository_dispatch:
+ types: [publish-packager-nodejs]
+
+defaults:
+ run:
+ working-directory: bindings/packager/nodejs
+
+jobs:
+ build:
+ strategy:
+ fail-fast: false
+ matrix:
+ settings:
+ - host: macos-latest
+ target: x86_64-apple-darwin
+ build: |
+ pnpm build
+ strip -x *.node
+ - host: windows-latest
+ build: pnpm build
+ target: x86_64-pc-windows-msvc
+ - host: windows-latest
+ build: |
+ pnpm build --target i686-pc-windows-msvc
+ pnpm test
+ target: i686-pc-windows-msvc
+ - host: ubuntu-latest
+ target: x86_64-unknown-linux-gnu
+ docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
+ build: |
+ cd bindings/packager/nodejs
+ set -e &&
+ pnpm build --target x86_64-unknown-linux-gnu &&
+ strip *.node
+ - host: ubuntu-latest
+ target: x86_64-unknown-linux-musl
+ docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
+ build: |
+ cd bindings/packager/nodejs
+ set -e
+ pnpm build
+ strip *.node
+ - host: macos-latest
+ target: aarch64-apple-darwin
+ build: |
+ pnpm build --target aarch64-apple-darwin --features native-tls-vendored --cargo-flags="--no-default-features"
+ strip -x *.node
+ - host: ubuntu-latest
+ target: aarch64-unknown-linux-gnu
+ docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
+ build: |
+ cd bindings/packager/nodejs
+ set -e &&
+ pnpm build --target aarch64-unknown-linux-gnu &&
+ aarch64-unknown-linux-gnu-strip *.node
+ - host: ubuntu-latest
+ target: armv7-unknown-linux-gnueabihf
+ setup: |
+ sudo apt-get update
+ sudo apt-get install gcc-arm-linux-gnueabihf -y
+ build: |
+ pnpm build --target armv7-unknown-linux-gnueabihf
+ arm-linux-gnueabihf-strip *.node
+ - host: ubuntu-latest
+ target: aarch64-unknown-linux-musl
+ docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
+ build: |
+ cd bindings/packager/nodejs
+ set -e &&
+ rustup target add aarch64-unknown-linux-musl &&
+ pnpm build --target aarch64-unknown-linux-musl &&
+ /aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip *.node
+ - host: windows-latest
+ target: aarch64-pc-windows-msvc
+ build: pnpm build --target aarch64-pc-windows-msvc --features native-tls-vendored --cargo-flags="--no-default-features"
+ name: stable - ${{ matrix.settings.target }} - node@18
+ runs-on: ${{ matrix.settings.host }}
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: 8
+ package_json_file: bindings/packager/nodejs
+ - name: Setup node
+ uses: actions/setup-node@v4
+ if: ${{ !matrix.settings.docker }}
+ with:
+ node-version: 18
+ cache: pnpm
+ cache-dependency-path: bindings/packager/nodejs/pnpm-lock.yaml
+ - name: Install
+ uses: dtolnay/rust-toolchain@stable
+ if: ${{ !matrix.settings.docker }}
+ with:
+ toolchain: stable
+ targets: ${{ matrix.settings.target }}
+ - name: Cache cargo
+ uses: actions/cache@v3
+ with:
+ path: |
+ ~/.cargo/registry/index/
+ ~/.cargo/registry/cache/
+ ~/.cargo/git/db/
+ .cargo-cache
+ target/
+ key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }}
+ - uses: goto-bus-stop/setup-zig@v2
+ if: ${{ matrix.settings.target == 'armv7-unknown-linux-gnueabihf' }}
+ with:
+ version: 0.11.0
+ - name: Setup toolchain
+ run: ${{ matrix.settings.setup }}
+ if: ${{ matrix.settings.setup }}
+ shell: bash
+ - name: Setup node x86
+ if: matrix.settings.target == 'i686-pc-windows-msvc'
+ run: pnpm config set supportedArchitectures.cpu "ia32"
+ shell: bash
+ - name: Install dependencies
+ run: pnpm install
+ - name: Setup node x86
+ uses: actions/setup-node@v4
+ if: matrix.settings.target == 'i686-pc-windows-msvc'
+ with:
+ node-version: 18
+ cache: pnpm
+ cache-dependency-path: bindings/packager/nodejs/pnpm-lock.yaml
+ architecture: x86
+ - name: Build in docker
+ uses: addnab/docker-run-action@v3
+ if: ${{ matrix.settings.docker }}
+ with:
+ image: ${{ matrix.settings.docker }}
+ options: "--user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build"
+ run: ${{ matrix.settings.build }}
+ - name: Build
+ run: ${{ matrix.settings.build }}
+ if: ${{ !matrix.settings.docker }}
+ shell: bash
+ - name: Upload artifact
+ uses: actions/upload-artifact@v3
+ with:
+ name: bindings-${{ matrix.settings.target }}
+ path: bindings/packager/nodejs/${{ env.APP_NAME }}.*.node
+ if-no-files-found: error
+ test-macOS-windows-binding:
+ name: Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }}
+ needs:
+ - build
+ strategy:
+ fail-fast: false
+ matrix:
+ settings:
+ - host: macos-latest
+ target: x86_64-apple-darwin
+ - host: windows-latest
+ target: x86_64-pc-windows-msvc
+ node:
+ - "18"
+ - "20"
+ runs-on: ${{ matrix.settings.host }}
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: 8
+ package_json_file: bindings/packager/nodejs
+ - name: Setup node
+ uses: actions/setup-node@v4
+ with:
+ node-version: ${{ matrix.node }}
+ cache: pnpm
+ cache-dependency-path: bindings/packager/nodejs/pnpm-lock.yaml
+ - name: Install dependencies
+ run: pnpm install
+ - name: Download artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: bindings-${{ matrix.settings.target }}
+ path: bindings/packager/nodejs
+ - name: List packages
+ run: ls -R .
+ shell: bash
+ - name: Test bindings
+ run: pnpm test
+ test-linux-x64-gnu-binding:
+ name: Test bindings on Linux-x64-gnu - node@${{ matrix.node }}
+ needs:
+ - build
+ strategy:
+ fail-fast: false
+ matrix:
+ node:
+ - "18"
+ - "20"
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: 8
+ package_json_file: bindings/packager/nodejs
+ - name: Setup node
+ uses: actions/setup-node@v4
+ with:
+ node-version: ${{ matrix.node }}
+ cache: pnpm
+ cache-dependency-path: bindings/packager/nodejs/pnpm-lock.yaml
+ - name: Install dependencies
+ run: pnpm install
+ - name: Download artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: bindings-x86_64-unknown-linux-gnu
+ path: bindings/packager/nodejs
+ - name: List packages
+ run: ls -R .
+ shell: bash
+ - name: Test bindings
+ working-directory: .
+ run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-slim sh -c "cd bindings/packager/nodejs && PACKAGER_FORMATS=deb yarn test"
+ test-linux-x64-musl-binding:
+ name: Test bindings on x86_64-unknown-linux-musl - node@${{ matrix.node }}
+ needs:
+ - build
+ strategy:
+ fail-fast: false
+ matrix:
+ node:
+ - "18"
+ - "20"
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: 8
+ package_json_file: bindings/packager/nodejs
+ - name: Setup node
+ uses: actions/setup-node@v4
+ with:
+ node-version: ${{ matrix.node }}
+ cache: pnpm
+ cache-dependency-path: bindings/packager/nodejs/pnpm-lock.yaml
+ - name: Install dependencies
+ run: |
+ pnpm config set supportedArchitectures.libc "musl"
+ pnpm install
+ - name: Download artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: bindings-x86_64-unknown-linux-musl
+ path: bindings/packager/nodejs
+ - name: List packages
+ run: ls -R .
+ shell: bash
+ - name: Test bindings
+ working-directory: .
+ run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-alpine sh -c "cd bindings/packager/nodejs && PACKAGER_FORMATS=deb yarn test"
+ test-linux-aarch64-gnu-binding:
+ name: Test bindings on aarch64-unknown-linux-gnu - node@${{ matrix.node }}
+ needs:
+ - build
+ strategy:
+ fail-fast: false
+ matrix:
+ node:
+ - "18"
+ - "20"
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Download artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: bindings-aarch64-unknown-linux-gnu
+ path: bindings/packager/nodejs
+ - name: List packages
+ run: ls -R .
+ shell: bash
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: 8
+ package_json_file: bindings/packager/nodejs
+ - name: Install dependencies
+ run: |
+ pnpm config set supportedArchitectures.cpu "arm64"
+ pnpm config set supportedArchitectures.libc "glibc"
+ pnpm install
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+ with:
+ platforms: arm64
+ - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
+ - name: Setup and run tests
+ uses: addnab/docker-run-action@v3
+ with:
+ image: node:${{ matrix.node }}-slim
+ options: "--platform linux/arm64 -v ${{ github.workspace }}:/build -w /build"
+ run: |
+ export PACKAGER_FORMATS=deb
+ set -e
+ cd bindings/packager/nodejs
+ yarn test
+ ls -la
+ test-linux-aarch64-musl-binding:
+ name: Test bindings on aarch64-unknown-linux-musl - node@${{ matrix.node }}
+ needs:
+ - build
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Download artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: bindings-aarch64-unknown-linux-musl
+ path: bindings/packager/nodejs
+ - name: List packages
+ run: ls -R .
+ shell: bash
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: 8
+ package_json_file: bindings/packager/nodejs
+ - name: Install dependencies
+ run: |
+ pnpm config set supportedArchitectures.cpu "arm64"
+ pnpm config set supportedArchitectures.libc "musl"
+ pnpm install
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+ with:
+ platforms: arm64
+ - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
+ - name: Setup and run tests
+ uses: addnab/docker-run-action@v3
+ with:
+ image: node:lts-alpine
+ options: "--platform linux/arm64 -v ${{ github.workspace }}:/build -w /build"
+ run: |
+ export PACKAGER_FORMATS=deb
+ set -e
+ cd bindings/packager/nodejs
+ yarn test
+ test-linux-arm-gnueabihf-binding:
+ name: Test bindings on armv7-unknown-linux-gnueabihf - node@${{ matrix.node }}
+ needs:
+ - build
+ strategy:
+ fail-fast: false
+ matrix:
+ node:
+ - "18"
+ - "20"
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Download artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: bindings-armv7-unknown-linux-gnueabihf
+ path: bindings/packager/nodejs
+ - name: List packages
+ run: ls -R .
+ shell: bash
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: 8
+ package_json_file: bindings/packager/nodejs
+ - name: Install dependencies
+ run: |
+ pnpm config set supportedArchitectures.cpu "arm"
+ pnpm install
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+ with:
+ platforms: arm
+ - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
+ - name: Setup and run tests
+ uses: addnab/docker-run-action@v3
+ with:
+ image: node:${{ matrix.node }}-bullseye-slim
+ options: "--platform linux/arm/v7 -v ${{ github.workspace }}:/build -w /build"
+ run: |
+ export PACKAGER_FORMATS=deb
+ set -e
+ cd bindings/packager/nodejs
+ yarn test
+ ls -la
+ publish:
+ name: Publish
+ runs-on: ubuntu-latest
+ needs:
+ - test-macOS-windows-binding
+ - test-linux-x64-gnu-binding
+ - test-linux-x64-musl-binding
+ - test-linux-aarch64-gnu-binding
+ - test-linux-aarch64-musl-binding
+ - test-linux-arm-gnueabihf-binding
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: 8
+ package_json_file: bindings/packager/nodejs
+ - name: Setup node
+ uses: actions/setup-node@v4
+ with:
+ node-version: 18
+ cache: pnpm
+ cache-dependency-path: bindings/packager/nodejs/pnpm-lock.yaml
+ - name: Install dependencies
+ run: pnpm install
+ - name: Download all artifacts
+ uses: actions/download-artifact@v3
+ with:
+ path: bindings/packager/nodejs/artifacts
+ - name: Move artifacts
+ run: pnpm artifacts
+ - name: List packages
+ run: ls -R ./npm
+ shell: bash
+ - name: Publish
+ run: |
+ npm config set provenance true
+ if git log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+$";
+ then
+ echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
+ npm publish --access public
+ elif git log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+";
+ then
+ echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
+ npm publish --tag next --access public
+ else
+ echo "Not a release, skipping publish"
+ fi
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+ RELEASE_ID: ${{ github.event.client_payload.releaseId || inputs.releaseId }}
diff --git a/Cargo.lock b/Cargo.lock
index 44eaad81..e562cef0 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
[[package]]
name = "ab_glyph"
-version = "0.2.22"
+version = "0.2.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1061f3ff92c2f65800df1f12fc7b4ff44ee14783104187dd04dfee6f11b0fd2"
+checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225"
dependencies = [
"ab_glyph_rasterizer",
"owned_ttf_parser",
@@ -24,13 +24,28 @@ version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76eb1adf08c5bcaa8490b9851fd53cca27fa9880076f178ea9d29f05196728a8"
+[[package]]
+name = "accesskit"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca8410747ed85a17c4a1e9ed3f5a74d3e7bdcc876cf9a18ff40ae21d645997b2"
+
[[package]]
name = "accesskit_consumer"
version = "0.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04bb4d9e4772fe0d47df57d0d5dbe5d85dd05e2f37ae1ddb6b105e76be58fb00"
dependencies = [
- "accesskit",
+ "accesskit 0.11.2",
+]
+
+[[package]]
+name = "accesskit_consumer"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c17cca53c09fbd7288667b22a201274b9becaa27f0b91bf52a526db95de45e6"
+dependencies = [
+ "accesskit 0.12.1",
]
[[package]]
@@ -39,9 +54,21 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "134d0acf6acb667c89d3332999b1a5df4edbc8d6113910f392ebb73f2b03bb56"
dependencies = [
- "accesskit",
- "accesskit_consumer",
- "objc2",
+ "accesskit 0.11.2",
+ "accesskit_consumer 0.15.2",
+ "objc2 0.3.0-beta.3.patch-leaks.3",
+ "once_cell",
+]
+
+[[package]]
+name = "accesskit_macos"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd3b6ae1eabbfbced10e840fd3fce8a93ae84f174b3e4ba892ab7bcb42e477a7"
+dependencies = [
+ "accesskit 0.12.1",
+ "accesskit_consumer 0.16.1",
+ "objc2 0.3.0-beta.3.patch-leaks.3",
"once_cell",
]
@@ -51,11 +78,28 @@ version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e084cb5168790c0c112626175412dc5ad127083441a8248ae49ddf6725519e83"
dependencies = [
- "accesskit",
- "accesskit_consumer",
- "async-channel",
- "atspi",
- "futures-lite",
+ "accesskit 0.11.2",
+ "accesskit_consumer 0.15.2",
+ "async-channel 1.9.0",
+ "atspi 0.10.1",
+ "futures-lite 1.13.0",
+ "serde",
+ "zbus",
+]
+
+[[package]]
+name = "accesskit_unix"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8c9b4467d77cacfbc93cee9aa8e7822f6d527c774efdca5f8b3a5280c34847"
+dependencies = [
+ "accesskit 0.12.1",
+ "accesskit_consumer 0.16.1",
+ "async-channel 1.9.0",
+ "async-once-cell",
+ "atspi 0.19.0",
+ "futures-lite 1.13.0",
+ "once_cell",
"serde",
"zbus",
]
@@ -66,25 +110,52 @@ version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9eac0a7f2d7cd7a93b938af401d3d8e8b7094217989a7c25c55a953023436e31"
dependencies = [
- "accesskit",
- "accesskit_consumer",
+ "accesskit 0.11.2",
+ "accesskit_consumer 0.15.2",
"arrayvec",
"once_cell",
"paste",
"windows 0.48.0",
]
+[[package]]
+name = "accesskit_windows"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afcae27ec0974fc7c3b0b318783be89fd1b2e66dd702179fe600166a38ff4a0b"
+dependencies = [
+ "accesskit 0.12.1",
+ "accesskit_consumer 0.16.1",
+ "once_cell",
+ "paste",
+ "static_assertions",
+ "windows 0.48.0",
+]
+
[[package]]
name = "accesskit_winit"
version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "825d23acee1bd6d25cbaa3ca6ed6e73faf24122a774ec33d52c5c86c6ab423c0"
dependencies = [
- "accesskit",
- "accesskit_macos",
- "accesskit_unix",
- "accesskit_windows",
- "winit",
+ "accesskit 0.11.2",
+ "accesskit_macos 0.9.0",
+ "accesskit_unix 0.5.2",
+ "accesskit_windows 0.14.3",
+ "winit 0.28.7",
+]
+
+[[package]]
+name = "accesskit_winit"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5284218aca17d9e150164428a0ebc7b955f70e3a9a78b4c20894513aabf98a67"
+dependencies = [
+ "accesskit 0.12.1",
+ "accesskit_macos 0.10.1",
+ "accesskit_unix 0.6.1",
+ "accesskit_windows 0.15.1",
+ "winit 0.29.3",
]
[[package]]
@@ -110,20 +181,22 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
[[package]]
name = "ahash"
-version = "0.8.3"
+version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
dependencies = [
"cfg-if",
+ "getrandom 0.2.11",
"once_cell",
"version_check",
+ "zerocopy",
]
[[package]]
name = "aho-corasick"
-version = "1.1.1"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
dependencies = [
"memchr",
]
@@ -161,6 +234,27 @@ dependencies = [
"num_enum 0.6.1",
]
+[[package]]
+name = "android-activity"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "052ad56e336bcc615a214bffbeca6c181ee9550acec193f0327e0b103b033a4d"
+dependencies = [
+ "android-properties",
+ "bitflags 2.4.1",
+ "cc",
+ "cesu8",
+ "jni 0.21.1",
+ "jni-sys",
+ "libc",
+ "log",
+ "ndk 0.8.0",
+ "ndk-context",
+ "ndk-sys 0.5.0+25.2.9519653",
+ "num_enum 0.7.1",
+ "thiserror",
+]
+
[[package]]
name = "android-properties"
version = "0.2.2"
@@ -289,7 +383,7 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
dependencies = [
- "event-listener",
+ "event-listener 2.5.3",
"futures-core",
]
@@ -300,21 +394,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
dependencies = [
"concurrent-queue",
- "event-listener",
+ "event-listener 2.5.3",
"futures-core",
]
+[[package]]
+name = "async-channel"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d37875bd9915b7d67c2f117ea2c30a0989874d0b2cb694fe25403c85763c0c9e"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 3.1.0",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
[[package]]
name = "async-executor"
-version = "1.5.4"
+version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1da3ae8dabd9c00f453a329dfe1fb28da3c0a72e2478cdcd93171740c20499"
+checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0"
dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
"async-task",
"concurrent-queue",
"fastrand 2.0.1",
- "futures-lite",
+ "futures-lite 1.13.0",
"slab",
]
@@ -324,10 +431,10 @@ version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
"autocfg",
"blocking",
- "futures-lite",
+ "futures-lite 1.13.0",
]
[[package]]
@@ -336,18 +443,38 @@ version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
"autocfg",
"cfg-if",
"concurrent-queue",
- "futures-lite",
+ "futures-lite 1.13.0",
"log",
"parking",
- "polling",
- "rustix 0.37.24",
+ "polling 2.8.0",
+ "rustix 0.37.27",
+ "slab",
+ "socket2 0.4.10",
+ "waker-fn",
+]
+
+[[package]]
+name = "async-io"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41ed9d5715c2d329bf1b4da8d60455b99b187f27ba726df2883799af9af60997"
+dependencies = [
+ "async-lock 3.1.0",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite 2.0.1",
+ "parking",
+ "polling 3.3.0",
+ "rustix 0.38.24",
"slab",
- "socket2 0.4.9",
+ "tracing",
"waker-fn",
+ "windows-sys 0.48.0",
]
[[package]]
@@ -356,24 +483,40 @@ version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
dependencies = [
- "event-listener",
+ "event-listener 2.5.3",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "deb2ab2aa8a746e221ab826c73f48bc6ba41be6763f0855cb249eb6d154cf1d7"
+dependencies = [
+ "event-listener 3.1.0",
+ "event-listener-strategy",
+ "pin-project-lite",
]
+[[package]]
+name = "async-once-cell"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9338790e78aa95a416786ec8389546c4b6a1dfc3dc36071ed9518a9413a542eb"
+
[[package]]
name = "async-process"
-version = "1.7.0"
+version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9"
+checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
dependencies = [
- "async-io",
- "async-lock",
- "autocfg",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-signal",
"blocking",
"cfg-if",
- "event-listener",
- "futures-lite",
- "rustix 0.37.24",
- "signal-hook",
+ "event-listener 3.1.0",
+ "futures-lite 1.13.0",
+ "rustix 0.38.24",
"windows-sys 0.48.0",
]
@@ -385,24 +528,42 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+dependencies = [
+ "async-io 2.2.0",
+ "async-lock 2.8.0",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix 0.38.24",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.48.0",
]
[[package]]
name = "async-task"
-version = "4.4.1"
+version = "4.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9441c6b2fe128a7c2bf680a44c34d0df31ce09e5b7e401fcca3faa483dbc921"
+checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1"
[[package]]
name = "async-trait"
-version = "0.1.73"
+version = "0.1.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
+checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -446,9 +607,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
[[package]]
name = "atomic_refcell"
-version = "0.1.12"
+version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76f2bfe491d41d45507b8431da8274f7feeca64a49e86d980eed2937ec2ff020"
+checksum = "41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c"
[[package]]
name = "atspi"
@@ -460,13 +621,50 @@ dependencies = [
"async-trait",
"atspi-macros",
"enumflags2",
- "futures-lite",
+ "futures-lite 1.13.0",
"serde",
"tracing",
"zbus",
"zbus_names",
]
+[[package]]
+name = "atspi"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6059f350ab6f593ea00727b334265c4dfc7fd442ee32d264794bd9bdc68e87ca"
+dependencies = [
+ "atspi-common",
+ "atspi-connection",
+ "atspi-proxies",
+]
+
+[[package]]
+name = "atspi-common"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92af95f966d2431f962bc632c2e68eda7777330158bf640c4af4249349b2cdf5"
+dependencies = [
+ "enumflags2",
+ "serde",
+ "static_assertions",
+ "zbus",
+ "zbus_names",
+ "zvariant",
+]
+
+[[package]]
+name = "atspi-connection"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0c65e7d70f86d4c0e3b2d585d9bf3f979f0b19d635a336725a88d279f76b939"
+dependencies = [
+ "atspi-common",
+ "atspi-proxies",
+ "futures-lite 1.13.0",
+ "zbus",
+]
+
[[package]]
name = "atspi-macros"
version = "0.2.0"
@@ -477,16 +675,27 @@ dependencies = [
"syn 1.0.109",
]
+[[package]]
+name = "atspi-proxies"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6495661273703e7a229356dcbe8c8f38223d697aacfaf0e13590a9ac9977bb52"
+dependencies = [
+ "atspi-common",
+ "serde",
+ "zbus",
+]
+
[[package]]
name = "auto_enums"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd4ba50b181a898ce52142184e3a46641002b3b190bf5ef827eb3c578fad4b70"
+checksum = "a764179c02b324e33cf71b4180e7dd13572400ff7e5c866da813f6c84e0e4cd3"
dependencies = [
"derive_utils",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -518,9 +727,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
[[package]]
name = "base64"
-version = "0.21.4"
+version = "0.21.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
[[package]]
name = "bindgen"
@@ -528,7 +737,7 @@ version = "0.68.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"cexpr",
"clang-sys",
"lazy_static",
@@ -541,7 +750,7 @@ dependencies = [
"regex",
"rustc-hash",
"shlex",
- "syn 2.0.37",
+ "syn 2.0.39",
"which",
]
@@ -559,9 +768,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
-version = "2.4.0"
+version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
[[package]]
name = "block"
@@ -584,7 +793,16 @@ version = "0.1.0-beta.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146"
dependencies = [
- "objc-sys",
+ "objc-sys 0.2.0-beta.2",
+]
+
+[[package]]
+name = "block-sys"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dd7cf50912cddc06dc5ea7c08c5e81c1b2c842a70d19def1848d54c586fed92"
+dependencies = [
+ "objc-sys 0.3.1",
]
[[package]]
@@ -593,22 +811,32 @@ version = "0.2.0-alpha.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42"
dependencies = [
- "block-sys",
- "objc2-encode",
+ "block-sys 0.1.0-beta.1",
+ "objc2-encode 2.0.0-pre.2",
+]
+
+[[package]]
+name = "block2"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68"
+dependencies = [
+ "block-sys 0.2.0",
+ "objc2 0.4.1",
]
[[package]]
name = "blocking"
-version = "1.4.0"
+version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94c4ef1f913d78636d78d538eec1f18de81e481f44b1be0a81060090530846e1"
+checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
dependencies = [
- "async-channel",
- "async-lock",
+ "async-channel 2.1.0",
+ "async-lock 3.1.0",
"async-task",
"fastrand 2.0.1",
"futures-io",
- "futures-lite",
+ "futures-lite 2.0.1",
"piper",
"tracing",
]
@@ -626,9 +854,9 @@ dependencies = [
[[package]]
name = "brotli-decompressor"
-version = "2.5.0"
+version = "2.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da74e2b81409b1b743f8f0c62cc6254afefb8b8e50bbfe3735550f7aeefa3448"
+checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
dependencies = [
"alloc-no-stdlib",
"alloc-stdlib",
@@ -663,14 +891,14 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
@@ -730,11 +958,37 @@ dependencies = [
"io-lifetimes",
"log",
"nix 0.26.4",
- "polling",
+ "polling 2.8.0",
+ "slab",
+ "thiserror",
+]
+
+[[package]]
+name = "calloop"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b50b5a44d59a98c55a9eeb518f39bf7499ba19fd98ee7d22618687f3f10adbf"
+dependencies = [
+ "bitflags 2.4.1",
+ "log",
+ "polling 3.3.0",
+ "rustix 0.38.24",
"slab",
"thiserror",
]
+[[package]]
+name = "calloop-wayland-source"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
+dependencies = [
+ "calloop 0.12.3",
+ "rustix 0.38.24",
+ "wayland-backend",
+ "wayland-client 0.31.1",
+]
+
[[package]]
name = "camino"
version = "1.1.6"
@@ -749,7 +1003,7 @@ name = "cargo-packager"
version = "0.3.0"
dependencies = [
"ar",
- "base64 0.21.4",
+ "base64 0.21.5",
"cargo_metadata",
"clap",
"dirs",
@@ -762,6 +1016,7 @@ dependencies = [
"libflate",
"md5",
"minisign",
+ "native-tls",
"once_cell",
"os_pipe",
"plist",
@@ -779,13 +1034,13 @@ dependencies = [
"tempfile",
"thiserror",
"time",
- "toml 0.8.2",
+ "toml 0.8.8",
"tracing",
"tracing-subscriber",
"ureq",
"uuid",
"walkdir",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
"winreg 0.51.0",
"zip",
]
@@ -803,7 +1058,7 @@ dependencies = [
name = "cargo-packager-updater"
version = "0.0.0"
dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
"ctor 0.2.5",
"dirs",
"dunce",
@@ -831,18 +1086,18 @@ dependencies = [
[[package]]
name = "cargo-platform"
-version = "0.1.3"
+version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479"
+checksum = "12024c4645c97566567129c204f65d5815a8c9aecf30fcbe682b2fe034996d36"
dependencies = [
"serde",
]
[[package]]
name = "cargo_metadata"
-version = "0.18.0"
+version = "0.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb9ac64500cc83ce4b9f8dafa78186aa008c8dea77a09b94cd307fd0cd5022a8"
+checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
dependencies = [
"camino",
"cargo-platform",
@@ -971,9 +1226,9 @@ dependencies = [
[[package]]
name = "clap"
-version = "4.4.6"
+version = "4.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956"
+checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64"
dependencies = [
"clap_builder",
"clap_derive",
@@ -981,9 +1236,9 @@ dependencies = [
[[package]]
name = "clap_builder"
-version = "4.4.6"
+version = "4.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45"
+checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc"
dependencies = [
"anstream",
"anstyle",
@@ -993,21 +1248,21 @@ dependencies = [
[[package]]
name = "clap_derive"
-version = "4.4.2"
+version = "4.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
dependencies = [
"heck",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
name = "clap_lex"
-version = "0.5.1"
+version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
[[package]]
name = "clipboard-win"
@@ -1147,7 +1402,7 @@ checksum = "57aaaad9185d3bcb3afe63549d8ba60b2fb0ea8dc2da83f62dd56805edf56fd1"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -1156,17 +1411,26 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+[[package]]
+name = "convert_case"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
+dependencies = [
+ "unicode-segmentation",
+]
+
[[package]]
name = "copypasta"
-version = "0.8.2"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "133fc8675ee3a4ec9aa513584deda9aa0faeda3586b87f7f0f2ba082c66fb172"
+checksum = "6d35364349bf9e9e1c3a035ddcb00d188d23a3c40c50244c03c27a99fc6a65ae"
dependencies = [
"clipboard-win 3.1.1",
"objc",
"objc-foundation",
"objc_id",
- "smithay-clipboard",
+ "smithay-clipboard 0.7.0",
"x11-clipboard",
]
@@ -1270,7 +1534,7 @@ dependencies = [
"lazy_static",
"proc-macro2",
"regex",
- "syn 2.0.37",
+ "syn 2.0.39",
"unicode-xid",
]
@@ -1282,7 +1546,7 @@ checksum = "3e1a2532e4ed4ea13031c13bc7bc0dbca4aae32df48e9d77f0d1e743179f2ea1"
dependencies = [
"lazy_static",
"proc-macro2",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -1297,18 +1561,30 @@ dependencies = [
"lazy_static",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
dependencies = [
"libc",
]
+[[package]]
+name = "crabnebula_packager"
+version = "0.0.0"
+dependencies = [
+ "cargo-packager",
+ "napi",
+ "napi-build",
+ "napi-derive",
+ "serde_json",
+ "tracing",
+]
+
[[package]]
name = "crc32fast"
version = "1.3.2"
@@ -1416,7 +1692,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
dependencies = [
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -1436,9 +1712,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583"
dependencies = [
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
+[[package]]
+name = "cursor-icon"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
+
[[package]]
name = "darling"
version = "0.20.3"
@@ -1460,7 +1742,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -1471,7 +1753,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
dependencies = [
"darling_core",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -1488,10 +1770,11 @@ checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5"
[[package]]
name = "deranged"
-version = "0.3.8"
+version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
dependencies = [
+ "powerfmt",
"serde",
]
@@ -1512,7 +1795,7 @@ version = "0.99.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
dependencies = [
- "convert_case",
+ "convert_case 0.4.0",
"proc-macro2",
"quote",
"rustc_version",
@@ -1527,7 +1810,7 @@ checksum = "9abcad25e9720609ccb3dcdb795d845e37d8ce34183330a9f48b03a1a71c8e21"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -1581,7 +1864,7 @@ dependencies = [
"dioxus-rsx",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -1662,7 +1945,7 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb712fe56650dafddb626f8aed3d6ae194706c0299e175e99b45464add8b7af1"
dependencies = [
- "async-channel",
+ "async-channel 1.9.0",
"async-trait",
"dioxus-core",
"enumset",
@@ -1691,7 +1974,7 @@ dependencies = [
"dioxus-core",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -1832,9 +2115,9 @@ dependencies = [
[[package]]
name = "dyn-clone"
-version = "1.0.14"
+version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23d2f3407d9a573d666de4b5bdf10569d73ca9478087346697dcbae6244bfbcd"
+checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
[[package]]
name = "ecolor"
@@ -1857,20 +2140,20 @@ dependencies = [
"egui-winit",
"egui_glow",
"glow",
- "glutin",
- "glutin-winit",
+ "glutin 0.30.10",
+ "glutin-winit 0.3.0",
"image",
"js-sys",
"log",
"objc",
"percent-encoding",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
"thiserror",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
"winapi",
- "winit",
+ "winit 0.28.7",
]
[[package]]
@@ -1879,7 +2162,7 @@ version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3aef8ec3ae1b772f340170c65bf27d5b8c28f543a0116c844d2ac08d01123e7"
dependencies = [
- "accesskit",
+ "accesskit 0.11.2",
"ahash",
"epaint",
"log",
@@ -1899,15 +2182,15 @@ version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a49155fd4a0a4fb21224407a91de0030847972ef90fc64edb63621caea61cb2"
dependencies = [
- "accesskit_winit",
+ "accesskit_winit 0.14.4",
"arboard",
"egui",
"instant",
"log",
- "raw-window-handle",
- "smithay-clipboard",
+ "raw-window-handle 0.5.2",
+ "smithay-clipboard 0.6.6",
"webbrowser",
- "winit",
+ "winit 0.28.7",
]
[[package]]
@@ -1942,13 +2225,13 @@ dependencies = [
[[package]]
name = "embed-resource"
-version = "2.3.0"
+version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd0a2c9b742a980060d22545a7a83b573acd6b73045b9de6370c9530ce652f27"
+checksum = "f54cc3e827ee1c3812239a9a41dede7b4d7d5d5464faa32d71bd7cba28ce2cb2"
dependencies = [
"cc",
"rustc_version",
- "toml 0.7.8",
+ "toml 0.8.8",
"vswhom",
"winreg 0.51.0",
]
@@ -1986,14 +2269,14 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
name = "enumset"
-version = "1.1.2"
+version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e875f1719c16de097dee81ed675e2d9bb63096823ed3f0ca827b7dea3028bbbb"
+checksum = "226c0da7462c13fb57e5cc9e0dc8f0635e7d27f276a3a7fd30054647f669007d"
dependencies = [
"enumset_derive",
]
@@ -2007,7 +2290,7 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -2035,25 +2318,14 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "errno"
-version = "0.3.4"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "add4f07d43996f76ef320709726a556a9d4f965d9410d8d0271132d2f8293480"
+checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8"
dependencies = [
- "errno-dragonfly",
"libc",
"windows-sys 0.48.0",
]
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
[[package]]
name = "error-code"
version = "2.3.1"
@@ -2080,6 +2352,27 @@ version = "2.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+[[package]]
+name = "event-listener"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160"
+dependencies = [
+ "event-listener 3.1.0",
+ "pin-project-lite",
+]
+
[[package]]
name = "exr"
version = "1.71.0"
@@ -2113,9 +2406,9 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
[[package]]
name = "fdeflate"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
+checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868"
dependencies = [
"simd-adler32",
]
@@ -2126,7 +2419,7 @@ version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a3a2d0ff0df09856a5c1c89cc83863a1f0f994c55452186621bb57a01f270b3"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"fnv",
"generational-arena",
"glow",
@@ -2165,9 +2458,9 @@ dependencies = [
[[package]]
name = "flate2"
-version = "1.0.27"
+version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
dependencies = [
"crc32fast",
"miniz_oxide",
@@ -2185,7 +2478,7 @@ version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
dependencies = [
- "spin 0.9.8",
+ "spin",
]
[[package]]
@@ -2254,7 +2547,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -2290,24 +2583,24 @@ dependencies = [
[[package]]
name = "futures-channel"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
dependencies = [
"futures-core",
]
[[package]]
name = "futures-core"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
[[package]]
name = "futures-executor"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
dependencies = [
"futures-core",
"futures-task",
@@ -2316,9 +2609,9 @@ dependencies = [
[[package]]
name = "futures-io"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
[[package]]
name = "futures-lite"
@@ -2335,34 +2628,44 @@ dependencies = [
"waker-fn",
]
+[[package]]
+name = "futures-lite"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+]
+
[[package]]
name = "futures-macro"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
name = "futures-sink"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
[[package]]
name = "futures-task"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
[[package]]
name = "futures-util"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
dependencies = [
"futures-core",
"futures-io",
@@ -2557,9 +2860,9 @@ dependencies = [
[[package]]
name = "getrandom"
-version = "0.2.10"
+version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
dependencies = [
"cfg-if",
"libc",
@@ -2656,7 +2959,7 @@ checksum = "fb1a9325847aa46f1e96ffea37611b9d51fc4827e67f79e7de502a297560a67b"
dependencies = [
"anyhow",
"heck",
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
"proc-macro-error",
"proc-macro2",
"quote",
@@ -2702,18 +3005,42 @@ dependencies = [
"cgl",
"core-foundation",
"dispatch",
- "glutin_egl_sys",
- "glutin_glx_sys",
- "glutin_wgl_sys",
+ "glutin_egl_sys 0.5.1",
+ "glutin_glx_sys 0.4.0",
+ "glutin_wgl_sys 0.4.0",
"libloading 0.7.4",
- "objc2",
+ "objc2 0.3.0-beta.3.patch-leaks.3",
"once_cell",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
"wayland-sys 0.30.1",
"windows-sys 0.45.0",
"x11-dl",
]
+[[package]]
+name = "glutin"
+version = "0.31.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eca18d477e18c996c1fd1a50e04c6a745b67e2d512c7fb51f2757d9486a0e3ee"
+dependencies = [
+ "bitflags 2.4.1",
+ "cfg_aliases",
+ "cgl",
+ "core-foundation",
+ "dispatch",
+ "glutin_egl_sys 0.6.0",
+ "glutin_glx_sys 0.5.0",
+ "glutin_wgl_sys 0.5.0",
+ "icrate",
+ "libloading 0.8.1",
+ "objc2 0.4.1",
+ "once_cell",
+ "raw-window-handle 0.5.2",
+ "wayland-sys 0.31.1",
+ "windows-sys 0.48.0",
+ "x11-dl",
+]
+
[[package]]
name = "glutin-winit"
version = "0.3.0"
@@ -2721,9 +3048,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "629a873fc04062830bfe8f97c03773bcd7b371e23bcc465d0a61448cd1588fa4"
dependencies = [
"cfg_aliases",
- "glutin",
- "raw-window-handle",
- "winit",
+ "glutin 0.30.10",
+ "raw-window-handle 0.5.2",
+ "winit 0.28.7",
+]
+
+[[package]]
+name = "glutin-winit"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ebcdfba24f73b8412c5181e56f092b5eff16671c514ce896b258a0a64bd7735"
+dependencies = [
+ "cfg_aliases",
+ "glutin 0.31.1",
+ "raw-window-handle 0.5.2",
+ "winit 0.29.3",
]
[[package]]
@@ -2736,6 +3075,16 @@ dependencies = [
"windows-sys 0.45.0",
]
+[[package]]
+name = "glutin_egl_sys"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77cc5623f5309ef433c3dd4ca1223195347fe62c413da8e2fdd0eb76db2d9bcd"
+dependencies = [
+ "gl_generator",
+ "windows-sys 0.48.0",
+]
+
[[package]]
name = "glutin_glx_sys"
version = "0.4.0"
@@ -2746,6 +3095,16 @@ dependencies = [
"x11-dl",
]
+[[package]]
+name = "glutin_glx_sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a165fd686c10dcc2d45380b35796e577eacfd43d4660ee741ec8ebe2201b3b4f"
+dependencies = [
+ "gl_generator",
+ "x11-dl",
+]
+
[[package]]
name = "glutin_wgl_sys"
version = "0.4.0"
@@ -2755,6 +3114,15 @@ dependencies = [
"gl_generator",
]
+[[package]]
+name = "glutin_wgl_sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead"
+dependencies = [
+ "gl_generator",
+]
+
[[package]]
name = "gobject-sys"
version = "0.16.3"
@@ -2814,7 +3182,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "096eb63c6fedf03bafe65e5924595785eaf1bcb7200dac0f2cbe9c9738f05ad8"
dependencies = [
"anyhow",
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
"proc-macro-error",
"proc-macro2",
"quote",
@@ -2823,9 +3191,9 @@ dependencies = [
[[package]]
name = "h2"
-version = "0.3.21"
+version = "0.3.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
+checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
dependencies = [
"bytes",
"fnv",
@@ -2833,7 +3201,7 @@ dependencies = [
"futures-sink",
"futures-util",
"http",
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
"slab",
"tokio",
"tokio-util",
@@ -2880,9 +3248,9 @@ dependencies = [
[[package]]
name = "hashbrown"
-version = "0.14.1"
+version = "0.14.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12"
+checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
[[package]]
name = "heck"
@@ -2936,9 +3304,9 @@ dependencies = [
[[package]]
name = "http"
-version = "0.2.9"
+version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
dependencies = [
"bytes",
"fnv",
@@ -2991,7 +3359,7 @@ dependencies = [
"httpdate",
"itoa 1.0.9",
"pin-project-lite",
- "socket2 0.4.9",
+ "socket2 0.4.10",
"tokio",
"tower-service",
"tracing",
@@ -3027,29 +3395,29 @@ dependencies = [
[[package]]
name = "i-slint-backend-linuxkms"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e321d0f8d12509ec2ed5b5aba4996922606686ac3d86d70ba126cba1b4e4563"
+checksum = "8955a5385270c9a8d76530e872a397eb6717bd1020f16c09c7f9c7fc1a59cd39"
dependencies = [
"calloop 0.11.0",
"drm",
"gbm",
- "glutin",
+ "glutin 0.31.1",
"i-slint-common",
"i-slint-core",
"i-slint-renderer-femtovg",
"input",
"libseat",
"nix 0.27.1",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
"xkbcommon",
]
[[package]]
name = "i-slint-backend-qt"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f1ce3687c329341842f79c31c95d7bcf49b6fda7fd19b09e0b5d7fb33b9d6b2"
+checksum = "e3d1efb491728deba46aa6554c7589256f5e95f956237b55ab4d9cc098f3ec18"
dependencies = [
"const-field-offset",
"cpp",
@@ -3067,25 +3435,26 @@ dependencies = [
[[package]]
name = "i-slint-backend-selector"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7382cc01e9c9ef607debe1e4af7e1c6af78720a258fd18d8e32761b8593c5db"
+checksum = "059bb78add36aaa9cc1a4f7e5978f47e5ec1ece31ca281451cc646ef3a7e4d85"
dependencies = [
"cfg-if",
"i-slint-backend-linuxkms",
"i-slint-backend-qt",
"i-slint-backend-winit",
+ "i-slint-common",
"i-slint-core",
]
[[package]]
name = "i-slint-backend-winit"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8c0f3f01e2c678d24b81914a38e53d3b660a0ef13831acb59c71bd7c95ed0cb"
+checksum = "8992e2356a2331502261987d2a6803e798bf7a2a5272907713c08f46a7ad0652"
dependencies = [
- "accesskit",
- "accesskit_winit",
+ "accesskit 0.12.1",
+ "accesskit_winit 0.16.1",
"bytemuck",
"cfg-if",
"cfg_aliases",
@@ -3093,19 +3462,18 @@ dependencies = [
"const-field-offset",
"copypasta",
"derive_more",
- "glutin",
- "glutin-winit",
+ "glutin 0.31.1",
+ "glutin-winit 0.4.2",
"i-slint-common",
"i-slint-core",
"i-slint-core-macros",
"i-slint-renderer-femtovg",
"i-slint-renderer-skia",
"imgref",
- "instant",
"lyon_path",
"once_cell",
"pin-weak",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
"rgb",
"scoped-tls-hkt",
"scopeguard",
@@ -3114,14 +3482,14 @@ dependencies = [
"vtable",
"wasm-bindgen",
"web-sys",
- "winit",
+ "winit 0.29.3",
]
[[package]]
name = "i-slint-common"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7daf484e68bf27e06b7501767c6e66063c0f85948e57a6de679b53d2d9d2044"
+checksum = "181a597710932e4ba09cd29fed3d479587fe33d3c880b0addd5421dbed4940bd"
dependencies = [
"cfg-if",
"derive_more",
@@ -3131,16 +3499,15 @@ dependencies = [
[[package]]
name = "i-slint-compiler"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b99172cc43ca17a78e96e3f8f13699d9fc1c00474d2d87bc57c0f7e816c4a48"
+checksum = "0020485613a80b6dfe86a46f93c946b8382045ccbb29f7b9faf20725658fc7f0"
dependencies = [
"by_address",
"codemap",
"codemap-diagnostic",
"css-color-parser2",
"derive_more",
- "dunce",
"fontdue",
"i-slint-common",
"image",
@@ -3148,7 +3515,7 @@ dependencies = [
"linked_hash_set",
"lyon_extra",
"lyon_path",
- "num_enum 0.7.0",
+ "num_enum 0.7.1",
"once_cell",
"proc-macro2",
"quote",
@@ -3162,9 +3529,9 @@ dependencies = [
[[package]]
name = "i-slint-core"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b62e590bb3d6009447a52760e9343c25a3bf7a8a7b0ad7ab5a77c5324fcaa957"
+checksum = "408aa4fe8a28ae7284d18d0b35612fe172c096392dc429342e3626926c70e595"
dependencies = [
"auto_enums",
"bytemuck",
@@ -3177,7 +3544,6 @@ dependencies = [
"i-slint-common",
"i-slint-core-macros",
"image",
- "instant",
"integer-sqrt",
"lyon_algorithms",
"lyon_extra",
@@ -3202,23 +3568,24 @@ dependencies = [
"vtable",
"wasm-bindgen",
"web-sys",
+ "web-time",
]
[[package]]
name = "i-slint-core-macros"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62a416f1e9fc42c2bf1f171e5be38a8155850fcd390fce300869bcc9d6c9c117"
+checksum = "c8d582a1644a5d818ee813f393490a5b2496936ef3962b62ff077e42a81626ef"
dependencies = [
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
name = "i-slint-renderer-femtovg"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e99a941fca00b96a7756d56e4bc5e2876283f34c693eabc73585c0b91ab84f0"
+checksum = "fbc056f6daab6224bb55a55751456ab2897a41ade84ca7772001a1cff46a6b26"
dependencies = [
"cfg-if",
"const-field-offset",
@@ -3232,11 +3599,10 @@ dependencies = [
"i-slint-core",
"i-slint-core-macros",
"imgref",
- "instant",
"lyon_path",
"once_cell",
"pin-weak",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
"rgb",
"scoped-tls-hkt",
"ttf-parser 0.18.1",
@@ -3250,10 +3616,11 @@ dependencies = [
[[package]]
name = "i-slint-renderer-skia"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f617268cfee53e1fa3fcab8f6ab2775deacfce74057386c4ad39ef2647f8db6"
+checksum = "82c4893627aa07956397bc997b4bcb83a22e1b364f8109be72505168837e2eb7"
dependencies = [
+ "bytemuck",
"cfg-if",
"cfg_aliases",
"cocoa 0.24.1",
@@ -3263,38 +3630,37 @@ dependencies = [
"derive_more",
"foreign-types 0.3.2",
"glow",
- "glutin",
+ "glutin 0.31.1",
"i-slint-common",
"i-slint-core",
"i-slint-core-macros",
- "instant",
"lyon_path",
"metal",
"objc",
"once_cell",
"pin-weak",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
"scoped-tls-hkt",
"skia-safe",
+ "softbuffer",
"unicode-segmentation",
"vtable",
"winapi",
- "winit",
"wio",
]
[[package]]
name = "iana-time-zone"
-version = "0.1.57"
+version = "0.1.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
dependencies = [
"android_system_properties",
"core-foundation-sys",
"iana-time-zone-haiku",
"js-sys",
"wasm-bindgen",
- "windows 0.48.0",
+ "windows-core",
]
[[package]]
@@ -3316,6 +3682,17 @@ dependencies = [
"png",
]
+[[package]]
+name = "icrate"
+version = "0.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319"
+dependencies = [
+ "block2 0.3.0",
+ "dispatch",
+ "objc2 0.4.1",
+]
+
[[package]]
name = "ident_case"
version = "1.0.1"
@@ -3359,9 +3736,9 @@ checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284"
[[package]]
name = "imgref"
-version = "1.9.4"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2cf49df1085dcfb171460e4592597b84abe50d900fb83efb6e41b20fefd6c2c"
+checksum = "90d944e334f00f4449c9640b440a171f816be0152305c12ef90424fc35fd035c"
[[package]]
name = "indexmap"
@@ -3376,12 +3753,12 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "2.0.2"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
dependencies = [
"equivalent",
- "hashbrown 0.14.1",
+ "hashbrown 0.14.2",
"serde",
]
@@ -3495,9 +3872,9 @@ dependencies = [
[[package]]
name = "ipnet"
-version = "2.8.0"
+version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
[[package]]
name = "itertools"
@@ -3581,9 +3958,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
[[package]]
name = "jobserver"
-version = "0.1.26"
+version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
dependencies = [
"libc",
]
@@ -3599,18 +3976,18 @@ dependencies = [
[[package]]
name = "js-sys"
-version = "0.3.64"
+version = "0.3.65"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
dependencies = [
"wasm-bindgen",
]
[[package]]
name = "json-patch"
-version = "1.1.0"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f7765dccf8c39c3a470fc694efe322969d791e713ca46bc7b5c506886157572"
+checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6"
dependencies = [
"serde",
"serde_json",
@@ -3732,9 +4109,31 @@ dependencies = [
[[package]]
name = "libm"
-version = "0.2.7"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
+[[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall 0.4.1",
+]
+
+[[package]]
+name = "libredox"
+version = "0.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
+dependencies = [
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall 0.4.1",
+]
[[package]]
name = "libseat"
@@ -3742,11 +4141,9 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54a0adf8d8607a73a5b74cbe4132f57cb349e4bf860103cd089461bbcbc9907e"
dependencies = [
- "cc",
"errno",
"libseat-sys",
"log",
- "pkg-config",
]
[[package]]
@@ -3806,9 +4203,9 @@ checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
[[package]]
name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
dependencies = [
"autocfg",
"scopeguard",
@@ -3970,6 +4367,15 @@ dependencies = [
"libc",
]
+[[package]]
+name = "memmap2"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "memoffset"
version = "0.6.5"
@@ -4029,7 +4435,7 @@ version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2b6f58413c6cee060115673578e47271838f3c87cb9322c61a3bcd6d740b7d2"
dependencies = [
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
"rpassword",
"scrypt",
]
@@ -4052,9 +4458,9 @@ dependencies = [
[[package]]
name = "mio"
-version = "0.8.8"
+version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
dependencies = [
"libc",
"log",
@@ -4062,6 +4468,63 @@ dependencies = [
"windows-sys 0.48.0",
]
+[[package]]
+name = "napi"
+version = "2.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d90182620f32fe34b6ac9b52cba898af26e94c7f5abc01eb4094c417ae2e6c"
+dependencies = [
+ "bitflags 2.4.1",
+ "ctor 0.2.5",
+ "napi-derive",
+ "napi-sys",
+ "once_cell",
+]
+
+[[package]]
+name = "napi-build"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4b4532cf86bfef556348ac65e561e3123879f0e7566cca6d43a6ff5326f13df"
+
+[[package]]
+name = "napi-derive"
+version = "2.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3619fa472d23cd5af94d63a2bae454a77a8863251f40230fbf59ce20eafa8a86"
+dependencies = [
+ "cfg-if",
+ "convert_case 0.6.0",
+ "napi-derive-backend",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "napi-derive-backend"
+version = "1.0.54"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecd3ea4b54020c73d591a49cd192f6334c5f37f71a63ead54dbc851fa991ef00"
+dependencies = [
+ "convert_case 0.6.0",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "semver",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "napi-sys"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2503fa6af34dc83fb74888df8b22afe933b58d37daf7d80424b1c60c68196b8b"
+dependencies = [
+ "libloading 0.8.1",
+]
+
[[package]]
name = "native-tls"
version = "0.2.11"
@@ -4103,7 +4566,23 @@ dependencies = [
"jni-sys",
"ndk-sys 0.4.1+23.1.7779620",
"num_enum 0.5.11",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
+ "thiserror",
+]
+
+[[package]]
+name = "ndk"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
+dependencies = [
+ "bitflags 2.4.1",
+ "jni-sys",
+ "log",
+ "ndk-sys 0.5.0+25.2.9519653",
+ "num_enum 0.7.1",
+ "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
"thiserror",
]
@@ -4131,6 +4610,15 @@ dependencies = [
"jni-sys",
]
+[[package]]
+name = "ndk-sys"
+version = "0.5.0+25.2.9519653"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691"
+dependencies = [
+ "jni-sys",
+]
+
[[package]]
name = "new_debug_unreachable"
version = "1.0.4"
@@ -4172,7 +4660,6 @@ dependencies = [
"cfg-if",
"libc",
"memoffset 0.7.1",
- "pin-utils",
]
[[package]]
@@ -4181,7 +4668,7 @@ version = "0.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"cfg-if",
"libc",
]
@@ -4241,9 +4728,9 @@ dependencies = [
[[package]]
name = "num-traits"
-version = "0.2.16"
+version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
dependencies = [
"autocfg",
"libm",
@@ -4279,11 +4766,11 @@ dependencies = [
[[package]]
name = "num_enum"
-version = "0.7.0"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70bf6736f74634d299d00086f02986875b3c2d924781a6a2cb6c201e73da0ceb"
+checksum = "683751d591e6d81200c39fb0d1032608b77724f34114db54f571ff1317b337c0"
dependencies = [
- "num_enum_derive 0.7.0",
+ "num_enum_derive 0.7.1",
]
[[package]]
@@ -4292,7 +4779,7 @@ version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
"proc-macro2",
"quote",
"syn 1.0.109",
@@ -4304,22 +4791,22 @@ version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
name = "num_enum_derive"
-version = "0.7.0"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56ea360eafe1022f7cc56cd7b869ed57330fb2453d0c7831d99b74c65d2f5597"
+checksum = "6c11e44798ad209ccdd91fc192f0526a369a01234f7373e1b141c96d7cee4f0e"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 2.0.0",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -4349,15 +4836,31 @@ version = "0.2.0-beta.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7"
+[[package]]
+name = "objc-sys"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99e1d07c6eab1ce8b6382b8e3c7246fe117ff3f8b34be065f5ebace6749fe845"
+
[[package]]
name = "objc2"
version = "0.3.0-beta.3.patch-leaks.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468"
dependencies = [
- "block2",
- "objc-sys",
- "objc2-encode",
+ "block2 0.2.0-alpha.6",
+ "objc-sys 0.2.0-beta.2",
+ "objc2-encode 2.0.0-pre.2",
+]
+
+[[package]]
+name = "objc2"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d"
+dependencies = [
+ "objc-sys 0.3.1",
+ "objc2-encode 3.0.0",
]
[[package]]
@@ -4366,9 +4869,15 @@ version = "2.0.0-pre.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512"
dependencies = [
- "objc-sys",
+ "objc-sys 0.2.0-beta.2",
]
+[[package]]
+name = "objc2-encode"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666"
+
[[package]]
name = "objc_exception"
version = "0.1.2"
@@ -4412,7 +4921,7 @@ version = "0.10.59"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a257ad03cd8fb16ad4172fedf8094451e1af1c4b70097636ef2eac9a5f0cc33"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"cfg-if",
"foreign-types 0.3.2",
"libc",
@@ -4429,7 +4938,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -4468,18 +4977,18 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
[[package]]
name = "orbclient"
-version = "0.3.46"
+version = "0.3.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8378ac0dfbd4e7895f2d2c1f1345cab3836910baf3a300b000d04250f0c8428f"
+checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166"
dependencies = [
- "redox_syscall 0.3.5",
+ "libredox 0.0.2",
]
[[package]]
name = "ordered-float"
-version = "2.10.0"
+version = "2.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87"
+checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c"
dependencies = [
"num-traits",
]
@@ -4512,11 +5021,11 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
[[package]]
name = "owned_ttf_parser"
-version = "0.19.0"
+version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "706de7e2214113d63a8238d1910463cfce781129a6f263d13fdb09ff64355ba4"
+checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7"
dependencies = [
- "ttf-parser 0.19.2",
+ "ttf-parser 0.20.0",
]
[[package]]
@@ -4547,9 +5056,9 @@ dependencies = [
[[package]]
name = "parking"
-version = "2.1.1"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e52c774a4c39359c1d1c52e43f73dd91a75a614652c825408eec30c95a9b2067"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
[[package]]
name = "parking_lot"
@@ -4563,13 +5072,13 @@ dependencies = [
[[package]]
name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
dependencies = [
"cfg-if",
"libc",
- "redox_syscall 0.3.5",
+ "redox_syscall 0.4.1",
"smallvec",
"windows-targets 0.48.5",
]
@@ -4604,9 +5113,9 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
[[package]]
name = "pest"
-version = "2.7.4"
+version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4"
+checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5"
dependencies = [
"memchr",
"thiserror",
@@ -4615,9 +5124,9 @@ dependencies = [
[[package]]
name = "pest_derive"
-version = "2.7.4"
+version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35513f630d46400a977c4cb58f78e1bfbe01434316e60c37d27b9ad6139c66d8"
+checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2"
dependencies = [
"pest",
"pest_generator",
@@ -4625,22 +5134,22 @@ dependencies = [
[[package]]
name = "pest_generator"
-version = "2.7.4"
+version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc9fc1b9e7057baba189b5c626e2d6f40681ae5b6eb064dc7c7834101ec8123a"
+checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227"
dependencies = [
"pest",
"pest_meta",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
name = "pest_meta"
-version = "2.7.4"
+version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1df74e9e7ec4053ceb980e7c0c8bd3594e977fde1af91daba9c928e8e8c6708d"
+checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6"
dependencies = [
"once_cell",
"pest",
@@ -4768,7 +5277,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -4808,14 +5317,14 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
[[package]]
name = "plist"
-version = "1.5.0"
+version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdc0001cfea3db57a2e24bc0d818e9e20e554b5f97fabb9bc231dc240269ae06"
+checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
dependencies = [
- "base64 0.21.4",
- "indexmap 1.9.3",
+ "base64 0.21.5",
+ "indexmap 2.1.0",
"line-wrap",
- "quick-xml 0.29.0",
+ "quick-xml 0.31.0",
"serde",
"time",
]
@@ -4849,15 +5358,35 @@ dependencies = [
"windows-sys 0.48.0",
]
+[[package]]
+name = "polling"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix 0.38.24",
+ "tracing",
+ "windows-sys 0.48.0",
+]
+
[[package]]
name = "portable-atomic"
-version = "1.4.3"
+version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31114a898e107c51bb1609ffaf55a0e011cf6a4d7f1170d0015a165082c0338b"
+checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b"
dependencies = [
"critical-section",
]
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
[[package]]
name = "ppv-lite86"
version = "0.2.17"
@@ -4877,7 +5406,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d"
dependencies = [
"proc-macro2",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -4890,6 +5419,15 @@ dependencies = [
"toml_edit 0.19.15",
]
+[[package]]
+name = "proc-macro-crate"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8"
+dependencies = [
+ "toml_edit 0.20.7",
+]
+
[[package]]
name = "proc-macro-error"
version = "1.0.4"
@@ -4922,9 +5460,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
[[package]]
name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
dependencies = [
"unicode-ident",
]
@@ -4940,9 +5478,9 @@ dependencies = [
[[package]]
name = "qttypes"
-version = "0.2.9"
+version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "116e96ef85a287acd172c5ed017ef56ee1d9e4f016558e8fc1625925f3f77468"
+checksum = "d405b0934e4176fb264d6ca597e5c8c2fba562fa155cba681ca160c1eb7edc6e"
dependencies = [
"cpp",
"cpp_build",
@@ -4951,18 +5489,18 @@ dependencies = [
[[package]]
name = "quick-xml"
-version = "0.28.2"
+version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
+checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
dependencies = [
"memchr",
]
[[package]]
name = "quick-xml"
-version = "0.29.0"
+version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81b9228215d82c7b61490fec1de287136b5de6f5700f6e58ea9ad61a7964ca51"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
dependencies = [
"memchr",
]
@@ -5036,7 +5574,7 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
]
[[package]]
@@ -5063,6 +5601,12 @@ version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
+[[package]]
+name = "raw-window-handle"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
+
[[package]]
name = "rayon"
version = "1.8.0"
@@ -5089,15 +5633,6 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
-[[package]]
-name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags 1.3.2",
-]
-
[[package]]
name = "redox_syscall"
version = "0.3.5"
@@ -5118,25 +5653,25 @@ dependencies = [
[[package]]
name = "redox_users"
-version = "0.4.3"
+version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
dependencies = [
- "getrandom 0.2.10",
- "redox_syscall 0.2.16",
+ "getrandom 0.2.11",
+ "libredox 0.0.1",
"thiserror",
]
[[package]]
name = "regex"
-version = "1.10.0"
+version = "1.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d119d7c7ca818f8a53c300863d4f87566aac09943aef5b355bb83969dae75d87"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
dependencies = [
"aho-corasick",
"memchr",
- "regex-automata 0.4.0",
- "regex-syntax 0.8.0",
+ "regex-automata 0.4.3",
+ "regex-syntax 0.8.2",
]
[[package]]
@@ -5150,13 +5685,13 @@ dependencies = [
[[package]]
name = "regex-automata"
-version = "0.4.0"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d58da636bd923eae52b7e9120271cbefb16f399069ee566ca5ebf9c30e32238"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
dependencies = [
"aho-corasick",
"memchr",
- "regex-syntax 0.8.0",
+ "regex-syntax 0.8.2",
]
[[package]]
@@ -5167,9 +5702,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
[[package]]
name = "regex-syntax"
-version = "0.8.0"
+version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3cbb081b9784b07cceb8824c8583f86db4814d172ab043f3c23f7dc600bf83d"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
[[package]]
name = "relative-path"
@@ -5183,7 +5718,7 @@ version = "0.11.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
"bytes",
"encoding_rs",
"futures-core",
@@ -5242,7 +5777,7 @@ version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fe664af397d2b6a13a8ba1d172a2b5c87c6c5149039edbf8fa122b98c9ed96f"
dependencies = [
- "async-io",
+ "async-io 1.13.0",
"block",
"dispatch",
"futures-util",
@@ -5254,7 +5789,7 @@ dependencies = [
"objc",
"objc-foundation",
"objc_id",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
@@ -5263,26 +5798,25 @@ dependencies = [
[[package]]
name = "rgb"
-version = "0.8.36"
+version = "0.8.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59"
+checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8"
dependencies = [
"bytemuck",
]
[[package]]
name = "ring"
-version = "0.16.20"
+version = "0.17.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b"
dependencies = [
"cc",
+ "getrandom 0.2.11",
"libc",
- "once_cell",
- "spin 0.5.2",
+ "spin",
"untrusted",
- "web-sys",
- "winapi",
+ "windows-sys 0.48.0",
]
[[package]]
@@ -5315,23 +5849,23 @@ dependencies = [
[[package]]
name = "rpassword"
-version = "7.2.0"
+version = "7.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322"
+checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f"
dependencies = [
"libc",
"rtoolbox",
- "winapi",
+ "windows-sys 0.48.0",
]
[[package]]
name = "rtoolbox"
-version = "0.0.1"
+version = "0.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a"
+checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e"
dependencies = [
"libc",
- "winapi",
+ "windows-sys 0.48.0",
]
[[package]]
@@ -5357,9 +5891,9 @@ dependencies = [
[[package]]
name = "rustix"
-version = "0.37.24"
+version = "0.37.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4279d76516df406a8bd37e7dff53fd37d1a093f997a3c34a5c21658c126db06d"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
dependencies = [
"bitflags 1.3.2",
"errno",
@@ -5375,7 +5909,7 @@ version = "0.38.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ad981d6c340a49cdc40a1028d9c6084ec7e9fa33fcb839cab656a267071e234"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"errno",
"libc",
"linux-raw-sys 0.4.11",
@@ -5384,9 +5918,9 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.21.7"
+version = "0.21.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
+checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
dependencies = [
"log",
"ring",
@@ -5400,14 +5934,14 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
]
[[package]]
name = "rustls-webpki"
-version = "0.101.6"
+version = "0.101.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
dependencies = [
"ring",
"untrusted",
@@ -5476,9 +6010,9 @@ dependencies = [
[[package]]
name = "schemars"
-version = "0.8.15"
+version = "0.8.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f7b0ce13155372a76ee2e1c5ffba1fe61ede73fbea5630d61eee6fac4929c0c"
+checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29"
dependencies = [
"dyn-clone",
"indexmap 1.9.3",
@@ -5490,9 +6024,9 @@ dependencies = [
[[package]]
name = "schemars_derive"
-version = "0.8.15"
+version = "0.8.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e85e2a16b12bdb763244c69ab79363d71db2b4b918a2def53f80b02e0574b13c"
+checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967"
dependencies = [
"proc-macro2",
"quote",
@@ -5531,9 +6065,9 @@ dependencies = [
[[package]]
name = "sct"
-version = "0.7.0"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
dependencies = [
"ring",
"untrusted",
@@ -5548,10 +6082,23 @@ dependencies = [
"ab_glyph",
"log",
"memmap2 0.5.10",
- "smithay-client-toolkit",
+ "smithay-client-toolkit 0.16.1",
"tiny-skia 0.8.4",
]
+[[package]]
+name = "sctk-adwaita"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1729a30a469de249c6effc17ec8d039b0aa29b3af79b819b7f51cb6ab8046a90"
+dependencies = [
+ "ab_glyph",
+ "log",
+ "memmap2 0.9.0",
+ "smithay-client-toolkit 0.18.0",
+ "tiny-skia 0.11.2",
+]
+
[[package]]
name = "security-framework"
version = "2.9.2"
@@ -5597,9 +6144,9 @@ dependencies = [
[[package]]
name = "semver"
-version = "1.0.19"
+version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0"
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
dependencies = [
"serde",
]
@@ -5612,9 +6159,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73"
[[package]]
name = "serde"
-version = "1.0.188"
+version = "1.0.192"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001"
dependencies = [
"serde_derive",
]
@@ -5631,13 +6178,13 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.188"
+version = "1.0.192"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -5653,9 +6200,9 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.107"
+version = "1.0.108"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
dependencies = [
"itoa 1.0.9",
"ryu",
@@ -5664,20 +6211,20 @@ dependencies = [
[[package]]
name = "serde_repr"
-version = "0.1.16"
+version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
+checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
name = "serde_spanned"
-version = "0.6.3"
+version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
dependencies = [
"serde",
]
@@ -5696,15 +6243,15 @@ dependencies = [
[[package]]
name = "serde_with"
-version = "3.3.0"
+version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237"
+checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23"
dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
"chrono",
"hex",
"indexmap 1.9.3",
- "indexmap 2.0.2",
+ "indexmap 2.1.0",
"serde",
"serde_json",
"serde_with_macros",
@@ -5713,14 +6260,14 @@ dependencies = [
[[package]]
name = "serde_with_macros"
-version = "3.3.0"
+version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e6be15c453eb305019bfa438b1593c731f36a289a7853f7707ee29e870b3b3c"
+checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788"
dependencies = [
"darling",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -5798,16 +6345,6 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
-[[package]]
-name = "signal-hook"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
-dependencies = [
- "libc",
- "signal-hook-registry",
-]
-
[[package]]
name = "signal-hook-registry"
version = "1.4.1"
@@ -5840,9 +6377,9 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
[[package]]
name = "skia-bindings"
-version = "0.66.3"
+version = "0.68.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a42e3db408fbe7beafeadcaf5309c59eb99cc80979cab1b49e2a47539adf8ab"
+checksum = "0af1b86d01552a56d70b515e2bc1af9123acffcc679a7410010e2648f59fbec3"
dependencies = [
"bindgen",
"cc",
@@ -5852,17 +6389,17 @@ dependencies = [
"regex",
"serde_json",
"tar",
- "toml 0.7.8",
+ "toml 0.8.8",
"ureq",
]
[[package]]
name = "skia-safe"
-version = "0.66.3"
+version = "0.68.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d03680a0ce867756947f2d5fa92078915342f81996c43b61847fed565068f75"
+checksum = "ed678303df69daf5b666faf477800ff7fcb7b67316b10a94c31d748d42dd5a83"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"lazy_static",
"skia-bindings",
"winapi",
@@ -5880,9 +6417,9 @@ dependencies = [
[[package]]
name = "slint"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9a6f76430dde7dc57d374c37aa3103532813cc275a94b515b5907e91dd19334"
+checksum = "3b9d589a30c2812877798eecf2b5cb51e7f2c4531f7c9e8746be6b25a24f37e6"
dependencies = [
"const-field-offset",
"i-slint-backend-selector",
@@ -5897,14 +6434,14 @@ dependencies = [
[[package]]
name = "slint-build"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6edc7309a89f14c685086544ea3dbd7668ccdeb03d774f06879f38237e55815"
+checksum = "2edbdfb7bdb1688273656c301ffa221a3939869620e7a12f02d7cae6532098ee"
dependencies = [
"i-slint-compiler",
"spin_on",
"thiserror",
- "toml_edit 0.19.15",
+ "toml_edit 0.20.7",
]
[[package]]
@@ -5917,9 +6454,9 @@ dependencies = [
[[package]]
name = "slint-macros"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33f96e5ea0574ac69b773b159d43124f7a329107cf60c11516e63d38c2d8c89c"
+checksum = "ee1b8b49389eb768793499fce1c60d613ac52d14fe77383a65f233327cd65715"
dependencies = [
"i-slint-compiler",
"proc-macro2",
@@ -5944,9 +6481,9 @@ checksum = "d92359f97e6b417da4328a970cf04a044db104fbd57f7d72cb7ff665bb8806af"
[[package]]
name = "smallvec"
-version = "1.11.1"
+version = "1.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
[[package]]
name = "smithay-client-toolkit"
@@ -5959,12 +6496,37 @@ dependencies = [
"dlib",
"lazy_static",
"log",
- "memmap2 0.5.10",
- "nix 0.24.3",
- "pkg-config",
- "wayland-client 0.29.5",
- "wayland-cursor",
- "wayland-protocols",
+ "memmap2 0.5.10",
+ "nix 0.24.3",
+ "pkg-config",
+ "wayland-client 0.29.5",
+ "wayland-cursor 0.29.5",
+ "wayland-protocols 0.29.5",
+]
+
+[[package]]
+name = "smithay-client-toolkit"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60e3d9941fa3bacf7c2bf4b065304faa14164151254cd16ce1b1bc8fc381600f"
+dependencies = [
+ "bitflags 2.4.1",
+ "calloop 0.12.3",
+ "calloop-wayland-source",
+ "cursor-icon",
+ "libc",
+ "log",
+ "memmap2 0.9.0",
+ "rustix 0.38.24",
+ "thiserror",
+ "wayland-backend",
+ "wayland-client 0.31.1",
+ "wayland-csd-frame",
+ "wayland-cursor 0.31.0",
+ "wayland-protocols 0.31.0",
+ "wayland-protocols-wlr",
+ "wayland-scanner 0.31.0",
+ "xkeysym",
]
[[package]]
@@ -5973,10 +6535,21 @@ version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8"
dependencies = [
- "smithay-client-toolkit",
+ "smithay-client-toolkit 0.16.1",
"wayland-client 0.29.5",
]
+[[package]]
+name = "smithay-clipboard"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bb62b280ce5a5cba847669933a0948d00904cf83845c944eae96a4738cea1a6"
+dependencies = [
+ "libc",
+ "smithay-client-toolkit 0.18.0",
+ "wayland-backend",
+]
+
[[package]]
name = "smol_str"
version = "0.2.0"
@@ -5988,9 +6561,9 @@ dependencies = [
[[package]]
name = "socket2"
-version = "0.4.9"
+version = "0.4.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
dependencies = [
"libc",
"winapi",
@@ -5998,9 +6571,9 @@ dependencies = [
[[package]]
name = "socket2"
-version = "0.5.4"
+version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
dependencies = [
"libc",
"windows-sys 0.48.0",
@@ -6008,31 +6581,29 @@ dependencies = [
[[package]]
name = "softbuffer"
-version = "0.3.1"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bd56fe5e6c6f1881aad2bd37acaef4ac4a3689c970dfcbd87a36a6e60210ec8"
+checksum = "826da2ead8e85d1b4ea579fae3d58ec10c81a77d61deab8918c4a4f7514b2948"
dependencies = [
"as-raw-xcb-connection",
"bytemuck",
"cfg_aliases",
"cocoa 0.25.0",
"core-graphics 0.23.1",
- "drm",
- "drm-sys",
"fastrand 2.0.1",
"foreign-types 0.5.0",
"js-sys",
"log",
- "memmap2 0.7.1",
- "nix 0.26.4",
+ "memmap2 0.9.0",
"objc",
- "raw-window-handle",
- "redox_syscall 0.3.5",
+ "raw-window-handle 0.5.2",
+ "redox_syscall 0.4.1",
+ "rustix 0.38.24",
"tiny-xlib",
"wasm-bindgen",
"wayland-backend",
- "wayland-client 0.30.2",
- "wayland-sys 0.30.1",
+ "wayland-client 0.31.1",
+ "wayland-sys 0.31.1",
"web-sys",
"windows-sys 0.48.0",
"x11rb 0.12.0",
@@ -6066,12 +6637,6 @@ dependencies = [
"system-deps",
]
-[[package]]
-name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
[[package]]
name = "spin"
version = "0.9.8"
@@ -6178,15 +6743,15 @@ dependencies = [
[[package]]
name = "strum_macros"
-version = "0.25.2"
+version = "0.25.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059"
+checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
dependencies = [
"heck",
"proc-macro2",
"quote",
"rustversion",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -6211,7 +6776,7 @@ version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bbdb58577b6301f8d17ae2561f32002a5bae056d444e0f69e611e504a276204"
dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
"serde",
"serde_json",
]
@@ -6229,9 +6794,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.37"
+version = "2.0.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
dependencies = [
"proc-macro2",
"quote",
@@ -6261,14 +6826,14 @@ dependencies = [
[[package]]
name = "system-deps"
-version = "6.1.2"
+version = "6.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94af52f9402f94aac4948a2518b43359be8d9ce6cd9efc1c4de3b2f7b7e897d6"
+checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
dependencies = [
"cfg-expr",
"heck",
"pkg-config",
- "toml 0.8.2",
+ "toml 0.8.8",
"version-compare",
]
@@ -6308,7 +6873,7 @@ dependencies = [
"once_cell",
"parking_lot",
"png",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
"scopeguard",
"serde",
"tao-macros",
@@ -6343,9 +6908,9 @@ dependencies = [
[[package]]
name = "target-lexicon"
-version = "0.12.11"
+version = "0.12.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
[[package]]
name = "tauri"
@@ -6371,7 +6936,7 @@ dependencies = [
"once_cell",
"percent-encoding",
"rand 0.8.5",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
"reqwest",
"semver",
"serde",
@@ -6420,7 +6985,7 @@ version = "2.0.0-alpha.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c1f1611ab0896f2693163ba4e8f3e39c02a1b70cdca4314286b5e365a5e08c6"
dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
"brotli",
"ico",
"json-patch",
@@ -6500,7 +7065,7 @@ dependencies = [
"http-range",
"jni 0.20.0",
"rand 0.8.5",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
"serde",
"serde_json",
"tauri-utils",
@@ -6521,7 +7086,7 @@ dependencies = [
"jni 0.20.0",
"percent-encoding",
"rand 0.8.5",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
"tauri-runtime",
"tauri-utils",
"uuid",
@@ -6596,9 +7161,9 @@ dependencies = [
[[package]]
name = "termcolor"
-version = "1.3.0"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64"
+checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
dependencies = [
"winapi-util",
]
@@ -6632,7 +7197,7 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -6658,12 +7223,13 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.29"
+version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe"
+checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
dependencies = [
"deranged",
"itoa 1.0.9",
+ "powerfmt",
"serde",
"time-core",
"time-macros",
@@ -6713,6 +7279,20 @@ dependencies = [
"tiny-skia-path 0.10.0",
]
+[[package]]
+name = "tiny-skia"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b72a92a05db376db09fe6d50b7948d106011761c05a6a45e23e17ee9b556222"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "bytemuck",
+ "cfg-if",
+ "log",
+ "tiny-skia-path 0.11.2",
+]
+
[[package]]
name = "tiny-skia-path"
version = "0.8.4"
@@ -6735,6 +7315,17 @@ dependencies = [
"strict-num",
]
+[[package]]
+name = "tiny-skia-path"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ac3865b9708fc7e1961a65c3a4fa55e984272f33092d3c859929f887fceb647"
+dependencies = [
+ "arrayref",
+ "bytemuck",
+ "strict-num",
+]
+
[[package]]
name = "tiny-xlib"
version = "0.2.2"
@@ -6783,9 +7374,9 @@ checksum = "c7c4ceeeca15c8384bbc3e011dbd8fccb7f068a440b752b7d9b32ceb0ca0e2e8"
[[package]]
name = "tokio"
-version = "1.32.0"
+version = "1.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9"
dependencies = [
"backtrace",
"bytes",
@@ -6793,20 +7384,20 @@ dependencies = [
"mio",
"num_cpus",
"pin-project-lite",
- "socket2 0.5.4",
+ "socket2 0.5.5",
"tokio-macros",
"windows-sys 0.48.0",
]
[[package]]
name = "tokio-macros"
-version = "2.1.0"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -6831,9 +7422,9 @@ dependencies = [
[[package]]
name = "tokio-util"
-version = "0.7.9"
+version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
dependencies = [
"bytes",
"futures-core",
@@ -6857,21 +7448,21 @@ dependencies = [
[[package]]
name = "toml"
-version = "0.8.2"
+version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
+checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
dependencies = [
"serde",
"serde_spanned",
"toml_datetime",
- "toml_edit 0.20.2",
+ "toml_edit 0.21.0",
]
[[package]]
name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
dependencies = [
"serde",
]
@@ -6882,7 +7473,7 @@ version = "0.19.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
- "indexmap 2.0.2",
+ "indexmap 2.1.0",
"serde",
"serde_spanned",
"toml_datetime",
@@ -6891,11 +7482,22 @@ dependencies = [
[[package]]
name = "toml_edit"
-version = "0.20.2"
+version = "0.20.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
+dependencies = [
+ "indexmap 2.1.0",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
+checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
dependencies = [
- "indexmap 2.0.2",
+ "indexmap 2.1.0",
"serde",
"serde_spanned",
"toml_datetime",
@@ -6910,11 +7512,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
[[package]]
name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
dependencies = [
- "cfg-if",
"pin-project-lite",
"tracing-attributes",
"tracing-core",
@@ -6922,20 +7523,20 @@ dependencies = [
[[package]]
name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
dependencies = [
"once_cell",
"valuable",
@@ -6943,20 +7544,20 @@ dependencies = [
[[package]]
name = "tracing-log"
-version = "0.1.3"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
dependencies = [
- "lazy_static",
"log",
+ "once_cell",
"tracing-core",
]
[[package]]
name = "tracing-subscriber"
-version = "0.3.17"
+version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
dependencies = [
"matchers",
"nu-ansi-term",
@@ -7003,6 +7604,12 @@ version = "0.19.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1"
+[[package]]
+name = "ttf-parser"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
+
[[package]]
name = "typenum"
version = "1.17.0"
@@ -7107,9 +7714,9 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
[[package]]
name = "untrusted"
-version = "0.7.1"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]]
name = "ureq"
@@ -7117,9 +7724,10 @@ version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f5ccd538d4a604753ebc2f17cd9946e89b77bf87f6a8e2309667c6f2e87855e3"
dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
"flate2",
"log",
+ "native-tls",
"once_cell",
"rustls",
"rustls-webpki",
@@ -7151,7 +7759,7 @@ version = "0.34.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2304b933107198a910c1f3219acb65246f2b148f862703cffd51c6e62156abe"
dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
"log",
"pico-args",
"usvg-parser",
@@ -7220,11 +7828,11 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
[[package]]
name = "uuid"
-version = "1.4.1"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
+checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc"
dependencies = [
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
"sha1_smol",
]
@@ -7298,7 +7906,7 @@ checksum = "6b2b8eecdb8e4284adf5546fc518f048f6dc33e7203dbe36fa93a4add39b31f6"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
]
[[package]]
@@ -7340,9 +7948,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce"
dependencies = [
"cfg-if",
"wasm-bindgen-macro",
@@ -7350,24 +7958,24 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.37"
+version = "0.4.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02"
dependencies = [
"cfg-if",
"js-sys",
@@ -7377,9 +7985,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -7387,22 +7995,22 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.39",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b"
[[package]]
name = "wasm-streams"
@@ -7419,17 +8027,16 @@ dependencies = [
[[package]]
name = "wayland-backend"
-version = "0.1.2"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41b48e27457e8da3b2260ac60d0a94512f5cba36448679f3747c0865b7893ed8"
+checksum = "19152ddd73f45f024ed4534d9ca2594e0ef252c1847695255dae47f34df9fbe4"
dependencies = [
"cc",
"downcast-rs",
- "io-lifetimes",
"nix 0.26.4",
"scoped-tls",
"smallvec",
- "wayland-sys 0.30.1",
+ "wayland-sys 0.31.1",
]
[[package]]
@@ -7450,14 +8057,14 @@ dependencies = [
[[package]]
name = "wayland-client"
-version = "0.30.2"
+version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "489c9654770f674fc7e266b3c579f4053d7551df0ceb392f153adb1f9ed06ac8"
+checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.1",
"nix 0.26.4",
"wayland-backend",
- "wayland-scanner 0.30.1",
+ "wayland-scanner 0.31.0",
]
[[package]]
@@ -7472,6 +8079,17 @@ dependencies = [
"wayland-sys 0.29.5",
]
+[[package]]
+name = "wayland-csd-frame"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
+dependencies = [
+ "bitflags 2.4.1",
+ "cursor-icon",
+ "wayland-backend",
+]
+
[[package]]
name = "wayland-cursor"
version = "0.29.5"
@@ -7483,6 +8101,17 @@ dependencies = [
"xcursor",
]
+[[package]]
+name = "wayland-cursor"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44aa20ae986659d6c77d64d808a046996a932aa763913864dc40c359ef7ad5b"
+dependencies = [
+ "nix 0.26.4",
+ "wayland-client 0.31.1",
+ "xcursor",
+]
+
[[package]]
name = "wayland-protocols"
version = "0.29.5"
@@ -7495,6 +8124,44 @@ dependencies = [
"wayland-scanner 0.29.5",
]
+[[package]]
+name = "wayland-protocols"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e253d7107ba913923dc253967f35e8561a3c65f914543e46843c88ddd729e21c"
+dependencies = [
+ "bitflags 2.4.1",
+ "wayland-backend",
+ "wayland-client 0.31.1",
+ "wayland-scanner 0.31.0",
+]
+
+[[package]]
+name = "wayland-protocols-plasma"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479"
+dependencies = [
+ "bitflags 2.4.1",
+ "wayland-backend",
+ "wayland-client 0.31.1",
+ "wayland-protocols 0.31.0",
+ "wayland-scanner 0.31.0",
+]
+
+[[package]]
+name = "wayland-protocols-wlr"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
+dependencies = [
+ "bitflags 2.4.1",
+ "wayland-backend",
+ "wayland-client 0.31.1",
+ "wayland-protocols 0.31.0",
+ "wayland-scanner 0.31.0",
+]
+
[[package]]
name = "wayland-scanner"
version = "0.29.5"
@@ -7508,12 +8175,12 @@ dependencies = [
[[package]]
name = "wayland-scanner"
-version = "0.30.1"
+version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9b873b257fbc32ec909c0eb80dea312076a67014e65e245f5eb69a6b8ab330e"
+checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c"
dependencies = [
"proc-macro2",
- "quick-xml 0.28.2",
+ "quick-xml 0.30.0",
"quote",
]
@@ -7540,11 +8207,33 @@ dependencies = [
"pkg-config",
]
+[[package]]
+name = "wayland-sys"
+version = "0.31.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
+dependencies = [
+ "dlib",
+ "log",
+ "once_cell",
+ "pkg-config",
+]
+
[[package]]
name = "web-sys"
-version = "0.3.64"
+version = "0.3.65"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web-time"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "57099a701fb3a8043f993e8228dc24229c7b942e2b009a1b962e54489ba1d3bf"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -7552,9 +8241,9 @@ dependencies = [
[[package]]
name = "webbrowser"
-version = "0.8.11"
+version = "0.8.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2c79b77f525a2d670cb40619d7d9c673d09e0666f72c591ebd7861f84a87e57"
+checksum = "82b2391658b02c27719fc5a0a73d6e696285138e8b12fba9d4baa70451023c71"
dependencies = [
"core-foundation",
"home",
@@ -7562,7 +8251,7 @@ dependencies = [
"log",
"ndk-context",
"objc",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
"url",
"web-sys",
]
@@ -7745,6 +8434,15 @@ dependencies = [
"windows-tokens",
]
+[[package]]
+name = "windows-core"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
[[package]]
name = "windows-implement"
version = "0.44.0"
@@ -7813,6 +8511,15 @@ dependencies = [
"windows-targets 0.48.5",
]
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
[[package]]
name = "windows-targets"
version = "0.42.2"
@@ -7843,6 +8550,21 @@ dependencies = [
"windows_x86_64_msvc 0.48.5",
]
+[[package]]
+name = "windows-targets"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
+]
+
[[package]]
name = "windows-tokens"
version = "0.44.0"
@@ -7861,6 +8583,12 @@ version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
[[package]]
name = "windows_aarch64_msvc"
version = "0.42.2"
@@ -7873,6 +8601,12 @@ version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
[[package]]
name = "windows_i686_gnu"
version = "0.42.2"
@@ -7885,6 +8619,12 @@ version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
[[package]]
name = "windows_i686_msvc"
version = "0.42.2"
@@ -7897,6 +8637,12 @@ version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
[[package]]
name = "windows_x86_64_gnu"
version = "0.42.2"
@@ -7909,6 +8655,12 @@ version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.42.2"
@@ -7921,6 +8673,12 @@ version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+
[[package]]
name = "windows_x86_64_msvc"
version = "0.42.2"
@@ -7933,13 +8691,19 @@ version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
[[package]]
name = "winit"
version = "0.28.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9596d90b45384f5281384ab204224876e8e8bf7d58366d9b795ad99aa9894b94"
dependencies = [
- "android-activity",
+ "android-activity 0.4.3",
"bitflags 1.3.2",
"cfg_aliases",
"core-foundation",
@@ -7950,29 +8714,78 @@ dependencies = [
"log",
"mio",
"ndk 0.7.0",
- "objc2",
+ "objc2 0.3.0-beta.3.patch-leaks.3",
"once_cell",
"orbclient",
"percent-encoding",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
"redox_syscall 0.3.5",
- "sctk-adwaita",
- "smithay-client-toolkit",
+ "sctk-adwaita 0.5.4",
+ "smithay-client-toolkit 0.16.1",
"wasm-bindgen",
"wayland-client 0.29.5",
"wayland-commons",
- "wayland-protocols",
+ "wayland-protocols 0.29.5",
"wayland-scanner 0.29.5",
"web-sys",
"windows-sys 0.45.0",
"x11-dl",
]
+[[package]]
+name = "winit"
+version = "0.29.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "161598019a9da35ab6c34dc46cd13546cba9dbf9816475d4dd9a639455016563"
+dependencies = [
+ "ahash",
+ "android-activity 0.5.0",
+ "atomic-waker",
+ "bitflags 2.4.1",
+ "bytemuck",
+ "calloop 0.12.3",
+ "cfg_aliases",
+ "core-foundation",
+ "core-graphics 0.23.1",
+ "cursor-icon",
+ "icrate",
+ "js-sys",
+ "libc",
+ "log",
+ "memmap2 0.9.0",
+ "ndk 0.8.0",
+ "ndk-sys 0.5.0+25.2.9519653",
+ "objc2 0.4.1",
+ "once_cell",
+ "orbclient",
+ "percent-encoding",
+ "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
+ "redox_syscall 0.3.5",
+ "rustix 0.38.24",
+ "sctk-adwaita 0.7.0",
+ "smithay-client-toolkit 0.18.0",
+ "smol_str",
+ "unicode-segmentation",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wayland-backend",
+ "wayland-client 0.31.1",
+ "wayland-protocols 0.31.0",
+ "wayland-protocols-plasma",
+ "web-sys",
+ "web-time",
+ "windows-sys 0.48.0",
+ "x11-dl",
+ "x11rb 0.12.0",
+ "xkbcommon-dl",
+]
+
[[package]]
name = "winnow"
-version = "0.5.15"
+version = "0.5.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
+checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
dependencies = [
"memchr",
]
@@ -8064,11 +8877,11 @@ dependencies = [
[[package]]
name = "x11-clipboard"
-version = "0.7.1"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "980b9aa9226c3b7de8e2adb11bf20124327c054e0e5812d2aac0b5b5a87e7464"
+checksum = "b41aca1115b1f195f21c541c5efb423470848d48143127d0f07f8b90c27440df"
dependencies = [
- "x11rb 0.10.1",
+ "x11rb 0.12.0",
]
[[package]]
@@ -8169,6 +8982,19 @@ dependencies = [
"xkeysym",
]
+[[package]]
+name = "xkbcommon-dl"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6924668544c48c0133152e7eec86d644a056ca3d09275eb8d5cdb9855f9d8699"
+dependencies = [
+ "bitflags 2.4.1",
+ "dlib",
+ "log",
+ "once_cell",
+ "xkeysym",
+]
+
[[package]]
name = "xkeysym"
version = "0.2.0"
@@ -8202,8 +9028,8 @@ dependencies = [
"async-broadcast",
"async-executor",
"async-fs",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
"async-process",
"async-recursion",
"async-task",
@@ -8212,7 +9038,7 @@ dependencies = [
"byteorder",
"derivative",
"enumflags2",
- "event-listener",
+ "event-listener 2.5.3",
"futures-core",
"futures-sink",
"futures-util",
@@ -8240,7 +9066,7 @@ version = "3.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
"proc-macro2",
"quote",
"regex",
@@ -8259,6 +9085,26 @@ dependencies = [
"zvariant",
]
+[[package]]
+name = "zerocopy"
+version = "0.7.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
[[package]]
name = "zip"
version = "0.6.6"
@@ -8300,7 +9146,7 @@ version = "3.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
"proc-macro2",
"quote",
"syn 1.0.109",
diff --git a/Cargo.toml b/Cargo.toml
index a0ba2f0b..8e59fb36 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
[workspace]
-members = ["crates/*", "examples/*", "crates/updater/tests/app"]
-exclude = ["examples/deno", "examples/wails"]
+members = ["crates/*", "examples/*", "bindings/*/nodejs", "crates/updater/tests/app"]
+exclude = ["examples/deno", "examples/wails", "examples/electron"]
resolver = "2"
[workspace.package]
@@ -22,3 +22,10 @@ base64 = "0.21"
tracing = "0.1"
time = "0.3"
tar = "0.4"
+
+[profile.release-size-optimized]
+inherits = "release"
+codegen-units = 1
+lto = true
+incremental = false
+opt-level = "s"
diff --git a/bindings/packager/nodejs/.cargo/config.toml b/bindings/packager/nodejs/.cargo/config.toml
new file mode 100644
index 00000000..6890aa91
--- /dev/null
+++ b/bindings/packager/nodejs/.cargo/config.toml
@@ -0,0 +1,7 @@
+[target.aarch64-unknown-linux-gnu]
+linker = "aarch64-linux-gnu-gcc"
+[target.aarch64-unknown-linux-musl]
+linker = "aarch64-linux-musl-gcc"
+rustflags = ["-C", "target-feature=-crt-static"]
+[target.armv7-unknown-linux-gnueabihf]
+linker = "arm-linux-gnueabihf-gcc"
\ No newline at end of file
diff --git a/bindings/packager/nodejs/.gitignore b/bindings/packager/nodejs/.gitignore
new file mode 100644
index 00000000..9dafc452
--- /dev/null
+++ b/bindings/packager/nodejs/.gitignore
@@ -0,0 +1,200 @@
+# 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 (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 (https://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+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
+
+# 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
+
+.pnp.*
+.yarn/*
+!.yarn/patches
+!.yarn/plugins
+!.yarn/releases
+!.yarn/sdks
+!.yarn/versions
+
+*.node
+
+# Dist
+build/
\ No newline at end of file
diff --git a/bindings/packager/nodejs/.npmignore b/bindings/packager/nodejs/.npmignore
new file mode 100644
index 00000000..ec144db2
--- /dev/null
+++ b/bindings/packager/nodejs/.npmignore
@@ -0,0 +1,13 @@
+target
+Cargo.lock
+.cargo
+.github
+npm
+.eslintrc
+.prettierignore
+rustfmt.toml
+yarn.lock
+*.node
+.yarn
+__test__
+renovate.json
diff --git a/bindings/packager/nodejs/.npmrc b/bindings/packager/nodejs/.npmrc
new file mode 100644
index 00000000..6c59086d
--- /dev/null
+++ b/bindings/packager/nodejs/.npmrc
@@ -0,0 +1 @@
+enable-pre-post-scripts=true
diff --git a/bindings/packager/nodejs/Cargo.toml b/bindings/packager/nodejs/Cargo.toml
new file mode 100644
index 00000000..d069b49e
--- /dev/null
+++ b/bindings/packager/nodejs/Cargo.toml
@@ -0,0 +1,26 @@
+[package]
+name = "crabnebula_packager"
+version = "0.0.0"
+publish = false
+edition = { workspace = true }
+license = { workspace = true }
+repository = { workspace = true }
+
+[lib]
+crate-type = ["cdylib"]
+
+[dependencies]
+# Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix
+napi = { version = "2.14.0", default-features = false, features = ["napi4"] }
+napi-derive = "2.14.1"
+cargo-packager = { path = "../../../crates/packager/", version = "0.3.0", default-features = false, features = ["cli"] }
+tracing = { workspace = true }
+serde_json = { workspace = true }
+
+[build-dependencies]
+napi-build = "2.1.0"
+
+[features]
+default = ["cargo-packager/rustls"]
+native-tls = ["cargo-packager/native-tls"]
+native-tls-vendored = ["cargo-packager/native-tls-vendored"]
diff --git a/bindings/packager/nodejs/__test__/index.spec.mjs b/bindings/packager/nodejs/__test__/index.spec.mjs
new file mode 100644
index 00000000..12f03778
--- /dev/null
+++ b/bindings/packager/nodejs/__test__/index.spec.mjs
@@ -0,0 +1,14 @@
+import test from 'ava'
+import process from 'process'
+import { execSync } from "child_process"
+
+import { bundleApp } from '../build/index.js'
+
+test('log error', async (t) => {
+ process.env.CI = true
+ process.chdir('../../../examples/electron')
+ execSync('yarn install')
+ t.is(await bundleApp({
+ formats: process.env.PACKAGER_FORMATS ? process.env.PACKAGER_FORMATS.split(',') : null
+ }, { verbosity: 2 }), undefined)
+})
diff --git a/bindings/packager/nodejs/build.rs b/bindings/packager/nodejs/build.rs
new file mode 100644
index 00000000..9fc23678
--- /dev/null
+++ b/bindings/packager/nodejs/build.rs
@@ -0,0 +1,5 @@
+extern crate napi_build;
+
+fn main() {
+ napi_build::setup();
+}
diff --git a/bindings/packager/nodejs/generate-config-type.js b/bindings/packager/nodejs/generate-config-type.js
new file mode 100644
index 00000000..d0739317
--- /dev/null
+++ b/bindings/packager/nodejs/generate-config-type.js
@@ -0,0 +1,7 @@
+const { compileFromFile } = require('json-schema-to-typescript')
+const fs = require('fs')
+const path = require('path')
+
+// compile from file
+compileFromFile(path.join(__dirname, '../../../crates/packager/schema.json'))
+ .then(ts => fs.writeFileSync('src-ts/config.d.ts', ts))
diff --git a/bindings/packager/nodejs/index.d.ts b/bindings/packager/nodejs/index.d.ts
new file mode 100644
index 00000000..2cfa5d70
--- /dev/null
+++ b/bindings/packager/nodejs/index.d.ts
@@ -0,0 +1,9 @@
+/* tslint:disable */
+/* eslint-disable */
+
+/* auto-generated by NAPI-RS */
+
+export function cli(args: Array, binName?: string | undefined | null): void
+export function package(config: string): void
+export function initTracingSubscriber(verbosity: number): void
+export function logError(error: string): void
diff --git a/bindings/packager/nodejs/index.js b/bindings/packager/nodejs/index.js
new file mode 100644
index 00000000..5207029a
--- /dev/null
+++ b/bindings/packager/nodejs/index.js
@@ -0,0 +1,260 @@
+/* tslint:disable */
+/* eslint-disable */
+/* prettier-ignore */
+
+/* auto-generated by NAPI-RS */
+
+const { existsSync, readFileSync } = require('fs')
+const { join } = require('path')
+
+const { platform, arch } = process
+
+let nativeBinding = null
+let localFileExisted = false
+let loadError = null
+
+function isMusl() {
+ // For Node 10
+ if (!process.report || typeof process.report.getReport !== 'function') {
+ try {
+ const lddPath = require('child_process').execSync('which ldd').toString().trim()
+ return readFileSync(lddPath, 'utf8').includes('musl')
+ } catch (e) {
+ return true
+ }
+ } else {
+ const { glibcVersionRuntime } = process.report.getReport().header
+ return !glibcVersionRuntime
+ }
+}
+
+switch (platform) {
+ case 'android':
+ switch (arch) {
+ case 'arm64':
+ localFileExisted = existsSync(join(__dirname, 'packager.android-arm64.node'))
+ try {
+ if (localFileExisted) {
+ nativeBinding = require('./packager.android-arm64.node')
+ } else {
+ nativeBinding = require('@crabnebula/packager-android-arm64')
+ }
+ } catch (e) {
+ loadError = e
+ }
+ break
+ case 'arm':
+ localFileExisted = existsSync(join(__dirname, 'packager.android-arm-eabi.node'))
+ try {
+ if (localFileExisted) {
+ nativeBinding = require('./packager.android-arm-eabi.node')
+ } else {
+ nativeBinding = require('@crabnebula/packager-android-arm-eabi')
+ }
+ } catch (e) {
+ loadError = e
+ }
+ break
+ default:
+ throw new Error(`Unsupported architecture on Android ${arch}`)
+ }
+ break
+ case 'win32':
+ switch (arch) {
+ case 'x64':
+ localFileExisted = existsSync(
+ join(__dirname, 'packager.win32-x64-msvc.node')
+ )
+ try {
+ if (localFileExisted) {
+ nativeBinding = require('./packager.win32-x64-msvc.node')
+ } else {
+ nativeBinding = require('@crabnebula/packager-win32-x64-msvc')
+ }
+ } catch (e) {
+ loadError = e
+ }
+ break
+ case 'ia32':
+ localFileExisted = existsSync(
+ join(__dirname, 'packager.win32-ia32-msvc.node')
+ )
+ try {
+ if (localFileExisted) {
+ nativeBinding = require('./packager.win32-ia32-msvc.node')
+ } else {
+ nativeBinding = require('@crabnebula/packager-win32-ia32-msvc')
+ }
+ } catch (e) {
+ loadError = e
+ }
+ break
+ case 'arm64':
+ localFileExisted = existsSync(
+ join(__dirname, 'packager.win32-arm64-msvc.node')
+ )
+ try {
+ if (localFileExisted) {
+ nativeBinding = require('./packager.win32-arm64-msvc.node')
+ } else {
+ nativeBinding = require('@crabnebula/packager-win32-arm64-msvc')
+ }
+ } catch (e) {
+ loadError = e
+ }
+ break
+ default:
+ throw new Error(`Unsupported architecture on Windows: ${arch}`)
+ }
+ break
+ case 'darwin':
+ localFileExisted = existsSync(join(__dirname, 'packager.darwin-universal.node'))
+ try {
+ if (localFileExisted) {
+ nativeBinding = require('./packager.darwin-universal.node')
+ } else {
+ nativeBinding = require('@crabnebula/packager-darwin-universal')
+ }
+ break
+ } catch {}
+ switch (arch) {
+ case 'x64':
+ localFileExisted = existsSync(join(__dirname, 'packager.darwin-x64.node'))
+ try {
+ if (localFileExisted) {
+ nativeBinding = require('./packager.darwin-x64.node')
+ } else {
+ nativeBinding = require('@crabnebula/packager-darwin-x64')
+ }
+ } catch (e) {
+ loadError = e
+ }
+ break
+ case 'arm64':
+ localFileExisted = existsSync(
+ join(__dirname, 'packager.darwin-arm64.node')
+ )
+ try {
+ if (localFileExisted) {
+ nativeBinding = require('./packager.darwin-arm64.node')
+ } else {
+ nativeBinding = require('@crabnebula/packager-darwin-arm64')
+ }
+ } catch (e) {
+ loadError = e
+ }
+ break
+ default:
+ throw new Error(`Unsupported architecture on macOS: ${arch}`)
+ }
+ break
+ case 'freebsd':
+ if (arch !== 'x64') {
+ throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
+ }
+ localFileExisted = existsSync(join(__dirname, 'packager.freebsd-x64.node'))
+ try {
+ if (localFileExisted) {
+ nativeBinding = require('./packager.freebsd-x64.node')
+ } else {
+ nativeBinding = require('@crabnebula/packager-freebsd-x64')
+ }
+ } catch (e) {
+ loadError = e
+ }
+ break
+ case 'linux':
+ switch (arch) {
+ case 'x64':
+ if (isMusl()) {
+ localFileExisted = existsSync(
+ join(__dirname, 'packager.linux-x64-musl.node')
+ )
+ try {
+ if (localFileExisted) {
+ nativeBinding = require('./packager.linux-x64-musl.node')
+ } else {
+ nativeBinding = require('@crabnebula/packager-linux-x64-musl')
+ }
+ } catch (e) {
+ loadError = e
+ }
+ } else {
+ localFileExisted = existsSync(
+ join(__dirname, 'packager.linux-x64-gnu.node')
+ )
+ try {
+ if (localFileExisted) {
+ nativeBinding = require('./packager.linux-x64-gnu.node')
+ } else {
+ nativeBinding = require('@crabnebula/packager-linux-x64-gnu')
+ }
+ } catch (e) {
+ loadError = e
+ }
+ }
+ break
+ case 'arm64':
+ if (isMusl()) {
+ localFileExisted = existsSync(
+ join(__dirname, 'packager.linux-arm64-musl.node')
+ )
+ try {
+ if (localFileExisted) {
+ nativeBinding = require('./packager.linux-arm64-musl.node')
+ } else {
+ nativeBinding = require('@crabnebula/packager-linux-arm64-musl')
+ }
+ } catch (e) {
+ loadError = e
+ }
+ } else {
+ localFileExisted = existsSync(
+ join(__dirname, 'packager.linux-arm64-gnu.node')
+ )
+ try {
+ if (localFileExisted) {
+ nativeBinding = require('./packager.linux-arm64-gnu.node')
+ } else {
+ nativeBinding = require('@crabnebula/packager-linux-arm64-gnu')
+ }
+ } catch (e) {
+ loadError = e
+ }
+ }
+ break
+ case 'arm':
+ localFileExisted = existsSync(
+ join(__dirname, 'packager.linux-arm-gnueabihf.node')
+ )
+ try {
+ if (localFileExisted) {
+ nativeBinding = require('./packager.linux-arm-gnueabihf.node')
+ } else {
+ nativeBinding = require('@crabnebula/packager-linux-arm-gnueabihf')
+ }
+ } catch (e) {
+ loadError = e
+ }
+ break
+ default:
+ throw new Error(`Unsupported architecture on Linux: ${arch}`)
+ }
+ break
+ default:
+ throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
+}
+
+if (!nativeBinding) {
+ if (loadError) {
+ throw loadError
+ }
+ throw new Error(`Failed to load native binding`)
+}
+
+const { cli, package, initTracingSubscriber, logError } = nativeBinding
+
+module.exports.cli = cli
+module.exports.package = package
+module.exports.initTracingSubscriber = initTracingSubscriber
+module.exports.logError = logError
diff --git a/bindings/packager/nodejs/npm/darwin-arm64/README.md b/bindings/packager/nodejs/npm/darwin-arm64/README.md
new file mode 100644
index 00000000..75f7d0a9
--- /dev/null
+++ b/bindings/packager/nodejs/npm/darwin-arm64/README.md
@@ -0,0 +1,3 @@
+# `@crabnebula/packager-darwin-arm64`
+
+This is the **aarch64-apple-darwin** binary for `@crabnebula/packager`
diff --git a/bindings/packager/nodejs/npm/darwin-arm64/package.json b/bindings/packager/nodejs/npm/darwin-arm64/package.json
new file mode 100644
index 00000000..2e443b81
--- /dev/null
+++ b/bindings/packager/nodejs/npm/darwin-arm64/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "@crabnebula/packager-darwin-arm64",
+ "version": "0.0.0",
+ "os": [
+ "darwin"
+ ],
+ "cpu": [
+ "arm64"
+ ],
+ "main": "packager.darwin-arm64.node",
+ "files": [
+ "packager.darwin-arm64.node"
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+}
\ No newline at end of file
diff --git a/bindings/packager/nodejs/npm/darwin-x64/README.md b/bindings/packager/nodejs/npm/darwin-x64/README.md
new file mode 100644
index 00000000..14fa6f53
--- /dev/null
+++ b/bindings/packager/nodejs/npm/darwin-x64/README.md
@@ -0,0 +1,3 @@
+# `@crabnebula/packager-darwin-x64`
+
+This is the **x86_64-apple-darwin** binary for `@crabnebula/packager`
diff --git a/bindings/packager/nodejs/npm/darwin-x64/package.json b/bindings/packager/nodejs/npm/darwin-x64/package.json
new file mode 100644
index 00000000..04019e05
--- /dev/null
+++ b/bindings/packager/nodejs/npm/darwin-x64/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "@crabnebula/packager-darwin-x64",
+ "version": "0.0.0",
+ "os": [
+ "darwin"
+ ],
+ "cpu": [
+ "x64"
+ ],
+ "main": "packager.darwin-x64.node",
+ "files": [
+ "packager.darwin-x64.node"
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+}
\ No newline at end of file
diff --git a/bindings/packager/nodejs/npm/linux-arm-gnueabihf/README.md b/bindings/packager/nodejs/npm/linux-arm-gnueabihf/README.md
new file mode 100644
index 00000000..db69d228
--- /dev/null
+++ b/bindings/packager/nodejs/npm/linux-arm-gnueabihf/README.md
@@ -0,0 +1,3 @@
+# `@crabnebula/packager-linux-arm-gnueabihf`
+
+This is the **armv7-unknown-linux-gnueabihf** binary for `@crabnebula/packager`
diff --git a/bindings/packager/nodejs/npm/linux-arm-gnueabihf/package.json b/bindings/packager/nodejs/npm/linux-arm-gnueabihf/package.json
new file mode 100644
index 00000000..3cbf4288
--- /dev/null
+++ b/bindings/packager/nodejs/npm/linux-arm-gnueabihf/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "@crabnebula/packager-linux-arm-gnueabihf",
+ "version": "0.0.0",
+ "os": [
+ "linux"
+ ],
+ "cpu": [
+ "arm"
+ ],
+ "main": "packager.linux-arm-gnueabihf.node",
+ "files": [
+ "packager.linux-arm-gnueabihf.node"
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+}
\ No newline at end of file
diff --git a/bindings/packager/nodejs/npm/linux-arm64-gnu/README.md b/bindings/packager/nodejs/npm/linux-arm64-gnu/README.md
new file mode 100644
index 00000000..1644a8b1
--- /dev/null
+++ b/bindings/packager/nodejs/npm/linux-arm64-gnu/README.md
@@ -0,0 +1,3 @@
+# `@crabnebula/packager-linux-arm64-gnu`
+
+This is the **aarch64-unknown-linux-gnu** binary for `@crabnebula/packager`
diff --git a/bindings/packager/nodejs/npm/linux-arm64-gnu/package.json b/bindings/packager/nodejs/npm/linux-arm64-gnu/package.json
new file mode 100644
index 00000000..cf33490a
--- /dev/null
+++ b/bindings/packager/nodejs/npm/linux-arm64-gnu/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "@crabnebula/packager-linux-arm64-gnu",
+ "version": "0.0.0",
+ "os": [
+ "linux"
+ ],
+ "cpu": [
+ "arm64"
+ ],
+ "main": "packager.linux-arm64-gnu.node",
+ "files": [
+ "packager.linux-arm64-gnu.node"
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ },
+ "libc": [
+ "glibc"
+ ]
+}
\ No newline at end of file
diff --git a/bindings/packager/nodejs/npm/linux-arm64-musl/README.md b/bindings/packager/nodejs/npm/linux-arm64-musl/README.md
new file mode 100644
index 00000000..7785451a
--- /dev/null
+++ b/bindings/packager/nodejs/npm/linux-arm64-musl/README.md
@@ -0,0 +1,3 @@
+# `@crabnebula/packager-linux-arm64-musl`
+
+This is the **aarch64-unknown-linux-musl** binary for `@crabnebula/packager`
diff --git a/bindings/packager/nodejs/npm/linux-arm64-musl/package.json b/bindings/packager/nodejs/npm/linux-arm64-musl/package.json
new file mode 100644
index 00000000..f8314389
--- /dev/null
+++ b/bindings/packager/nodejs/npm/linux-arm64-musl/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "@crabnebula/packager-linux-arm64-musl",
+ "version": "0.0.0",
+ "os": [
+ "linux"
+ ],
+ "cpu": [
+ "arm64"
+ ],
+ "main": "packager.linux-arm64-musl.node",
+ "files": [
+ "packager.linux-arm64-musl.node"
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ },
+ "libc": [
+ "musl"
+ ]
+}
\ No newline at end of file
diff --git a/bindings/packager/nodejs/npm/linux-x64-gnu/README.md b/bindings/packager/nodejs/npm/linux-x64-gnu/README.md
new file mode 100644
index 00000000..ce3d010a
--- /dev/null
+++ b/bindings/packager/nodejs/npm/linux-x64-gnu/README.md
@@ -0,0 +1,3 @@
+# `@crabnebula/packager-linux-x64-gnu`
+
+This is the **x86_64-unknown-linux-gnu** binary for `@crabnebula/packager`
diff --git a/bindings/packager/nodejs/npm/linux-x64-gnu/package.json b/bindings/packager/nodejs/npm/linux-x64-gnu/package.json
new file mode 100644
index 00000000..c224c9f9
--- /dev/null
+++ b/bindings/packager/nodejs/npm/linux-x64-gnu/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "@crabnebula/packager-linux-x64-gnu",
+ "version": "0.0.0",
+ "os": [
+ "linux"
+ ],
+ "cpu": [
+ "x64"
+ ],
+ "main": "packager.linux-x64-gnu.node",
+ "files": [
+ "packager.linux-x64-gnu.node"
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ },
+ "libc": [
+ "glibc"
+ ]
+}
\ No newline at end of file
diff --git a/bindings/packager/nodejs/npm/linux-x64-musl/README.md b/bindings/packager/nodejs/npm/linux-x64-musl/README.md
new file mode 100644
index 00000000..9a89d7d2
--- /dev/null
+++ b/bindings/packager/nodejs/npm/linux-x64-musl/README.md
@@ -0,0 +1,3 @@
+# `@crabnebula/packager-linux-x64-musl`
+
+This is the **x86_64-unknown-linux-musl** binary for `@crabnebula/packager`
diff --git a/bindings/packager/nodejs/npm/linux-x64-musl/package.json b/bindings/packager/nodejs/npm/linux-x64-musl/package.json
new file mode 100644
index 00000000..8fe2d7bb
--- /dev/null
+++ b/bindings/packager/nodejs/npm/linux-x64-musl/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "@crabnebula/packager-linux-x64-musl",
+ "version": "0.0.0",
+ "os": [
+ "linux"
+ ],
+ "cpu": [
+ "x64"
+ ],
+ "main": "packager.linux-x64-musl.node",
+ "files": [
+ "packager.linux-x64-musl.node"
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ },
+ "libc": [
+ "musl"
+ ]
+}
\ No newline at end of file
diff --git a/bindings/packager/nodejs/npm/win32-arm64-msvc/README.md b/bindings/packager/nodejs/npm/win32-arm64-msvc/README.md
new file mode 100644
index 00000000..02038c7f
--- /dev/null
+++ b/bindings/packager/nodejs/npm/win32-arm64-msvc/README.md
@@ -0,0 +1,3 @@
+# `@crabnebula/packager-win32-arm64-msvc`
+
+This is the **aarch64-pc-windows-msvc** binary for `@crabnebula/packager`
diff --git a/bindings/packager/nodejs/npm/win32-arm64-msvc/package.json b/bindings/packager/nodejs/npm/win32-arm64-msvc/package.json
new file mode 100644
index 00000000..1a23622a
--- /dev/null
+++ b/bindings/packager/nodejs/npm/win32-arm64-msvc/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "@crabnebula/packager-win32-arm64-msvc",
+ "version": "0.0.0",
+ "os": [
+ "win32"
+ ],
+ "cpu": [
+ "arm64"
+ ],
+ "main": "packager.win32-arm64-msvc.node",
+ "files": [
+ "packager.win32-arm64-msvc.node"
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+}
\ No newline at end of file
diff --git a/bindings/packager/nodejs/npm/win32-ia32-msvc/README.md b/bindings/packager/nodejs/npm/win32-ia32-msvc/README.md
new file mode 100644
index 00000000..adbc51b3
--- /dev/null
+++ b/bindings/packager/nodejs/npm/win32-ia32-msvc/README.md
@@ -0,0 +1,3 @@
+# `@crabnebula/packager-win32-ia32-msvc`
+
+This is the **i686-pc-windows-msvc** binary for `@crabnebula/packager`
diff --git a/bindings/packager/nodejs/npm/win32-ia32-msvc/package.json b/bindings/packager/nodejs/npm/win32-ia32-msvc/package.json
new file mode 100644
index 00000000..228bee97
--- /dev/null
+++ b/bindings/packager/nodejs/npm/win32-ia32-msvc/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "@crabnebula/packager-win32-ia32-msvc",
+ "version": "0.0.0",
+ "os": [
+ "win32"
+ ],
+ "cpu": [
+ "ia32"
+ ],
+ "main": "packager.win32-ia32-msvc.node",
+ "files": [
+ "packager.win32-ia32-msvc.node"
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+}
\ No newline at end of file
diff --git a/bindings/packager/nodejs/npm/win32-x64-msvc/README.md b/bindings/packager/nodejs/npm/win32-x64-msvc/README.md
new file mode 100644
index 00000000..1fa0e41c
--- /dev/null
+++ b/bindings/packager/nodejs/npm/win32-x64-msvc/README.md
@@ -0,0 +1,3 @@
+# `@crabnebula/packager-win32-x64-msvc`
+
+This is the **x86_64-pc-windows-msvc** binary for `@crabnebula/packager`
diff --git a/bindings/packager/nodejs/npm/win32-x64-msvc/package.json b/bindings/packager/nodejs/npm/win32-x64-msvc/package.json
new file mode 100644
index 00000000..9f167b03
--- /dev/null
+++ b/bindings/packager/nodejs/npm/win32-x64-msvc/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "@crabnebula/packager-win32-x64-msvc",
+ "version": "0.0.0",
+ "os": [
+ "win32"
+ ],
+ "cpu": [
+ "x64"
+ ],
+ "main": "packager.win32-x64-msvc.node",
+ "files": [
+ "packager.win32-x64-msvc.node"
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+}
\ No newline at end of file
diff --git a/bindings/packager/nodejs/package.json b/bindings/packager/nodejs/package.json
new file mode 100644
index 00000000..0fa6ebb4
--- /dev/null
+++ b/bindings/packager/nodejs/package.json
@@ -0,0 +1,61 @@
+{
+ "name": "@crabnebula/packager",
+ "version": "0.0.0",
+ "main": "build/index.js",
+ "types": "build/index.d.ts",
+ "author": {
+ "name": "CrabNebula Ltd."
+ },
+ "description": "Executable packager and bundler distributed as a CLI and library",
+ "bin": {
+ "packager": "./packager.js"
+ },
+ "napi": {
+ "name": "packager",
+ "triples": {
+ "additional": [
+ "aarch64-apple-darwin",
+ "aarch64-unknown-linux-gnu",
+ "aarch64-unknown-linux-musl",
+ "aarch64-pc-windows-msvc",
+ "armv7-unknown-linux-gnueabihf",
+ "x86_64-unknown-linux-musl",
+ "i686-pc-windows-msvc"
+ ]
+ }
+ },
+ "license": "MIT",
+ "devDependencies": {
+ "@napi-rs/cli": "^2.16.5",
+ "@types/fs-extra": "^11.0.3",
+ "@types/node": "^20.8.10",
+ "ava": "^5.1.1",
+ "json-schema-to-typescript": "^13.1.1",
+ "typescript": "^5.2.2"
+ },
+ "ava": {
+ "timeout": "3m"
+ },
+ "engines": {
+ "node": ">= 10"
+ },
+ "scripts": {
+ "artifacts": "napi artifacts",
+ "build:config": "node generate-config-type.js",
+ "build:ts": "rm -rf build/ && tsc",
+ "build": "pnpm build:config && pnpm build:ts && napi build --platform --profile release-size-optimized",
+ "build:debug": "pnpm build:config && pnpm build:ts && napi build --platform",
+ "prepublishOnly": "napi prepublish -t npm --gh-release-id $RELEASE_ID",
+ "pretest": "npm run build:ts",
+ "test": "ava --no-worker-threads",
+ "universal": "napi universal",
+ "version": "napi version"
+ },
+ "dependencies": {
+ "@electron/get": "^3.0.0",
+ "deepmerge": "^4.3.1",
+ "extract-zip": "^2.0.1",
+ "fs-extra": "^11.1.1",
+ "galactus": "^1.0.0"
+ }
+}
diff --git a/bindings/packager/nodejs/packager.js b/bindings/packager/nodejs/packager.js
new file mode 100644
index 00000000..ad99e28c
--- /dev/null
+++ b/bindings/packager/nodejs/packager.js
@@ -0,0 +1,53 @@
+#!/usr/bin/env node
+
+const cli = require('./build')
+const path = require('path')
+
+const [bin, script, ...args] = process.argv
+const binStem = path.parse(bin).name.toLowerCase()
+
+// We want to make a helpful binary name for the underlying CLI helper, if we
+// can successfully detect what command likely started the execution.
+let binName
+
+// deno run -A --unstable --node-modules-dir npm:@crabnebula/packager
+if (bin === '@crabnebula/packager') {
+ binName = '@crabnebula/packager'
+}
+// Even if started by a package manager, the binary will be NodeJS.
+// Some distribution still use "nodejs" as the binary name.
+else if (binStem.match(/(nodejs|node|bun)\-?([0-9]*)*$/g)) {
+ const managerStem = process.env.npm_execpath ?
+ path.parse(process.env.npm_execpath).name.toLowerCase() :
+ null
+ if (managerStem) {
+ let manager
+ switch (managerStem) {
+ // Only supported package manager that has a different filename is npm.
+ case 'npm-cli':
+ manager = 'npm'
+ break
+
+ // Yarn, pnpm, and bun have the same stem name as their bin.
+ // We assume all unknown package managers do as well.
+ default:
+ manager = managerStem
+ break
+ }
+
+ binName = `${manager} run ${process.env.npm_lifecycle_event}`
+ } else {
+ // Assume running NodeJS if we didn't detect a manager from the env.
+ // We normalize the path to prevent the script's absolute path being used.
+ const scriptNormal = path.normalize(path.relative(process.cwd(), script))
+ binName = `${binStem} ${scriptNormal}`
+ }
+} else {
+ // We don't know what started it, assume it's already stripped.
+ args.unshift(bin)
+}
+
+cli.cli(args, binName).catch((err) => {
+ cli.logError(err.message)
+ process.exit(1)
+})
\ No newline at end of file
diff --git a/bindings/packager/nodejs/pnpm-lock.yaml b/bindings/packager/nodejs/pnpm-lock.yaml
new file mode 100644
index 00000000..41a908e8
--- /dev/null
+++ b/bindings/packager/nodejs/pnpm-lock.yaml
@@ -0,0 +1,1772 @@
+lockfileVersion: '6.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+dependencies:
+ '@electron/get':
+ specifier: ^3.0.0
+ version: 3.0.0
+ deepmerge:
+ specifier: ^4.3.1
+ version: 4.3.1
+ extract-zip:
+ specifier: ^2.0.1
+ version: 2.0.1
+ fs-extra:
+ specifier: ^11.1.1
+ version: 11.1.1
+ galactus:
+ specifier: ^1.0.0
+ version: 1.0.0
+
+devDependencies:
+ '@napi-rs/cli':
+ specifier: ^2.16.5
+ version: 2.16.5
+ '@types/fs-extra':
+ specifier: ^11.0.3
+ version: 11.0.3
+ '@types/node':
+ specifier: ^20.8.10
+ version: 20.8.10
+ ava:
+ specifier: ^5.1.1
+ version: 5.3.1
+ json-schema-to-typescript:
+ specifier: ^13.1.1
+ version: 13.1.1
+ typescript:
+ specifier: ^5.2.2
+ version: 5.2.2
+
+packages:
+
+ /@bcherny/json-schema-ref-parser@10.0.5-fork:
+ resolution: {integrity: sha512-E/jKbPoca1tfUPj3iSbitDZTGnq6FUFjkH6L8U2oDwSuwK1WhnnVtCG7oFOTg/DDnyoXbQYUiUiGOibHqaGVnw==}
+ engines: {node: '>= 16'}
+ dependencies:
+ '@jsdevtools/ono': 7.1.3
+ '@types/json-schema': 7.0.14
+ call-me-maybe: 1.0.2
+ js-yaml: 4.1.0
+ dev: true
+
+ /@electron/get@3.0.0:
+ resolution: {integrity: sha512-hLv4BYFiyrNRI+U0Mm2X7RxCCdJLkDUn8GCEp9QJzbLpZRko+UaLlCjOMkj6TEtirNLPyBA7y1SeGfnpOB21aQ==}
+ engines: {node: '>=14'}
+ dependencies:
+ debug: 4.3.4
+ env-paths: 2.2.1
+ fs-extra: 8.1.0
+ got: 11.8.6
+ progress: 2.0.3
+ semver: 6.3.1
+ sumchecker: 3.0.1
+ optionalDependencies:
+ global-agent: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /@jsdevtools/ono@7.1.3:
+ resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==}
+ dev: true
+
+ /@napi-rs/cli@2.16.5:
+ resolution: {integrity: sha512-mFEzwrg4IOLngGd2/P6yeqIWgwQNn59Z08n1rndu6kLDq1gg954NH9cM1O9Da0RJuybt46p43lqgSsnAY2mxqA==}
+ engines: {node: '>= 10'}
+ hasBin: true
+ dev: true
+
+ /@nodelib/fs.scandir@2.1.5:
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+ dev: true
+
+ /@nodelib/fs.stat@2.0.5:
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /@nodelib/fs.walk@1.2.8:
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.15.0
+ dev: true
+
+ /@sindresorhus/is@4.6.0:
+ resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /@szmarczak/http-timer@4.0.6:
+ resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
+ engines: {node: '>=10'}
+ dependencies:
+ defer-to-connect: 2.0.1
+ dev: false
+
+ /@types/cacheable-request@6.0.3:
+ resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==}
+ dependencies:
+ '@types/http-cache-semantics': 4.0.3
+ '@types/keyv': 3.1.4
+ '@types/node': 20.8.10
+ '@types/responselike': 1.0.2
+ dev: false
+
+ /@types/fs-extra@11.0.3:
+ resolution: {integrity: sha512-sF59BlXtUdzEAL1u0MSvuzWd7PdZvZEtnaVkzX5mjpdWTJ8brG0jUqve3jPCzSzvAKKMHTG8F8o/WMQLtleZdQ==}
+ dependencies:
+ '@types/jsonfile': 6.1.3
+ '@types/node': 20.8.10
+ dev: true
+
+ /@types/glob@7.2.0:
+ resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
+ dependencies:
+ '@types/minimatch': 5.1.2
+ '@types/node': 20.8.10
+ dev: true
+
+ /@types/http-cache-semantics@4.0.3:
+ resolution: {integrity: sha512-V46MYLFp08Wf2mmaBhvgjStM3tPa+2GAdy/iqoX+noX1//zje2x4XmrIU0cAwyClATsTmahbtoQ2EwP7I5WSiA==}
+ dev: false
+
+ /@types/json-schema@7.0.14:
+ resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==}
+ dev: true
+
+ /@types/jsonfile@6.1.3:
+ resolution: {integrity: sha512-/yqTk2SZ1wIezK0hiRZD7RuSf4B3whFxFamB1kGStv+8zlWScTMcHanzfc0XKWs5vA1TkHeckBlOyM8jxU8nHA==}
+ dependencies:
+ '@types/node': 20.8.10
+ dev: true
+
+ /@types/keyv@3.1.4:
+ resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
+ dependencies:
+ '@types/node': 20.8.10
+ dev: false
+
+ /@types/lodash@4.14.200:
+ resolution: {integrity: sha512-YI/M/4HRImtNf3pJgbF+W6FrXovqj+T+/HpENLTooK9PnkacBsDpeP3IpHab40CClUfhNmdM2WTNP2sa2dni5Q==}
+ dev: true
+
+ /@types/minimatch@5.1.2:
+ resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
+ dev: true
+
+ /@types/node@20.8.10:
+ resolution: {integrity: sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==}
+ dependencies:
+ undici-types: 5.26.5
+
+ /@types/prettier@2.7.3:
+ resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==}
+ dev: true
+
+ /@types/responselike@1.0.2:
+ resolution: {integrity: sha512-/4YQT5Kp6HxUDb4yhRkm0bJ7TbjvTddqX7PZ5hz6qV3pxSo72f/6YPRo+Mu2DU307tm9IioO69l7uAwn5XNcFA==}
+ dependencies:
+ '@types/node': 20.8.10
+ dev: false
+
+ /@types/yauzl@2.10.2:
+ resolution: {integrity: sha512-Km7XAtUIduROw7QPgvcft0lIupeG8a8rdKL8RiSyKvlE7dYY31fEn41HVuQsRFDuROA8tA4K2UVL+WdfFmErBA==}
+ requiresBuild: true
+ dependencies:
+ '@types/node': 20.8.10
+ dev: false
+ optional: true
+
+ /acorn-walk@8.3.0:
+ resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
+ /acorn@8.11.2:
+ resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /aggregate-error@4.0.1:
+ resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==}
+ engines: {node: '>=12'}
+ dependencies:
+ clean-stack: 4.2.0
+ indent-string: 5.0.0
+ dev: true
+
+ /ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /ansi-regex@6.0.1:
+ resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ color-convert: 2.0.1
+ dev: true
+
+ /ansi-styles@6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /any-promise@1.3.0:
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+ dev: true
+
+ /anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+ dev: true
+
+ /argparse@1.0.10:
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+ dependencies:
+ sprintf-js: 1.0.3
+ dev: true
+
+ /argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ dev: true
+
+ /array-find-index@1.0.2:
+ resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /arrgv@1.0.2:
+ resolution: {integrity: sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==}
+ engines: {node: '>=8.0.0'}
+ dev: true
+
+ /arrify@3.0.0:
+ resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /ava@5.3.1:
+ resolution: {integrity: sha512-Scv9a4gMOXB6+ni4toLuhAm9KYWEjsgBglJl+kMGI5+IVDt120CCDZyB5HNU9DjmLI2t4I0GbnxGLmmRfGTJGg==}
+ engines: {node: '>=14.19 <15 || >=16.15 <17 || >=18'}
+ hasBin: true
+ peerDependencies:
+ '@ava/typescript': '*'
+ peerDependenciesMeta:
+ '@ava/typescript':
+ optional: true
+ dependencies:
+ acorn: 8.11.2
+ acorn-walk: 8.3.0
+ ansi-styles: 6.2.1
+ arrgv: 1.0.2
+ arrify: 3.0.0
+ callsites: 4.1.0
+ cbor: 8.1.0
+ chalk: 5.3.0
+ chokidar: 3.5.3
+ chunkd: 2.0.1
+ ci-info: 3.9.0
+ ci-parallel-vars: 1.0.1
+ clean-yaml-object: 0.1.0
+ cli-truncate: 3.1.0
+ code-excerpt: 4.0.0
+ common-path-prefix: 3.0.0
+ concordance: 5.0.4
+ currently-unhandled: 0.4.1
+ debug: 4.3.4
+ emittery: 1.0.1
+ figures: 5.0.0
+ globby: 13.2.2
+ ignore-by-default: 2.1.0
+ indent-string: 5.0.0
+ is-error: 2.2.2
+ is-plain-object: 5.0.0
+ is-promise: 4.0.0
+ matcher: 5.0.0
+ mem: 9.0.2
+ ms: 2.1.3
+ p-event: 5.0.1
+ p-map: 5.5.0
+ picomatch: 2.3.1
+ pkg-conf: 4.0.0
+ plur: 5.1.0
+ pretty-ms: 8.0.0
+ resolve-cwd: 3.0.0
+ stack-utils: 2.0.6
+ strip-ansi: 7.1.0
+ supertap: 3.0.1
+ temp-dir: 3.0.0
+ write-file-atomic: 5.0.1
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ dev: true
+
+ /binary-extensions@2.2.0:
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /blueimp-md5@2.19.0:
+ resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==}
+ dev: true
+
+ /boolean@3.2.0:
+ resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+ dev: true
+
+ /braces@3.0.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.0.1
+ dev: true
+
+ /buffer-crc32@0.2.13:
+ resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
+ dev: false
+
+ /cacheable-lookup@5.0.4:
+ resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==}
+ engines: {node: '>=10.6.0'}
+ dev: false
+
+ /cacheable-request@7.0.4:
+ resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==}
+ engines: {node: '>=8'}
+ dependencies:
+ clone-response: 1.0.3
+ get-stream: 5.2.0
+ http-cache-semantics: 4.1.1
+ keyv: 4.5.4
+ lowercase-keys: 2.0.0
+ normalize-url: 6.1.0
+ responselike: 2.0.1
+ dev: false
+
+ /call-me-maybe@1.0.2:
+ resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==}
+ dev: true
+
+ /callsites@4.1.0:
+ resolution: {integrity: sha512-aBMbD1Xxay75ViYezwT40aQONfr+pSXTHwNKvIXhXD6+LY3F1dLIcceoC5OZKBVHbXcysz1hL9D2w0JJIMXpUw==}
+ engines: {node: '>=12.20'}
+ dev: true
+
+ /cbor@8.1.0:
+ resolution: {integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==}
+ engines: {node: '>=12.19'}
+ dependencies:
+ nofilter: 3.1.0
+ dev: true
+
+ /chalk@5.3.0:
+ resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ dev: true
+
+ /chokidar@3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
+ /chunkd@2.0.1:
+ resolution: {integrity: sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==}
+ dev: true
+
+ /ci-info@3.9.0:
+ resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /ci-parallel-vars@1.0.1:
+ resolution: {integrity: sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==}
+ dev: true
+
+ /clean-stack@4.2.0:
+ resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==}
+ engines: {node: '>=12'}
+ dependencies:
+ escape-string-regexp: 5.0.0
+ dev: true
+
+ /clean-yaml-object@0.1.0:
+ resolution: {integrity: sha512-3yONmlN9CSAkzNwnRCiJQ7Q2xK5mWuEfL3PuTZcAUzhObbXsfsnMptJzXwz93nc5zn9V9TwCVMmV7w4xsm43dw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /cli-color@2.0.3:
+ resolution: {integrity: sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==}
+ engines: {node: '>=0.10'}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.62
+ es6-iterator: 2.0.3
+ memoizee: 0.4.15
+ timers-ext: 0.1.7
+ dev: true
+
+ /cli-truncate@3.1.0:
+ resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ slice-ansi: 5.0.0
+ string-width: 5.1.2
+ dev: true
+
+ /cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+ dev: true
+
+ /clone-response@1.0.3:
+ resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==}
+ dependencies:
+ mimic-response: 1.0.1
+ dev: false
+
+ /code-excerpt@4.0.0:
+ resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ convert-to-spaces: 2.0.1
+ dev: true
+
+ /color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+ dependencies:
+ color-name: 1.1.4
+ dev: true
+
+ /color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ dev: true
+
+ /common-path-prefix@3.0.0:
+ resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
+ dev: true
+
+ /concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ dev: true
+
+ /concordance@5.0.4:
+ resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==}
+ engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'}
+ dependencies:
+ date-time: 3.1.0
+ esutils: 2.0.3
+ fast-diff: 1.3.0
+ js-string-escape: 1.0.1
+ lodash: 4.17.21
+ md5-hex: 3.0.1
+ semver: 7.5.4
+ well-known-symbols: 2.0.0
+ dev: true
+
+ /convert-to-spaces@2.0.1:
+ resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
+
+ /currently-unhandled@0.4.1:
+ resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ array-find-index: 1.0.2
+ dev: true
+
+ /d@1.0.1:
+ resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==}
+ dependencies:
+ es5-ext: 0.10.62
+ type: 1.2.0
+ dev: true
+
+ /date-time@3.1.0:
+ resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==}
+ engines: {node: '>=6'}
+ dependencies:
+ time-zone: 1.0.0
+ dev: true
+
+ /debug@4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+
+ /decompress-response@6.0.0:
+ resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ mimic-response: 3.1.0
+ dev: false
+
+ /deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /defer-to-connect@2.0.1:
+ resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /define-data-property@1.1.1:
+ resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==}
+ engines: {node: '>= 0.4'}
+ requiresBuild: true
+ dependencies:
+ get-intrinsic: 1.2.2
+ gopd: 1.0.1
+ has-property-descriptors: 1.0.1
+ dev: false
+ optional: true
+
+ /define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+ requiresBuild: true
+ dependencies:
+ define-data-property: 1.1.1
+ has-property-descriptors: 1.0.1
+ object-keys: 1.1.1
+ dev: false
+ optional: true
+
+ /detect-node@2.1.0:
+ resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /dir-glob@3.0.1:
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+ engines: {node: '>=8'}
+ dependencies:
+ path-type: 4.0.0
+ dev: true
+
+ /eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ dev: true
+
+ /emittery@1.0.1:
+ resolution: {integrity: sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ==}
+ engines: {node: '>=14.16'}
+ dev: true
+
+ /emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ dev: true
+
+ /emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ dev: true
+
+ /end-of-stream@1.4.4:
+ resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
+ dependencies:
+ once: 1.4.0
+ dev: false
+
+ /env-paths@2.2.1:
+ resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /es5-ext@0.10.62:
+ resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==}
+ engines: {node: '>=0.10'}
+ requiresBuild: true
+ dependencies:
+ es6-iterator: 2.0.3
+ es6-symbol: 3.1.3
+ next-tick: 1.1.0
+ dev: true
+
+ /es6-error@4.1.1:
+ resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /es6-iterator@2.0.3:
+ resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.62
+ es6-symbol: 3.1.3
+ dev: true
+
+ /es6-symbol@3.1.3:
+ resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==}
+ dependencies:
+ d: 1.0.1
+ ext: 1.7.0
+ dev: true
+
+ /es6-weak-map@2.0.3:
+ resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.62
+ es6-iterator: 2.0.3
+ es6-symbol: 3.1.3
+ dev: true
+
+ /escalade@3.1.1:
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /escape-string-regexp@2.0.0:
+ resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /escape-string-regexp@5.0.0:
+ resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /esprima@4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
+ /esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /event-emitter@0.3.5:
+ resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.62
+ dev: true
+
+ /ext@1.7.0:
+ resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==}
+ dependencies:
+ type: 2.7.2
+ dev: true
+
+ /extract-zip@2.0.1:
+ resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==}
+ engines: {node: '>= 10.17.0'}
+ hasBin: true
+ dependencies:
+ debug: 4.3.4
+ get-stream: 5.2.0
+ yauzl: 2.10.0
+ optionalDependencies:
+ '@types/yauzl': 2.10.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /fast-diff@1.3.0:
+ resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
+ dev: true
+
+ /fast-glob@3.3.1:
+ resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
+ engines: {node: '>=8.6.0'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.5
+ dev: true
+
+ /fastq@1.15.0:
+ resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
+ dependencies:
+ reusify: 1.0.4
+ dev: true
+
+ /fd-slicer@1.1.0:
+ resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
+ dependencies:
+ pend: 1.2.0
+ dev: false
+
+ /figures@5.0.0:
+ resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==}
+ engines: {node: '>=14'}
+ dependencies:
+ escape-string-regexp: 5.0.0
+ is-unicode-supported: 1.3.0
+ dev: true
+
+ /fill-range@7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+ dev: true
+
+ /find-up@6.3.0:
+ resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ locate-path: 7.2.0
+ path-exists: 5.0.0
+ dev: true
+
+ /flora-colossus@2.0.0:
+ resolution: {integrity: sha512-dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==}
+ engines: {node: '>= 12'}
+ dependencies:
+ debug: 4.3.4
+ fs-extra: 10.1.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /fs-extra@10.1.0:
+ resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+ dev: false
+
+ /fs-extra@11.1.1:
+ resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==}
+ engines: {node: '>=14.14'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+ dev: false
+
+ /fs-extra@8.1.0:
+ resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
+ engines: {node: '>=6 <7 || >=8'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 4.0.0
+ universalify: 0.1.2
+ dev: false
+
+ /fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+ dev: true
+
+ /fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /galactus@1.0.0:
+ resolution: {integrity: sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ==}
+ engines: {node: '>= 12'}
+ dependencies:
+ debug: 4.3.4
+ flora-colossus: 2.0.0
+ fs-extra: 10.1.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+ dev: true
+
+ /get-intrinsic@1.2.2:
+ resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==}
+ requiresBuild: true
+ dependencies:
+ function-bind: 1.1.2
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ hasown: 2.0.0
+ dev: false
+ optional: true
+
+ /get-stdin@8.0.0:
+ resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /get-stream@5.2.0:
+ resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
+ engines: {node: '>=8'}
+ dependencies:
+ pump: 3.0.0
+ dev: false
+
+ /glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
+ /glob-promise@4.2.2(glob@7.2.3):
+ resolution: {integrity: sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ glob: ^7.1.6
+ dependencies:
+ '@types/glob': 7.2.0
+ glob: 7.2.3
+ dev: true
+
+ /glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+ dev: true
+
+ /global-agent@3.0.0:
+ resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==}
+ engines: {node: '>=10.0'}
+ requiresBuild: true
+ dependencies:
+ boolean: 3.2.0
+ es6-error: 4.1.1
+ matcher: 3.0.0
+ roarr: 2.15.4
+ semver: 7.5.4
+ serialize-error: 7.0.1
+ dev: false
+ optional: true
+
+ /globalthis@1.0.3:
+ resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
+ engines: {node: '>= 0.4'}
+ requiresBuild: true
+ dependencies:
+ define-properties: 1.2.1
+ dev: false
+ optional: true
+
+ /globby@13.2.2:
+ resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ dir-glob: 3.0.1
+ fast-glob: 3.3.1
+ ignore: 5.2.4
+ merge2: 1.4.1
+ slash: 4.0.0
+ dev: true
+
+ /gopd@1.0.1:
+ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
+ requiresBuild: true
+ dependencies:
+ get-intrinsic: 1.2.2
+ dev: false
+ optional: true
+
+ /got@11.8.6:
+ resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==}
+ engines: {node: '>=10.19.0'}
+ dependencies:
+ '@sindresorhus/is': 4.6.0
+ '@szmarczak/http-timer': 4.0.6
+ '@types/cacheable-request': 6.0.3
+ '@types/responselike': 1.0.2
+ cacheable-lookup: 5.0.4
+ cacheable-request: 7.0.4
+ decompress-response: 6.0.0
+ http2-wrapper: 1.0.3
+ lowercase-keys: 2.0.0
+ p-cancelable: 2.1.1
+ responselike: 2.0.1
+ dev: false
+
+ /graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ dev: false
+
+ /has-property-descriptors@1.0.1:
+ resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==}
+ requiresBuild: true
+ dependencies:
+ get-intrinsic: 1.2.2
+ dev: false
+ optional: true
+
+ /has-proto@1.0.1:
+ resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
+ engines: {node: '>= 0.4'}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /has-symbols@1.0.3:
+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
+ engines: {node: '>= 0.4'}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /hasown@2.0.0:
+ resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
+ engines: {node: '>= 0.4'}
+ requiresBuild: true
+ dependencies:
+ function-bind: 1.1.2
+ dev: false
+ optional: true
+
+ /http-cache-semantics@4.1.1:
+ resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
+ dev: false
+
+ /http2-wrapper@1.0.3:
+ resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==}
+ engines: {node: '>=10.19.0'}
+ dependencies:
+ quick-lru: 5.1.1
+ resolve-alpn: 1.2.1
+ dev: false
+
+ /ignore-by-default@2.1.0:
+ resolution: {integrity: sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==}
+ engines: {node: '>=10 <11 || >=12 <13 || >=14'}
+ dev: true
+
+ /ignore@5.2.4:
+ resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
+ engines: {node: '>= 4'}
+ dev: true
+
+ /imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+ dev: true
+
+ /indent-string@5.0.0:
+ resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+ dev: true
+
+ /inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ dev: true
+
+ /irregular-plurals@3.5.0:
+ resolution: {integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.2.0
+ dev: true
+
+ /is-error@2.2.2:
+ resolution: {integrity: sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==}
+ dev: true
+
+ /is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-fullwidth-code-point@4.0.0:
+ resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+ dev: true
+
+ /is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+ dev: true
+
+ /is-plain-object@5.0.0:
+ resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-promise@2.2.2:
+ resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==}
+ dev: true
+
+ /is-promise@4.0.0:
+ resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
+ dev: true
+
+ /is-unicode-supported@1.3.0:
+ resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /js-string-escape@1.0.1:
+ resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==}
+ engines: {node: '>= 0.8'}
+ dev: true
+
+ /js-yaml@3.14.1:
+ resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ hasBin: true
+ dependencies:
+ argparse: 1.0.10
+ esprima: 4.0.1
+ dev: true
+
+ /js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+ dev: true
+
+ /json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+ dev: false
+
+ /json-schema-to-typescript@13.1.1:
+ resolution: {integrity: sha512-F3CYhtA7F3yPbb8vF7sFchk/2dnr1/yTKf8RcvoNpjnh67ZS/ZMH1ElLt5KHAtf2/bymiejLQQszszPWEeTdSw==}
+ engines: {node: '>=12.0.0'}
+ hasBin: true
+ dependencies:
+ '@bcherny/json-schema-ref-parser': 10.0.5-fork
+ '@types/json-schema': 7.0.14
+ '@types/lodash': 4.14.200
+ '@types/prettier': 2.7.3
+ cli-color: 2.0.3
+ get-stdin: 8.0.0
+ glob: 7.2.3
+ glob-promise: 4.2.2(glob@7.2.3)
+ is-glob: 4.0.3
+ lodash: 4.17.21
+ minimist: 1.2.8
+ mkdirp: 1.0.4
+ mz: 2.7.0
+ prettier: 2.8.8
+ dev: true
+
+ /json-stringify-safe@5.0.1:
+ resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /jsonfile@4.0.0:
+ resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
+ optionalDependencies:
+ graceful-fs: 4.2.11
+ dev: false
+
+ /jsonfile@6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+ dev: false
+
+ /keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+ dependencies:
+ json-buffer: 3.0.1
+ dev: false
+
+ /load-json-file@7.0.1:
+ resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
+
+ /locate-path@7.2.0:
+ resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ p-locate: 6.0.0
+ dev: true
+
+ /lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ dev: true
+
+ /lowercase-keys@2.0.0:
+ resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
+ engines: {node: '>=8'}
+ dev: false
+
+ /lru-cache@6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+ dependencies:
+ yallist: 4.0.0
+
+ /lru-queue@0.1.0:
+ resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==}
+ dependencies:
+ es5-ext: 0.10.62
+ dev: true
+
+ /map-age-cleaner@0.1.3:
+ resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
+ engines: {node: '>=6'}
+ dependencies:
+ p-defer: 1.0.0
+ dev: true
+
+ /matcher@3.0.0:
+ resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==}
+ engines: {node: '>=10'}
+ requiresBuild: true
+ dependencies:
+ escape-string-regexp: 4.0.0
+ dev: false
+ optional: true
+
+ /matcher@5.0.0:
+ resolution: {integrity: sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ escape-string-regexp: 5.0.0
+ dev: true
+
+ /md5-hex@3.0.1:
+ resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==}
+ engines: {node: '>=8'}
+ dependencies:
+ blueimp-md5: 2.19.0
+ dev: true
+
+ /mem@9.0.2:
+ resolution: {integrity: sha512-F2t4YIv9XQUBHt6AOJ0y7lSmP1+cY7Fm1DRh9GClTGzKST7UWLMx6ly9WZdLH/G/ppM5RL4MlQfRT71ri9t19A==}
+ engines: {node: '>=12.20'}
+ dependencies:
+ map-age-cleaner: 0.1.3
+ mimic-fn: 4.0.0
+ dev: true
+
+ /memoizee@0.4.15:
+ resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.62
+ es6-weak-map: 2.0.3
+ event-emitter: 0.3.5
+ is-promise: 2.2.2
+ lru-queue: 0.1.0
+ next-tick: 1.1.0
+ timers-ext: 0.1.7
+ dev: true
+
+ /merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /micromatch@4.0.5:
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+ dev: true
+
+ /mimic-fn@4.0.0:
+ resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /mimic-response@1.0.1:
+ resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
+ engines: {node: '>=4'}
+ dev: false
+
+ /mimic-response@3.1.0:
+ resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ dependencies:
+ brace-expansion: 1.1.11
+ dev: true
+
+ /minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+ dev: true
+
+ /mkdirp@1.0.4:
+ resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dev: true
+
+ /ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+
+ /ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ dev: true
+
+ /mz@2.7.0:
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+ dependencies:
+ any-promise: 1.3.0
+ object-assign: 4.1.1
+ thenify-all: 1.6.0
+ dev: true
+
+ /next-tick@1.1.0:
+ resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
+ dev: true
+
+ /nofilter@3.1.0:
+ resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==}
+ engines: {node: '>=12.19'}
+ dev: true
+
+ /normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /normalize-url@6.1.0:
+ resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ dependencies:
+ wrappy: 1.0.2
+
+ /p-cancelable@2.1.1:
+ resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==}
+ engines: {node: '>=8'}
+ dev: false
+
+ /p-defer@1.0.0:
+ resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /p-event@5.0.1:
+ resolution: {integrity: sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ p-timeout: 5.1.0
+ dev: true
+
+ /p-limit@4.0.0:
+ resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ yocto-queue: 1.0.0
+ dev: true
+
+ /p-locate@6.0.0:
+ resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ p-limit: 4.0.0
+ dev: true
+
+ /p-map@5.5.0:
+ resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==}
+ engines: {node: '>=12'}
+ dependencies:
+ aggregate-error: 4.0.1
+ dev: true
+
+ /p-timeout@5.1.0:
+ resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /parse-ms@3.0.0:
+ resolution: {integrity: sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /path-exists@5.0.0:
+ resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
+
+ /path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /pend@1.2.0:
+ resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
+ dev: false
+
+ /picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+ dev: true
+
+ /pkg-conf@4.0.0:
+ resolution: {integrity: sha512-7dmgi4UY4qk+4mj5Cd8v/GExPo0K+SlY+hulOSdfZ/T6jVH6//y7NtzZo5WrfhDBxuQ0jCa7fLZmNaNh7EWL/w==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ find-up: 6.3.0
+ load-json-file: 7.0.1
+ dev: true
+
+ /plur@5.1.0:
+ resolution: {integrity: sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ irregular-plurals: 3.5.0
+ dev: true
+
+ /prettier@2.8.8:
+ resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ dev: true
+
+ /pretty-ms@8.0.0:
+ resolution: {integrity: sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==}
+ engines: {node: '>=14.16'}
+ dependencies:
+ parse-ms: 3.0.0
+ dev: true
+
+ /progress@2.0.3:
+ resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
+ engines: {node: '>=0.4.0'}
+ dev: false
+
+ /pump@3.0.0:
+ resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
+ dev: false
+
+ /queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ dev: true
+
+ /quick-lru@5.1.1:
+ resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+ dev: true
+
+ /require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /resolve-alpn@1.2.1:
+ resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
+ dev: false
+
+ /resolve-cwd@3.0.0:
+ resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ resolve-from: 5.0.0
+ dev: true
+
+ /resolve-from@5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /responselike@2.0.1:
+ resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==}
+ dependencies:
+ lowercase-keys: 2.0.0
+ dev: false
+
+ /reusify@1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ dev: true
+
+ /roarr@2.15.4:
+ resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==}
+ engines: {node: '>=8.0'}
+ requiresBuild: true
+ dependencies:
+ boolean: 3.2.0
+ detect-node: 2.1.0
+ globalthis: 1.0.3
+ json-stringify-safe: 5.0.1
+ semver-compare: 1.0.0
+ sprintf-js: 1.1.3
+ dev: false
+ optional: true
+
+ /run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ dependencies:
+ queue-microtask: 1.2.3
+ dev: true
+
+ /semver-compare@1.0.0:
+ resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+ dev: false
+
+ /semver@7.5.4:
+ resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+
+ /serialize-error@7.0.1:
+ resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==}
+ engines: {node: '>=10'}
+ dependencies:
+ type-fest: 0.13.1
+
+ /signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+ dev: true
+
+ /slash@4.0.0:
+ resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /slice-ansi@5.0.0:
+ resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-styles: 6.2.1
+ is-fullwidth-code-point: 4.0.0
+ dev: true
+
+ /sprintf-js@1.0.3:
+ resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+ dev: true
+
+ /sprintf-js@1.1.3:
+ resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /stack-utils@2.0.6:
+ resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ escape-string-regexp: 2.0.0
+ dev: true
+
+ /string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+ dev: true
+
+ /string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
+ dev: true
+
+ /strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-regex: 5.0.1
+ dev: true
+
+ /strip-ansi@7.1.0:
+ resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-regex: 6.0.1
+ dev: true
+
+ /sumchecker@3.0.1:
+ resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==}
+ engines: {node: '>= 8.0'}
+ dependencies:
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /supertap@3.0.1:
+ resolution: {integrity: sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ indent-string: 5.0.0
+ js-yaml: 3.14.1
+ serialize-error: 7.0.1
+ strip-ansi: 7.1.0
+ dev: true
+
+ /temp-dir@3.0.0:
+ resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==}
+ engines: {node: '>=14.16'}
+ dev: true
+
+ /thenify-all@1.6.0:
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
+ engines: {node: '>=0.8'}
+ dependencies:
+ thenify: 3.3.1
+ dev: true
+
+ /thenify@3.3.1:
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+ dependencies:
+ any-promise: 1.3.0
+ dev: true
+
+ /time-zone@1.0.0:
+ resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /timers-ext@0.1.7:
+ resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==}
+ dependencies:
+ es5-ext: 0.10.62
+ next-tick: 1.1.0
+ dev: true
+
+ /to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ is-number: 7.0.0
+ dev: true
+
+ /type-fest@0.13.1:
+ resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
+ engines: {node: '>=10'}
+
+ /type@1.2.0:
+ resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==}
+ dev: true
+
+ /type@2.7.2:
+ resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==}
+ dev: true
+
+ /typescript@5.2.2:
+ resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+ dev: true
+
+ /undici-types@5.26.5:
+ resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+ requiresBuild: true
+
+ /universalify@0.1.2:
+ resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
+ engines: {node: '>= 4.0.0'}
+ dev: false
+
+ /universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+ dev: false
+
+ /well-known-symbols@2.0.0:
+ resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ dev: true
+
+ /wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ /write-file-atomic@5.0.1:
+ resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ dependencies:
+ imurmurhash: 0.1.4
+ signal-exit: 4.1.0
+ dev: true
+
+ /y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /yallist@4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+
+ /yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.1.1
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+ dev: true
+
+ /yauzl@2.10.0:
+ resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
+ dependencies:
+ buffer-crc32: 0.2.13
+ fd-slicer: 1.1.0
+ dev: false
+
+ /yocto-queue@1.0.0:
+ resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
+ engines: {node: '>=12.20'}
+ dev: true
diff --git a/bindings/packager/nodejs/src-ts/config.d.ts b/bindings/packager/nodejs/src-ts/config.d.ts
new file mode 100644
index 00000000..c9784ae3
--- /dev/null
+++ b/bindings/packager/nodejs/src-ts/config.d.ts
@@ -0,0 +1,568 @@
+/* eslint-disable */
+/**
+ * This file was automatically generated by json-schema-to-typescript.
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
+ * and run json-schema-to-typescript to regenerate this file.
+ */
+
+/**
+ * Describes a shell command to be executed when a CLI hook is triggered.
+ */
+export type HookCommand =
+ | string
+ | {
+ /**
+ * The script to execute.
+ */
+ script: string;
+ /**
+ * The working directory.
+ */
+ dir?: string | null;
+ [k: string]: unknown;
+ };
+/**
+ * An enum representing the available verbosity levels of the logger.
+ */
+export type LogLevel = "error" | "warn" | "info" | "debug" | "trace";
+/**
+ * The type of the package we're packaging.
+ */
+export type PackageFormat = "all" | "default" | "app" | "dmg" | "wix" | "nsis" | "deb" | "appimage";
+/**
+ * The possible app categories. Corresponds to `LSApplicationCategoryType` on macOS and the GNOME desktop categories on Debian.
+ */
+export type AppCategory =
+ | "Business"
+ | "DeveloperTool"
+ | "Education"
+ | "Entertainment"
+ | "Finance"
+ | "Game"
+ | "ActionGame"
+ | "AdventureGame"
+ | "ArcadeGame"
+ | "BoardGame"
+ | "CardGame"
+ | "CasinoGame"
+ | "DiceGame"
+ | "EducationalGame"
+ | "FamilyGame"
+ | "KidsGame"
+ | "MusicGame"
+ | "PuzzleGame"
+ | "RacingGame"
+ | "RolePlayingGame"
+ | "SimulationGame"
+ | "SportsGame"
+ | "StrategyGame"
+ | "TriviaGame"
+ | "WordGame"
+ | "GraphicsAndDesign"
+ | "HealthcareAndFitness"
+ | "Lifestyle"
+ | "Medical"
+ | "Music"
+ | "News"
+ | "Photography"
+ | "Productivity"
+ | "Reference"
+ | "SocialNetworking"
+ | "Sports"
+ | "Travel"
+ | "Utility"
+ | "Video"
+ | "Weather";
+/**
+ * *macOS-only**. Corresponds to CFBundleTypeRole
+ */
+export type BundleTypeRole = "editor" | "viewer" | "shell" | "qLGenerator" | "none";
+/**
+ * A path to a resource (with optional glob pattern) or an object of `src` and `target` paths.
+ */
+export type Resource =
+ | string
+ | {
+ /**
+ * The src file or directory, supports glob patterns.
+ */
+ src: string;
+ /**
+ * A relative path from the root of the final package.
+ *
+ * If `src` is a glob, this will always be treated as a directory where all globbed files will be placed under.
+ */
+ target: string;
+ [k: string]: unknown;
+ };
+/**
+ * The languages to build using WiX.
+ */
+export type WixLanguages = [string, WixLanguageConfig][];
+/**
+ * Compression algorithms used in the NSIS installer.
+ *
+ * See
+ */
+export type NsisCompression = "zlib" | "bzip2" | "lzma";
+/**
+ * Install Modes for the NSIS installer.
+ */
+export type NSISInstallerMode = "currentUser" | "perMachine" | "both";
+
+/**
+ * The packaging config.
+ */
+export interface Config {
+ /**
+ * Whether this config is enabled or not. Defaults to `true`.
+ */
+ enabled?: boolean;
+ /**
+ * The JSON schema for the config.
+ *
+ * Setting this field has no effect, this just exists so we can parse the JSON correct when it has `$schema` field set.
+ */
+ $schema?: string | null;
+ /**
+ * The app name, this is just an identifier that could be used to filter which app to package using `--packages` cli arg when there is multiple apps in the workspace or in the same config.
+ *
+ * This field resembles, the `name` field in `Cargo.toml` and `package.json`
+ *
+ * If `unset`, the CLI will try to auto-detect it from `Cargo.toml` or `package.json` otherwise, it will keep it as null.
+ */
+ name?: string | null;
+ /**
+ * Specify a command to run before starting to package an application.
+ *
+ * This runs only once.
+ */
+ beforePackagingCommand?: HookCommand | null;
+ /**
+ * Specify a command to run before packaging each format for an application.
+ *
+ * This will run multiple times depending on the formats specifed.
+ */
+ beforeEachPackageCommand?: HookCommand | null;
+ /**
+ * The log level.
+ */
+ logLevel?: LogLevel | null;
+ /**
+ * The package types we're creating.
+ *
+ * if not present, we'll use the PackageType list for the target OS.
+ */
+ formats?: PackageFormat[] | null;
+ /**
+ * The directory where the `binaries` exist and where the packages will be placed.
+ */
+ outDir?: string;
+ /**
+ * The target triple. Defaults to the current OS target triple.
+ */
+ targetTriple?: string | null;
+ /**
+ * the package's product name, for example "My Awesome App".
+ */
+ productName?: string;
+ /**
+ * the package's version.
+ */
+ version?: string;
+ /**
+ * the package's description.
+ */
+ description?: string | null;
+ /**
+ * the app's long description.
+ */
+ longDescription?: string | null;
+ /**
+ * the package's homepage.
+ */
+ homepage?: string | null;
+ /**
+ * the package's authors.
+ */
+ authors?: string[];
+ /**
+ * the application identifier in reverse domain name notation (e.g. `com.packager.example`). This string must be unique across applications since it is used in some system configurations. This string must contain only alphanumeric characters (A–Z, a–z, and 0–9), hyphens (-), and periods (.).
+ */
+ identifier?: string | null;
+ /**
+ * The app's publisher. Defaults to the second element in the identifier string. Currently maps to the Manufacturer property of the Windows Installer.
+ */
+ publisher?: string | null;
+ /**
+ * A path to the license file.
+ */
+ licenseFile?: string | null;
+ /**
+ * the app's copyright.
+ */
+ copyright?: string | null;
+ /**
+ * the app's category.
+ */
+ category?: AppCategory | null;
+ /**
+ * the app's icon list.
+ */
+ icons?: string[] | null;
+ /**
+ * the binaries to package.
+ */
+ binaries?: Binary[];
+ /**
+ * the file associations
+ */
+ fileAssociations?: FileAssociation[] | null;
+ /**
+ * The app's resources to package. This a list of either a glob pattern, path to a file, path to a directory or an object of `src` and `target` paths. In the case of using an object, the `src` could be either a glob pattern, path to a file, path to a directory, and the `target` is a path inside the final resources folder in the installed package.
+ *
+ * ## Format-specific:
+ *
+ * - **[PackageFormat::Nsis] / [PackageFormat::Wix]**: The resources are placed next to the executable in the root of the packager. - **[PackageFormat::Deb]**: The resources are placed in `usr/lib` of the package.
+ */
+ resources?: Resource[] | null;
+ /**
+ * External binaries to add to the package.
+ *
+ * Note that each binary name should have the target platform's target triple appended, as well as `.exe` for Windows. For example, if you're packaging a sidecar called `sqlite3`, the packager expects a binary named `sqlite3-x86_64-unknown-linux-gnu` on linux, and `sqlite3-x86_64-pc-windows-gnu.exe` on windows.
+ *
+ * If you are building a universal binary for MacOS, the packager expects your external binary to also be universal, and named after the target triple, e.g. `sqlite3-universal-apple-darwin`. See
+ */
+ externalBinaries?: string[] | null;
+ /**
+ * Debian-specific settings.
+ */
+ deb?: DebianConfig | null;
+ /**
+ * Debian-specific settings.
+ */
+ appimage?: AppImageConfig | null;
+ /**
+ * WiX configuration.
+ */
+ wix?: WixConfig | null;
+ /**
+ * Nsis configuration.
+ */
+ nsis?: NsisConfig | null;
+ /**
+ * MacOS-specific settings.
+ */
+ macos?: MacOsConfig | null;
+ /**
+ * Windows-specific settings.
+ */
+ windows?: WindowsConfig | null;
+}
+/**
+ * A binary to package within the final package.
+ */
+export interface Binary {
+ /**
+ * Path to the binary (without `.exe` on Windows). If it's relative, it will be resolved from [`Config::out_dir`].
+ */
+ path: string;
+ /**
+ * Whether this is the main binary or not
+ */
+ main?: boolean;
+}
+/**
+ * A file association configuration.
+ */
+export interface FileAssociation {
+ /**
+ * File extensions to associate with this app. e.g. 'png'
+ */
+ ext: string[];
+ /**
+ * The name. Maps to `CFBundleTypeName` on macOS. Default to the first item in `ext`
+ */
+ name?: string | null;
+ /**
+ * The association description. **Windows-only**. It is displayed on the `Type` column on Windows Explorer.
+ */
+ description?: string | null;
+ /**
+ * The app’s role with respect to the type. Maps to `CFBundleTypeRole` on macOS.
+ */
+ role?: BundleTypeRole & string;
+ /**
+ * The mime-type e.g. 'image/png' or 'text/plain'. Linux-only.
+ */
+ mimeType?: string | null;
+}
+/**
+ * The Linux debian configuration.
+ */
+export interface DebianConfig {
+ /**
+ * the list of debian dependencies.
+ */
+ depends?: string[] | null;
+ /**
+ * Path to a custom desktop file Handlebars template.
+ *
+ * Available variables: `categories`, `comment` (optional), `exec`, `icon` and `name`.
+ *
+ * Default file contents: ```text [Desktop Entry] Categories={{categories}} {{#if comment}} Comment={{comment}} {{/if}} Exec={{exec}} Icon={{icon}} Name={{name}} Terminal=false Type=Application {{#if mime_type}} MimeType={{mime_type}} {{/if}} ```
+ */
+ desktopTemplate?: string | null;
+ /**
+ * List of custom files to add to the deb package. Maps a dir/file to a dir/file inside the debian package.
+ */
+ files?: {
+ [k: string]: string;
+ } | null;
+}
+/**
+ * The Linux AppImage configuration.
+ */
+export interface AppImageConfig {
+ /**
+ * List of libs that exist in `/usr/lib*` to be include in the final AppImage. The libs will be searched for using the command `find -L /usr/lib* -name `
+ */
+ libs?: string[] | null;
+ /**
+ * List of binary paths to include in the final AppImage. For example, if you want `xdg-open`, you'd specify `/usr/bin/xdg-open`
+ */
+ bins?: string[] | null;
+ /**
+ * Hashmap of [`linuxdeploy`](https://github.com/linuxdeploy/linuxdeploy) plugin name and its URL to be downloaded and executed while packaing the appimage. For example, if you want to use the [`gtk`](https://raw.githubusercontent.com/linuxdeploy/linuxdeploy-plugin-gtk/master/linuxdeploy-plugin-gtk.sh) plugin, you'd specify `gtk` as the key and its url as the value.
+ */
+ linuxdeployPlugins?: {
+ [k: string]: string;
+ } | null;
+ /**
+ * List of custom files to add to the appimage package. Maps a dir/file to a dir/file inside the appimage package.
+ */
+ files?: {
+ [k: string]: string;
+ } | null;
+}
+/**
+ * The wix format configuration
+ */
+export interface WixConfig {
+ /**
+ * The app languages to build. See .
+ */
+ languages?: WixLanguages;
+ /**
+ * By default, the packager uses an internal template. This option allows you to define your own wix file.
+ */
+ template?: string | null;
+ /**
+ * List of merge modules to include in your installer. For example, if you want to include [C++ Redis merge modules]
+ *
+ * [C++ Redis merge modules]: https://wixtoolset.org/docs/v3/howtos/redistributables_and_install_checks/install_vcredist/
+ */
+ mergeModules?: string[] | null;
+ /**
+ * A list of paths to .wxs files with WiX fragments to use.
+ */
+ fragmentPaths?: string[] | null;
+ /**
+ * List of WiX fragments as strings. This is similar to `config.wix.fragments_paths` but is a string so you can define it inline in your config.
+ *
+ * ```text ```
+ */
+ fragments?: string[] | null;
+ /**
+ * The ComponentGroup element ids you want to reference from the fragments.
+ */
+ componentGroupRefs?: string[] | null;
+ /**
+ * The Component element ids you want to reference from the fragments.
+ */
+ componentRefs?: string[] | null;
+ /**
+ * The CustomAction element ids you want to reference from the fragments.
+ */
+ customActionRefs?: string[] | null;
+ /**
+ * The FeatureGroup element ids you want to reference from the fragments.
+ */
+ featureGroupRefs?: string[] | null;
+ /**
+ * The Feature element ids you want to reference from the fragments.
+ */
+ featureRefs?: string[] | null;
+ /**
+ * The Merge element ids you want to reference from the fragments.
+ */
+ mergeRefs?: string[] | null;
+ /**
+ * Path to a bitmap file to use as the installation user interface banner. This bitmap will appear at the top of all but the first page of the installer.
+ *
+ * The required dimensions are 493px × 58px.
+ */
+ bannerPath?: string | null;
+ /**
+ * Path to a bitmap file to use on the installation user interface dialogs. It is used on the welcome and completion dialogs. The required dimensions are 493px × 312px.
+ */
+ dialogImagePath?: string | null;
+ /**
+ * Enables FIPS compliant algorithms.
+ */
+ fipsCompliant?: boolean;
+}
+/**
+ * Configuration for a target language for the WiX build.
+ */
+export interface WixLanguageConfig {
+ /**
+ * The path to a locale (`.wxl`) file. See .
+ */
+ localePath?: string | null;
+}
+/**
+ * The NSIS format configuration.
+ */
+export interface NsisConfig {
+ /**
+ * Set the compression algorithm used to compress files in the installer.
+ *
+ * See
+ */
+ compression?: NsisCompression | null;
+ /**
+ * A custom `.nsi` template to use.
+ *
+ * See the default template here
+ */
+ template?: string | null;
+ /**
+ * Logic of an NSIS section that will be ran before the install section.
+ *
+ * See the available libraries, dlls and global variables here
+ *
+ * ### Example ```toml [package.metadata.packager.nsis] preinstall-section = """ ; Setup custom messages LangString webview2AbortError ${LANG_ENGLISH} "Failed to install WebView2! The app can't run without it. Try restarting the installer." LangString webview2DownloadError ${LANG_ARABIC} "خطأ: فشل تنزيل WebView2 - $0"
+ *
+ * Section PreInstall ; SectionEnd
+ *
+ * Section AnotherPreInstall ; SectionEnd """ ```
+ */
+ preinstallSection?: string | null;
+ /**
+ * The path to a bitmap file to display on the header of installers pages.
+ *
+ * The recommended dimensions are 150px x 57px.
+ */
+ headerImage?: string | null;
+ /**
+ * The path to a bitmap file for the Welcome page and the Finish page.
+ *
+ * The recommended dimensions are 164px x 314px.
+ */
+ sidebarImage?: string | null;
+ /**
+ * The path to an icon file used as the installer icon.
+ */
+ installerIcon?: string | null;
+ /**
+ * Whether the installation will be for all users or just the current user.
+ */
+ installMode?: NSISInstallerMode & string;
+ /**
+ * A list of installer languages. By default the OS language is used. If the OS language is not in the list of languages, the first language will be used. To allow the user to select the language, set `display_language_selector` to `true`.
+ *
+ * See for the complete list of languages.
+ */
+ languages?: string[] | null;
+ /**
+ * An key-value pair where the key is the language and the value is the path to a custom `.nsi` file that holds the translated text for cargo-packager's custom messages.
+ *
+ * See for an example `.nsi` file.
+ *
+ * **Note**: the key must be a valid NSIS language and it must be added to [`NsisConfig`]languages array,
+ */
+ customLanguageFiles?: {
+ [k: string]: string;
+ } | null;
+ /**
+ * Whether to display a language selector dialog before the installer and uninstaller windows are rendered or not. By default the OS language is selected, with a fallback to the first language in the `languages` array.
+ */
+ displayLanguageSelector?: boolean;
+ /**
+ * List of paths where your app stores data. This options tells the uninstaller to provide the user with an option (disabled by default) whether they want to rmeove your app data or keep it.
+ *
+ * The path should use a constant from in addition to `$IDENTIFIER`, `$PUBLISHER` and `$PRODUCTNAME`, for example, if you store your app data in `C:\\Users\\\\AppData\\Local\\\\` you'd need to specify ```toml [package.metadata.packager.nsis] appdata-paths = ["$LOCALAPPDATA/$PUBLISHER/$PRODUCTNAME"] ```
+ */
+ appdataPaths?: string[] | null;
+}
+/**
+ * The macOS configuration.
+ */
+export interface MacOsConfig {
+ /**
+ * MacOS frameworks that need to be packaged with the app.
+ *
+ * Each string can either be the name of a framework (without the `.framework` extension, e.g. `"SDL2"`), in which case we will search for that framework in the standard install locations (`~/Library/Frameworks/`, `/Library/Frameworks/`, and `/Network/Library/Frameworks/`), or a path to a specific framework bundle (e.g. `./data/frameworks/SDL2.framework`). Note that this setting just makes cargo-packager copy the specified frameworks into the OS X app bundle (under `Foobar.app/Contents/Frameworks/`); you are still responsible for:
+ *
+ * - arranging for the compiled binary to link against those frameworks (e.g. by emitting lines like `cargo:rustc-link-lib=framework=SDL2` from your `build.rs` script)
+ *
+ * - embedding the correct rpath in your binary (e.g. by running `install_name_tool -add_rpath "@executable_path/../Frameworks" path/to/binary` after compiling)
+ */
+ frameworks?: string[] | null;
+ /**
+ * A version string indicating the minimum MacOS version that the packaged app supports (e.g. `"10.11"`). If you are using this config field, you may also want have your `build.rs` script emit `cargo:rustc-env=MACOSX_DEPLOYMENT_TARGET=10.11`.
+ */
+ minimumSystemVersion?: string | null;
+ /**
+ * The exception domain to use on the macOS .app package.
+ *
+ * This allows communication to the outside world e.g. a web server you're shipping.
+ */
+ exceptionDomain?: string | null;
+ /**
+ * Code signing identity.
+ */
+ signingIdentity?: string | null;
+ /**
+ * Provider short name for notarization.
+ */
+ providerShortName?: string | null;
+ /**
+ * Path to the entitlements.plist file.
+ */
+ entitlements?: string | null;
+ /**
+ * Path to the Info.plist file for the package.
+ */
+ infoPlistPath?: string | null;
+}
+/**
+ * The Windows configuration.
+ */
+export interface WindowsConfig {
+ /**
+ * The file digest algorithm to use for creating file signatures. Required for code signing. SHA-256 is recommended.
+ */
+ digestAlgorithm?: string | null;
+ /**
+ * The SHA1 hash of the signing certificate.
+ */
+ certificateThumbprint?: string | null;
+ /**
+ * Server to use during timestamping.
+ */
+ timestampUrl?: string | null;
+ /**
+ * Whether to use Time-Stamp Protocol (TSP, a.k.a. RFC 3161) for the timestamp server. Your code signing provider may use a TSP timestamp server, like e.g. SSL.com does. If so, enable TSP by setting to true.
+ */
+ tsp?: boolean;
+ /**
+ * Validates a second app installation, blocking the user from installing an older version if set to `false`.
+ *
+ * For instance, if `1.2.1` is installed, the user won't be able to install app version `1.2.0` or `1.1.5`.
+ *
+ * The default value of this flag is `true`.
+ */
+ allowDowngrades?: boolean;
+}
diff --git a/bindings/packager/nodejs/src-ts/index.ts b/bindings/packager/nodejs/src-ts/index.ts
new file mode 100644
index 00000000..7509949f
--- /dev/null
+++ b/bindings/packager/nodejs/src-ts/index.ts
@@ -0,0 +1,41 @@
+import cargoPackager from "../index";
+import runPlugins from "./plugins";
+import merge from "deepmerge";
+import type { Config } from "./config";
+
+let tracingEnabled = false;
+
+export interface Options {
+ verbosity?: number;
+}
+
+async function bundleApp(config: Config = {}, options?: Options) {
+ const conf = await runPlugins();
+
+ let packagerConfig = config;
+ if (conf) {
+ packagerConfig = merge(conf, config);
+ }
+
+ if (!tracingEnabled) {
+ cargoPackager.initTracingSubscriber(options?.verbosity ?? 0);
+ tracingEnabled = true;
+ }
+
+ cargoPackager.package(JSON.stringify(packagerConfig));
+}
+
+async function cli(args: string[], binName: string) {
+ const config = await runPlugins();
+ if (config) {
+ args.push("--config");
+ args.push(JSON.stringify(config));
+ }
+ cargoPackager.cli(args, binName);
+}
+
+function logError(error: string) {
+ cargoPackager.logError(error);
+}
+
+export { cli, bundleApp, logError };
diff --git a/bindings/packager/nodejs/src-ts/plugins/electron/index.ts b/bindings/packager/nodejs/src-ts/plugins/electron/index.ts
new file mode 100644
index 00000000..6347915c
--- /dev/null
+++ b/bindings/packager/nodejs/src-ts/plugins/electron/index.ts
@@ -0,0 +1,211 @@
+import type { Config, Resource } from "../../config";
+import type { PackageJson } from "..";
+import fs from "fs-extra";
+import path from "path";
+import os from "os";
+import { download as downloadElectron } from "@electron/get";
+import extractZip from "extract-zip";
+import { Pruner, isModule, normalizePath } from "./prune";
+
+export default async function run(
+ appPath: string,
+ packageJson: PackageJson
+): Promise | null> {
+ let electronPath;
+ try {
+ electronPath = require.resolve("electron", {
+ paths: [appPath],
+ });
+ } catch (e) {
+ return null;
+ }
+
+ const userConfig = packageJson.packager || {};
+
+ const electronPackageJson = JSON.parse(
+ (
+ await fs.readFile(
+ path.resolve(path.dirname(electronPath), "package.json")
+ )
+ ).toString()
+ );
+
+ const zipPath = await downloadElectron(electronPackageJson.version);
+ const zipDir = await fs.mkdtemp(path.join(os.tmpdir(), ".packager-electron"));
+ await extractZip(zipPath, {
+ dir: zipDir,
+ });
+
+ const platformName = os.platform();
+ let resources: Resource[] = [];
+ let frameworks: string[] = [];
+ let debianFiles: {
+ [k: string]: string;
+ } | null = null;
+ let binaryPath;
+
+ const appTempPath = await fs.mkdtemp(
+ path.join(os.tmpdir(), packageJson.name || "app-temp")
+ );
+
+ const pruner = new Pruner(appPath, true);
+
+ const outDir = userConfig.outDir ? path.resolve(userConfig.outDir) : null;
+ const ignoredDirs = outDir && outDir !== process.cwd() ? [outDir] : [];
+
+ await fs.copy(appPath, appTempPath, {
+ filter: async (file: string) => {
+ const fullPath = path.resolve(file);
+
+ if (ignoredDirs.includes(fullPath)) {
+ return false;
+ }
+
+ let name = fullPath.split(appPath)[1];
+ if (path.sep === "\\") {
+ name = normalizePath(name);
+ }
+
+ if (name.startsWith("/node_modules/")) {
+ if (await isModule(file)) {
+ return await pruner.pruneModule(name);
+ }
+ }
+
+ return true;
+ },
+ });
+
+ switch (platformName) {
+ case "darwin":
+ var standaloneElectronPath = path.join(zipDir, "Electron.app");
+
+ const resourcesPath = path.join(
+ standaloneElectronPath,
+ "Contents/Resources"
+ );
+ resources = resources.concat(
+ (await fs.readdir(resourcesPath))
+ .filter((p) => p !== "default_app.asar")
+ .map((p) => path.join(resourcesPath, p))
+ );
+
+ resources.push({
+ src: appTempPath,
+ target: "app",
+ });
+
+ const frameworksPath = path.join(
+ standaloneElectronPath,
+ "Contents/Frameworks"
+ );
+ frameworks = (await fs.readdir(frameworksPath)).map((p) =>
+ path.join(frameworksPath, p)
+ );
+
+ binaryPath = path.join(standaloneElectronPath, "Contents/MacOS/Electron");
+ break;
+ case "win32":
+ var binaryName: string =
+ userConfig.name ||
+ packageJson.productName ||
+ packageJson.name ||
+ "Electron";
+ binaryPath = path.join(zipDir, `${binaryName}.exe`);
+
+ resources = resources.concat(
+ (await fs.readdir(zipDir))
+ // resources only contains the default_app.asar so we ignore it
+ .filter((p) => p !== "resources" && p !== "electron.exe")
+ .map((p) => path.join(zipDir, p))
+ );
+
+ // rename the electron binary
+ await fs.rename(path.join(zipDir, "electron.exe"), binaryPath);
+
+ resources.push({
+ src: appTempPath,
+ target: "resources/app",
+ });
+
+ break;
+ default:
+ var binaryName = toKebabCase(
+ userConfig.name ||
+ packageJson.productName ||
+ packageJson.name ||
+ "Electron"
+ );
+
+ // rename the electron binary
+ await fs.rename(
+ path.join(zipDir, "electron"),
+ path.join(zipDir, binaryName)
+ );
+
+ const electronFiles = await fs.readdir(zipDir);
+
+ const binTmpDir = await fs.mkdtemp(
+ path.join(os.tmpdir(), `${packageJson.name || "app-temp"}-bin`)
+ );
+ binaryPath = path.join(binTmpDir, binaryName);
+ await fs.writeFile(binaryPath, binaryScript(binaryName));
+ await fs.chmod(binaryPath, 0o755);
+
+ // make linuxdeploy happy
+ process.env.LD_LIBRARY_PATH = process.env.LD_LIBRARY_PATH
+ ? `${process.env.LD_LIBRARY_PATH}:${zipDir}`
+ : zipDir;
+ // electron needs everything at the same level :)
+ // resources only contains the default_app.asar so we ignore it
+ debianFiles = electronFiles
+ .filter((f) => f !== "resources")
+ .reduce(
+ (acc, file) => ({
+ ...acc,
+ [path.join(zipDir, file)]: `usr/lib/${binaryName}/${file}`,
+ }),
+ {}
+ );
+ debianFiles[appTempPath] = `usr/lib/${binaryName}/resources/app`;
+ }
+
+ return {
+ name: packageJson.name,
+ productName: packageJson.productName || packageJson.name,
+ version: packageJson.version,
+ resources,
+ macos: {
+ frameworks,
+ },
+ deb: {
+ files: debianFiles,
+ },
+ appimage: {
+ files: debianFiles,
+ },
+ binaries: [
+ {
+ path: binaryPath,
+ main: true,
+ },
+ ],
+ };
+}
+
+const toKebabCase = (str: string) =>
+ str
+ .split(/\.?(?=[A-Z])/)
+ .join("-")
+ .toLowerCase();
+
+function binaryScript(binaryName: string): string {
+ return `#!/usr/bin/env sh
+
+full_path=$(realpath $0)
+bin_dir_path=$(dirname $full_path)
+usr_dir_path=$(dirname $bin_dir_path)
+echo $usr_dir_path
+$usr_dir_path/lib/${binaryName}/${binaryName}
+`;
+}
diff --git a/bindings/packager/nodejs/src-ts/plugins/electron/prune.ts b/bindings/packager/nodejs/src-ts/plugins/electron/prune.ts
new file mode 100644
index 00000000..4049d35c
--- /dev/null
+++ b/bindings/packager/nodejs/src-ts/plugins/electron/prune.ts
@@ -0,0 +1,93 @@
+// from https://github.com/electron/electron-packager/blob/741f3c349e7f9e11e5ae14593a3efa79d312dc4d/src/prune.js
+
+import { DestroyerOfModules, ModuleMap, DepType, Module } from "galactus";
+import fs from "fs";
+import path from "path";
+
+const ELECTRON_MODULES = [
+ "electron",
+ "electron-nightly",
+ "electron-prebuilt",
+ "electron-prebuilt-compile",
+];
+
+export function normalizePath(path: string): string {
+ return path.replace(/\\/g, "/");
+}
+
+class Pruner {
+ baseDir: string;
+ quiet: boolean;
+ galactus: DestroyerOfModules;
+ walkedTree: boolean;
+ modules?: Set;
+
+ constructor(dir: string, quiet: boolean) {
+ this.baseDir = normalizePath(dir);
+ this.quiet = quiet;
+ this.galactus = new DestroyerOfModules({
+ rootDirectory: dir,
+ shouldKeepModuleTest: (module, isDevDep) =>
+ this.shouldKeepModule(module, isDevDep),
+ });
+ this.walkedTree = false;
+ }
+
+ setModules(moduleMap: ModuleMap) {
+ const modulePaths = Array.from(moduleMap.keys()).map(
+ (modulePath) => `/${normalizePath(modulePath)}`
+ );
+ this.modules = new Set(modulePaths);
+ this.walkedTree = true;
+ }
+
+ async pruneModule(name: string) {
+ if (this.walkedTree) {
+ return this.isProductionModule(name);
+ } else {
+ const moduleMap = await this.galactus.collectKeptModules({
+ relativePaths: true,
+ });
+ this.setModules(moduleMap);
+ return this.isProductionModule(name);
+ }
+ }
+
+ shouldKeepModule(module: Module, isDevDep: boolean) {
+ if (isDevDep || module.depType === DepType.ROOT) {
+ return false;
+ }
+
+ if (ELECTRON_MODULES.includes(module.name)) {
+ if (!this.quiet)
+ console.warn(
+ `Found '${module.name}' but not as a devDependency, pruning anyway`
+ );
+ return false;
+ }
+
+ return true;
+ }
+
+ isProductionModule(name: string): boolean {
+ return this.modules?.has(name) ?? false;
+ }
+}
+
+function isNodeModuleFolder(pathToCheck: string) {
+ return (
+ path.basename(path.dirname(pathToCheck)) === "node_modules" ||
+ (path.basename(path.dirname(pathToCheck)).startsWith("@") &&
+ path.basename(path.resolve(pathToCheck, `..${path.sep}..`)) ===
+ "node_modules")
+ );
+}
+
+export async function isModule(pathToCheck: string) {
+ return (
+ (await fs.existsSync(path.join(pathToCheck, "package.json"))) &&
+ isNodeModuleFolder(pathToCheck)
+ );
+}
+
+export { Pruner };
diff --git a/bindings/packager/nodejs/src-ts/plugins/index.ts b/bindings/packager/nodejs/src-ts/plugins/index.ts
new file mode 100644
index 00000000..3df8222a
--- /dev/null
+++ b/bindings/packager/nodejs/src-ts/plugins/index.ts
@@ -0,0 +1,56 @@
+import path from "path";
+import fs from "fs-extra";
+import type { Config } from "../config";
+import electron from "./electron";
+import merge from "deepmerge";
+
+export interface PackageJson {
+ name?: string;
+ productName?: string;
+ version?: string;
+ packager: Partial | null | undefined;
+}
+
+function getPackageJsonPath(): string | null {
+ let appDir = process.cwd();
+
+ while (appDir.length && appDir[appDir.length - 1] !== path.sep) {
+ const filepath = path.join(appDir, "package.json");
+ if (fs.existsSync(filepath)) {
+ return filepath;
+ }
+
+ appDir = path.normalize(path.join(appDir, ".."));
+ }
+
+ return null;
+}
+
+export default async function run(): Promise | null> {
+ const packageJsonPath = getPackageJsonPath();
+
+ if (packageJsonPath === null) {
+ return null;
+ }
+
+ const packageJson = JSON.parse(
+ (await fs.readFile(packageJsonPath)).toString()
+ ) as PackageJson;
+
+ let config = packageJson.packager || null;
+
+ const electronConfig = await electron(
+ path.dirname(packageJsonPath),
+ packageJson
+ );
+
+ if (electronConfig) {
+ config = config ? merge(electronConfig, config) : electronConfig;
+ }
+
+ if (config?.outDir) {
+ await fs.ensureDir(config.outDir);
+ }
+
+ return config;
+}
diff --git a/bindings/packager/nodejs/src/lib.rs b/bindings/packager/nodejs/src/lib.rs
new file mode 100644
index 00000000..e4b650b3
--- /dev/null
+++ b/bindings/packager/nodejs/src/lib.rs
@@ -0,0 +1,26 @@
+use napi::{Error, Result, Status};
+
+#[napi_derive::napi]
+pub fn cli(args: Vec, bin_name: Option) -> Result<()> {
+ cargo_packager::cli::try_run(args, bin_name)
+ .map_err(|e| Error::new(Status::GenericFailure, e.to_string()))
+}
+
+#[napi_derive::napi]
+pub fn package(config: String) -> Result<()> {
+ let config = serde_json::from_str(&config)
+ .map_err(|e| Error::new(Status::GenericFailure, e.to_string()))?;
+ cargo_packager::package(&config)
+ .map_err(|e| Error::new(Status::GenericFailure, e.to_string()))?;
+ Ok(())
+}
+
+#[napi_derive::napi]
+pub fn init_tracing_subscriber(verbosity: u8) {
+ cargo_packager::init_tracing_subscriber(verbosity);
+}
+
+#[napi_derive::napi]
+pub fn log_error(error: String) {
+ tracing::error!("{}", error);
+}
diff --git a/bindings/packager/nodejs/tsconfig.json b/bindings/packager/nodejs/tsconfig.json
new file mode 100644
index 00000000..330e9857
--- /dev/null
+++ b/bindings/packager/nodejs/tsconfig.json
@@ -0,0 +1,29 @@
+{
+ "compilerOptions": {
+ "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
+ "lib": ["es6"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
+ "module": "commonjs", /* Specify what module code is generated. */
+ "rootDir": "src-ts", /* Specify the root folder within your source files. */
+ "resolveJsonModule": true, /* Enable importing .json files. */
+
+ "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
+ "outDir": "build", /* Specify an output folder for all emitted files. */
+ "declaration": true,
+ "declarationDir": "build",
+
+ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
+ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
+
+ "strict": true, /* Enable all strict type-checking options. */
+ "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
+
+ "skipLibCheck": true /* Skip type checking all .d.ts files. */
+ },
+ "exclude": [
+ "build/",
+ "__test__/",
+ "index.js",
+ "packager.js",
+ "generate-config-type.js"
+ ]
+}
diff --git a/crates/packager/Cargo.toml b/crates/packager/Cargo.toml
index 0cf87a6c..2d50c2c2 100644
--- a/crates/packager/Cargo.toml
+++ b/crates/packager/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "cargo-packager"
version = "0.3.0"
-description = "Rust executable packager and bundler CLI and library."
+description = "Executable packager and bundler distributed as a CLI and library."
authors = [
"CrabNebula Ltd.",
"Tauri Programme within The Commons Conservancy",
@@ -29,9 +29,12 @@ targets = [
]
[features]
-default = [ "cli" ]
-cli = [ "clap", "tracing-subscriber" ]
+default = [ "cli", "rustls" ]
+cli = [ "clap", "dep:tracing-subscriber" ]
schema = [ "schemars" ]
+native-tls = [ "ureq/native-tls" ]
+native-tls-vendored = [ "native-tls", "native-tls/vendored" ]
+rustls = [ "ureq/tls" ]
[dependencies]
thiserror = { workspace = true }
@@ -46,7 +49,7 @@ tracing = { workspace = true }
tracing-subscriber = { version = "0.3", optional = true, features = [ "env-filter" ] }
toml = "0.8"
cargo_metadata = "0.18"
-ureq = "2.8"
+ureq = { version = "2.8", default-features = false }
hex = "0.4"
sha1 = "0.10"
sha2 = "0.10"
@@ -61,6 +64,7 @@ tar = { workspace = true }
libflate = "2.0"
strsim = "0.10"
schemars = { workspace = true, optional = true }
+native-tls = { version = "0.2", optional = true }
[target."cfg(target_os = \"windows\")".dependencies]
winreg = "0.51"
@@ -69,7 +73,7 @@ uuid = { version = "1", features = [ "v4", "v5" ] }
regex = "1.10"
[target."cfg(target_os = \"windows\")".dependencies.windows-sys]
- version = "0.48"
+ version = "0.52"
features = [
"Win32_System_SystemInformation",
"Win32_System_Diagnostics_Debug"
diff --git a/crates/packager/schema.json b/crates/packager/schema.json
index 097aaf52..aaeb5f08 100644
--- a/crates/packager/schema.json
+++ b/crates/packager/schema.json
@@ -456,11 +456,11 @@
"description": "A binary to package within the final package.",
"type": "object",
"required": [
- "filename"
+ "path"
],
"properties": {
- "filename": {
- "description": "File name and without `.exe` on Windows",
+ "path": {
+ "description": "Path to the binary (without `.exe` on Windows). If it's relative, it will be resolved from [`Config::out_dir`].",
"type": "string"
},
"main": {
@@ -652,6 +652,16 @@
"additionalProperties": {
"type": "string"
}
+ },
+ "files": {
+ "description": "List of custom files to add to the appimage package. Maps a dir/file to a dir/file inside the appimage package.",
+ "type": [
+ "object",
+ "null"
+ ],
+ "additionalProperties": {
+ "type": "string"
+ }
}
},
"additionalProperties": false
diff --git a/crates/packager/src/cli/config.rs b/crates/packager/src/cli/config.rs
index a9646774..192b6b3d 100644
--- a/crates/packager/src/cli/config.rs
+++ b/crates/packager/src/cli/config.rs
@@ -162,7 +162,7 @@ pub fn load_configs_from_cargo_workspace(
.collect::>();
for target in &targets {
config.binaries.push(Binary {
- filename: target.name.clone(),
+ path: target.name.clone().into(),
main: match targets.len() {
1 => true,
_ => target.name == package.name,
diff --git a/crates/packager/src/cli/mod.rs b/crates/packager/src/cli/mod.rs
index ea5d9ee3..2a925a1c 100644
--- a/crates/packager/src/cli/mod.rs
+++ b/crates/packager/src/cli/mod.rs
@@ -6,18 +6,14 @@
#![cfg(feature = "cli")]
-use std::{
- ffi::OsStr,
- fmt::Write,
- path::{Path, PathBuf},
-};
+use std::{ffi::OsString, fmt::Write, path::PathBuf};
use clap::{ArgAction, CommandFactory, FromArgMatches, Parser, Subcommand};
use self::config::{find_config_files, load_configs_from_cargo_workspace, parse_config_file};
use crate::{
config::{Config, LogLevel, PackageFormat},
- package, sign_outputs, util, Result, SigningConfig,
+ init_tracing_subscriber, package, parse_log_level, sign_outputs, util, Result, SigningConfig,
};
mod config;
@@ -85,7 +81,7 @@ pub(crate) struct Cli {
}
#[tracing::instrument(level = "trace")]
-fn try_run(cli: Cli) -> Result<()> {
+fn run_cli(cli: Cli) -> Result<()> {
// run subcommand and exit if one was specified,
// otherwise run the default packaging command
if let Some(command) = cli.command {
@@ -239,61 +235,39 @@ fn try_run(cli: Cli) -> Result<()> {
Ok(())
}
-fn parse_log_level(verbose: u8) -> tracing::Level {
- match verbose {
- 0 => tracing_subscriber::EnvFilter::builder()
- .from_env_lossy()
- .max_level_hint()
- .and_then(|l| l.into_level())
- .unwrap_or(tracing::Level::INFO),
- 1 => tracing::Level::DEBUG,
- 2.. => tracing::Level::TRACE,
- }
-}
-
/// Run the packager CLI
-pub fn run() {
- // prepare cli args
- let mut args = std::env::args_os().peekable();
- if let Some("cargo-packager") = args
- .next()
- .as_deref()
- .map(Path::new)
- .and_then(Path::file_stem)
- .and_then(OsStr::to_str)
- {
- if args.peek().and_then(|s| s.to_str()) == Some("packager") {
- // remove the extra cargo subcommand
- args.next();
- }
+pub fn run(args: I, bin_name: Option)
+where
+ I: IntoIterator- ,
+ A: Into + Clone,
+{
+ if let Err(e) = try_run(args, bin_name) {
+ tracing::error!("{}", e);
+ std::process::exit(1);
}
+}
- let cli = Cli::command();
- let matches = cli.get_matches_from(args);
- let res = Cli::from_arg_matches(&matches).map_err(|e| e.format(&mut Cli::command()));
- let cli = match res {
- Ok(s) => s,
- Err(e) => e.exit(),
+/// Try run the packager CLI
+pub fn try_run(args: I, bin_name: Option) -> Result<()>
+where
+ I: IntoIterator
- ,
+ A: Into + Clone,
+{
+ let cli = match &bin_name {
+ Some(bin_name) => Cli::command().bin_name(bin_name),
+ None => Cli::command(),
};
+ let matches = cli.get_matches_from(args);
+ let cli = Cli::from_arg_matches(&matches).map_err(|e| {
+ e.format(&mut match &bin_name {
+ Some(bin_name) => Cli::command().bin_name(bin_name),
+ None => Cli::command(),
+ })
+ })?;
if !cli.quite {
- let level = parse_log_level(cli.verbose);
-
- let debug = level == tracing::Level::DEBUG;
- let tracing = level == tracing::Level::TRACE;
-
- tracing_subscriber::fmt()
- .with_ansi(std::io::IsTerminal::is_terminal(&std::io::stderr()))
- .without_time()
- .with_target(debug)
- .with_line_number(tracing)
- .with_file(tracing)
- .with_max_level(level)
- .init();
+ init_tracing_subscriber(cli.verbose);
}
- if let Err(e) = try_run(cli) {
- tracing::error!("{}", e);
- std::process::exit(1);
- }
+ run_cli(cli)
}
diff --git a/crates/packager/src/config/mod.rs b/crates/packager/src/config/mod.rs
index b3a270b7..e0fb43d0 100644
--- a/crates/packager/src/config/mod.rs
+++ b/crates/packager/src/config/mod.rs
@@ -277,6 +277,9 @@ pub struct AppImageConfig {
/// you'd specify `gtk` as the key and its url as the value.
#[serde(alias = "linuxdeploy-plugins", alias = "linuxdeploy_plugins")]
pub linuxdeploy_plugins: Option>,
+ /// List of custom files to add to the appimage package.
+ /// Maps a dir/file to a dir/file inside the appimage package.
+ pub files: Option>,
}
/// The macOS configuration.
@@ -631,8 +634,8 @@ impl Default for LogLevel {
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[serde(rename_all = "camelCase", deny_unknown_fields)]
pub struct Binary {
- /// File name and without `.exe` on Windows
- pub filename: String,
+ /// Path to the binary (without `.exe` on Windows). If it's relative, it will be resolved from [`Config::out_dir`].
+ pub path: PathBuf,
/// Whether this is the main binary or not
#[serde(default)]
pub main: bool,
@@ -871,7 +874,11 @@ impl Config {
/// Returns the path to the specified binary.
pub fn binary_path(&self, binary: &Binary) -> PathBuf {
- self.out_dir().join(&binary.filename)
+ if binary.path.is_absolute() {
+ binary.path.clone()
+ } else {
+ self.out_dir().join(&binary.path)
+ }
}
/// Returns the package identifier
@@ -889,7 +896,11 @@ impl Config {
/// Returns the out dir
pub fn out_dir(&self) -> PathBuf {
- dunce::canonicalize(&self.out_dir).unwrap_or_else(|_| self.out_dir.clone())
+ if self.out_dir.as_os_str().is_empty() {
+ std::env::current_dir().expect("failed to resolve cwd")
+ } else {
+ dunce::canonicalize(&self.out_dir).unwrap_or_else(|_| self.out_dir.clone())
+ }
}
/// Returns the main binary
@@ -901,11 +912,11 @@ impl Config {
}
/// Returns the main binary name
- pub fn main_binary_name(&self) -> crate::Result<&String> {
+ pub fn main_binary_name(&self) -> crate::Result {
self.binaries
.iter()
.find(|bin| bin.main)
- .map(|b| &b.filename)
+ .map(|b| b.path.file_stem().unwrap().to_string_lossy().into_owned())
.ok_or_else(|| crate::Error::MainBinaryNotFound)
}
}
diff --git a/crates/packager/src/error.rs b/crates/packager/src/error.rs
index de528c5b..4ffd9e72 100644
--- a/crates/packager/src/error.rs
+++ b/crates/packager/src/error.rs
@@ -11,6 +11,9 @@ use thiserror::Error;
#[derive(Error, Debug)]
/// Errors returned by cargo-packager.
pub enum Error {
+ /// Clap error.
+ #[error(transparent)]
+ Clap(#[from] clap::error::Error),
/// Error while reading cargo metadata.
#[error("Failed to read cargo metadata: {0}")]
Metadata(#[from] cargo_metadata::Error),
diff --git a/crates/packager/src/lib.rs b/crates/packager/src/lib.rs
index a6a158f3..6ed4781a 100644
--- a/crates/packager/src/lib.rs
+++ b/crates/packager/src/lib.rs
@@ -101,6 +101,37 @@ pub use sign::SigningConfig;
pub use package::{package, PackageOuput};
+fn parse_log_level(verbose: u8) -> tracing::Level {
+ match verbose {
+ 0 => tracing_subscriber::EnvFilter::builder()
+ .from_env_lossy()
+ .max_level_hint()
+ .and_then(|l| l.into_level())
+ .unwrap_or(tracing::Level::INFO),
+ 1 => tracing::Level::DEBUG,
+ 2.. => tracing::Level::TRACE,
+ }
+}
+
+/// Inits the tracing subscriber.
+#[cfg(feature = "cli")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "cli")))]
+pub fn init_tracing_subscriber(verbosity: u8) {
+ let level = parse_log_level(verbosity);
+
+ let debug = level == tracing::Level::DEBUG;
+ let tracing = level == tracing::Level::TRACE;
+
+ tracing_subscriber::fmt()
+ .with_ansi(std::io::IsTerminal::is_terminal(&std::io::stderr()))
+ .without_time()
+ .with_target(debug)
+ .with_line_number(tracing)
+ .with_file(tracing)
+ .with_max_level(level)
+ .init();
+}
+
/// Sign the specified packages and return the signatures paths.
///
/// If `packages` contain a directory in the case of [`PackageFormat::App`]
diff --git a/crates/packager/src/main.rs b/crates/packager/src/main.rs
index 8d864665..707c28fa 100644
--- a/crates/packager/src/main.rs
+++ b/crates/packager/src/main.rs
@@ -2,6 +2,32 @@
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
+use std::{env::args_os, ffi::OsStr, path::Path, process::exit};
+
fn main() {
- cargo_packager::cli::run()
+ let mut args = args_os().peekable();
+ let bin_name = match args
+ .next()
+ .as_deref()
+ .map(Path::new)
+ .and_then(Path::file_stem)
+ .and_then(OsStr::to_str)
+ {
+ Some("cargo-packager") => {
+ if args.peek().and_then(|s| s.to_str()) == Some("packager") {
+ // remove the extra cargo subcommand
+ args.next();
+ Some("cargo packager".into())
+ } else {
+ Some("cargo-packager".into())
+ }
+ }
+ Some(stem) => Some(stem.to_string()),
+ None => {
+ eprintln!("cargo-packager wrapper unable to read first argument");
+ exit(1);
+ }
+ };
+
+ cargo_packager::cli::run(args, bin_name)
}
diff --git a/crates/packager/src/package/app/mod.rs b/crates/packager/src/package/app/mod.rs
index 10790c71..7071afc2 100644
--- a/crates/packager/src/package/app/mod.rs
+++ b/crates/packager/src/package/app/mod.rs
@@ -26,6 +26,10 @@ pub(crate) fn package(ctx: &Context) -> crate::Result> {
let app_product_name = format!("{}.app", config.product_name);
let app_bundle_path = config.out_dir().join(&app_product_name);
+ if app_bundle_path.exists() {
+ std::fs::remove_dir_all(&app_bundle_path)?;
+ }
+
tracing::info!(
"Packaging {} ({})",
app_product_name,
@@ -74,7 +78,7 @@ pub(crate) fn package(ctx: &Context) -> crate::Result> {
tracing::debug!("Copying binaries");
for bin in &config.binaries {
let bin_path = config.binary_path(bin);
- let dest_path = bin_dir.join(&bin.filename);
+ let dest_path = bin_dir.join(bin.path.file_name().unwrap());
std::fs::copy(&bin_path, &dest_path)?;
sign_paths.push(SignTarget {
path: dest_path,
@@ -307,7 +311,7 @@ fn copy_frameworks_to_bundle(
std::fs::create_dir_all(contents_directory)?;
for framework in frameworks {
- if framework.ends_with(".framework") {
+ if framework.ends_with(".framework") || framework.ends_with(".app") {
let src_path = PathBuf::from(framework);
let src_name = src_path
.file_name()
@@ -332,7 +336,7 @@ fn copy_frameworks_to_bundle(
} else if framework.contains('/') {
return Err(crate::Error::InvalidFramework {
framework: framework.to_string(),
- reason: "path should have the .framework extension",
+ reason: "framework extension should be either .framework, .dylib or .app",
});
}
if let Some(home_dir) = dirs::home_dir() {
diff --git a/crates/packager/src/package/appimage/appimage b/crates/packager/src/package/appimage/appimage
index 270b0951..0270ef3f 100644
--- a/crates/packager/src/package/appimage/appimage
+++ b/crates/packager/src/package/appimage/appimage
@@ -10,7 +10,7 @@ set -euxo pipefail
export ARCH={{arch}}
mkdir -p "{{app_name}}.AppDir"
-cp -r ../appimage_deb/data/usr "{{app_name}}.AppDir"
+cp -r ../appimage_deb/data/* "{{app_name}}.AppDir"
cd "{{app_name}}.AppDir"
mkdir -p "usr/bin"
diff --git a/crates/packager/src/package/appimage/mod.rs b/crates/packager/src/package/appimage/mod.rs
index 5166f8aa..59b2fffd 100644
--- a/crates/packager/src/package/appimage/mod.rs
+++ b/crates/packager/src/package/appimage/mod.rs
@@ -88,6 +88,10 @@ pub(crate) fn package(ctx: &Context) -> crate::Result> {
// generate deb_folder structure
tracing::debug!("Generating data");
let icons = super::deb::generate_data(config, &appimage_deb_data_dir)?;
+ tracing::debug!("Copying files specified in `appimage.files`");
+ if let Some(files) = config.appimage().and_then(|d| d.files.as_ref()) {
+ super::deb::copy_custom_files(files, &appimage_deb_data_dir)?;
+ }
let icons: Vec = icons.into_iter().collect();
let main_binary_name = config.main_binary_name()?;
diff --git a/crates/packager/src/package/deb/mod.rs b/crates/packager/src/package/deb/mod.rs
index c5b5dac0..d7c288d7 100644
--- a/crates/packager/src/package/deb/mod.rs
+++ b/crates/packager/src/package/deb/mod.rs
@@ -5,7 +5,7 @@
// SPDX-License-Identifier: MIT
use std::{
- collections::BTreeSet,
+ collections::{BTreeSet, HashMap},
ffi::OsStr,
fs::File,
io::Write,
@@ -134,8 +134,8 @@ fn generate_desktop_file(config: &Config, data_dir: &Path) -> crate::Result<()>
.map(|category| category.gnome_desktop_categories())
.unwrap_or(""),
comment: config.description.as_deref(),
- exec: bin_name,
- icon: bin_name,
+ exec: &bin_name,
+ icon: &bin_name,
name: config.product_name.as_str(),
mime_type,
},
@@ -153,7 +153,7 @@ pub fn generate_data(config: &Config, data_dir: &Path) -> crate::Result>(path: P) -> crate::Result {
/// Copies user-defined files to the deb package.
#[tracing::instrument(level = "trace")]
-fn copy_custom_files(config: &Config, data_dir: &Path) -> crate::Result<()> {
- if let Some(files) = config.deb().and_then(|d| d.files.as_ref()) {
- for (src, target) in files.iter() {
- let src = Path::new(src).canonicalize()?;
- let target = Path::new(target);
- let target = if target.is_absolute() {
- target.strip_prefix("/").unwrap()
- } else {
- target
- };
-
- if src.is_file() {
- let dest = data_dir.join(target);
- let parent = dest
- .parent()
- .ok_or_else(|| crate::Error::ParentDirNotFound(dest.clone()))?;
- std::fs::create_dir_all(parent)?;
- std::fs::copy(src, dest)?;
- } else if src.is_dir() {
- for entry in walkdir::WalkDir::new(&src) {
- let entry = entry?;
- let path = entry.path();
- if path.is_file() {
- let relative = path.relative_to(&src)?.to_path("");
- let parent = data_dir.join(target);
- let dest = parent.join(relative);
- std::fs::create_dir_all(parent)?;
- std::fs::copy(path, dest)?;
- }
+pub fn copy_custom_files(files: &HashMap, data_dir: &Path) -> crate::Result<()> {
+ for (src, target) in files.iter() {
+ let src = Path::new(src).canonicalize()?;
+ let target = Path::new(target);
+ let target = if target.is_absolute() {
+ target.strip_prefix("/").unwrap()
+ } else {
+ target
+ };
+
+ if src.is_file() {
+ let dest = data_dir.join(target);
+ let parent = dest
+ .parent()
+ .ok_or_else(|| crate::Error::ParentDirNotFound(dest.clone()))?;
+ std::fs::create_dir_all(parent)?;
+ std::fs::copy(src, dest)?;
+ } else if src.is_dir() {
+ let dest_dir = data_dir.join(target);
+
+ for entry in walkdir::WalkDir::new(&src) {
+ let entry = entry?;
+ let path = entry.path();
+ if path.is_file() {
+ let relative = path.relative_to(&src)?.to_path("");
+ let dest = dest_dir.join(relative);
+ std::fs::create_dir_all(dest.parent().unwrap())?;
+ std::fs::copy(path, dest)?;
}
}
}
}
+
Ok(())
}
@@ -368,8 +368,10 @@ pub(crate) fn package(ctx: &Context) -> crate::Result> {
let data_dir = deb_dir.join("data");
let _ = generate_data(config, &data_dir)?;
- tracing::debug!("Copying files specifeid in `deb.files`");
- copy_custom_files(config, &data_dir)?;
+ tracing::debug!("Copying files specified in `deb.files`");
+ if let Some(files) = config.deb().and_then(|d| d.files.as_ref()) {
+ copy_custom_files(files, &data_dir)?;
+ }
let control_dir = deb_dir.join("control");
tracing::debug!("Generating control file");
diff --git a/crates/packager/src/package/nsis/mod.rs b/crates/packager/src/package/nsis/mod.rs
index 53bdd634..10f5005f 100644
--- a/crates/packager/src/package/nsis/mod.rs
+++ b/crates/packager/src/package/nsis/mod.rs
@@ -80,6 +80,7 @@ fn generate_binaries_data(config: &Config) -> crate::Result {
if let Some(external_binaries) = &config.external_binaries {
for src in external_binaries {
+ let src = PathBuf::from(src).with_extension("exe");
let bin_path = dunce::canonicalize(cwd.join(src))?;
let dest_filename = bin_path
.file_name()
@@ -92,7 +93,7 @@ fn generate_binaries_data(config: &Config) -> crate::Result {
for bin in &config.binaries {
if !bin.main {
- let bin_path = config.binary_path(bin);
+ let bin_path = config.binary_path(bin).with_extension("exe");
let dest_filename = bin_path
.file_name()
.ok_or_else(|| crate::Error::FailedToExtractFilename(bin_path.clone()))?
@@ -285,13 +286,14 @@ fn build_nsis_app_installer(ctx: &Context, nsis_path: &Path) -> crate::Result return Err(crate::Error::UnsupportedArch("nsis".into(), target.into())),
};
+ let main_binary = config.main_binary()?;
+ let main_binary_name = config.main_binary_name()?;
+ let main_binary_path = config.binary_path(main_binary).with_extension("exe");
+
#[cfg(target_os = "windows")]
{
- let main_binary = config.main_binary()?;
- let app_exe_source = config.binary_path(main_binary);
- let signing_path = app_exe_source.with_extension("exe");
- tracing::debug!("Codesigning {}", signing_path.display());
- codesign::try_sign(&signing_path, config)?;
+ tracing::debug!("Codesigning {}", main_binary_path.display());
+ codesign::try_sign(&main_binary_path, config)?;
}
#[cfg(not(target_os = "windows"))]
@@ -418,16 +420,8 @@ fn build_nsis_app_installer(ctx: &Context, nsis_path: &Path) -> crate::Result crate::Result crate::Result> {
if let Some(external_binaries) = &config.external_binaries {
for src in external_binaries {
- let binary_path = cwd.join(src);
- let src = PathBuf::from(src);
- let dest_filename = src
+ let src = PathBuf::from(src).with_extension("exe");
+ let bin_path = dunce::canonicalize(cwd.join(src))?;
+ let dest_filename = bin_path
.file_name()
- .ok_or_else(|| crate::Error::FailedToExtractFilename(src.clone()))?
+ .ok_or_else(|| crate::Error::FailedToExtractFilename(bin_path.clone()))?
.to_string_lossy()
.replace(&format!("-{}", config.target_triple()), "");
let dest = tmp_dir.join(&dest_filename);
- std::fs::copy(binary_path, &dest)?;
+ std::fs::copy(bin_path, &dest)?;
binaries.push(Binary {
guid: Uuid::new_v4().to_string(),
@@ -165,11 +165,19 @@ fn generate_binaries_data(config: &Config) -> crate::Result> {
guid: Uuid::new_v4().to_string(),
path: config
.binary_path(bin)
+ .with_extension("exe")
.into_os_string()
.into_string()
.unwrap_or_default(),
id: regex
- .replace_all(&bin.filename.replace('-', "_"), "")
+ .replace_all(
+ &bin.path
+ .file_stem()
+ .unwrap()
+ .to_string_lossy()
+ .replace('-', "_"),
+ "",
+ )
.to_string(),
})
}
@@ -457,10 +465,11 @@ fn build_wix_app_installer(ctx: &Context, wix_path: &Path) -> crate::Result crate::Result crate::Result crate::Result crate::Result {
use windows_sys::Win32::System::{
- Diagnostics::Debug::{PROCESSOR_ARCHITECTURE_AMD64, PROCESSOR_ARCHITECTURE_INTEL},
+ SystemInformation::{PROCESSOR_ARCHITECTURE_AMD64, PROCESSOR_ARCHITECTURE_INTEL},
SystemInformation::{GetNativeSystemInfo, SYSTEM_INFO},
};
diff --git a/examples/deno/packager.json b/examples/deno/packager.json
index 1998543a..47d05f43 100644
--- a/examples/deno/packager.json
+++ b/examples/deno/packager.json
@@ -7,6 +7,6 @@
"version": "0.0.0",
"identifier": "com.deno.example",
"resources": ["deno-example.js", "README.md"],
- "binaries": [{ "filename": "deno-example", "main": true }],
+ "binaries": [{ "path": "deno-example", "main": true }],
"icons": ["32x32.png"]
}
diff --git a/examples/electron/.gitignore b/examples/electron/.gitignore
new file mode 100644
index 00000000..04c01ba7
--- /dev/null
+++ b/examples/electron/.gitignore
@@ -0,0 +1,2 @@
+node_modules/
+dist/
\ No newline at end of file
diff --git a/examples/electron/electron.png b/examples/electron/electron.png
new file mode 100644
index 00000000..1faf5fcd
Binary files /dev/null and b/examples/electron/electron.png differ
diff --git a/examples/electron/index.html b/examples/electron/index.html
new file mode 100644
index 00000000..3cbb11d7
--- /dev/null
+++ b/examples/electron/index.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+ Hello World!
+
+
+
+
Hello World!
+ We are using Node.js ,
+ Chromium ,
+ and Electron .
+
+
+
\ No newline at end of file
diff --git a/examples/electron/main.js b/examples/electron/main.js
new file mode 100644
index 00000000..45aee6b6
--- /dev/null
+++ b/examples/electron/main.js
@@ -0,0 +1,26 @@
+const { app, BrowserWindow } = require('electron')
+const path = require('node:path')
+
+const createWindow = () => {
+ const win = new BrowserWindow({
+ width: 800,
+ height: 600,
+ webPreferences: {
+ preload: path.join(__dirname, 'preload.js')
+ }
+ })
+
+ win.loadFile('index.html')
+}
+
+app.whenReady().then(() => {
+ createWindow()
+
+ app.on('activate', () => {
+ if (BrowserWindow.getAllWindows().length === 0) createWindow()
+ })
+})
+
+app.on('window-all-closed', () => {
+ if (process.platform !== 'darwin') app.quit()
+})
diff --git a/examples/electron/package.json b/examples/electron/package.json
new file mode 100644
index 00000000..e05a8d88
--- /dev/null
+++ b/examples/electron/package.json
@@ -0,0 +1,30 @@
+{
+ "name": "electron-app",
+ "productName": "ElectronApp",
+ "version": "1.0.0",
+ "description": "Hello World!",
+ "main": "main.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/crabnebula-dev/cargo-packager.git"
+ },
+ "author": "CrabNebula Ltd.",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/crabnebula-dev/cargo-packager/issues"
+ },
+ "homepage": "https://github.com/crabnebula-dev/cargo-packager#readme",
+ "devDependencies": {
+ "electron": "^27.0.3"
+ },
+ "packager": {
+ "outDir": "./dist",
+ "identifier": "com.electron.example",
+ "icons": [
+ "electron.png"
+ ]
+ }
+}
diff --git a/examples/electron/preload.js b/examples/electron/preload.js
new file mode 100644
index 00000000..52536927
--- /dev/null
+++ b/examples/electron/preload.js
@@ -0,0 +1,10 @@
+window.addEventListener('DOMContentLoaded', () => {
+ const replaceText = (selector, text) => {
+ const element = document.getElementById(selector)
+ if (element) element.innerText = text
+ }
+
+ for (const dependency of ['chrome', 'node', 'electron']) {
+ replaceText(`${dependency}-version`, process.versions[dependency])
+ }
+})
diff --git a/package.json b/package.json
new file mode 100644
index 00000000..352055cd
--- /dev/null
+++ b/package.json
@@ -0,0 +1,3 @@
+{
+ "private": true
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 00000000..f2c4041f
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,1755 @@
+lockfileVersion: '6.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .: {}
+
+ bindings/packager/nodejs:
+ dependencies:
+ '@electron/get':
+ specifier: ^3.0.0
+ version: 3.0.0
+ deepmerge:
+ specifier: ^4.3.1
+ version: 4.3.1
+ extract-zip:
+ specifier: ^2.0.1
+ version: 2.0.1
+ fs-extra:
+ specifier: ^11.1.1
+ version: 11.1.1
+ galactus:
+ specifier: ^1.0.0
+ version: 1.0.0
+ devDependencies:
+ '@napi-rs/cli':
+ specifier: ^2.16.5
+ version: 2.16.5
+ '@types/fs-extra':
+ specifier: ^11.0.3
+ version: 11.0.4
+ '@types/node':
+ specifier: ^20.8.10
+ version: 20.9.1
+ ava:
+ specifier: ^5.1.1
+ version: 5.3.1
+ json-schema-to-typescript:
+ specifier: ^13.1.1
+ version: 13.1.1
+ typescript:
+ specifier: ^5.2.2
+ version: 5.2.2
+
+ examples/electron:
+ devDependencies:
+ electron:
+ specifier: ^27.0.3
+ version: 27.1.0
+
+packages:
+
+ /@bcherny/json-schema-ref-parser@10.0.5-fork:
+ resolution: {integrity: sha512-E/jKbPoca1tfUPj3iSbitDZTGnq6FUFjkH6L8U2oDwSuwK1WhnnVtCG7oFOTg/DDnyoXbQYUiUiGOibHqaGVnw==}
+ engines: {node: '>= 16'}
+ dependencies:
+ '@jsdevtools/ono': 7.1.3
+ '@types/json-schema': 7.0.15
+ call-me-maybe: 1.0.2
+ js-yaml: 4.1.0
+ dev: true
+
+ /@electron/get@2.0.3:
+ resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ debug: 4.3.4
+ env-paths: 2.2.1
+ fs-extra: 8.1.0
+ got: 11.8.6
+ progress: 2.0.3
+ semver: 6.3.1
+ sumchecker: 3.0.1
+ optionalDependencies:
+ global-agent: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@electron/get@3.0.0:
+ resolution: {integrity: sha512-hLv4BYFiyrNRI+U0Mm2X7RxCCdJLkDUn8GCEp9QJzbLpZRko+UaLlCjOMkj6TEtirNLPyBA7y1SeGfnpOB21aQ==}
+ engines: {node: '>=14'}
+ dependencies:
+ debug: 4.3.4
+ env-paths: 2.2.1
+ fs-extra: 8.1.0
+ got: 11.8.6
+ progress: 2.0.3
+ semver: 6.3.1
+ sumchecker: 3.0.1
+ optionalDependencies:
+ global-agent: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /@jsdevtools/ono@7.1.3:
+ resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==}
+ dev: true
+
+ /@napi-rs/cli@2.16.5:
+ resolution: {integrity: sha512-mFEzwrg4IOLngGd2/P6yeqIWgwQNn59Z08n1rndu6kLDq1gg954NH9cM1O9Da0RJuybt46p43lqgSsnAY2mxqA==}
+ engines: {node: '>= 10'}
+ hasBin: true
+ dev: true
+
+ /@nodelib/fs.scandir@2.1.5:
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+ dev: true
+
+ /@nodelib/fs.stat@2.0.5:
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /@nodelib/fs.walk@1.2.8:
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.15.0
+ dev: true
+
+ /@sindresorhus/is@4.6.0:
+ resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
+ engines: {node: '>=10'}
+
+ /@szmarczak/http-timer@4.0.6:
+ resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
+ engines: {node: '>=10'}
+ dependencies:
+ defer-to-connect: 2.0.1
+
+ /@types/cacheable-request@6.0.3:
+ resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==}
+ dependencies:
+ '@types/http-cache-semantics': 4.0.4
+ '@types/keyv': 3.1.4
+ '@types/node': 20.9.1
+ '@types/responselike': 1.0.3
+
+ /@types/fs-extra@11.0.4:
+ resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
+ dependencies:
+ '@types/jsonfile': 6.1.4
+ '@types/node': 20.9.1
+ dev: true
+
+ /@types/glob@7.2.0:
+ resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
+ dependencies:
+ '@types/minimatch': 5.1.2
+ '@types/node': 20.9.1
+ dev: true
+
+ /@types/http-cache-semantics@4.0.4:
+ resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
+
+ /@types/json-schema@7.0.15:
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+ dev: true
+
+ /@types/jsonfile@6.1.4:
+ resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
+ dependencies:
+ '@types/node': 20.9.1
+ dev: true
+
+ /@types/keyv@3.1.4:
+ resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
+ dependencies:
+ '@types/node': 20.9.1
+
+ /@types/lodash@4.14.201:
+ resolution: {integrity: sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ==}
+ dev: true
+
+ /@types/minimatch@5.1.2:
+ resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
+ dev: true
+
+ /@types/node@18.18.9:
+ resolution: {integrity: sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ==}
+ dependencies:
+ undici-types: 5.26.5
+ dev: true
+
+ /@types/node@20.9.1:
+ resolution: {integrity: sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==}
+ dependencies:
+ undici-types: 5.26.5
+
+ /@types/prettier@2.7.3:
+ resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==}
+ dev: true
+
+ /@types/responselike@1.0.3:
+ resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
+ dependencies:
+ '@types/node': 20.9.1
+
+ /@types/yauzl@2.10.3:
+ resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
+ requiresBuild: true
+ dependencies:
+ '@types/node': 20.9.1
+ optional: true
+
+ /acorn-walk@8.3.0:
+ resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
+ /acorn@8.11.2:
+ resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /aggregate-error@4.0.1:
+ resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==}
+ engines: {node: '>=12'}
+ dependencies:
+ clean-stack: 4.2.0
+ indent-string: 5.0.0
+ dev: true
+
+ /ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /ansi-regex@6.0.1:
+ resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ color-convert: 2.0.1
+ dev: true
+
+ /ansi-styles@6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /any-promise@1.3.0:
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+ dev: true
+
+ /anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+ dev: true
+
+ /argparse@1.0.10:
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+ dependencies:
+ sprintf-js: 1.0.3
+ dev: true
+
+ /argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ dev: true
+
+ /array-find-index@1.0.2:
+ resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /arrgv@1.0.2:
+ resolution: {integrity: sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==}
+ engines: {node: '>=8.0.0'}
+ dev: true
+
+ /arrify@3.0.0:
+ resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /ava@5.3.1:
+ resolution: {integrity: sha512-Scv9a4gMOXB6+ni4toLuhAm9KYWEjsgBglJl+kMGI5+IVDt120CCDZyB5HNU9DjmLI2t4I0GbnxGLmmRfGTJGg==}
+ engines: {node: '>=14.19 <15 || >=16.15 <17 || >=18'}
+ hasBin: true
+ peerDependencies:
+ '@ava/typescript': '*'
+ peerDependenciesMeta:
+ '@ava/typescript':
+ optional: true
+ dependencies:
+ acorn: 8.11.2
+ acorn-walk: 8.3.0
+ ansi-styles: 6.2.1
+ arrgv: 1.0.2
+ arrify: 3.0.0
+ callsites: 4.1.0
+ cbor: 8.1.0
+ chalk: 5.3.0
+ chokidar: 3.5.3
+ chunkd: 2.0.1
+ ci-info: 3.9.0
+ ci-parallel-vars: 1.0.1
+ clean-yaml-object: 0.1.0
+ cli-truncate: 3.1.0
+ code-excerpt: 4.0.0
+ common-path-prefix: 3.0.0
+ concordance: 5.0.4
+ currently-unhandled: 0.4.1
+ debug: 4.3.4
+ emittery: 1.0.1
+ figures: 5.0.0
+ globby: 13.2.2
+ ignore-by-default: 2.1.0
+ indent-string: 5.0.0
+ is-error: 2.2.2
+ is-plain-object: 5.0.0
+ is-promise: 4.0.0
+ matcher: 5.0.0
+ mem: 9.0.2
+ ms: 2.1.3
+ p-event: 5.0.1
+ p-map: 5.5.0
+ picomatch: 2.3.1
+ pkg-conf: 4.0.0
+ plur: 5.1.0
+ pretty-ms: 8.0.0
+ resolve-cwd: 3.0.0
+ stack-utils: 2.0.6
+ strip-ansi: 7.1.0
+ supertap: 3.0.1
+ temp-dir: 3.0.0
+ write-file-atomic: 5.0.1
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ dev: true
+
+ /binary-extensions@2.2.0:
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /blueimp-md5@2.19.0:
+ resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==}
+ dev: true
+
+ /boolean@3.2.0:
+ resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==}
+ requiresBuild: true
+ optional: true
+
+ /brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+ dev: true
+
+ /braces@3.0.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.0.1
+ dev: true
+
+ /buffer-crc32@0.2.13:
+ resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
+
+ /cacheable-lookup@5.0.4:
+ resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==}
+ engines: {node: '>=10.6.0'}
+
+ /cacheable-request@7.0.4:
+ resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==}
+ engines: {node: '>=8'}
+ dependencies:
+ clone-response: 1.0.3
+ get-stream: 5.2.0
+ http-cache-semantics: 4.1.1
+ keyv: 4.5.4
+ lowercase-keys: 2.0.0
+ normalize-url: 6.1.0
+ responselike: 2.0.1
+
+ /call-me-maybe@1.0.2:
+ resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==}
+ dev: true
+
+ /callsites@4.1.0:
+ resolution: {integrity: sha512-aBMbD1Xxay75ViYezwT40aQONfr+pSXTHwNKvIXhXD6+LY3F1dLIcceoC5OZKBVHbXcysz1hL9D2w0JJIMXpUw==}
+ engines: {node: '>=12.20'}
+ dev: true
+
+ /cbor@8.1.0:
+ resolution: {integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==}
+ engines: {node: '>=12.19'}
+ dependencies:
+ nofilter: 3.1.0
+ dev: true
+
+ /chalk@5.3.0:
+ resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ dev: true
+
+ /chokidar@3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
+ /chunkd@2.0.1:
+ resolution: {integrity: sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==}
+ dev: true
+
+ /ci-info@3.9.0:
+ resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /ci-parallel-vars@1.0.1:
+ resolution: {integrity: sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==}
+ dev: true
+
+ /clean-stack@4.2.0:
+ resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==}
+ engines: {node: '>=12'}
+ dependencies:
+ escape-string-regexp: 5.0.0
+ dev: true
+
+ /clean-yaml-object@0.1.0:
+ resolution: {integrity: sha512-3yONmlN9CSAkzNwnRCiJQ7Q2xK5mWuEfL3PuTZcAUzhObbXsfsnMptJzXwz93nc5zn9V9TwCVMmV7w4xsm43dw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /cli-color@2.0.3:
+ resolution: {integrity: sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==}
+ engines: {node: '>=0.10'}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.62
+ es6-iterator: 2.0.3
+ memoizee: 0.4.15
+ timers-ext: 0.1.7
+ dev: true
+
+ /cli-truncate@3.1.0:
+ resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ slice-ansi: 5.0.0
+ string-width: 5.1.2
+ dev: true
+
+ /cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+ dev: true
+
+ /clone-response@1.0.3:
+ resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==}
+ dependencies:
+ mimic-response: 1.0.1
+
+ /code-excerpt@4.0.0:
+ resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ convert-to-spaces: 2.0.1
+ dev: true
+
+ /color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+ dependencies:
+ color-name: 1.1.4
+ dev: true
+
+ /color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ dev: true
+
+ /common-path-prefix@3.0.0:
+ resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
+ dev: true
+
+ /concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ dev: true
+
+ /concordance@5.0.4:
+ resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==}
+ engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'}
+ dependencies:
+ date-time: 3.1.0
+ esutils: 2.0.3
+ fast-diff: 1.3.0
+ js-string-escape: 1.0.1
+ lodash: 4.17.21
+ md5-hex: 3.0.1
+ semver: 7.5.4
+ well-known-symbols: 2.0.0
+ dev: true
+
+ /convert-to-spaces@2.0.1:
+ resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
+
+ /currently-unhandled@0.4.1:
+ resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ array-find-index: 1.0.2
+ dev: true
+
+ /d@1.0.1:
+ resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==}
+ dependencies:
+ es5-ext: 0.10.62
+ type: 1.2.0
+ dev: true
+
+ /date-time@3.1.0:
+ resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==}
+ engines: {node: '>=6'}
+ dependencies:
+ time-zone: 1.0.0
+ dev: true
+
+ /debug@4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+
+ /decompress-response@6.0.0:
+ resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ mimic-response: 3.1.0
+
+ /deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /defer-to-connect@2.0.1:
+ resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
+ engines: {node: '>=10'}
+
+ /define-data-property@1.1.1:
+ resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==}
+ engines: {node: '>= 0.4'}
+ requiresBuild: true
+ dependencies:
+ get-intrinsic: 1.2.2
+ gopd: 1.0.1
+ has-property-descriptors: 1.0.1
+ optional: true
+
+ /define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+ requiresBuild: true
+ dependencies:
+ define-data-property: 1.1.1
+ has-property-descriptors: 1.0.1
+ object-keys: 1.1.1
+ optional: true
+
+ /detect-node@2.1.0:
+ resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
+ requiresBuild: true
+ optional: true
+
+ /dir-glob@3.0.1:
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+ engines: {node: '>=8'}
+ dependencies:
+ path-type: 4.0.0
+ dev: true
+
+ /eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ dev: true
+
+ /electron@27.1.0:
+ resolution: {integrity: sha512-XPdJiO475QJ8cx59/goWNNWnlV0vab+Ut3occymos7VDxkHV5mFrlW6tcGi+M3bW6gBfwpJocWMng8tw542vww==}
+ engines: {node: '>= 12.20.55'}
+ hasBin: true
+ requiresBuild: true
+ dependencies:
+ '@electron/get': 2.0.3
+ '@types/node': 18.18.9
+ extract-zip: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /emittery@1.0.1:
+ resolution: {integrity: sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ==}
+ engines: {node: '>=14.16'}
+ dev: true
+
+ /emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ dev: true
+
+ /emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ dev: true
+
+ /end-of-stream@1.4.4:
+ resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
+ dependencies:
+ once: 1.4.0
+
+ /env-paths@2.2.1:
+ resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
+ engines: {node: '>=6'}
+
+ /es5-ext@0.10.62:
+ resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==}
+ engines: {node: '>=0.10'}
+ requiresBuild: true
+ dependencies:
+ es6-iterator: 2.0.3
+ es6-symbol: 3.1.3
+ next-tick: 1.1.0
+ dev: true
+
+ /es6-error@4.1.1:
+ resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==}
+ requiresBuild: true
+ optional: true
+
+ /es6-iterator@2.0.3:
+ resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.62
+ es6-symbol: 3.1.3
+ dev: true
+
+ /es6-symbol@3.1.3:
+ resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==}
+ dependencies:
+ d: 1.0.1
+ ext: 1.7.0
+ dev: true
+
+ /es6-weak-map@2.0.3:
+ resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.62
+ es6-iterator: 2.0.3
+ es6-symbol: 3.1.3
+ dev: true
+
+ /escalade@3.1.1:
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /escape-string-regexp@2.0.0:
+ resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+ requiresBuild: true
+ optional: true
+
+ /escape-string-regexp@5.0.0:
+ resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /esprima@4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
+ /esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /event-emitter@0.3.5:
+ resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.62
+ dev: true
+
+ /ext@1.7.0:
+ resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==}
+ dependencies:
+ type: 2.7.2
+ dev: true
+
+ /extract-zip@2.0.1:
+ resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==}
+ engines: {node: '>= 10.17.0'}
+ hasBin: true
+ dependencies:
+ debug: 4.3.4
+ get-stream: 5.2.0
+ yauzl: 2.10.0
+ optionalDependencies:
+ '@types/yauzl': 2.10.3
+ transitivePeerDependencies:
+ - supports-color
+
+ /fast-diff@1.3.0:
+ resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
+ dev: true
+
+ /fast-glob@3.3.2:
+ resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
+ engines: {node: '>=8.6.0'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.5
+ dev: true
+
+ /fastq@1.15.0:
+ resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
+ dependencies:
+ reusify: 1.0.4
+ dev: true
+
+ /fd-slicer@1.1.0:
+ resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
+ dependencies:
+ pend: 1.2.0
+
+ /figures@5.0.0:
+ resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==}
+ engines: {node: '>=14'}
+ dependencies:
+ escape-string-regexp: 5.0.0
+ is-unicode-supported: 1.3.0
+ dev: true
+
+ /fill-range@7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+ dev: true
+
+ /find-up@6.3.0:
+ resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ locate-path: 7.2.0
+ path-exists: 5.0.0
+ dev: true
+
+ /flora-colossus@2.0.0:
+ resolution: {integrity: sha512-dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==}
+ engines: {node: '>= 12'}
+ dependencies:
+ debug: 4.3.4
+ fs-extra: 10.1.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /fs-extra@10.1.0:
+ resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+ dev: false
+
+ /fs-extra@11.1.1:
+ resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==}
+ engines: {node: '>=14.14'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+ dev: false
+
+ /fs-extra@8.1.0:
+ resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
+ engines: {node: '>=6 <7 || >=8'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 4.0.0
+ universalify: 0.1.2
+
+ /fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+ dev: true
+
+ /fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+ requiresBuild: true
+ optional: true
+
+ /galactus@1.0.0:
+ resolution: {integrity: sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ==}
+ engines: {node: '>= 12'}
+ dependencies:
+ debug: 4.3.4
+ flora-colossus: 2.0.0
+ fs-extra: 10.1.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+ dev: true
+
+ /get-intrinsic@1.2.2:
+ resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==}
+ requiresBuild: true
+ dependencies:
+ function-bind: 1.1.2
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ hasown: 2.0.0
+ optional: true
+
+ /get-stdin@8.0.0:
+ resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /get-stream@5.2.0:
+ resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
+ engines: {node: '>=8'}
+ dependencies:
+ pump: 3.0.0
+
+ /glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
+ /glob-promise@4.2.2(glob@7.2.3):
+ resolution: {integrity: sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ glob: ^7.1.6
+ dependencies:
+ '@types/glob': 7.2.0
+ glob: 7.2.3
+ dev: true
+
+ /glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+ dev: true
+
+ /global-agent@3.0.0:
+ resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==}
+ engines: {node: '>=10.0'}
+ requiresBuild: true
+ dependencies:
+ boolean: 3.2.0
+ es6-error: 4.1.1
+ matcher: 3.0.0
+ roarr: 2.15.4
+ semver: 7.5.4
+ serialize-error: 7.0.1
+ optional: true
+
+ /globalthis@1.0.3:
+ resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
+ engines: {node: '>= 0.4'}
+ requiresBuild: true
+ dependencies:
+ define-properties: 1.2.1
+ optional: true
+
+ /globby@13.2.2:
+ resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ dir-glob: 3.0.1
+ fast-glob: 3.3.2
+ ignore: 5.3.0
+ merge2: 1.4.1
+ slash: 4.0.0
+ dev: true
+
+ /gopd@1.0.1:
+ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
+ requiresBuild: true
+ dependencies:
+ get-intrinsic: 1.2.2
+ optional: true
+
+ /got@11.8.6:
+ resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==}
+ engines: {node: '>=10.19.0'}
+ dependencies:
+ '@sindresorhus/is': 4.6.0
+ '@szmarczak/http-timer': 4.0.6
+ '@types/cacheable-request': 6.0.3
+ '@types/responselike': 1.0.3
+ cacheable-lookup: 5.0.4
+ cacheable-request: 7.0.4
+ decompress-response: 6.0.0
+ http2-wrapper: 1.0.3
+ lowercase-keys: 2.0.0
+ p-cancelable: 2.1.1
+ responselike: 2.0.1
+
+ /graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ /has-property-descriptors@1.0.1:
+ resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==}
+ requiresBuild: true
+ dependencies:
+ get-intrinsic: 1.2.2
+ optional: true
+
+ /has-proto@1.0.1:
+ resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
+ engines: {node: '>= 0.4'}
+ requiresBuild: true
+ optional: true
+
+ /has-symbols@1.0.3:
+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
+ engines: {node: '>= 0.4'}
+ requiresBuild: true
+ optional: true
+
+ /hasown@2.0.0:
+ resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
+ engines: {node: '>= 0.4'}
+ requiresBuild: true
+ dependencies:
+ function-bind: 1.1.2
+ optional: true
+
+ /http-cache-semantics@4.1.1:
+ resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
+
+ /http2-wrapper@1.0.3:
+ resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==}
+ engines: {node: '>=10.19.0'}
+ dependencies:
+ quick-lru: 5.1.1
+ resolve-alpn: 1.2.1
+
+ /ignore-by-default@2.1.0:
+ resolution: {integrity: sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==}
+ engines: {node: '>=10 <11 || >=12 <13 || >=14'}
+ dev: true
+
+ /ignore@5.3.0:
+ resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
+ engines: {node: '>= 4'}
+ dev: true
+
+ /imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+ dev: true
+
+ /indent-string@5.0.0:
+ resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+ dev: true
+
+ /inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ dev: true
+
+ /irregular-plurals@3.5.0:
+ resolution: {integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.2.0
+ dev: true
+
+ /is-error@2.2.2:
+ resolution: {integrity: sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==}
+ dev: true
+
+ /is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-fullwidth-code-point@4.0.0:
+ resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+ dev: true
+
+ /is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+ dev: true
+
+ /is-plain-object@5.0.0:
+ resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-promise@2.2.2:
+ resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==}
+ dev: true
+
+ /is-promise@4.0.0:
+ resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
+ dev: true
+
+ /is-unicode-supported@1.3.0:
+ resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /js-string-escape@1.0.1:
+ resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==}
+ engines: {node: '>= 0.8'}
+ dev: true
+
+ /js-yaml@3.14.1:
+ resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ hasBin: true
+ dependencies:
+ argparse: 1.0.10
+ esprima: 4.0.1
+ dev: true
+
+ /js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+ dev: true
+
+ /json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+ /json-schema-to-typescript@13.1.1:
+ resolution: {integrity: sha512-F3CYhtA7F3yPbb8vF7sFchk/2dnr1/yTKf8RcvoNpjnh67ZS/ZMH1ElLt5KHAtf2/bymiejLQQszszPWEeTdSw==}
+ engines: {node: '>=12.0.0'}
+ hasBin: true
+ dependencies:
+ '@bcherny/json-schema-ref-parser': 10.0.5-fork
+ '@types/json-schema': 7.0.15
+ '@types/lodash': 4.14.201
+ '@types/prettier': 2.7.3
+ cli-color: 2.0.3
+ get-stdin: 8.0.0
+ glob: 7.2.3
+ glob-promise: 4.2.2(glob@7.2.3)
+ is-glob: 4.0.3
+ lodash: 4.17.21
+ minimist: 1.2.8
+ mkdirp: 1.0.4
+ mz: 2.7.0
+ prettier: 2.8.8
+ dev: true
+
+ /json-stringify-safe@5.0.1:
+ resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
+ requiresBuild: true
+ optional: true
+
+ /jsonfile@4.0.0:
+ resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ /jsonfile@6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+ dev: false
+
+ /keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+ dependencies:
+ json-buffer: 3.0.1
+
+ /load-json-file@7.0.1:
+ resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
+
+ /locate-path@7.2.0:
+ resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ p-locate: 6.0.0
+ dev: true
+
+ /lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ dev: true
+
+ /lowercase-keys@2.0.0:
+ resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
+ engines: {node: '>=8'}
+
+ /lru-cache@6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+ dependencies:
+ yallist: 4.0.0
+
+ /lru-queue@0.1.0:
+ resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==}
+ dependencies:
+ es5-ext: 0.10.62
+ dev: true
+
+ /map-age-cleaner@0.1.3:
+ resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
+ engines: {node: '>=6'}
+ dependencies:
+ p-defer: 1.0.0
+ dev: true
+
+ /matcher@3.0.0:
+ resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==}
+ engines: {node: '>=10'}
+ requiresBuild: true
+ dependencies:
+ escape-string-regexp: 4.0.0
+ optional: true
+
+ /matcher@5.0.0:
+ resolution: {integrity: sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ escape-string-regexp: 5.0.0
+ dev: true
+
+ /md5-hex@3.0.1:
+ resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==}
+ engines: {node: '>=8'}
+ dependencies:
+ blueimp-md5: 2.19.0
+ dev: true
+
+ /mem@9.0.2:
+ resolution: {integrity: sha512-F2t4YIv9XQUBHt6AOJ0y7lSmP1+cY7Fm1DRh9GClTGzKST7UWLMx6ly9WZdLH/G/ppM5RL4MlQfRT71ri9t19A==}
+ engines: {node: '>=12.20'}
+ dependencies:
+ map-age-cleaner: 0.1.3
+ mimic-fn: 4.0.0
+ dev: true
+
+ /memoizee@0.4.15:
+ resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.62
+ es6-weak-map: 2.0.3
+ event-emitter: 0.3.5
+ is-promise: 2.2.2
+ lru-queue: 0.1.0
+ next-tick: 1.1.0
+ timers-ext: 0.1.7
+ dev: true
+
+ /merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /micromatch@4.0.5:
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+ dev: true
+
+ /mimic-fn@4.0.0:
+ resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /mimic-response@1.0.1:
+ resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
+ engines: {node: '>=4'}
+
+ /mimic-response@3.1.0:
+ resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
+ engines: {node: '>=10'}
+
+ /minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ dependencies:
+ brace-expansion: 1.1.11
+ dev: true
+
+ /minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+ dev: true
+
+ /mkdirp@1.0.4:
+ resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dev: true
+
+ /ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+
+ /ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ dev: true
+
+ /mz@2.7.0:
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+ dependencies:
+ any-promise: 1.3.0
+ object-assign: 4.1.1
+ thenify-all: 1.6.0
+ dev: true
+
+ /next-tick@1.1.0:
+ resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
+ dev: true
+
+ /nofilter@3.1.0:
+ resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==}
+ engines: {node: '>=12.19'}
+ dev: true
+
+ /normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /normalize-url@6.1.0:
+ resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
+ engines: {node: '>=10'}
+
+ /object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+ requiresBuild: true
+ optional: true
+
+ /once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ dependencies:
+ wrappy: 1.0.2
+
+ /p-cancelable@2.1.1:
+ resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==}
+ engines: {node: '>=8'}
+
+ /p-defer@1.0.0:
+ resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /p-event@5.0.1:
+ resolution: {integrity: sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ p-timeout: 5.1.0
+ dev: true
+
+ /p-limit@4.0.0:
+ resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ yocto-queue: 1.0.0
+ dev: true
+
+ /p-locate@6.0.0:
+ resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ p-limit: 4.0.0
+ dev: true
+
+ /p-map@5.5.0:
+ resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==}
+ engines: {node: '>=12'}
+ dependencies:
+ aggregate-error: 4.0.1
+ dev: true
+
+ /p-timeout@5.1.0:
+ resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /parse-ms@3.0.0:
+ resolution: {integrity: sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /path-exists@5.0.0:
+ resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
+
+ /path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /pend@1.2.0:
+ resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
+
+ /picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+ dev: true
+
+ /pkg-conf@4.0.0:
+ resolution: {integrity: sha512-7dmgi4UY4qk+4mj5Cd8v/GExPo0K+SlY+hulOSdfZ/T6jVH6//y7NtzZo5WrfhDBxuQ0jCa7fLZmNaNh7EWL/w==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ find-up: 6.3.0
+ load-json-file: 7.0.1
+ dev: true
+
+ /plur@5.1.0:
+ resolution: {integrity: sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ irregular-plurals: 3.5.0
+ dev: true
+
+ /prettier@2.8.8:
+ resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ dev: true
+
+ /pretty-ms@8.0.0:
+ resolution: {integrity: sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==}
+ engines: {node: '>=14.16'}
+ dependencies:
+ parse-ms: 3.0.0
+ dev: true
+
+ /progress@2.0.3:
+ resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
+ engines: {node: '>=0.4.0'}
+
+ /pump@3.0.0:
+ resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
+
+ /queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ dev: true
+
+ /quick-lru@5.1.1:
+ resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
+ engines: {node: '>=10'}
+
+ /readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+ dev: true
+
+ /require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /resolve-alpn@1.2.1:
+ resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
+
+ /resolve-cwd@3.0.0:
+ resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ resolve-from: 5.0.0
+ dev: true
+
+ /resolve-from@5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /responselike@2.0.1:
+ resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==}
+ dependencies:
+ lowercase-keys: 2.0.0
+
+ /reusify@1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ dev: true
+
+ /roarr@2.15.4:
+ resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==}
+ engines: {node: '>=8.0'}
+ requiresBuild: true
+ dependencies:
+ boolean: 3.2.0
+ detect-node: 2.1.0
+ globalthis: 1.0.3
+ json-stringify-safe: 5.0.1
+ semver-compare: 1.0.0
+ sprintf-js: 1.1.3
+ optional: true
+
+ /run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ dependencies:
+ queue-microtask: 1.2.3
+ dev: true
+
+ /semver-compare@1.0.0:
+ resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==}
+ requiresBuild: true
+ optional: true
+
+ /semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+
+ /semver@7.5.4:
+ resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+
+ /serialize-error@7.0.1:
+ resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==}
+ engines: {node: '>=10'}
+ dependencies:
+ type-fest: 0.13.1
+
+ /signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+ dev: true
+
+ /slash@4.0.0:
+ resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /slice-ansi@5.0.0:
+ resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-styles: 6.2.1
+ is-fullwidth-code-point: 4.0.0
+ dev: true
+
+ /sprintf-js@1.0.3:
+ resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+ dev: true
+
+ /sprintf-js@1.1.3:
+ resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
+ requiresBuild: true
+ optional: true
+
+ /stack-utils@2.0.6:
+ resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ escape-string-regexp: 2.0.0
+ dev: true
+
+ /string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+ dev: true
+
+ /string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
+ dev: true
+
+ /strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-regex: 5.0.1
+ dev: true
+
+ /strip-ansi@7.1.0:
+ resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-regex: 6.0.1
+ dev: true
+
+ /sumchecker@3.0.1:
+ resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==}
+ engines: {node: '>= 8.0'}
+ dependencies:
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+
+ /supertap@3.0.1:
+ resolution: {integrity: sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ indent-string: 5.0.0
+ js-yaml: 3.14.1
+ serialize-error: 7.0.1
+ strip-ansi: 7.1.0
+ dev: true
+
+ /temp-dir@3.0.0:
+ resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==}
+ engines: {node: '>=14.16'}
+ dev: true
+
+ /thenify-all@1.6.0:
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
+ engines: {node: '>=0.8'}
+ dependencies:
+ thenify: 3.3.1
+ dev: true
+
+ /thenify@3.3.1:
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+ dependencies:
+ any-promise: 1.3.0
+ dev: true
+
+ /time-zone@1.0.0:
+ resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /timers-ext@0.1.7:
+ resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==}
+ dependencies:
+ es5-ext: 0.10.62
+ next-tick: 1.1.0
+ dev: true
+
+ /to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ is-number: 7.0.0
+ dev: true
+
+ /type-fest@0.13.1:
+ resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
+ engines: {node: '>=10'}
+
+ /type@1.2.0:
+ resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==}
+ dev: true
+
+ /type@2.7.2:
+ resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==}
+ dev: true
+
+ /typescript@5.2.2:
+ resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+ dev: true
+
+ /undici-types@5.26.5:
+ resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+
+ /universalify@0.1.2:
+ resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
+ engines: {node: '>= 4.0.0'}
+
+ /universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+ dev: false
+
+ /well-known-symbols@2.0.0:
+ resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ dev: true
+
+ /wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ /write-file-atomic@5.0.1:
+ resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ dependencies:
+ imurmurhash: 0.1.4
+ signal-exit: 4.1.0
+ dev: true
+
+ /y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /yallist@4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+
+ /yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.1.1
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+ dev: true
+
+ /yauzl@2.10.0:
+ resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
+ dependencies:
+ buffer-crc32: 0.2.13
+ fd-slicer: 1.1.0
+
+ /yocto-queue@1.0.0:
+ resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
+ engines: {node: '>=12.20'}
+ dev: true
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
new file mode 100644
index 00000000..e0cac166
--- /dev/null
+++ b/pnpm-workspace.yaml
@@ -0,0 +1,3 @@
+packages:
+ - bindings/packager/nodejs
+ - examples/electron