Compare commits

..

2 Commits

Author SHA1 Message Date
Zsolt Dollenstein
71191068af Stop fetching version information from github APIs 2026-01-22 11:26:57 +00:00
Zsolt Dollenstein
450788bda3 Try and fetch manifest from astral-sh/setup-uv@main first 2026-01-22 11:13:26 +00:00
24 changed files with 5721 additions and 12784 deletions

View File

@@ -41,13 +41,13 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
# Initializes the CodeQL tools for scanning. # Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2 uses: github/codeql-action/init@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
with: with:
languages: ${{ matrix.language }} languages: ${{ matrix.language }}
source-root: src source-root: src
@@ -59,7 +59,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below) # If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2 uses: github/codeql-action/autobuild@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
# Command-line programs to run using the OS shell. # Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl # 📚 https://git.io/JvXDl
@@ -73,4 +73,4 @@ jobs:
# make release # make release
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2 uses: github/codeql-action/analyze@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9

View File

@@ -19,6 +19,6 @@ jobs:
pull-requests: read pull-requests: read
steps: steps:
- name: 🚀 Run Release Drafter - name: 🚀 Run Release Drafter
uses: release-drafter/release-drafter@6db134d15f3909ccc9eefd369f02bd1e9cffdf97 # v6.2.0 uses: release-drafter/release-drafter@b1476f6e6eb133afa41ed8589daba6dc69b4d3f5 # v6.1.0
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -21,14 +21,14 @@ jobs:
permissions: permissions:
security-events: write # for zizmor security-events: write # for zizmor
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Actionlint - name: Actionlint
uses: eifinger/actionlint-action@7802e0cc3ab3f81cbffb36fb0bf1a3621d994b89 # v1.10.1 uses: eifinger/actionlint-action@213860089b7cf97d640aa67567898fabeb132746 # v1.9.3
- name: Run zizmor - name: Run zizmor
uses: zizmorcore/zizmor-action@0dce2577a4760a2749d8cfb7a84b7d5585ebcb7d # v0.5.0 uses: zizmorcore/zizmor-action@e639db99335bc9038abc0e066dfcd72e23d26fb4 # v0.3.0
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with: with:
node-version-file: .nvmrc node-version-file: .nvmrc
cache: npm cache: npm
@@ -51,7 +51,7 @@ jobs:
matrix: matrix:
os: [ubuntu-latest, macos-latest, macos-14, windows-latest] os: [ubuntu-latest, macos-latest, macos-14, windows-latest]
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install latest version - name: Install latest version
@@ -76,7 +76,7 @@ jobs:
test-uv-no-modify-path: test-uv-no-modify-path:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install with UV_NO_MODIFY_PATH set - name: Install with UV_NO_MODIFY_PATH set
@@ -125,7 +125,7 @@ jobs:
expected-version: "0.1.0" expected-version: "0.1.0"
resolution-strategy: "lowest" resolution-strategy: "lowest"
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install version ${{ matrix.input.version-input }} with strategy ${{ matrix.input.resolution-strategy || 'highest' }} - name: Install version ${{ matrix.input.version-input }} with strategy ${{ matrix.input.resolution-strategy || 'highest' }}
@@ -154,7 +154,7 @@ jobs:
matrix: matrix:
version-input: ["latest", ">=0.8"] version-input: ["latest", ">=0.8"]
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install version ${{ matrix.version-input }} - name: Install version ${{ matrix.version-input }}
@@ -182,7 +182,7 @@ jobs:
- working-directory: "__tests__/fixtures/uv-toml-project" - working-directory: "__tests__/fixtures/uv-toml-project"
expected-version: "0.5.15" expected-version: "0.5.15"
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install version from ${{ matrix.input.working-directory }} - name: Install version from ${{ matrix.input.working-directory }}
@@ -208,7 +208,7 @@ jobs:
- version-file: "__tests__/fixtures/.tool-versions" - version-file: "__tests__/fixtures/.tool-versions"
expected-version: "0.5.15" expected-version: "0.5.15"
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install version from ${{ matrix.input.version-file }} - name: Install version from ${{ matrix.input.version-file }}
@@ -225,7 +225,7 @@ jobs:
test-malformed-pyproject-file-fallback: test-malformed-pyproject-file-fallback:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install using malformed pyproject.toml - name: Install using malformed pyproject.toml
@@ -245,7 +245,7 @@ jobs:
- os: macos-latest - os: macos-latest
checksum: "a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218" checksum: "a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218"
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Checksum matches expected - name: Checksum matches expected
@@ -259,7 +259,7 @@ jobs:
test-with-explicit-token: test-with-explicit-token:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install default version - name: Install default version
@@ -272,7 +272,7 @@ jobs:
test-uvx: test-uvx:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install default version - name: Install default version
@@ -285,7 +285,7 @@ jobs:
matrix: matrix:
os: [ubuntu-latest, macos-latest, macos-14, windows-latest] os: [ubuntu-latest, macos-latest, macos-14, windows-latest]
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install default version - name: Install default version
@@ -293,13 +293,35 @@ jobs:
- run: uv tool install ruff - run: uv tool install ruff
- run: ruff --version - run: ruff --version
test-tilde-expansion-tool-dirs:
runs-on: selfhosted-ubuntu-arm64
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: Setup with cache
uses: ./
with:
tool-bin-dir: "~/tool-bin-dir"
tool-dir: "~/tool-dir"
- name: "Check if tool dirs are expanded"
run: |
if ! echo "$PATH" | grep -q "/home/ubuntu/tool-bin-dir"; then
echo "PATH does not contain /home/ubuntu/tool-bin-dir: $PATH"
exit 1
fi
if [ "$UV_TOOL_DIR" != "/home/ubuntu/tool-dir" ]; then
echo "UV_TOOL_DIR does not contain /home/ubuntu/tool-dir: $UV_TOOL_DIR"
exit 1
fi
test-python-version: test-python-version:
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
matrix: matrix:
os: [ubuntu-latest, macos-latest, windows-latest] os: [ubuntu-latest, macos-latest, windows-latest]
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install latest version - name: Install latest version
@@ -331,7 +353,7 @@ jobs:
matrix: matrix:
os: [ubuntu-latest, macos-latest, windows-latest] os: [ubuntu-latest, macos-latest, windows-latest]
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install latest version - name: Install latest version
@@ -364,79 +386,11 @@ jobs:
env: env:
UV_VENV: ${{ steps.setup-uv.outputs.venv }} UV_VENV: ${{ steps.setup-uv.outputs.venv }}
test-activate-environment-custom-path:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install latest version
id: setup-uv
uses: ./
with:
python-version: 3.13.1t
activate-environment: true
venv-path: ${{ runner.temp }}/custom-venv
- name: Verify VIRTUAL_ENV matches output
run: |
if [ "$VIRTUAL_ENV" != "$UV_VENV" ]; then
echo "VIRTUAL_ENV does not match venv output: $VIRTUAL_ENV vs $UV_VENV"
exit 1
fi
shell: bash
env:
UV_VENV: ${{ steps.setup-uv.outputs.venv }}
- name: Verify venv location is runner.temp/custom-venv
run: |
python - <<'PY'
import os
from pathlib import Path
venv = Path(os.environ["VIRTUAL_ENV"]).resolve()
temp = Path(os.environ["RUNNER_TEMP"]).resolve()
if venv.name != "custom-venv":
raise SystemExit(f"Expected venv name 'custom-venv', got: {venv}")
if venv.parent != temp:
raise SystemExit(f"Expected venv under {temp}, got: {venv}")
if not venv.is_dir():
raise SystemExit(f"Venv directory does not exist: {venv}")
PY
shell: bash
- name: Verify packages can be installed
run: uv pip install pip
shell: bash
- name: Verify python runs from custom venv
run: |
python - <<'PY'
import sys
if "custom-venv" not in sys.executable:
raise SystemExit(f"Python is not running from custom venv: {sys.executable}")
PY
shell: bash
test-debian-unstable:
runs-on: ubuntu-latest
container: debian:unstable
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install latest version
uses: ./
with:
enable-cache: true
- run: uv sync
working-directory: __tests__/fixtures/uv-project
test-musl: test-musl:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: alpine container: alpine
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install latest version - name: Install latest version
@@ -475,7 +429,7 @@ jobs:
- os: windows-2025 - os: windows-2025
expected-os: "windows-2025" expected-os: "windows-2025"
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Setup uv - name: Setup uv
@@ -499,9 +453,9 @@ jobs:
strategy: strategy:
matrix: matrix:
enable-cache: ["true", "false", "auto"] enable-cache: ["true", "false", "auto"]
os: ["ubuntu-latest", "windows-latest"] os: ["ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest"]
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Setup with cache - name: Setup with cache
@@ -517,10 +471,10 @@ jobs:
strategy: strategy:
matrix: matrix:
enable-cache: ["true", "false", "auto"] enable-cache: ["true", "false", "auto"]
os: ["ubuntu-latest", "windows-latest"] os: ["ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest"]
needs: test-setup-cache needs: test-setup-cache
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Restore with cache - name: Restore with cache
@@ -539,7 +493,7 @@ jobs:
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }} CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
shell: bash shell: bash
- name: Cache was not hit - name: Cache was not hit
if: ${{ matrix.enable-cache == 'false' }} if: ${{ matrix.enable-cache == 'false' || (matrix.enable-cache == 'auto' && matrix.os == 'selfhosted-ubuntu-arm64') }}
run: | run: |
if [ "$CACHE_HIT" == "true" ]; then if [ "$CACHE_HIT" == "true" ]; then
exit 1 exit 1
@@ -554,7 +508,7 @@ jobs:
test-setup-cache-requirements-txt: test-setup-cache-requirements-txt:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Setup with cache - name: Setup with cache
@@ -570,7 +524,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: test-setup-cache-requirements-txt needs: test-setup-cache-requirements-txt
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Restore with cache - name: Restore with cache
@@ -594,7 +548,7 @@ jobs:
test-setup-cache-dependency-glob: test-setup-cache-dependency-glob:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Setup with cache - name: Setup with cache
@@ -611,7 +565,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: test-setup-cache-dependency-glob needs: test-setup-cache-dependency-glob
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Change pyproject.toml - name: Change pyproject.toml
@@ -639,7 +593,7 @@ jobs:
test-setup-cache-save-cache-false: test-setup-cache-save-cache-false:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Setup with cache - name: Setup with cache
@@ -655,7 +609,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: test-setup-cache-save-cache-false needs: test-setup-cache-save-cache-false
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Restore with cache - name: Restore with cache
@@ -675,7 +629,7 @@ jobs:
test-setup-cache-restore-cache-false: test-setup-cache-restore-cache-false:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Setup with cache - name: Setup with cache
@@ -690,7 +644,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: test-setup-cache-restore-cache-false needs: test-setup-cache-restore-cache-false
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Restore with cache - name: Restore with cache
@@ -716,9 +670,11 @@ jobs:
expected-cache-dir: "/home/runner/work/_temp/setup-uv-cache" expected-cache-dir: "/home/runner/work/_temp/setup-uv-cache"
- os: windows-latest - os: windows-latest
expected-cache-dir: "D:\\a\\_temp\\setup-uv-cache" expected-cache-dir: "D:\\a\\_temp\\setup-uv-cache"
- os: selfhosted-ubuntu-arm64
expected-cache-dir: "/home/ubuntu/.cache/uv"
runs-on: ${{ matrix.inputs.os }} runs-on: ${{ matrix.inputs.os }}
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Setup with cache - name: Setup with cache
@@ -736,7 +692,7 @@ jobs:
test-cache-local-cache-disabled: test-cache-local-cache-disabled:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Setup without cache - name: Setup without cache
@@ -755,7 +711,7 @@ jobs:
test-cache-local-cache-disabled-but-explicit-path: test-cache-local-cache-disabled-but-explicit-path:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Setup without cache - name: Setup without cache
@@ -772,10 +728,99 @@ jobs:
fi fi
shell: bash shell: bash
test-setup-cache-local:
runs-on: selfhosted-ubuntu-arm64
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: Setup with cache
uses: ./
with:
enable-cache: true
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
cache-local-path: /tmp/uv-cache
- run: uv sync
working-directory: __tests__/fixtures/uv-project
test-restore-cache-local:
runs-on: selfhosted-ubuntu-arm64
needs: test-setup-cache-local
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: Restore with cache
id: restore
uses: ./
with:
enable-cache: true
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
cache-local-path: /tmp/uv-cache
- name: Cache was hit
run: |
if [ "$CACHE_HIT" != "true" ]; then
exit 1
fi
env:
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
- run: uv sync
working-directory: __tests__/fixtures/uv-project
test-tilde-expansion-cache-local-path:
runs-on: selfhosted-ubuntu-arm64
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: Create cache directory
run: mkdir -p ~/uv-cache
shell: bash
- name: Setup with cache
uses: ./
with:
cache-local-path: ~/uv-cache/cache-local-path
- run: uv sync
working-directory: __tests__/fixtures/uv-project
test-tilde-expansion-cache-dependency-glob:
runs-on: selfhosted-ubuntu-arm64
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: Create cache directory
run: mkdir -p ~/uv-cache
shell: bash
- name: Create cache dependency glob file
run: touch ~/uv-cache.glob
shell: bash
- name: Setup with cache
uses: ./
with:
enable-cache: true
cache-local-path: ~/uv-cache/cache-dependency-glob
cache-dependency-glob: "~/uv-cache.glob"
- run: uv sync
working-directory: __tests__/fixtures/uv-project
cleanup-tilde-expansion-tests:
needs:
- test-tilde-expansion-cache-local-path
- test-tilde-expansion-cache-dependency-glob
if: always()
runs-on: selfhosted-ubuntu-arm64
steps:
- name: Remove cache directory
run: rm -rf ~/uv-cache
shell: bash
- name: Remove cache dependency glob file
run: rm -f ~/uv-cache.glob
shell: bash
test-no-python-version: test-no-python-version:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Fake pyproject.toml at root - name: Fake pyproject.toml at root
@@ -790,7 +835,7 @@ jobs:
test-custom-manifest-file: test-custom-manifest-file:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install from custom manifest file - name: Install from custom manifest file
@@ -809,7 +854,7 @@ jobs:
test-absolute-path: test-absolute-path:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Create requirements.txt - name: Create requirements.txt
@@ -829,7 +874,7 @@ jobs:
test-relative-path: test-relative-path:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: mkdir - name: mkdir
@@ -853,7 +898,7 @@ jobs:
test-cache-prune-force: test-cache-prune-force:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Setup uv - name: Setup uv
@@ -870,7 +915,7 @@ jobs:
test-cache-dir-from-file: test-cache-dir-from-file:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Verify uv cache dir is not populated - name: Verify uv cache dir is not populated
@@ -892,33 +937,10 @@ jobs:
exit 1 exit 1
fi fi
test-cache-python-missing-managed-install-dir:
runs-on: ubuntu-latest
env:
UV_PYTHON_INSTALL_DIR: /tmp/missing-uv-python
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Setup uv with cache and python cache enabled
uses: ./
with:
enable-cache: true
cache-python: true
python-version: "3.12"
cache-local-path: /tmp/setup-uv-cache
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-cache-python-missing-managed-install-dir
- name: Ensure uv cache dir exists so only python-cache behavior is tested
run: uv sync
working-directory: __tests__/fixtures/uv-project
shell: bash
- name: Ensure managed Python install dir does not exist and this does not break caching
run: rm -rf "$UV_PYTHON_INSTALL_DIR"
test-cache-python-installs: test-cache-python-installs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Verify Python install dir is not populated - name: Verify Python install dir is not populated
@@ -945,7 +967,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: test-cache-python-installs needs: test-cache-python-installs
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Verify Python install dir does not exist - name: Verify Python install dir does not exist
@@ -985,9 +1007,11 @@ jobs:
expected-python-dir: "/home/runner/work/_temp/uv-python-dir" expected-python-dir: "/home/runner/work/_temp/uv-python-dir"
- os: windows-latest - os: windows-latest
expected-python-dir: "D:\\a\\_temp\\uv-python-dir" expected-python-dir: "D:\\a\\_temp\\uv-python-dir"
- os: selfhosted-ubuntu-arm64
expected-python-dir: "/home/ubuntu/.local/share/uv/python"
runs-on: ${{ matrix.inputs.os }} runs-on: ${{ matrix.inputs.os }}
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install latest version - name: Install latest version
@@ -1006,7 +1030,7 @@ jobs:
test-act: test-act:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Install act - name: Install act
@@ -1021,11 +1045,11 @@ jobs:
validate-typings: validate-typings:
runs-on: "ubuntu-latest" runs-on: "ubuntu-latest"
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: false persist-credentials: false
- name: Validate typings - name: Validate typings
uses: typesafegithub/github-actions-typing@9ddf35b71a482be7d8922b28e8d00df16b77e315 # v2.2.2 uses: typesafegithub/github-actions-typing@184d97003b1300f6a10e286eb98c191e416ff02b # v2.2.1
all-tests-passed: all-tests-passed:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -1042,10 +1066,9 @@ jobs:
- test-with-explicit-token - test-with-explicit-token
- test-uvx - test-uvx
- test-tool-install - test-tool-install
- test-tilde-expansion-tool-dirs
- test-python-version - test-python-version
- test-activate-environment - test-activate-environment
- test-activate-environment-custom-path
- test-debian-unstable
- test-musl - test-musl
- test-cache-key-os-version - test-cache-key-os-version
- test-cache-local - test-cache-local
@@ -1061,13 +1084,17 @@ jobs:
- test-restore-cache-save-cache-false - test-restore-cache-save-cache-false
- test-setup-cache-restore-cache-false - test-setup-cache-restore-cache-false
- test-restore-cache-restore-cache-false - test-restore-cache-restore-cache-false
- test-setup-cache-local
- test-restore-cache-local
- test-tilde-expansion-cache-local-path
- test-tilde-expansion-cache-dependency-glob
- cleanup-tilde-expansion-tests
- test-no-python-version - test-no-python-version
- test-custom-manifest-file - test-custom-manifest-file
- test-absolute-path - test-absolute-path
- test-relative-path - test-relative-path
- test-cache-prune-force - test-cache-prune-force
- test-cache-dir-from-file - test-cache-dir-from-file
- test-cache-python-missing-managed-install-dir
- test-cache-python-installs - test-cache-python-installs
- test-restore-python-installs - test-restore-python-installs
- test-python-install-dir - test-python-install-dir

View File

@@ -15,10 +15,10 @@ jobs:
contents: write contents: write
pull-requests: write pull-requests: write
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: true persist-credentials: true
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with: with:
node-version: "20" node-version: "20"
- name: Update known versions - name: Update known versions
@@ -55,7 +55,7 @@ jobs:
- name: Create Pull Request - name: Create Pull Request
if: ${{ steps.changes-exist.outputs.changes-exist == 'true' && steps.commit-and-push.outcome != 'success' }} if: ${{ steps.changes-exist.outputs.changes-exist == 'true' && steps.commit-and-push.outcome != 'success' }}
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0 uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v8.0.0
with: with:
commit-message: "chore: update known checksums" commit-message: "chore: update known checksums"
title: title:

View File

@@ -17,7 +17,7 @@ jobs:
permissions: permissions:
contents: write contents: write
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with: with:
persist-credentials: true # needed for git push below persist-credentials: true # needed for git push below
- name: Update Major Minor Tags - name: Update Major Minor Tags

View File

@@ -59,9 +59,6 @@ Have a look under [Advanced Configuration](#advanced-configuration) for detailed
# Use uv venv to activate a venv ready to be used by later steps # Use uv venv to activate a venv ready to be used by later steps
activate-environment: "false" activate-environment: "false"
# Custom path for the virtual environment when using activate-environment (default: .venv in the working directory)
venv-path: ""
# The directory to execute all commands in and look for files such as pyproject.toml # The directory to execute all commands in and look for files such as pyproject.toml
working-directory: "" working-directory: ""
@@ -170,7 +167,7 @@ You can set the working directory with the `working-directory` input.
This controls where we look for `pyproject.toml`, `uv.toml` and `.python-version` files This controls where we look for `pyproject.toml`, `uv.toml` and `.python-version` files
which are used to determine the version of uv and python to install. which are used to determine the version of uv and python to install.
It also controls where [the venv gets created](#activate-environment), unless `venv-path` is set. It also controls where [the venv gets created](#activate-environment).
```yaml ```yaml
- name: Install uv based on the config files in the working-directory - name: Install uv based on the config files in the working-directory
@@ -279,7 +276,7 @@ the cache will not be found and the warning `No GitHub Actions cache found for k
While this might be irritating at first, it is expected behaviour and the cache will be created While this might be irritating at first, it is expected behaviour and the cache will be created
and reused in later workflows. and reused in later workflows.
The reason for the warning is that we have to way to know if this is the first run of a new The reason for the warning is, that we have to way to know if this is the first run of a new
cache key or the user accidentally misconfigured the cache-dependency-glob cache key or the user accidentally misconfigured the cache-dependency-glob
or cache-suffix (see [Caching documentation](docs/caching.md)) and the cache never gets used. or cache-suffix (see [Caching documentation](docs/caching.md)) and the cache never gets used.
@@ -292,7 +289,7 @@ Running `actions/checkout` after `setup-uv` **is not supported**.
### Does `setup-uv` also install my project or its dependencies automatically? ### Does `setup-uv` also install my project or its dependencies automatically?
No, `setup-uv` alone won't install any libraries from your `pyproject.toml` or `requirements.txt`, it only sets up `uv`. No, `setup-uv` alone wont install any libraries from your `pyproject.toml` or `requirements.txt`, it only sets up `uv`.
You should run `uv sync` or `uv pip install .` separately, or use `uv run ...` to ensure necessary dependencies are installed. You should run `uv sync` or `uv pip install .` separately, or use `uv run ...` to ensure necessary dependencies are installed.
### Why is a changed cache not detected and not the full cache uploaded? ### Why is a changed cache not detected and not the full cache uploaded?

View File

@@ -5,7 +5,6 @@ jest.mock("@actions/core", () => {
(name: string) => (mockInputs[name] ?? "") === "true", (name: string) => (mockInputs[name] ?? "") === "true",
), ),
getInput: jest.fn((name: string) => mockInputs[name] ?? ""), getInput: jest.fn((name: string) => mockInputs[name] ?? ""),
warning: jest.fn(),
}; };
}); });
@@ -25,7 +24,6 @@ const ORIGINAL_HOME = process.env.HOME;
describe("cacheDependencyGlob", () => { describe("cacheDependencyGlob", () => {
beforeEach(() => { beforeEach(() => {
jest.resetModules(); jest.resetModules();
jest.clearAllMocks();
mockInputs = {}; mockInputs = {};
process.env.HOME = "/home/testuser"; process.env.HOME = "/home/testuser";
}); });
@@ -86,125 +84,3 @@ describe("cacheDependencyGlob", () => {
); );
}); });
}); });
describe("tool directories", () => {
beforeEach(() => {
jest.resetModules();
jest.clearAllMocks();
mockInputs = {};
process.env.HOME = "/home/testuser";
});
afterEach(() => {
process.env.HOME = ORIGINAL_HOME;
});
it("expands tilde for tool-bin-dir and tool-dir", async () => {
mockInputs["working-directory"] = "/workspace";
mockInputs["tool-bin-dir"] = "~/tool-bin-dir";
mockInputs["tool-dir"] = "~/tool-dir";
const { toolBinDir, toolDir } = await import("../../src/utils/inputs");
expect(toolBinDir).toBe("/home/testuser/tool-bin-dir");
expect(toolDir).toBe("/home/testuser/tool-dir");
});
});
describe("cacheLocalPath", () => {
beforeEach(() => {
jest.resetModules();
jest.clearAllMocks();
mockInputs = {};
process.env.HOME = "/home/testuser";
});
afterEach(() => {
process.env.HOME = ORIGINAL_HOME;
});
it("expands tilde in cache-local-path", async () => {
mockInputs["working-directory"] = "/workspace";
mockInputs["cache-local-path"] = "~/uv-cache/cache-local-path";
const { CacheLocalSource, cacheLocalPath } = await import(
"../../src/utils/inputs"
);
expect(cacheLocalPath).toEqual({
path: "/home/testuser/uv-cache/cache-local-path",
source: CacheLocalSource.Input,
});
});
});
describe("venvPath", () => {
beforeEach(() => {
jest.resetModules();
jest.clearAllMocks();
mockInputs = {};
process.env.HOME = "/home/testuser";
});
afterEach(() => {
process.env.HOME = ORIGINAL_HOME;
});
it("defaults to .venv in the working directory", async () => {
mockInputs["working-directory"] = "/workspace";
const { venvPath } = await import("../../src/utils/inputs");
expect(venvPath).toBe("/workspace/.venv");
});
it("resolves a relative venv-path", async () => {
mockInputs["working-directory"] = "/workspace";
mockInputs["activate-environment"] = "true";
mockInputs["venv-path"] = "custom-venv";
const { venvPath } = await import("../../src/utils/inputs");
expect(venvPath).toBe("/workspace/custom-venv");
});
it("normalizes venv-path with trailing slash", async () => {
mockInputs["working-directory"] = "/workspace";
mockInputs["activate-environment"] = "true";
mockInputs["venv-path"] = "custom-venv/";
const { venvPath } = await import("../../src/utils/inputs");
expect(venvPath).toBe("/workspace/custom-venv");
});
it("keeps an absolute venv-path unchanged", async () => {
mockInputs["working-directory"] = "/workspace";
mockInputs["activate-environment"] = "true";
mockInputs["venv-path"] = "/tmp/custom-venv";
const { venvPath } = await import("../../src/utils/inputs");
expect(venvPath).toBe("/tmp/custom-venv");
});
it("expands tilde in venv-path", async () => {
mockInputs["working-directory"] = "/workspace";
mockInputs["activate-environment"] = "true";
mockInputs["venv-path"] = "~/.venv";
const { venvPath } = await import("../../src/utils/inputs");
expect(venvPath).toBe("/home/testuser/.venv");
});
it("warns when venv-path is set but activate-environment is false", async () => {
mockInputs["working-directory"] = "/workspace";
mockInputs["venv-path"] = "custom-venv";
const { activateEnvironment, venvPath } = await import(
"../../src/utils/inputs"
);
expect(activateEnvironment).toBe(false);
expect(venvPath).toBe("/workspace/custom-venv");
const mockedCore = jest.requireMock("@actions/core") as {
warning: jest.Mock;
};
expect(mockedCore.warning).toHaveBeenCalledWith(
"venv-path is only used when activate-environment is true",
);
});
});

View File

@@ -9,8 +9,6 @@ inputs:
type: string type: string
activate-environment: activate-environment:
type: boolean type: boolean
venv-path:
type: string
working-directory: working-directory:
type: string type: string
checksum: checksum:

View File

@@ -15,9 +15,6 @@ inputs:
activate-environment: activate-environment:
description: "Use uv venv to activate a venv ready to be used by later steps. " description: "Use uv venv to activate a venv ready to be used by later steps. "
default: "false" default: "false"
venv-path:
description: "Custom path for the virtual environment when using activate-environment. Defaults to '.venv' in the working directory."
default: ""
working-directory: working-directory:
description: "The directory to execute all commands in and look for files such as pyproject.toml" description: "The directory to execute all commands in and look for files such as pyproject.toml"
default: ${{ github.workspace }} default: ${{ github.workspace }}

5282
dist/save-cache/index.js generated vendored
View File

@@ -16924,427 +16924,427 @@ exports.FetchError = FetchError;
/***/ 470: /***/ 470:
/***/ ((module) => { /***/ ((module) => {
/****************************************************************************** /******************************************************************************
Copyright (c) Microsoft Corporation. Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted. purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE. PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */ ***************************************************************************** */
/* global global, define, Symbol, Reflect, Promise, SuppressedError */ /* global global, define, Symbol, Reflect, Promise, SuppressedError */
var __extends; var __extends;
var __assign; var __assign;
var __rest; var __rest;
var __decorate; var __decorate;
var __param; var __param;
var __esDecorate; var __esDecorate;
var __runInitializers; var __runInitializers;
var __propKey; var __propKey;
var __setFunctionName; var __setFunctionName;
var __metadata; var __metadata;
var __awaiter; var __awaiter;
var __generator; var __generator;
var __exportStar; var __exportStar;
var __values; var __values;
var __read; var __read;
var __spread; var __spread;
var __spreadArrays; var __spreadArrays;
var __spreadArray; var __spreadArray;
var __await; var __await;
var __asyncGenerator; var __asyncGenerator;
var __asyncDelegator; var __asyncDelegator;
var __asyncValues; var __asyncValues;
var __makeTemplateObject; var __makeTemplateObject;
var __importStar; var __importStar;
var __importDefault; var __importDefault;
var __classPrivateFieldGet; var __classPrivateFieldGet;
var __classPrivateFieldSet; var __classPrivateFieldSet;
var __classPrivateFieldIn; var __classPrivateFieldIn;
var __createBinding; var __createBinding;
var __addDisposableResource; var __addDisposableResource;
var __disposeResources; var __disposeResources;
(function (factory) { (function (factory) {
var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
if (typeof define === "function" && define.amd) { if (typeof define === "function" && define.amd) {
define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });
} }
else if ( true && typeof module.exports === "object") { else if ( true && typeof module.exports === "object") {
factory(createExporter(root, createExporter(module.exports))); factory(createExporter(root, createExporter(module.exports)));
} }
else { else {
factory(createExporter(root)); factory(createExporter(root));
} }
function createExporter(exports, previous) { function createExporter(exports, previous) {
if (exports !== root) { if (exports !== root) {
if (typeof Object.create === "function") { if (typeof Object.create === "function") {
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
} }
else { else {
exports.__esModule = true; exports.__esModule = true;
} }
} }
return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
} }
}) })
(function (exporter) { (function (exporter) {
var extendStatics = Object.setPrototypeOf || var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
__extends = function (d, b) { __extends = function (d, b) {
if (typeof b !== "function" && b !== null) if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b); extendStatics(d, b);
function __() { this.constructor = d; } function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}; };
__assign = Object.assign || function (t) { __assign = Object.assign || function (t) {
for (var s, i = 1, n = arguments.length; i < n; i++) { for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i]; s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
} }
return t; return t;
}; };
__rest = function (s, e) { __rest = function (s, e) {
var t = {}; var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p]; t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function") if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]]; t[p[i]] = s[p[i]];
} }
return t; return t;
}; };
__decorate = function (decorators, target, key, desc) { __decorate = function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r; return c > 3 && r && Object.defineProperty(target, key, r), r;
}; };
__param = function (paramIndex, decorator) { __param = function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); } return function (target, key) { decorator(target, key, paramIndex); }
}; };
__esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false; var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) { for (var i = decorators.length - 1; i >= 0; i--) {
var context = {}; var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p]; for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") { if (kind === "accessor") {
if (result === void 0) continue; if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected"); if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _; if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _; if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_); if (_ = accept(result.init)) initializers.unshift(_);
} }
else if (_ = accept(result)) { else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_); if (kind === "field") initializers.unshift(_);
else descriptor[key] = _; else descriptor[key] = _;
} }
} }
if (target) Object.defineProperty(target, contextIn.name, descriptor); if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true; done = true;
}; };
__runInitializers = function (thisArg, initializers, value) { __runInitializers = function (thisArg, initializers, value) {
var useValue = arguments.length > 2; var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) { for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
} }
return useValue ? value : void 0; return useValue ? value : void 0;
}; };
__propKey = function (x) { __propKey = function (x) {
return typeof x === "symbol" ? x : "".concat(x); return typeof x === "symbol" ? x : "".concat(x);
}; };
__setFunctionName = function (f, name, prefix) { __setFunctionName = function (f, name, prefix) {
if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
}; };
__metadata = function (metadataKey, metadataValue) { __metadata = function (metadataKey, metadataValue) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}; };
__awaiter = function (thisArg, _arguments, P, generator) { __awaiter = function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) { return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next()); step((generator = generator.apply(thisArg, _arguments || [])).next());
}); });
}; };
__generator = function (thisArg, body) { __generator = function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; } function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) { function step(op) {
if (f) throw new TypeError("Generator is already executing."); if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try { while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value]; if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) { switch (op[0]) {
case 0: case 1: t = op; break; case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false }; case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue; case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue; case 7: op = _.ops.pop(); _.trys.pop(); continue;
default: default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop(); if (t[2]) _.ops.pop();
_.trys.pop(); continue; _.trys.pop(); continue;
} }
op = body.call(thisArg, _); op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
} }
}; };
__exportStar = function(m, o) { __exportStar = function(m, o) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
}; };
__createBinding = Object.create ? (function(o, m, k, k2) { __createBinding = Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k; if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k); var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } }; desc = { enumerable: true, get: function() { return m[k]; } };
} }
Object.defineProperty(o, k2, desc); Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) { }) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k; if (k2 === undefined) k2 = k;
o[k2] = m[k]; o[k2] = m[k];
}); });
__values = function (o) { __values = function (o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o); if (m) return m.call(o);
if (o && typeof o.length === "number") return { if (o && typeof o.length === "number") return {
next: function () { next: function () {
if (o && i >= o.length) o = void 0; if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o }; return { value: o && o[i++], done: !o };
} }
}; };
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}; };
__read = function (o, n) { __read = function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator]; var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o; if (!m) return o;
var i = m.call(o), r, ar = [], e; var i = m.call(o), r, ar = [], e;
try { try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
} }
catch (error) { e = { error: error }; } catch (error) { e = { error: error }; }
finally { finally {
try { try {
if (r && !r.done && (m = i["return"])) m.call(i); if (r && !r.done && (m = i["return"])) m.call(i);
} }
finally { if (e) throw e.error; } finally { if (e) throw e.error; }
} }
return ar; return ar;
}; };
/** @deprecated */ /** @deprecated */
__spread = function () { __spread = function () {
for (var ar = [], i = 0; i < arguments.length; i++) for (var ar = [], i = 0; i < arguments.length; i++)
ar = ar.concat(__read(arguments[i])); ar = ar.concat(__read(arguments[i]));
return ar; return ar;
}; };
/** @deprecated */ /** @deprecated */
__spreadArrays = function () { __spreadArrays = function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j]; r[k] = a[j];
return r; return r;
}; };
__spreadArray = function (to, from, pack) { __spreadArray = function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) { if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i); if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i]; ar[i] = from[i];
} }
} }
return to.concat(ar || Array.prototype.slice.call(from)); return to.concat(ar || Array.prototype.slice.call(from));
}; };
__await = function (v) { __await = function (v) {
return this instanceof __await ? (this.v = v, this) : new __await(v); return this instanceof __await ? (this.v = v, this) : new __await(v);
}; };
__asyncGenerator = function (thisArg, _arguments, generator) { __asyncGenerator = function (thisArg, _arguments, generator) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var g = generator.apply(thisArg, _arguments || []), i, q = []; var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
function fulfill(value) { resume("next", value); } function fulfill(value) { resume("next", value); }
function reject(value) { resume("throw", value); } function reject(value) { resume("throw", value); }
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
}; };
__asyncDelegator = function (o) { __asyncDelegator = function (o) {
var i, p; var i, p;
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; } function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
}; };
__asyncValues = function (o) { __asyncValues = function (o) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var m = o[Symbol.asyncIterator], i; var m = o[Symbol.asyncIterator], i;
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
}; };
__makeTemplateObject = function (cooked, raw) { __makeTemplateObject = function (cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked; return cooked;
}; };
var __setModuleDefault = Object.create ? (function(o, v) { var __setModuleDefault = Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v }); Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) { }) : function(o, v) {
o["default"] = v; o["default"] = v;
}; };
__importStar = function (mod) { __importStar = function (mod) {
if (mod && mod.__esModule) return mod; if (mod && mod.__esModule) return mod;
var result = {}; var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod); __setModuleDefault(result, mod);
return result; return result;
}; };
__importDefault = function (mod) { __importDefault = function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod }; return (mod && mod.__esModule) ? mod : { "default": mod };
}; };
__classPrivateFieldGet = function (receiver, state, kind, f) { __classPrivateFieldGet = function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}; };
__classPrivateFieldSet = function (receiver, state, value, kind, f) { __classPrivateFieldSet = function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
}; };
__classPrivateFieldIn = function (state, receiver) { __classPrivateFieldIn = function (state, receiver) {
if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
return typeof state === "function" ? receiver === state : state.has(receiver); return typeof state === "function" ? receiver === state : state.has(receiver);
}; };
__addDisposableResource = function (env, value, async) { __addDisposableResource = function (env, value, async) {
if (value !== null && value !== void 0) { if (value !== null && value !== void 0) {
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
var dispose; var dispose;
if (async) { if (async) {
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
dispose = value[Symbol.asyncDispose]; dispose = value[Symbol.asyncDispose];
} }
if (dispose === void 0) { if (dispose === void 0) {
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
dispose = value[Symbol.dispose]; dispose = value[Symbol.dispose];
} }
if (typeof dispose !== "function") throw new TypeError("Object not disposable."); if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
env.stack.push({ value: value, dispose: dispose, async: async }); env.stack.push({ value: value, dispose: dispose, async: async });
} }
else if (async) { else if (async) {
env.stack.push({ async: true }); env.stack.push({ async: true });
} }
return value; return value;
}; };
var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
var e = new Error(message); var e = new Error(message);
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
}; };
__disposeResources = function (env) { __disposeResources = function (env) {
function fail(e) { function fail(e) {
env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
env.hasError = true; env.hasError = true;
} }
function next() { function next() {
while (env.stack.length) { while (env.stack.length) {
var rec = env.stack.pop(); var rec = env.stack.pop();
try { try {
var result = rec.dispose && rec.dispose.call(rec.value); var result = rec.dispose && rec.dispose.call(rec.value);
if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); }); if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
} }
catch (e) { catch (e) {
fail(e); fail(e);
} }
} }
if (env.hasError) throw env.error; if (env.hasError) throw env.error;
} }
return next(); return next();
}; };
exporter("__extends", __extends); exporter("__extends", __extends);
exporter("__assign", __assign); exporter("__assign", __assign);
exporter("__rest", __rest); exporter("__rest", __rest);
exporter("__decorate", __decorate); exporter("__decorate", __decorate);
exporter("__param", __param); exporter("__param", __param);
exporter("__esDecorate", __esDecorate); exporter("__esDecorate", __esDecorate);
exporter("__runInitializers", __runInitializers); exporter("__runInitializers", __runInitializers);
exporter("__propKey", __propKey); exporter("__propKey", __propKey);
exporter("__setFunctionName", __setFunctionName); exporter("__setFunctionName", __setFunctionName);
exporter("__metadata", __metadata); exporter("__metadata", __metadata);
exporter("__awaiter", __awaiter); exporter("__awaiter", __awaiter);
exporter("__generator", __generator); exporter("__generator", __generator);
exporter("__exportStar", __exportStar); exporter("__exportStar", __exportStar);
exporter("__createBinding", __createBinding); exporter("__createBinding", __createBinding);
exporter("__values", __values); exporter("__values", __values);
exporter("__read", __read); exporter("__read", __read);
exporter("__spread", __spread); exporter("__spread", __spread);
exporter("__spreadArrays", __spreadArrays); exporter("__spreadArrays", __spreadArrays);
exporter("__spreadArray", __spreadArray); exporter("__spreadArray", __spreadArray);
exporter("__await", __await); exporter("__await", __await);
exporter("__asyncGenerator", __asyncGenerator); exporter("__asyncGenerator", __asyncGenerator);
exporter("__asyncDelegator", __asyncDelegator); exporter("__asyncDelegator", __asyncDelegator);
exporter("__asyncValues", __asyncValues); exporter("__asyncValues", __asyncValues);
exporter("__makeTemplateObject", __makeTemplateObject); exporter("__makeTemplateObject", __makeTemplateObject);
exporter("__importStar", __importStar); exporter("__importStar", __importStar);
exporter("__importDefault", __importDefault); exporter("__importDefault", __importDefault);
exporter("__classPrivateFieldGet", __classPrivateFieldGet); exporter("__classPrivateFieldGet", __classPrivateFieldGet);
exporter("__classPrivateFieldSet", __classPrivateFieldSet); exporter("__classPrivateFieldSet", __classPrivateFieldSet);
exporter("__classPrivateFieldIn", __classPrivateFieldIn); exporter("__classPrivateFieldIn", __classPrivateFieldIn);
exporter("__addDisposableResource", __addDisposableResource); exporter("__addDisposableResource", __addDisposableResource);
exporter("__disposeResources", __disposeResources); exporter("__disposeResources", __disposeResources);
}); });
/***/ }), /***/ }),
@@ -19286,427 +19286,427 @@ exports.getPagedAsyncIterator = getPagedAsyncIterator;
/***/ 6654: /***/ 6654:
/***/ ((module) => { /***/ ((module) => {
/****************************************************************************** /******************************************************************************
Copyright (c) Microsoft Corporation. Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted. purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE. PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */ ***************************************************************************** */
/* global global, define, Symbol, Reflect, Promise, SuppressedError */ /* global global, define, Symbol, Reflect, Promise, SuppressedError */
var __extends; var __extends;
var __assign; var __assign;
var __rest; var __rest;
var __decorate; var __decorate;
var __param; var __param;
var __esDecorate; var __esDecorate;
var __runInitializers; var __runInitializers;
var __propKey; var __propKey;
var __setFunctionName; var __setFunctionName;
var __metadata; var __metadata;
var __awaiter; var __awaiter;
var __generator; var __generator;
var __exportStar; var __exportStar;
var __values; var __values;
var __read; var __read;
var __spread; var __spread;
var __spreadArrays; var __spreadArrays;
var __spreadArray; var __spreadArray;
var __await; var __await;
var __asyncGenerator; var __asyncGenerator;
var __asyncDelegator; var __asyncDelegator;
var __asyncValues; var __asyncValues;
var __makeTemplateObject; var __makeTemplateObject;
var __importStar; var __importStar;
var __importDefault; var __importDefault;
var __classPrivateFieldGet; var __classPrivateFieldGet;
var __classPrivateFieldSet; var __classPrivateFieldSet;
var __classPrivateFieldIn; var __classPrivateFieldIn;
var __createBinding; var __createBinding;
var __addDisposableResource; var __addDisposableResource;
var __disposeResources; var __disposeResources;
(function (factory) { (function (factory) {
var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
if (typeof define === "function" && define.amd) { if (typeof define === "function" && define.amd) {
define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });
} }
else if ( true && typeof module.exports === "object") { else if ( true && typeof module.exports === "object") {
factory(createExporter(root, createExporter(module.exports))); factory(createExporter(root, createExporter(module.exports)));
} }
else { else {
factory(createExporter(root)); factory(createExporter(root));
} }
function createExporter(exports, previous) { function createExporter(exports, previous) {
if (exports !== root) { if (exports !== root) {
if (typeof Object.create === "function") { if (typeof Object.create === "function") {
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
} }
else { else {
exports.__esModule = true; exports.__esModule = true;
} }
} }
return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
} }
}) })
(function (exporter) { (function (exporter) {
var extendStatics = Object.setPrototypeOf || var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
__extends = function (d, b) { __extends = function (d, b) {
if (typeof b !== "function" && b !== null) if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b); extendStatics(d, b);
function __() { this.constructor = d; } function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}; };
__assign = Object.assign || function (t) { __assign = Object.assign || function (t) {
for (var s, i = 1, n = arguments.length; i < n; i++) { for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i]; s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
} }
return t; return t;
}; };
__rest = function (s, e) { __rest = function (s, e) {
var t = {}; var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p]; t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function") if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]]; t[p[i]] = s[p[i]];
} }
return t; return t;
}; };
__decorate = function (decorators, target, key, desc) { __decorate = function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r; return c > 3 && r && Object.defineProperty(target, key, r), r;
}; };
__param = function (paramIndex, decorator) { __param = function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); } return function (target, key) { decorator(target, key, paramIndex); }
}; };
__esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false; var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) { for (var i = decorators.length - 1; i >= 0; i--) {
var context = {}; var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p]; for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") { if (kind === "accessor") {
if (result === void 0) continue; if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected"); if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _; if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _; if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_); if (_ = accept(result.init)) initializers.unshift(_);
} }
else if (_ = accept(result)) { else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_); if (kind === "field") initializers.unshift(_);
else descriptor[key] = _; else descriptor[key] = _;
} }
} }
if (target) Object.defineProperty(target, contextIn.name, descriptor); if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true; done = true;
}; };
__runInitializers = function (thisArg, initializers, value) { __runInitializers = function (thisArg, initializers, value) {
var useValue = arguments.length > 2; var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) { for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
} }
return useValue ? value : void 0; return useValue ? value : void 0;
}; };
__propKey = function (x) { __propKey = function (x) {
return typeof x === "symbol" ? x : "".concat(x); return typeof x === "symbol" ? x : "".concat(x);
}; };
__setFunctionName = function (f, name, prefix) { __setFunctionName = function (f, name, prefix) {
if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
}; };
__metadata = function (metadataKey, metadataValue) { __metadata = function (metadataKey, metadataValue) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}; };
__awaiter = function (thisArg, _arguments, P, generator) { __awaiter = function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) { return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next()); step((generator = generator.apply(thisArg, _arguments || [])).next());
}); });
}; };
__generator = function (thisArg, body) { __generator = function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; } function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) { function step(op) {
if (f) throw new TypeError("Generator is already executing."); if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try { while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value]; if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) { switch (op[0]) {
case 0: case 1: t = op; break; case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false }; case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue; case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue; case 7: op = _.ops.pop(); _.trys.pop(); continue;
default: default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop(); if (t[2]) _.ops.pop();
_.trys.pop(); continue; _.trys.pop(); continue;
} }
op = body.call(thisArg, _); op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
} }
}; };
__exportStar = function(m, o) { __exportStar = function(m, o) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
}; };
__createBinding = Object.create ? (function(o, m, k, k2) { __createBinding = Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k; if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k); var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } }; desc = { enumerable: true, get: function() { return m[k]; } };
} }
Object.defineProperty(o, k2, desc); Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) { }) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k; if (k2 === undefined) k2 = k;
o[k2] = m[k]; o[k2] = m[k];
}); });
__values = function (o) { __values = function (o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o); if (m) return m.call(o);
if (o && typeof o.length === "number") return { if (o && typeof o.length === "number") return {
next: function () { next: function () {
if (o && i >= o.length) o = void 0; if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o }; return { value: o && o[i++], done: !o };
} }
}; };
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}; };
__read = function (o, n) { __read = function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator]; var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o; if (!m) return o;
var i = m.call(o), r, ar = [], e; var i = m.call(o), r, ar = [], e;
try { try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
} }
catch (error) { e = { error: error }; } catch (error) { e = { error: error }; }
finally { finally {
try { try {
if (r && !r.done && (m = i["return"])) m.call(i); if (r && !r.done && (m = i["return"])) m.call(i);
} }
finally { if (e) throw e.error; } finally { if (e) throw e.error; }
} }
return ar; return ar;
}; };
/** @deprecated */ /** @deprecated */
__spread = function () { __spread = function () {
for (var ar = [], i = 0; i < arguments.length; i++) for (var ar = [], i = 0; i < arguments.length; i++)
ar = ar.concat(__read(arguments[i])); ar = ar.concat(__read(arguments[i]));
return ar; return ar;
}; };
/** @deprecated */ /** @deprecated */
__spreadArrays = function () { __spreadArrays = function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j]; r[k] = a[j];
return r; return r;
}; };
__spreadArray = function (to, from, pack) { __spreadArray = function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) { if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i); if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i]; ar[i] = from[i];
} }
} }
return to.concat(ar || Array.prototype.slice.call(from)); return to.concat(ar || Array.prototype.slice.call(from));
}; };
__await = function (v) { __await = function (v) {
return this instanceof __await ? (this.v = v, this) : new __await(v); return this instanceof __await ? (this.v = v, this) : new __await(v);
}; };
__asyncGenerator = function (thisArg, _arguments, generator) { __asyncGenerator = function (thisArg, _arguments, generator) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var g = generator.apply(thisArg, _arguments || []), i, q = []; var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
function fulfill(value) { resume("next", value); } function fulfill(value) { resume("next", value); }
function reject(value) { resume("throw", value); } function reject(value) { resume("throw", value); }
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
}; };
__asyncDelegator = function (o) { __asyncDelegator = function (o) {
var i, p; var i, p;
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; } function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
}; };
__asyncValues = function (o) { __asyncValues = function (o) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var m = o[Symbol.asyncIterator], i; var m = o[Symbol.asyncIterator], i;
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
}; };
__makeTemplateObject = function (cooked, raw) { __makeTemplateObject = function (cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked; return cooked;
}; };
var __setModuleDefault = Object.create ? (function(o, v) { var __setModuleDefault = Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v }); Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) { }) : function(o, v) {
o["default"] = v; o["default"] = v;
}; };
__importStar = function (mod) { __importStar = function (mod) {
if (mod && mod.__esModule) return mod; if (mod && mod.__esModule) return mod;
var result = {}; var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod); __setModuleDefault(result, mod);
return result; return result;
}; };
__importDefault = function (mod) { __importDefault = function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod }; return (mod && mod.__esModule) ? mod : { "default": mod };
}; };
__classPrivateFieldGet = function (receiver, state, kind, f) { __classPrivateFieldGet = function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}; };
__classPrivateFieldSet = function (receiver, state, value, kind, f) { __classPrivateFieldSet = function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
}; };
__classPrivateFieldIn = function (state, receiver) { __classPrivateFieldIn = function (state, receiver) {
if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
return typeof state === "function" ? receiver === state : state.has(receiver); return typeof state === "function" ? receiver === state : state.has(receiver);
}; };
__addDisposableResource = function (env, value, async) { __addDisposableResource = function (env, value, async) {
if (value !== null && value !== void 0) { if (value !== null && value !== void 0) {
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
var dispose; var dispose;
if (async) { if (async) {
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
dispose = value[Symbol.asyncDispose]; dispose = value[Symbol.asyncDispose];
} }
if (dispose === void 0) { if (dispose === void 0) {
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
dispose = value[Symbol.dispose]; dispose = value[Symbol.dispose];
} }
if (typeof dispose !== "function") throw new TypeError("Object not disposable."); if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
env.stack.push({ value: value, dispose: dispose, async: async }); env.stack.push({ value: value, dispose: dispose, async: async });
} }
else if (async) { else if (async) {
env.stack.push({ async: true }); env.stack.push({ async: true });
} }
return value; return value;
}; };
var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
var e = new Error(message); var e = new Error(message);
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
}; };
__disposeResources = function (env) { __disposeResources = function (env) {
function fail(e) { function fail(e) {
env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
env.hasError = true; env.hasError = true;
} }
function next() { function next() {
while (env.stack.length) { while (env.stack.length) {
var rec = env.stack.pop(); var rec = env.stack.pop();
try { try {
var result = rec.dispose && rec.dispose.call(rec.value); var result = rec.dispose && rec.dispose.call(rec.value);
if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); }); if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
} }
catch (e) { catch (e) {
fail(e); fail(e);
} }
} }
if (env.hasError) throw env.error; if (env.hasError) throw env.error;
} }
return next(); return next();
}; };
exporter("__extends", __extends); exporter("__extends", __extends);
exporter("__assign", __assign); exporter("__assign", __assign);
exporter("__rest", __rest); exporter("__rest", __rest);
exporter("__decorate", __decorate); exporter("__decorate", __decorate);
exporter("__param", __param); exporter("__param", __param);
exporter("__esDecorate", __esDecorate); exporter("__esDecorate", __esDecorate);
exporter("__runInitializers", __runInitializers); exporter("__runInitializers", __runInitializers);
exporter("__propKey", __propKey); exporter("__propKey", __propKey);
exporter("__setFunctionName", __setFunctionName); exporter("__setFunctionName", __setFunctionName);
exporter("__metadata", __metadata); exporter("__metadata", __metadata);
exporter("__awaiter", __awaiter); exporter("__awaiter", __awaiter);
exporter("__generator", __generator); exporter("__generator", __generator);
exporter("__exportStar", __exportStar); exporter("__exportStar", __exportStar);
exporter("__createBinding", __createBinding); exporter("__createBinding", __createBinding);
exporter("__values", __values); exporter("__values", __values);
exporter("__read", __read); exporter("__read", __read);
exporter("__spread", __spread); exporter("__spread", __spread);
exporter("__spreadArrays", __spreadArrays); exporter("__spreadArrays", __spreadArrays);
exporter("__spreadArray", __spreadArray); exporter("__spreadArray", __spreadArray);
exporter("__await", __await); exporter("__await", __await);
exporter("__asyncGenerator", __asyncGenerator); exporter("__asyncGenerator", __asyncGenerator);
exporter("__asyncDelegator", __asyncDelegator); exporter("__asyncDelegator", __asyncDelegator);
exporter("__asyncValues", __asyncValues); exporter("__asyncValues", __asyncValues);
exporter("__makeTemplateObject", __makeTemplateObject); exporter("__makeTemplateObject", __makeTemplateObject);
exporter("__importStar", __importStar); exporter("__importStar", __importStar);
exporter("__importDefault", __importDefault); exporter("__importDefault", __importDefault);
exporter("__classPrivateFieldGet", __classPrivateFieldGet); exporter("__classPrivateFieldGet", __classPrivateFieldGet);
exporter("__classPrivateFieldSet", __classPrivateFieldSet); exporter("__classPrivateFieldSet", __classPrivateFieldSet);
exporter("__classPrivateFieldIn", __classPrivateFieldIn); exporter("__classPrivateFieldIn", __classPrivateFieldIn);
exporter("__addDisposableResource", __addDisposableResource); exporter("__addDisposableResource", __addDisposableResource);
exporter("__disposeResources", __disposeResources); exporter("__disposeResources", __disposeResources);
}); });
/***/ }), /***/ }),
@@ -45563,427 +45563,427 @@ exports.newPipeline = newPipeline;
/***/ 3849: /***/ 3849:
/***/ ((module) => { /***/ ((module) => {
/****************************************************************************** /******************************************************************************
Copyright (c) Microsoft Corporation. Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted. purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE. PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */ ***************************************************************************** */
/* global global, define, Symbol, Reflect, Promise, SuppressedError */ /* global global, define, Symbol, Reflect, Promise, SuppressedError */
var __extends; var __extends;
var __assign; var __assign;
var __rest; var __rest;
var __decorate; var __decorate;
var __param; var __param;
var __esDecorate; var __esDecorate;
var __runInitializers; var __runInitializers;
var __propKey; var __propKey;
var __setFunctionName; var __setFunctionName;
var __metadata; var __metadata;
var __awaiter; var __awaiter;
var __generator; var __generator;
var __exportStar; var __exportStar;
var __values; var __values;
var __read; var __read;
var __spread; var __spread;
var __spreadArrays; var __spreadArrays;
var __spreadArray; var __spreadArray;
var __await; var __await;
var __asyncGenerator; var __asyncGenerator;
var __asyncDelegator; var __asyncDelegator;
var __asyncValues; var __asyncValues;
var __makeTemplateObject; var __makeTemplateObject;
var __importStar; var __importStar;
var __importDefault; var __importDefault;
var __classPrivateFieldGet; var __classPrivateFieldGet;
var __classPrivateFieldSet; var __classPrivateFieldSet;
var __classPrivateFieldIn; var __classPrivateFieldIn;
var __createBinding; var __createBinding;
var __addDisposableResource; var __addDisposableResource;
var __disposeResources; var __disposeResources;
(function (factory) { (function (factory) {
var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
if (typeof define === "function" && define.amd) { if (typeof define === "function" && define.amd) {
define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });
} }
else if ( true && typeof module.exports === "object") { else if ( true && typeof module.exports === "object") {
factory(createExporter(root, createExporter(module.exports))); factory(createExporter(root, createExporter(module.exports)));
} }
else { else {
factory(createExporter(root)); factory(createExporter(root));
} }
function createExporter(exports, previous) { function createExporter(exports, previous) {
if (exports !== root) { if (exports !== root) {
if (typeof Object.create === "function") { if (typeof Object.create === "function") {
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
} }
else { else {
exports.__esModule = true; exports.__esModule = true;
} }
} }
return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
} }
}) })
(function (exporter) { (function (exporter) {
var extendStatics = Object.setPrototypeOf || var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
__extends = function (d, b) { __extends = function (d, b) {
if (typeof b !== "function" && b !== null) if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b); extendStatics(d, b);
function __() { this.constructor = d; } function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}; };
__assign = Object.assign || function (t) { __assign = Object.assign || function (t) {
for (var s, i = 1, n = arguments.length; i < n; i++) { for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i]; s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
} }
return t; return t;
}; };
__rest = function (s, e) { __rest = function (s, e) {
var t = {}; var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p]; t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function") if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]]; t[p[i]] = s[p[i]];
} }
return t; return t;
}; };
__decorate = function (decorators, target, key, desc) { __decorate = function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r; return c > 3 && r && Object.defineProperty(target, key, r), r;
}; };
__param = function (paramIndex, decorator) { __param = function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); } return function (target, key) { decorator(target, key, paramIndex); }
}; };
__esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false; var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) { for (var i = decorators.length - 1; i >= 0; i--) {
var context = {}; var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p]; for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") { if (kind === "accessor") {
if (result === void 0) continue; if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected"); if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _; if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _; if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_); if (_ = accept(result.init)) initializers.unshift(_);
} }
else if (_ = accept(result)) { else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_); if (kind === "field") initializers.unshift(_);
else descriptor[key] = _; else descriptor[key] = _;
} }
} }
if (target) Object.defineProperty(target, contextIn.name, descriptor); if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true; done = true;
}; };
__runInitializers = function (thisArg, initializers, value) { __runInitializers = function (thisArg, initializers, value) {
var useValue = arguments.length > 2; var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) { for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
} }
return useValue ? value : void 0; return useValue ? value : void 0;
}; };
__propKey = function (x) { __propKey = function (x) {
return typeof x === "symbol" ? x : "".concat(x); return typeof x === "symbol" ? x : "".concat(x);
}; };
__setFunctionName = function (f, name, prefix) { __setFunctionName = function (f, name, prefix) {
if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
}; };
__metadata = function (metadataKey, metadataValue) { __metadata = function (metadataKey, metadataValue) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}; };
__awaiter = function (thisArg, _arguments, P, generator) { __awaiter = function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) { return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next()); step((generator = generator.apply(thisArg, _arguments || [])).next());
}); });
}; };
__generator = function (thisArg, body) { __generator = function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; } function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) { function step(op) {
if (f) throw new TypeError("Generator is already executing."); if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try { while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value]; if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) { switch (op[0]) {
case 0: case 1: t = op; break; case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false }; case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue; case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue; case 7: op = _.ops.pop(); _.trys.pop(); continue;
default: default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop(); if (t[2]) _.ops.pop();
_.trys.pop(); continue; _.trys.pop(); continue;
} }
op = body.call(thisArg, _); op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
} }
}; };
__exportStar = function(m, o) { __exportStar = function(m, o) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
}; };
__createBinding = Object.create ? (function(o, m, k, k2) { __createBinding = Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k; if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k); var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } }; desc = { enumerable: true, get: function() { return m[k]; } };
} }
Object.defineProperty(o, k2, desc); Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) { }) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k; if (k2 === undefined) k2 = k;
o[k2] = m[k]; o[k2] = m[k];
}); });
__values = function (o) { __values = function (o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o); if (m) return m.call(o);
if (o && typeof o.length === "number") return { if (o && typeof o.length === "number") return {
next: function () { next: function () {
if (o && i >= o.length) o = void 0; if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o }; return { value: o && o[i++], done: !o };
} }
}; };
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}; };
__read = function (o, n) { __read = function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator]; var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o; if (!m) return o;
var i = m.call(o), r, ar = [], e; var i = m.call(o), r, ar = [], e;
try { try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
} }
catch (error) { e = { error: error }; } catch (error) { e = { error: error }; }
finally { finally {
try { try {
if (r && !r.done && (m = i["return"])) m.call(i); if (r && !r.done && (m = i["return"])) m.call(i);
} }
finally { if (e) throw e.error; } finally { if (e) throw e.error; }
} }
return ar; return ar;
}; };
/** @deprecated */ /** @deprecated */
__spread = function () { __spread = function () {
for (var ar = [], i = 0; i < arguments.length; i++) for (var ar = [], i = 0; i < arguments.length; i++)
ar = ar.concat(__read(arguments[i])); ar = ar.concat(__read(arguments[i]));
return ar; return ar;
}; };
/** @deprecated */ /** @deprecated */
__spreadArrays = function () { __spreadArrays = function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j]; r[k] = a[j];
return r; return r;
}; };
__spreadArray = function (to, from, pack) { __spreadArray = function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) { if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i); if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i]; ar[i] = from[i];
} }
} }
return to.concat(ar || Array.prototype.slice.call(from)); return to.concat(ar || Array.prototype.slice.call(from));
}; };
__await = function (v) { __await = function (v) {
return this instanceof __await ? (this.v = v, this) : new __await(v); return this instanceof __await ? (this.v = v, this) : new __await(v);
}; };
__asyncGenerator = function (thisArg, _arguments, generator) { __asyncGenerator = function (thisArg, _arguments, generator) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var g = generator.apply(thisArg, _arguments || []), i, q = []; var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
function fulfill(value) { resume("next", value); } function fulfill(value) { resume("next", value); }
function reject(value) { resume("throw", value); } function reject(value) { resume("throw", value); }
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
}; };
__asyncDelegator = function (o) { __asyncDelegator = function (o) {
var i, p; var i, p;
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; } function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
}; };
__asyncValues = function (o) { __asyncValues = function (o) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var m = o[Symbol.asyncIterator], i; var m = o[Symbol.asyncIterator], i;
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
}; };
__makeTemplateObject = function (cooked, raw) { __makeTemplateObject = function (cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked; return cooked;
}; };
var __setModuleDefault = Object.create ? (function(o, v) { var __setModuleDefault = Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v }); Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) { }) : function(o, v) {
o["default"] = v; o["default"] = v;
}; };
__importStar = function (mod) { __importStar = function (mod) {
if (mod && mod.__esModule) return mod; if (mod && mod.__esModule) return mod;
var result = {}; var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod); __setModuleDefault(result, mod);
return result; return result;
}; };
__importDefault = function (mod) { __importDefault = function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod }; return (mod && mod.__esModule) ? mod : { "default": mod };
}; };
__classPrivateFieldGet = function (receiver, state, kind, f) { __classPrivateFieldGet = function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}; };
__classPrivateFieldSet = function (receiver, state, value, kind, f) { __classPrivateFieldSet = function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
}; };
__classPrivateFieldIn = function (state, receiver) { __classPrivateFieldIn = function (state, receiver) {
if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
return typeof state === "function" ? receiver === state : state.has(receiver); return typeof state === "function" ? receiver === state : state.has(receiver);
}; };
__addDisposableResource = function (env, value, async) { __addDisposableResource = function (env, value, async) {
if (value !== null && value !== void 0) { if (value !== null && value !== void 0) {
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
var dispose; var dispose;
if (async) { if (async) {
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
dispose = value[Symbol.asyncDispose]; dispose = value[Symbol.asyncDispose];
} }
if (dispose === void 0) { if (dispose === void 0) {
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
dispose = value[Symbol.dispose]; dispose = value[Symbol.dispose];
} }
if (typeof dispose !== "function") throw new TypeError("Object not disposable."); if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
env.stack.push({ value: value, dispose: dispose, async: async }); env.stack.push({ value: value, dispose: dispose, async: async });
} }
else if (async) { else if (async) {
env.stack.push({ async: true }); env.stack.push({ async: true });
} }
return value; return value;
}; };
var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
var e = new Error(message); var e = new Error(message);
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
}; };
__disposeResources = function (env) { __disposeResources = function (env) {
function fail(e) { function fail(e) {
env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
env.hasError = true; env.hasError = true;
} }
function next() { function next() {
while (env.stack.length) { while (env.stack.length) {
var rec = env.stack.pop(); var rec = env.stack.pop();
try { try {
var result = rec.dispose && rec.dispose.call(rec.value); var result = rec.dispose && rec.dispose.call(rec.value);
if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); }); if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
} }
catch (e) { catch (e) {
fail(e); fail(e);
} }
} }
if (env.hasError) throw env.error; if (env.hasError) throw env.error;
} }
return next(); return next();
}; };
exporter("__extends", __extends); exporter("__extends", __extends);
exporter("__assign", __assign); exporter("__assign", __assign);
exporter("__rest", __rest); exporter("__rest", __rest);
exporter("__decorate", __decorate); exporter("__decorate", __decorate);
exporter("__param", __param); exporter("__param", __param);
exporter("__esDecorate", __esDecorate); exporter("__esDecorate", __esDecorate);
exporter("__runInitializers", __runInitializers); exporter("__runInitializers", __runInitializers);
exporter("__propKey", __propKey); exporter("__propKey", __propKey);
exporter("__setFunctionName", __setFunctionName); exporter("__setFunctionName", __setFunctionName);
exporter("__metadata", __metadata); exporter("__metadata", __metadata);
exporter("__awaiter", __awaiter); exporter("__awaiter", __awaiter);
exporter("__generator", __generator); exporter("__generator", __generator);
exporter("__exportStar", __exportStar); exporter("__exportStar", __exportStar);
exporter("__createBinding", __createBinding); exporter("__createBinding", __createBinding);
exporter("__values", __values); exporter("__values", __values);
exporter("__read", __read); exporter("__read", __read);
exporter("__spread", __spread); exporter("__spread", __spread);
exporter("__spreadArrays", __spreadArrays); exporter("__spreadArrays", __spreadArrays);
exporter("__spreadArray", __spreadArray); exporter("__spreadArray", __spreadArray);
exporter("__await", __await); exporter("__await", __await);
exporter("__asyncGenerator", __asyncGenerator); exporter("__asyncGenerator", __asyncGenerator);
exporter("__asyncDelegator", __asyncDelegator); exporter("__asyncDelegator", __asyncDelegator);
exporter("__asyncValues", __asyncValues); exporter("__asyncValues", __asyncValues);
exporter("__makeTemplateObject", __makeTemplateObject); exporter("__makeTemplateObject", __makeTemplateObject);
exporter("__importStar", __importStar); exporter("__importStar", __importStar);
exporter("__importDefault", __importDefault); exporter("__importDefault", __importDefault);
exporter("__classPrivateFieldGet", __classPrivateFieldGet); exporter("__classPrivateFieldGet", __classPrivateFieldGet);
exporter("__classPrivateFieldSet", __classPrivateFieldSet); exporter("__classPrivateFieldSet", __classPrivateFieldSet);
exporter("__classPrivateFieldIn", __classPrivateFieldIn); exporter("__classPrivateFieldIn", __classPrivateFieldIn);
exporter("__addDisposableResource", __addDisposableResource); exporter("__addDisposableResource", __addDisposableResource);
exporter("__disposeResources", __disposeResources); exporter("__disposeResources", __disposeResources);
}); });
/***/ }), /***/ }),
@@ -84224,1303 +84224,1303 @@ exports.parseURL = __nccwpck_require__(905).parseURL;
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
"use strict"; "use strict";
const punycode = __nccwpck_require__(4876); const punycode = __nccwpck_require__(4876);
const tr46 = __nccwpck_require__(1552); const tr46 = __nccwpck_require__(1552);
const specialSchemes = { const specialSchemes = {
ftp: 21, ftp: 21,
file: null, file: null,
gopher: 70, gopher: 70,
http: 80, http: 80,
https: 443, https: 443,
ws: 80, ws: 80,
wss: 443 wss: 443
}; };
const failure = Symbol("failure"); const failure = Symbol("failure");
function countSymbols(str) { function countSymbols(str) {
return punycode.ucs2.decode(str).length; return punycode.ucs2.decode(str).length;
} }
function at(input, idx) { function at(input, idx) {
const c = input[idx]; const c = input[idx];
return isNaN(c) ? undefined : String.fromCodePoint(c); return isNaN(c) ? undefined : String.fromCodePoint(c);
} }
function isASCIIDigit(c) { function isASCIIDigit(c) {
return c >= 0x30 && c <= 0x39; return c >= 0x30 && c <= 0x39;
} }
function isASCIIAlpha(c) { function isASCIIAlpha(c) {
return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A); return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);
} }
function isASCIIAlphanumeric(c) { function isASCIIAlphanumeric(c) {
return isASCIIAlpha(c) || isASCIIDigit(c); return isASCIIAlpha(c) || isASCIIDigit(c);
} }
function isASCIIHex(c) { function isASCIIHex(c) {
return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66); return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);
} }
function isSingleDot(buffer) { function isSingleDot(buffer) {
return buffer === "." || buffer.toLowerCase() === "%2e"; return buffer === "." || buffer.toLowerCase() === "%2e";
} }
function isDoubleDot(buffer) { function isDoubleDot(buffer) {
buffer = buffer.toLowerCase(); buffer = buffer.toLowerCase();
return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e"; return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e";
} }
function isWindowsDriveLetterCodePoints(cp1, cp2) { function isWindowsDriveLetterCodePoints(cp1, cp2) {
return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124); return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);
} }
function isWindowsDriveLetterString(string) { function isWindowsDriveLetterString(string) {
return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|"); return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|");
} }
function isNormalizedWindowsDriveLetterString(string) { function isNormalizedWindowsDriveLetterString(string) {
return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === ":"; return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === ":";
} }
function containsForbiddenHostCodePoint(string) { function containsForbiddenHostCodePoint(string) {
return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/) !== -1; return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/) !== -1;
} }
function containsForbiddenHostCodePointExcludingPercent(string) { function containsForbiddenHostCodePointExcludingPercent(string) {
return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/) !== -1; return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/) !== -1;
} }
function isSpecialScheme(scheme) { function isSpecialScheme(scheme) {
return specialSchemes[scheme] !== undefined; return specialSchemes[scheme] !== undefined;
} }
function isSpecial(url) { function isSpecial(url) {
return isSpecialScheme(url.scheme); return isSpecialScheme(url.scheme);
} }
function defaultPort(scheme) { function defaultPort(scheme) {
return specialSchemes[scheme]; return specialSchemes[scheme];
} }
function percentEncode(c) { function percentEncode(c) {
let hex = c.toString(16).toUpperCase(); let hex = c.toString(16).toUpperCase();
if (hex.length === 1) { if (hex.length === 1) {
hex = "0" + hex; hex = "0" + hex;
} }
return "%" + hex; return "%" + hex;
} }
function utf8PercentEncode(c) { function utf8PercentEncode(c) {
const buf = new Buffer(c); const buf = new Buffer(c);
let str = ""; let str = "";
for (let i = 0; i < buf.length; ++i) { for (let i = 0; i < buf.length; ++i) {
str += percentEncode(buf[i]); str += percentEncode(buf[i]);
} }
return str; return str;
} }
function utf8PercentDecode(str) { function utf8PercentDecode(str) {
const input = new Buffer(str); const input = new Buffer(str);
const output = []; const output = [];
for (let i = 0; i < input.length; ++i) { for (let i = 0; i < input.length; ++i) {
if (input[i] !== 37) { if (input[i] !== 37) {
output.push(input[i]); output.push(input[i]);
} else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) { } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {
output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16)); output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));
i += 2; i += 2;
} else { } else {
output.push(input[i]); output.push(input[i]);
} }
} }
return new Buffer(output).toString(); return new Buffer(output).toString();
} }
function isC0ControlPercentEncode(c) { function isC0ControlPercentEncode(c) {
return c <= 0x1F || c > 0x7E; return c <= 0x1F || c > 0x7E;
} }
const extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]); const extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);
function isPathPercentEncode(c) { function isPathPercentEncode(c) {
return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c); return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);
} }
const extraUserinfoPercentEncodeSet = const extraUserinfoPercentEncodeSet =
new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]); new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);
function isUserinfoPercentEncode(c) { function isUserinfoPercentEncode(c) {
return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c); return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);
} }
function percentEncodeChar(c, encodeSetPredicate) { function percentEncodeChar(c, encodeSetPredicate) {
const cStr = String.fromCodePoint(c); const cStr = String.fromCodePoint(c);
if (encodeSetPredicate(c)) { if (encodeSetPredicate(c)) {
return utf8PercentEncode(cStr); return utf8PercentEncode(cStr);
} }
return cStr; return cStr;
} }
function parseIPv4Number(input) { function parseIPv4Number(input) {
let R = 10; let R = 10;
if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") { if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") {
input = input.substring(2); input = input.substring(2);
R = 16; R = 16;
} else if (input.length >= 2 && input.charAt(0) === "0") { } else if (input.length >= 2 && input.charAt(0) === "0") {
input = input.substring(1); input = input.substring(1);
R = 8; R = 8;
} }
if (input === "") { if (input === "") {
return 0; return 0;
} }
const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/); const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);
if (regex.test(input)) { if (regex.test(input)) {
return failure; return failure;
} }
return parseInt(input, R); return parseInt(input, R);
} }
function parseIPv4(input) { function parseIPv4(input) {
const parts = input.split("."); const parts = input.split(".");
if (parts[parts.length - 1] === "") { if (parts[parts.length - 1] === "") {
if (parts.length > 1) { if (parts.length > 1) {
parts.pop(); parts.pop();
} }
} }
if (parts.length > 4) { if (parts.length > 4) {
return input; return input;
} }
const numbers = []; const numbers = [];
for (const part of parts) { for (const part of parts) {
if (part === "") { if (part === "") {
return input; return input;
} }
const n = parseIPv4Number(part); const n = parseIPv4Number(part);
if (n === failure) { if (n === failure) {
return input; return input;
} }
numbers.push(n); numbers.push(n);
} }
for (let i = 0; i < numbers.length - 1; ++i) { for (let i = 0; i < numbers.length - 1; ++i) {
if (numbers[i] > 255) { if (numbers[i] > 255) {
return failure; return failure;
} }
} }
if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) { if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {
return failure; return failure;
} }
let ipv4 = numbers.pop(); let ipv4 = numbers.pop();
let counter = 0; let counter = 0;
for (const n of numbers) { for (const n of numbers) {
ipv4 += n * Math.pow(256, 3 - counter); ipv4 += n * Math.pow(256, 3 - counter);
++counter; ++counter;
} }
return ipv4; return ipv4;
} }
function serializeIPv4(address) { function serializeIPv4(address) {
let output = ""; let output = "";
let n = address; let n = address;
for (let i = 1; i <= 4; ++i) { for (let i = 1; i <= 4; ++i) {
output = String(n % 256) + output; output = String(n % 256) + output;
if (i !== 4) { if (i !== 4) {
output = "." + output; output = "." + output;
} }
n = Math.floor(n / 256); n = Math.floor(n / 256);
} }
return output; return output;
} }
function parseIPv6(input) { function parseIPv6(input) {
const address = [0, 0, 0, 0, 0, 0, 0, 0]; const address = [0, 0, 0, 0, 0, 0, 0, 0];
let pieceIndex = 0; let pieceIndex = 0;
let compress = null; let compress = null;
let pointer = 0; let pointer = 0;
input = punycode.ucs2.decode(input); input = punycode.ucs2.decode(input);
if (input[pointer] === 58) { if (input[pointer] === 58) {
if (input[pointer + 1] !== 58) { if (input[pointer + 1] !== 58) {
return failure; return failure;
} }
pointer += 2; pointer += 2;
++pieceIndex; ++pieceIndex;
compress = pieceIndex; compress = pieceIndex;
} }
while (pointer < input.length) { while (pointer < input.length) {
if (pieceIndex === 8) { if (pieceIndex === 8) {
return failure; return failure;
} }
if (input[pointer] === 58) { if (input[pointer] === 58) {
if (compress !== null) { if (compress !== null) {
return failure; return failure;
} }
++pointer; ++pointer;
++pieceIndex; ++pieceIndex;
compress = pieceIndex; compress = pieceIndex;
continue; continue;
} }
let value = 0; let value = 0;
let length = 0; let length = 0;
while (length < 4 && isASCIIHex(input[pointer])) { while (length < 4 && isASCIIHex(input[pointer])) {
value = value * 0x10 + parseInt(at(input, pointer), 16); value = value * 0x10 + parseInt(at(input, pointer), 16);
++pointer; ++pointer;
++length; ++length;
} }
if (input[pointer] === 46) { if (input[pointer] === 46) {
if (length === 0) { if (length === 0) {
return failure; return failure;
} }
pointer -= length; pointer -= length;
if (pieceIndex > 6) { if (pieceIndex > 6) {
return failure; return failure;
} }
let numbersSeen = 0; let numbersSeen = 0;
while (input[pointer] !== undefined) { while (input[pointer] !== undefined) {
let ipv4Piece = null; let ipv4Piece = null;
if (numbersSeen > 0) { if (numbersSeen > 0) {
if (input[pointer] === 46 && numbersSeen < 4) { if (input[pointer] === 46 && numbersSeen < 4) {
++pointer; ++pointer;
} else { } else {
return failure; return failure;
} }
} }
if (!isASCIIDigit(input[pointer])) { if (!isASCIIDigit(input[pointer])) {
return failure; return failure;
} }
while (isASCIIDigit(input[pointer])) { while (isASCIIDigit(input[pointer])) {
const number = parseInt(at(input, pointer)); const number = parseInt(at(input, pointer));
if (ipv4Piece === null) { if (ipv4Piece === null) {
ipv4Piece = number; ipv4Piece = number;
} else if (ipv4Piece === 0) { } else if (ipv4Piece === 0) {
return failure; return failure;
} else { } else {
ipv4Piece = ipv4Piece * 10 + number; ipv4Piece = ipv4Piece * 10 + number;
} }
if (ipv4Piece > 255) { if (ipv4Piece > 255) {
return failure; return failure;
} }
++pointer; ++pointer;
} }
address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece; address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;
++numbersSeen; ++numbersSeen;
if (numbersSeen === 2 || numbersSeen === 4) { if (numbersSeen === 2 || numbersSeen === 4) {
++pieceIndex; ++pieceIndex;
} }
} }
if (numbersSeen !== 4) { if (numbersSeen !== 4) {
return failure; return failure;
} }
break; break;
} else if (input[pointer] === 58) { } else if (input[pointer] === 58) {
++pointer; ++pointer;
if (input[pointer] === undefined) { if (input[pointer] === undefined) {
return failure; return failure;
} }
} else if (input[pointer] !== undefined) { } else if (input[pointer] !== undefined) {
return failure; return failure;
} }
address[pieceIndex] = value; address[pieceIndex] = value;
++pieceIndex; ++pieceIndex;
} }
if (compress !== null) { if (compress !== null) {
let swaps = pieceIndex - compress; let swaps = pieceIndex - compress;
pieceIndex = 7; pieceIndex = 7;
while (pieceIndex !== 0 && swaps > 0) { while (pieceIndex !== 0 && swaps > 0) {
const temp = address[compress + swaps - 1]; const temp = address[compress + swaps - 1];
address[compress + swaps - 1] = address[pieceIndex]; address[compress + swaps - 1] = address[pieceIndex];
address[pieceIndex] = temp; address[pieceIndex] = temp;
--pieceIndex; --pieceIndex;
--swaps; --swaps;
} }
} else if (compress === null && pieceIndex !== 8) { } else if (compress === null && pieceIndex !== 8) {
return failure; return failure;
} }
return address; return address;
} }
function serializeIPv6(address) { function serializeIPv6(address) {
let output = ""; let output = "";
const seqResult = findLongestZeroSequence(address); const seqResult = findLongestZeroSequence(address);
const compress = seqResult.idx; const compress = seqResult.idx;
let ignore0 = false; let ignore0 = false;
for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) { for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {
if (ignore0 && address[pieceIndex] === 0) { if (ignore0 && address[pieceIndex] === 0) {
continue; continue;
} else if (ignore0) { } else if (ignore0) {
ignore0 = false; ignore0 = false;
} }
if (compress === pieceIndex) { if (compress === pieceIndex) {
const separator = pieceIndex === 0 ? "::" : ":"; const separator = pieceIndex === 0 ? "::" : ":";
output += separator; output += separator;
ignore0 = true; ignore0 = true;
continue; continue;
} }
output += address[pieceIndex].toString(16); output += address[pieceIndex].toString(16);
if (pieceIndex !== 7) { if (pieceIndex !== 7) {
output += ":"; output += ":";
} }
} }
return output; return output;
} }
function parseHost(input, isSpecialArg) { function parseHost(input, isSpecialArg) {
if (input[0] === "[") { if (input[0] === "[") {
if (input[input.length - 1] !== "]") { if (input[input.length - 1] !== "]") {
return failure; return failure;
} }
return parseIPv6(input.substring(1, input.length - 1)); return parseIPv6(input.substring(1, input.length - 1));
} }
if (!isSpecialArg) { if (!isSpecialArg) {
return parseOpaqueHost(input); return parseOpaqueHost(input);
} }
const domain = utf8PercentDecode(input); const domain = utf8PercentDecode(input);
const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false); const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);
if (asciiDomain === null) { if (asciiDomain === null) {
return failure; return failure;
} }
if (containsForbiddenHostCodePoint(asciiDomain)) { if (containsForbiddenHostCodePoint(asciiDomain)) {
return failure; return failure;
} }
const ipv4Host = parseIPv4(asciiDomain); const ipv4Host = parseIPv4(asciiDomain);
if (typeof ipv4Host === "number" || ipv4Host === failure) { if (typeof ipv4Host === "number" || ipv4Host === failure) {
return ipv4Host; return ipv4Host;
} }
return asciiDomain; return asciiDomain;
} }
function parseOpaqueHost(input) { function parseOpaqueHost(input) {
if (containsForbiddenHostCodePointExcludingPercent(input)) { if (containsForbiddenHostCodePointExcludingPercent(input)) {
return failure; return failure;
} }
let output = ""; let output = "";
const decoded = punycode.ucs2.decode(input); const decoded = punycode.ucs2.decode(input);
for (let i = 0; i < decoded.length; ++i) { for (let i = 0; i < decoded.length; ++i) {
output += percentEncodeChar(decoded[i], isC0ControlPercentEncode); output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);
} }
return output; return output;
} }
function findLongestZeroSequence(arr) { function findLongestZeroSequence(arr) {
let maxIdx = null; let maxIdx = null;
let maxLen = 1; // only find elements > 1 let maxLen = 1; // only find elements > 1
let currStart = null; let currStart = null;
let currLen = 0; let currLen = 0;
for (let i = 0; i < arr.length; ++i) { for (let i = 0; i < arr.length; ++i) {
if (arr[i] !== 0) { if (arr[i] !== 0) {
if (currLen > maxLen) { if (currLen > maxLen) {
maxIdx = currStart; maxIdx = currStart;
maxLen = currLen; maxLen = currLen;
} }
currStart = null; currStart = null;
currLen = 0; currLen = 0;
} else { } else {
if (currStart === null) { if (currStart === null) {
currStart = i; currStart = i;
} }
++currLen; ++currLen;
} }
} }
// if trailing zeros // if trailing zeros
if (currLen > maxLen) { if (currLen > maxLen) {
maxIdx = currStart; maxIdx = currStart;
maxLen = currLen; maxLen = currLen;
} }
return { return {
idx: maxIdx, idx: maxIdx,
len: maxLen len: maxLen
}; };
} }
function serializeHost(host) { function serializeHost(host) {
if (typeof host === "number") { if (typeof host === "number") {
return serializeIPv4(host); return serializeIPv4(host);
} }
// IPv6 serializer // IPv6 serializer
if (host instanceof Array) { if (host instanceof Array) {
return "[" + serializeIPv6(host) + "]"; return "[" + serializeIPv6(host) + "]";
} }
return host; return host;
} }
function trimControlChars(url) { function trimControlChars(url) {
return url.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, ""); return url.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, "");
} }
function trimTabAndNewline(url) { function trimTabAndNewline(url) {
return url.replace(/\u0009|\u000A|\u000D/g, ""); return url.replace(/\u0009|\u000A|\u000D/g, "");
} }
function shortenPath(url) { function shortenPath(url) {
const path = url.path; const path = url.path;
if (path.length === 0) { if (path.length === 0) {
return; return;
} }
if (url.scheme === "file" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) { if (url.scheme === "file" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {
return; return;
} }
path.pop(); path.pop();
} }
function includesCredentials(url) { function includesCredentials(url) {
return url.username !== "" || url.password !== ""; return url.username !== "" || url.password !== "";
} }
function cannotHaveAUsernamePasswordPort(url) { function cannotHaveAUsernamePasswordPort(url) {
return url.host === null || url.host === "" || url.cannotBeABaseURL || url.scheme === "file"; return url.host === null || url.host === "" || url.cannotBeABaseURL || url.scheme === "file";
} }
function isNormalizedWindowsDriveLetter(string) { function isNormalizedWindowsDriveLetter(string) {
return /^[A-Za-z]:$/.test(string); return /^[A-Za-z]:$/.test(string);
} }
function URLStateMachine(input, base, encodingOverride, url, stateOverride) { function URLStateMachine(input, base, encodingOverride, url, stateOverride) {
this.pointer = 0; this.pointer = 0;
this.input = input; this.input = input;
this.base = base || null; this.base = base || null;
this.encodingOverride = encodingOverride || "utf-8"; this.encodingOverride = encodingOverride || "utf-8";
this.stateOverride = stateOverride; this.stateOverride = stateOverride;
this.url = url; this.url = url;
this.failure = false; this.failure = false;
this.parseError = false; this.parseError = false;
if (!this.url) { if (!this.url) {
this.url = { this.url = {
scheme: "", scheme: "",
username: "", username: "",
password: "", password: "",
host: null, host: null,
port: null, port: null,
path: [], path: [],
query: null, query: null,
fragment: null, fragment: null,
cannotBeABaseURL: false cannotBeABaseURL: false
}; };
const res = trimControlChars(this.input); const res = trimControlChars(this.input);
if (res !== this.input) { if (res !== this.input) {
this.parseError = true; this.parseError = true;
} }
this.input = res; this.input = res;
} }
const res = trimTabAndNewline(this.input); const res = trimTabAndNewline(this.input);
if (res !== this.input) { if (res !== this.input) {
this.parseError = true; this.parseError = true;
} }
this.input = res; this.input = res;
this.state = stateOverride || "scheme start"; this.state = stateOverride || "scheme start";
this.buffer = ""; this.buffer = "";
this.atFlag = false; this.atFlag = false;
this.arrFlag = false; this.arrFlag = false;
this.passwordTokenSeenFlag = false; this.passwordTokenSeenFlag = false;
this.input = punycode.ucs2.decode(this.input); this.input = punycode.ucs2.decode(this.input);
for (; this.pointer <= this.input.length; ++this.pointer) { for (; this.pointer <= this.input.length; ++this.pointer) {
const c = this.input[this.pointer]; const c = this.input[this.pointer];
const cStr = isNaN(c) ? undefined : String.fromCodePoint(c); const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);
// exec state machine // exec state machine
const ret = this["parse " + this.state](c, cStr); const ret = this["parse " + this.state](c, cStr);
if (!ret) { if (!ret) {
break; // terminate algorithm break; // terminate algorithm
} else if (ret === failure) { } else if (ret === failure) {
this.failure = true; this.failure = true;
break; break;
} }
} }
} }
URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c, cStr) { URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c, cStr) {
if (isASCIIAlpha(c)) { if (isASCIIAlpha(c)) {
this.buffer += cStr.toLowerCase(); this.buffer += cStr.toLowerCase();
this.state = "scheme"; this.state = "scheme";
} else if (!this.stateOverride) { } else if (!this.stateOverride) {
this.state = "no scheme"; this.state = "no scheme";
--this.pointer; --this.pointer;
} else { } else {
this.parseError = true; this.parseError = true;
return failure; return failure;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse scheme"] = function parseScheme(c, cStr) { URLStateMachine.prototype["parse scheme"] = function parseScheme(c, cStr) {
if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) { if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {
this.buffer += cStr.toLowerCase(); this.buffer += cStr.toLowerCase();
} else if (c === 58) { } else if (c === 58) {
if (this.stateOverride) { if (this.stateOverride) {
if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) { if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {
return false; return false;
} }
if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) { if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {
return false; return false;
} }
if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") { if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") {
return false; return false;
} }
if (this.url.scheme === "file" && (this.url.host === "" || this.url.host === null)) { if (this.url.scheme === "file" && (this.url.host === "" || this.url.host === null)) {
return false; return false;
} }
} }
this.url.scheme = this.buffer; this.url.scheme = this.buffer;
this.buffer = ""; this.buffer = "";
if (this.stateOverride) { if (this.stateOverride) {
return false; return false;
} }
if (this.url.scheme === "file") { if (this.url.scheme === "file") {
if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) { if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {
this.parseError = true; this.parseError = true;
} }
this.state = "file"; this.state = "file";
} else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) { } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {
this.state = "special relative or authority"; this.state = "special relative or authority";
} else if (isSpecial(this.url)) { } else if (isSpecial(this.url)) {
this.state = "special authority slashes"; this.state = "special authority slashes";
} else if (this.input[this.pointer + 1] === 47) { } else if (this.input[this.pointer + 1] === 47) {
this.state = "path or authority"; this.state = "path or authority";
++this.pointer; ++this.pointer;
} else { } else {
this.url.cannotBeABaseURL = true; this.url.cannotBeABaseURL = true;
this.url.path.push(""); this.url.path.push("");
this.state = "cannot-be-a-base-URL path"; this.state = "cannot-be-a-base-URL path";
} }
} else if (!this.stateOverride) { } else if (!this.stateOverride) {
this.buffer = ""; this.buffer = "";
this.state = "no scheme"; this.state = "no scheme";
this.pointer = -1; this.pointer = -1;
} else { } else {
this.parseError = true; this.parseError = true;
return failure; return failure;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) { URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) {
if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) { if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {
return failure; return failure;
} else if (this.base.cannotBeABaseURL && c === 35) { } else if (this.base.cannotBeABaseURL && c === 35) {
this.url.scheme = this.base.scheme; this.url.scheme = this.base.scheme;
this.url.path = this.base.path.slice(); this.url.path = this.base.path.slice();
this.url.query = this.base.query; this.url.query = this.base.query;
this.url.fragment = ""; this.url.fragment = "";
this.url.cannotBeABaseURL = true; this.url.cannotBeABaseURL = true;
this.state = "fragment"; this.state = "fragment";
} else if (this.base.scheme === "file") { } else if (this.base.scheme === "file") {
this.state = "file"; this.state = "file";
--this.pointer; --this.pointer;
} else { } else {
this.state = "relative"; this.state = "relative";
--this.pointer; --this.pointer;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c) { URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c) {
if (c === 47 && this.input[this.pointer + 1] === 47) { if (c === 47 && this.input[this.pointer + 1] === 47) {
this.state = "special authority ignore slashes"; this.state = "special authority ignore slashes";
++this.pointer; ++this.pointer;
} else { } else {
this.parseError = true; this.parseError = true;
this.state = "relative"; this.state = "relative";
--this.pointer; --this.pointer;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c) { URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c) {
if (c === 47) { if (c === 47) {
this.state = "authority"; this.state = "authority";
} else { } else {
this.state = "path"; this.state = "path";
--this.pointer; --this.pointer;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse relative"] = function parseRelative(c) { URLStateMachine.prototype["parse relative"] = function parseRelative(c) {
this.url.scheme = this.base.scheme; this.url.scheme = this.base.scheme;
if (isNaN(c)) { if (isNaN(c)) {
this.url.username = this.base.username; this.url.username = this.base.username;
this.url.password = this.base.password; this.url.password = this.base.password;
this.url.host = this.base.host; this.url.host = this.base.host;
this.url.port = this.base.port; this.url.port = this.base.port;
this.url.path = this.base.path.slice(); this.url.path = this.base.path.slice();
this.url.query = this.base.query; this.url.query = this.base.query;
} else if (c === 47) { } else if (c === 47) {
this.state = "relative slash"; this.state = "relative slash";
} else if (c === 63) { } else if (c === 63) {
this.url.username = this.base.username; this.url.username = this.base.username;
this.url.password = this.base.password; this.url.password = this.base.password;
this.url.host = this.base.host; this.url.host = this.base.host;
this.url.port = this.base.port; this.url.port = this.base.port;
this.url.path = this.base.path.slice(); this.url.path = this.base.path.slice();
this.url.query = ""; this.url.query = "";
this.state = "query"; this.state = "query";
} else if (c === 35) { } else if (c === 35) {
this.url.username = this.base.username; this.url.username = this.base.username;
this.url.password = this.base.password; this.url.password = this.base.password;
this.url.host = this.base.host; this.url.host = this.base.host;
this.url.port = this.base.port; this.url.port = this.base.port;
this.url.path = this.base.path.slice(); this.url.path = this.base.path.slice();
this.url.query = this.base.query; this.url.query = this.base.query;
this.url.fragment = ""; this.url.fragment = "";
this.state = "fragment"; this.state = "fragment";
} else if (isSpecial(this.url) && c === 92) { } else if (isSpecial(this.url) && c === 92) {
this.parseError = true; this.parseError = true;
this.state = "relative slash"; this.state = "relative slash";
} else { } else {
this.url.username = this.base.username; this.url.username = this.base.username;
this.url.password = this.base.password; this.url.password = this.base.password;
this.url.host = this.base.host; this.url.host = this.base.host;
this.url.port = this.base.port; this.url.port = this.base.port;
this.url.path = this.base.path.slice(0, this.base.path.length - 1); this.url.path = this.base.path.slice(0, this.base.path.length - 1);
this.state = "path"; this.state = "path";
--this.pointer; --this.pointer;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c) { URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c) {
if (isSpecial(this.url) && (c === 47 || c === 92)) { if (isSpecial(this.url) && (c === 47 || c === 92)) {
if (c === 92) { if (c === 92) {
this.parseError = true; this.parseError = true;
} }
this.state = "special authority ignore slashes"; this.state = "special authority ignore slashes";
} else if (c === 47) { } else if (c === 47) {
this.state = "authority"; this.state = "authority";
} else { } else {
this.url.username = this.base.username; this.url.username = this.base.username;
this.url.password = this.base.password; this.url.password = this.base.password;
this.url.host = this.base.host; this.url.host = this.base.host;
this.url.port = this.base.port; this.url.port = this.base.port;
this.state = "path"; this.state = "path";
--this.pointer; --this.pointer;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c) { URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c) {
if (c === 47 && this.input[this.pointer + 1] === 47) { if (c === 47 && this.input[this.pointer + 1] === 47) {
this.state = "special authority ignore slashes"; this.state = "special authority ignore slashes";
++this.pointer; ++this.pointer;
} else { } else {
this.parseError = true; this.parseError = true;
this.state = "special authority ignore slashes"; this.state = "special authority ignore slashes";
--this.pointer; --this.pointer;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c) { URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c) {
if (c !== 47 && c !== 92) { if (c !== 47 && c !== 92) {
this.state = "authority"; this.state = "authority";
--this.pointer; --this.pointer;
} else { } else {
this.parseError = true; this.parseError = true;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse authority"] = function parseAuthority(c, cStr) { URLStateMachine.prototype["parse authority"] = function parseAuthority(c, cStr) {
if (c === 64) { if (c === 64) {
this.parseError = true; this.parseError = true;
if (this.atFlag) { if (this.atFlag) {
this.buffer = "%40" + this.buffer; this.buffer = "%40" + this.buffer;
} }
this.atFlag = true; this.atFlag = true;
// careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars
const len = countSymbols(this.buffer); const len = countSymbols(this.buffer);
for (let pointer = 0; pointer < len; ++pointer) { for (let pointer = 0; pointer < len; ++pointer) {
const codePoint = this.buffer.codePointAt(pointer); const codePoint = this.buffer.codePointAt(pointer);
if (codePoint === 58 && !this.passwordTokenSeenFlag) { if (codePoint === 58 && !this.passwordTokenSeenFlag) {
this.passwordTokenSeenFlag = true; this.passwordTokenSeenFlag = true;
continue; continue;
} }
const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode); const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);
if (this.passwordTokenSeenFlag) { if (this.passwordTokenSeenFlag) {
this.url.password += encodedCodePoints; this.url.password += encodedCodePoints;
} else { } else {
this.url.username += encodedCodePoints; this.url.username += encodedCodePoints;
} }
} }
this.buffer = ""; this.buffer = "";
} else if (isNaN(c) || c === 47 || c === 63 || c === 35 || } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||
(isSpecial(this.url) && c === 92)) { (isSpecial(this.url) && c === 92)) {
if (this.atFlag && this.buffer === "") { if (this.atFlag && this.buffer === "") {
this.parseError = true; this.parseError = true;
return failure; return failure;
} }
this.pointer -= countSymbols(this.buffer) + 1; this.pointer -= countSymbols(this.buffer) + 1;
this.buffer = ""; this.buffer = "";
this.state = "host"; this.state = "host";
} else { } else {
this.buffer += cStr; this.buffer += cStr;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse hostname"] = URLStateMachine.prototype["parse hostname"] =
URLStateMachine.prototype["parse host"] = function parseHostName(c, cStr) { URLStateMachine.prototype["parse host"] = function parseHostName(c, cStr) {
if (this.stateOverride && this.url.scheme === "file") { if (this.stateOverride && this.url.scheme === "file") {
--this.pointer; --this.pointer;
this.state = "file host"; this.state = "file host";
} else if (c === 58 && !this.arrFlag) { } else if (c === 58 && !this.arrFlag) {
if (this.buffer === "") { if (this.buffer === "") {
this.parseError = true; this.parseError = true;
return failure; return failure;
} }
const host = parseHost(this.buffer, isSpecial(this.url)); const host = parseHost(this.buffer, isSpecial(this.url));
if (host === failure) { if (host === failure) {
return failure; return failure;
} }
this.url.host = host; this.url.host = host;
this.buffer = ""; this.buffer = "";
this.state = "port"; this.state = "port";
if (this.stateOverride === "hostname") { if (this.stateOverride === "hostname") {
return false; return false;
} }
} else if (isNaN(c) || c === 47 || c === 63 || c === 35 || } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||
(isSpecial(this.url) && c === 92)) { (isSpecial(this.url) && c === 92)) {
--this.pointer; --this.pointer;
if (isSpecial(this.url) && this.buffer === "") { if (isSpecial(this.url) && this.buffer === "") {
this.parseError = true; this.parseError = true;
return failure; return failure;
} else if (this.stateOverride && this.buffer === "" && } else if (this.stateOverride && this.buffer === "" &&
(includesCredentials(this.url) || this.url.port !== null)) { (includesCredentials(this.url) || this.url.port !== null)) {
this.parseError = true; this.parseError = true;
return false; return false;
} }
const host = parseHost(this.buffer, isSpecial(this.url)); const host = parseHost(this.buffer, isSpecial(this.url));
if (host === failure) { if (host === failure) {
return failure; return failure;
} }
this.url.host = host; this.url.host = host;
this.buffer = ""; this.buffer = "";
this.state = "path start"; this.state = "path start";
if (this.stateOverride) { if (this.stateOverride) {
return false; return false;
} }
} else { } else {
if (c === 91) { if (c === 91) {
this.arrFlag = true; this.arrFlag = true;
} else if (c === 93) { } else if (c === 93) {
this.arrFlag = false; this.arrFlag = false;
} }
this.buffer += cStr; this.buffer += cStr;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) { URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) {
if (isASCIIDigit(c)) { if (isASCIIDigit(c)) {
this.buffer += cStr; this.buffer += cStr;
} else if (isNaN(c) || c === 47 || c === 63 || c === 35 || } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||
(isSpecial(this.url) && c === 92) || (isSpecial(this.url) && c === 92) ||
this.stateOverride) { this.stateOverride) {
if (this.buffer !== "") { if (this.buffer !== "") {
const port = parseInt(this.buffer); const port = parseInt(this.buffer);
if (port > Math.pow(2, 16) - 1) { if (port > Math.pow(2, 16) - 1) {
this.parseError = true; this.parseError = true;
return failure; return failure;
} }
this.url.port = port === defaultPort(this.url.scheme) ? null : port; this.url.port = port === defaultPort(this.url.scheme) ? null : port;
this.buffer = ""; this.buffer = "";
} }
if (this.stateOverride) { if (this.stateOverride) {
return false; return false;
} }
this.state = "path start"; this.state = "path start";
--this.pointer; --this.pointer;
} else { } else {
this.parseError = true; this.parseError = true;
return failure; return failure;
} }
return true; return true;
}; };
const fileOtherwiseCodePoints = new Set([47, 92, 63, 35]); const fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);
URLStateMachine.prototype["parse file"] = function parseFile(c) { URLStateMachine.prototype["parse file"] = function parseFile(c) {
this.url.scheme = "file"; this.url.scheme = "file";
if (c === 47 || c === 92) { if (c === 47 || c === 92) {
if (c === 92) { if (c === 92) {
this.parseError = true; this.parseError = true;
} }
this.state = "file slash"; this.state = "file slash";
} else if (this.base !== null && this.base.scheme === "file") { } else if (this.base !== null && this.base.scheme === "file") {
if (isNaN(c)) { if (isNaN(c)) {
this.url.host = this.base.host; this.url.host = this.base.host;
this.url.path = this.base.path.slice(); this.url.path = this.base.path.slice();
this.url.query = this.base.query; this.url.query = this.base.query;
} else if (c === 63) { } else if (c === 63) {
this.url.host = this.base.host; this.url.host = this.base.host;
this.url.path = this.base.path.slice(); this.url.path = this.base.path.slice();
this.url.query = ""; this.url.query = "";
this.state = "query"; this.state = "query";
} else if (c === 35) { } else if (c === 35) {
this.url.host = this.base.host; this.url.host = this.base.host;
this.url.path = this.base.path.slice(); this.url.path = this.base.path.slice();
this.url.query = this.base.query; this.url.query = this.base.query;
this.url.fragment = ""; this.url.fragment = "";
this.state = "fragment"; this.state = "fragment";
} else { } else {
if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points
!isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) || !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||
(this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points
!fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) { !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {
this.url.host = this.base.host; this.url.host = this.base.host;
this.url.path = this.base.path.slice(); this.url.path = this.base.path.slice();
shortenPath(this.url); shortenPath(this.url);
} else { } else {
this.parseError = true; this.parseError = true;
} }
this.state = "path"; this.state = "path";
--this.pointer; --this.pointer;
} }
} else { } else {
this.state = "path"; this.state = "path";
--this.pointer; --this.pointer;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c) { URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c) {
if (c === 47 || c === 92) { if (c === 47 || c === 92) {
if (c === 92) { if (c === 92) {
this.parseError = true; this.parseError = true;
} }
this.state = "file host"; this.state = "file host";
} else { } else {
if (this.base !== null && this.base.scheme === "file") { if (this.base !== null && this.base.scheme === "file") {
if (isNormalizedWindowsDriveLetterString(this.base.path[0])) { if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {
this.url.path.push(this.base.path[0]); this.url.path.push(this.base.path[0]);
} else { } else {
this.url.host = this.base.host; this.url.host = this.base.host;
} }
} }
this.state = "path"; this.state = "path";
--this.pointer; --this.pointer;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse file host"] = function parseFileHost(c, cStr) { URLStateMachine.prototype["parse file host"] = function parseFileHost(c, cStr) {
if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) { if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {
--this.pointer; --this.pointer;
if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) { if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {
this.parseError = true; this.parseError = true;
this.state = "path"; this.state = "path";
} else if (this.buffer === "") { } else if (this.buffer === "") {
this.url.host = ""; this.url.host = "";
if (this.stateOverride) { if (this.stateOverride) {
return false; return false;
} }
this.state = "path start"; this.state = "path start";
} else { } else {
let host = parseHost(this.buffer, isSpecial(this.url)); let host = parseHost(this.buffer, isSpecial(this.url));
if (host === failure) { if (host === failure) {
return failure; return failure;
} }
if (host === "localhost") { if (host === "localhost") {
host = ""; host = "";
} }
this.url.host = host; this.url.host = host;
if (this.stateOverride) { if (this.stateOverride) {
return false; return false;
} }
this.buffer = ""; this.buffer = "";
this.state = "path start"; this.state = "path start";
} }
} else { } else {
this.buffer += cStr; this.buffer += cStr;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse path start"] = function parsePathStart(c) { URLStateMachine.prototype["parse path start"] = function parsePathStart(c) {
if (isSpecial(this.url)) { if (isSpecial(this.url)) {
if (c === 92) { if (c === 92) {
this.parseError = true; this.parseError = true;
} }
this.state = "path"; this.state = "path";
if (c !== 47 && c !== 92) { if (c !== 47 && c !== 92) {
--this.pointer; --this.pointer;
} }
} else if (!this.stateOverride && c === 63) { } else if (!this.stateOverride && c === 63) {
this.url.query = ""; this.url.query = "";
this.state = "query"; this.state = "query";
} else if (!this.stateOverride && c === 35) { } else if (!this.stateOverride && c === 35) {
this.url.fragment = ""; this.url.fragment = "";
this.state = "fragment"; this.state = "fragment";
} else if (c !== undefined) { } else if (c !== undefined) {
this.state = "path"; this.state = "path";
if (c !== 47) { if (c !== 47) {
--this.pointer; --this.pointer;
} }
} }
return true; return true;
}; };
URLStateMachine.prototype["parse path"] = function parsePath(c) { URLStateMachine.prototype["parse path"] = function parsePath(c) {
if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) || if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||
(!this.stateOverride && (c === 63 || c === 35))) { (!this.stateOverride && (c === 63 || c === 35))) {
if (isSpecial(this.url) && c === 92) { if (isSpecial(this.url) && c === 92) {
this.parseError = true; this.parseError = true;
} }
if (isDoubleDot(this.buffer)) { if (isDoubleDot(this.buffer)) {
shortenPath(this.url); shortenPath(this.url);
if (c !== 47 && !(isSpecial(this.url) && c === 92)) { if (c !== 47 && !(isSpecial(this.url) && c === 92)) {
this.url.path.push(""); this.url.path.push("");
} }
} else if (isSingleDot(this.buffer) && c !== 47 && } else if (isSingleDot(this.buffer) && c !== 47 &&
!(isSpecial(this.url) && c === 92)) { !(isSpecial(this.url) && c === 92)) {
this.url.path.push(""); this.url.path.push("");
} else if (!isSingleDot(this.buffer)) { } else if (!isSingleDot(this.buffer)) {
if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) { if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {
if (this.url.host !== "" && this.url.host !== null) { if (this.url.host !== "" && this.url.host !== null) {
this.parseError = true; this.parseError = true;
this.url.host = ""; this.url.host = "";
} }
this.buffer = this.buffer[0] + ":"; this.buffer = this.buffer[0] + ":";
} }
this.url.path.push(this.buffer); this.url.path.push(this.buffer);
} }
this.buffer = ""; this.buffer = "";
if (this.url.scheme === "file" && (c === undefined || c === 63 || c === 35)) { if (this.url.scheme === "file" && (c === undefined || c === 63 || c === 35)) {
while (this.url.path.length > 1 && this.url.path[0] === "") { while (this.url.path.length > 1 && this.url.path[0] === "") {
this.parseError = true; this.parseError = true;
this.url.path.shift(); this.url.path.shift();
} }
} }
if (c === 63) { if (c === 63) {
this.url.query = ""; this.url.query = "";
this.state = "query"; this.state = "query";
} }
if (c === 35) { if (c === 35) {
this.url.fragment = ""; this.url.fragment = "";
this.state = "fragment"; this.state = "fragment";
} }
} else { } else {
// TODO: If c is not a URL code point and not "%", parse error. // TODO: If c is not a URL code point and not "%", parse error.
if (c === 37 && if (c === 37 &&
(!isASCIIHex(this.input[this.pointer + 1]) || (!isASCIIHex(this.input[this.pointer + 1]) ||
!isASCIIHex(this.input[this.pointer + 2]))) { !isASCIIHex(this.input[this.pointer + 2]))) {
this.parseError = true; this.parseError = true;
} }
this.buffer += percentEncodeChar(c, isPathPercentEncode); this.buffer += percentEncodeChar(c, isPathPercentEncode);
} }
return true; return true;
}; };
URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = function parseCannotBeABaseURLPath(c) { URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = function parseCannotBeABaseURLPath(c) {
if (c === 63) { if (c === 63) {
this.url.query = ""; this.url.query = "";
this.state = "query"; this.state = "query";
} else if (c === 35) { } else if (c === 35) {
this.url.fragment = ""; this.url.fragment = "";
this.state = "fragment"; this.state = "fragment";
} else { } else {
// TODO: Add: not a URL code point // TODO: Add: not a URL code point
if (!isNaN(c) && c !== 37) { if (!isNaN(c) && c !== 37) {
this.parseError = true; this.parseError = true;
} }
if (c === 37 && if (c === 37 &&
(!isASCIIHex(this.input[this.pointer + 1]) || (!isASCIIHex(this.input[this.pointer + 1]) ||
!isASCIIHex(this.input[this.pointer + 2]))) { !isASCIIHex(this.input[this.pointer + 2]))) {
this.parseError = true; this.parseError = true;
} }
if (!isNaN(c)) { if (!isNaN(c)) {
this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode); this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);
} }
} }
return true; return true;
}; };
URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) { URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) {
if (isNaN(c) || (!this.stateOverride && c === 35)) { if (isNaN(c) || (!this.stateOverride && c === 35)) {
if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") { if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") {
this.encodingOverride = "utf-8"; this.encodingOverride = "utf-8";
} }
const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead
for (let i = 0; i < buffer.length; ++i) { for (let i = 0; i < buffer.length; ++i) {
if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 || if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||
buffer[i] === 0x3C || buffer[i] === 0x3E) { buffer[i] === 0x3C || buffer[i] === 0x3E) {
this.url.query += percentEncode(buffer[i]); this.url.query += percentEncode(buffer[i]);
} else { } else {
this.url.query += String.fromCodePoint(buffer[i]); this.url.query += String.fromCodePoint(buffer[i]);
} }
} }
this.buffer = ""; this.buffer = "";
if (c === 35) { if (c === 35) {
this.url.fragment = ""; this.url.fragment = "";
this.state = "fragment"; this.state = "fragment";
} }
} else { } else {
// TODO: If c is not a URL code point and not "%", parse error. // TODO: If c is not a URL code point and not "%", parse error.
if (c === 37 && if (c === 37 &&
(!isASCIIHex(this.input[this.pointer + 1]) || (!isASCIIHex(this.input[this.pointer + 1]) ||
!isASCIIHex(this.input[this.pointer + 2]))) { !isASCIIHex(this.input[this.pointer + 2]))) {
this.parseError = true; this.parseError = true;
} }
this.buffer += cStr; this.buffer += cStr;
} }
return true; return true;
}; };
URLStateMachine.prototype["parse fragment"] = function parseFragment(c) { URLStateMachine.prototype["parse fragment"] = function parseFragment(c) {
if (isNaN(c)) { // do nothing if (isNaN(c)) { // do nothing
} else if (c === 0x0) { } else if (c === 0x0) {
this.parseError = true; this.parseError = true;
} else { } else {
// TODO: If c is not a URL code point and not "%", parse error. // TODO: If c is not a URL code point and not "%", parse error.
if (c === 37 && if (c === 37 &&
(!isASCIIHex(this.input[this.pointer + 1]) || (!isASCIIHex(this.input[this.pointer + 1]) ||
!isASCIIHex(this.input[this.pointer + 2]))) { !isASCIIHex(this.input[this.pointer + 2]))) {
this.parseError = true; this.parseError = true;
} }
this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);
} }
return true; return true;
}; };
function serializeURL(url, excludeFragment) { function serializeURL(url, excludeFragment) {
let output = url.scheme + ":"; let output = url.scheme + ":";
if (url.host !== null) { if (url.host !== null) {
output += "//"; output += "//";
if (url.username !== "" || url.password !== "") { if (url.username !== "" || url.password !== "") {
output += url.username; output += url.username;
if (url.password !== "") { if (url.password !== "") {
output += ":" + url.password; output += ":" + url.password;
} }
output += "@"; output += "@";
} }
output += serializeHost(url.host); output += serializeHost(url.host);
if (url.port !== null) { if (url.port !== null) {
output += ":" + url.port; output += ":" + url.port;
} }
} else if (url.host === null && url.scheme === "file") { } else if (url.host === null && url.scheme === "file") {
output += "//"; output += "//";
} }
if (url.cannotBeABaseURL) { if (url.cannotBeABaseURL) {
output += url.path[0]; output += url.path[0];
} else { } else {
for (const string of url.path) { for (const string of url.path) {
output += "/" + string; output += "/" + string;
} }
} }
if (url.query !== null) { if (url.query !== null) {
output += "?" + url.query; output += "?" + url.query;
} }
if (!excludeFragment && url.fragment !== null) { if (!excludeFragment && url.fragment !== null) {
output += "#" + url.fragment; output += "#" + url.fragment;
} }
return output; return output;
} }
function serializeOrigin(tuple) { function serializeOrigin(tuple) {
let result = tuple.scheme + "://"; let result = tuple.scheme + "://";
result += serializeHost(tuple.host); result += serializeHost(tuple.host);
if (tuple.port !== null) { if (tuple.port !== null) {
result += ":" + tuple.port; result += ":" + tuple.port;
} }
return result; return result;
} }
module.exports.serializeURL = serializeURL; module.exports.serializeURL = serializeURL;
module.exports.serializeURLOrigin = function (url) { module.exports.serializeURLOrigin = function (url) {
// https://url.spec.whatwg.org/#concept-url-origin // https://url.spec.whatwg.org/#concept-url-origin
switch (url.scheme) { switch (url.scheme) {
case "blob": case "blob":
try { try {
return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));
} catch (e) { } catch (e) {
// serializing an opaque origin returns "null" // serializing an opaque origin returns "null"
return "null"; return "null";
} }
case "ftp": case "ftp":
case "gopher": case "gopher":
case "http": case "http":
case "https": case "https":
case "ws": case "ws":
case "wss": case "wss":
return serializeOrigin({ return serializeOrigin({
scheme: url.scheme, scheme: url.scheme,
host: url.host, host: url.host,
port: url.port port: url.port
}); });
case "file": case "file":
// spec says "exercise to the reader", chrome says "file://" // spec says "exercise to the reader", chrome says "file://"
return "file://"; return "file://";
default: default:
// serializing an opaque origin returns "null" // serializing an opaque origin returns "null"
return "null"; return "null";
} }
}; };
module.exports.basicURLParse = function (input, options) { module.exports.basicURLParse = function (input, options) {
if (options === undefined) { if (options === undefined) {
options = {}; options = {};
} }
const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);
if (usm.failure) { if (usm.failure) {
return "failure"; return "failure";
} }
return usm.url; return usm.url;
}; };
module.exports.setTheUsername = function (url, username) { module.exports.setTheUsername = function (url, username) {
url.username = ""; url.username = "";
const decoded = punycode.ucs2.decode(username); const decoded = punycode.ucs2.decode(username);
for (let i = 0; i < decoded.length; ++i) { for (let i = 0; i < decoded.length; ++i) {
url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);
} }
}; };
module.exports.setThePassword = function (url, password) { module.exports.setThePassword = function (url, password) {
url.password = ""; url.password = "";
const decoded = punycode.ucs2.decode(password); const decoded = punycode.ucs2.decode(password);
for (let i = 0; i < decoded.length; ++i) { for (let i = 0; i < decoded.length; ++i) {
url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);
} }
}; };
module.exports.serializeHost = serializeHost; module.exports.serializeHost = serializeHost;
module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;
module.exports.serializeInteger = function (integer) { module.exports.serializeInteger = function (integer) {
return String(integer); return String(integer);
}; };
module.exports.parseURL = function (input, options) { module.exports.parseURL = function (input, options) {
if (options === undefined) { if (options === undefined) {
options = {}; options = {};
} }
// We don't handle blobs, so this just delegates: // We don't handle blobs, so this just delegates:
return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });
}; };
/***/ }), /***/ }),
@@ -90852,25 +90852,11 @@ async function saveCache() {
await pruneCache(); await pruneCache();
} }
const actualCachePath = getUvCachePath(); const actualCachePath = getUvCachePath();
if (!fs.existsSync(actualCachePath)) { await saveCacheToKey(cacheKey, actualCachePath, restore_cache_1.STATE_CACHE_MATCHED_KEY, "uv cache", `Cache path ${actualCachePath} does not exist on disk. This likely indicates that there are no dependencies to cache. Consider disabling the cache input if it is not needed.`);
if (inputs_1.ignoreNothingToCache) {
core.info("No cacheable uv cache paths were found. Ignoring because ignore-nothing-to-cache is enabled.");
}
else {
throw new Error(`Cache path ${actualCachePath} does not exist on disk. This likely indicates that there are no dependencies to cache. Consider disabling the cache input if it is not needed.`);
}
}
else {
await saveCacheToKey(cacheKey, actualCachePath, restore_cache_1.STATE_CACHE_MATCHED_KEY, "uv cache");
}
} }
if (inputs_1.cachePython) { if (inputs_1.cachePython) {
if (!fs.existsSync(inputs_1.pythonDir)) {
core.warning(`Python cache path ${inputs_1.pythonDir} does not exist on disk. Skipping Python cache save because no managed Python installation was found. If you want uv to install managed Python instead of using a system interpreter, set UV_PYTHON_PREFERENCE=only-managed.`);
return;
}
const pythonCacheKey = `${cacheKey}-python`; const pythonCacheKey = `${cacheKey}-python`;
await saveCacheToKey(pythonCacheKey, inputs_1.pythonDir, restore_cache_1.STATE_PYTHON_CACHE_MATCHED_KEY, "Python cache"); await saveCacheToKey(pythonCacheKey, inputs_1.pythonDir, restore_cache_1.STATE_PYTHON_CACHE_MATCHED_KEY, "Python cache", `Python cache path ${inputs_1.pythonDir} does not exist on disk. This likely indicates that there are no Python installations to cache. Consider disabling the cache input if it is not needed.`);
} }
} }
async function pruneCache() { async function pruneCache() {
@@ -90897,15 +90883,30 @@ function getUvCachePath() {
} }
return inputs_1.cacheLocalPath.path; return inputs_1.cacheLocalPath.path;
} }
async function saveCacheToKey(cacheKey, cachePath, stateKey, cacheName) { async function saveCacheToKey(cacheKey, cachePath, stateKey, cacheName, pathNotExistErrorMessage) {
const matchedKey = core.getState(stateKey); const matchedKey = core.getState(stateKey);
if (matchedKey === cacheKey) { if (matchedKey === cacheKey) {
core.info(`${cacheName} hit occurred on key ${cacheKey}, not saving cache.`); core.info(`${cacheName} hit occurred on key ${cacheKey}, not saving cache.`);
return; return;
} }
core.info(`Including ${cacheName} path: ${cachePath}`); core.info(`Including ${cacheName} path: ${cachePath}`);
await cache.saveCache([cachePath], cacheKey); if (!fs.existsSync(cachePath) && !inputs_1.ignoreNothingToCache) {
core.info(`${cacheName} saved with key: ${cacheKey}`); throw new Error(pathNotExistErrorMessage);
}
try {
await cache.saveCache([cachePath], cacheKey);
core.info(`${cacheName} saved with key: ${cacheKey}`);
}
catch (e) {
if (e instanceof Error &&
e.message ===
"Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved.") {
core.info(`No cacheable ${cacheName} paths were found. Ignoring because ignore-nothing-to-save is enabled.`);
}
else {
throw e;
}
}
} }
run(); run();
@@ -91031,7 +91032,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod }; return (mod && mod.__esModule) ? mod : { "default": mod };
}; };
Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.resolutionStrategy = exports.addProblemMatchers = exports.manifestFile = exports.githubToken = exports.pythonDir = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.cachePython = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.saveCache = exports.restoreCache = exports.enableCache = exports.checkSum = exports.venvPath = exports.activateEnvironment = exports.pythonVersion = exports.versionFile = exports.version = exports.workingDirectory = exports.CacheLocalSource = void 0; exports.resolutionStrategy = exports.addProblemMatchers = exports.manifestFile = exports.githubToken = exports.pythonDir = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.cachePython = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.saveCache = exports.restoreCache = exports.enableCache = exports.checkSum = exports.activateEnvironment = exports.pythonVersion = exports.versionFile = exports.version = exports.workingDirectory = exports.CacheLocalSource = void 0;
exports.getUvPythonDir = getUvPythonDir; exports.getUvPythonDir = getUvPythonDir;
const node_path_1 = __importDefault(__nccwpck_require__(6760)); const node_path_1 = __importDefault(__nccwpck_require__(6760));
const core = __importStar(__nccwpck_require__(7484)); const core = __importStar(__nccwpck_require__(7484));
@@ -91048,7 +91049,6 @@ exports.version = core.getInput("version");
exports.versionFile = getVersionFile(); exports.versionFile = getVersionFile();
exports.pythonVersion = core.getInput("python-version"); exports.pythonVersion = core.getInput("python-version");
exports.activateEnvironment = core.getBooleanInput("activate-environment"); exports.activateEnvironment = core.getBooleanInput("activate-environment");
exports.venvPath = getVenvPath();
exports.checkSum = core.getInput("checksum"); exports.checkSum = core.getInput("checksum");
exports.enableCache = getEnableCache(); exports.enableCache = getEnableCache();
exports.restoreCache = core.getInput("restore-cache") === "true"; exports.restoreCache = core.getInput("restore-cache") === "true";
@@ -91075,17 +91075,6 @@ function getVersionFile() {
} }
return versionFileInput; return versionFileInput;
} }
function getVenvPath() {
const venvPathInput = core.getInput("venv-path");
if (venvPathInput !== "") {
if (!exports.activateEnvironment) {
core.warning("venv-path is only used when activate-environment is true");
}
const tildeExpanded = expandTilde(venvPathInput);
return normalizePath(resolveRelativePath(tildeExpanded));
}
return normalizePath(resolveRelativePath(".venv"));
}
function getEnableCache() { function getEnableCache() {
const enableCacheInput = core.getInput("enable-cache"); const enableCacheInput = core.getInput("enable-cache");
if (enableCacheInput === "auto") { if (enableCacheInput === "auto") {
@@ -91214,16 +91203,6 @@ function expandTilde(input) {
} }
return input; return input;
} }
function normalizePath(inputPath) {
const normalized = node_path_1.default.normalize(inputPath);
const root = node_path_1.default.parse(normalized).root;
// Remove any trailing path separators, except when the whole path is the root.
let trimmed = normalized;
while (trimmed.length > root.length && trimmed.endsWith(node_path_1.default.sep)) {
trimmed = trimmed.slice(0, -1);
}
return trimmed;
}
function resolveRelativePath(inputPath) { function resolveRelativePath(inputPath) {
const hasNegation = inputPath.startsWith("!"); const hasNegation = inputPath.startsWith("!");
const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath; const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath;
@@ -91307,7 +91286,6 @@ function getArch() {
arm64: "aarch64", arm64: "aarch64",
ia32: "i686", ia32: "i686",
ppc64: "powerpc64le", ppc64: "powerpc64le",
riscv64: "riscv64gc",
s390x: "s390x", s390x: "s390x",
x64: "x86_64", x64: "x86_64",
}; };
@@ -91382,15 +91360,9 @@ function getLinuxOSNameVersion() {
const content = node_fs_1.default.readFileSync(file, "utf8"); const content = node_fs_1.default.readFileSync(file, "utf8");
const id = parseOsReleaseValue(content, "ID"); const id = parseOsReleaseValue(content, "ID");
const versionId = parseOsReleaseValue(content, "VERSION_ID"); const versionId = parseOsReleaseValue(content, "VERSION_ID");
// Fallback for rolling releases (debian:unstable/testing, arch, etc.)
// that don't have VERSION_ID but have VERSION_CODENAME
const versionCodename = parseOsReleaseValue(content, "VERSION_CODENAME");
if (id && versionId) { if (id && versionId) {
return `${id}-${versionId}`; return `${id}-${versionId}`;
} }
if (id && versionCodename) {
return `${id}-${versionCodename}`;
}
} }
catch { catch {
// Try next file // Try next file
@@ -93486,7 +93458,7 @@ function getStringEnd(str, seek) {
} }
// dist/date.js // dist/date.js
var DATE_TIME_RE = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i; var DATE_TIME_RE = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}:\d{2}(?:\.\d+)?)?(Z|[-+]\d{2}:\d{2})?$/i;
var TomlDate = class _TomlDate extends Date { var TomlDate = class _TomlDate extends Date {
#hasDate = false; #hasDate = false;
#hasTime = false; #hasTime = false;
@@ -93581,14 +93553,13 @@ var TomlDate = class _TomlDate extends Date {
var INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/; var INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/;
var FLOAT_REGEX = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/; var FLOAT_REGEX = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/;
var LEADING_ZERO = /^[+-]?0[0-9_]/; var LEADING_ZERO = /^[+-]?0[0-9_]/;
var ESCAPE_REGEX = /^[0-9a-f]{2,8}$/i; var ESCAPE_REGEX = /^[0-9a-f]{4,8}$/i;
var ESC_MAP = { var ESC_MAP = {
b: "\b", b: "\b",
t: " ", t: " ",
n: "\n", n: "\n",
f: "\f", f: "\f",
r: "\r", r: "\r",
e: "\x1B",
'"': '"', '"': '"',
"\\": "\\" "\\": "\\"
}; };
@@ -93623,8 +93594,8 @@ function parseString(str, ptr = 0, endPtr = str.length) {
} }
if (isEscape) { if (isEscape) {
isEscape = false; isEscape = false;
if (c === "x" || c === "u" || c === "U") { if (c === "u" || c === "U") {
let code = str.slice(ptr, ptr += c === "x" ? 2 : c === "u" ? 4 : 8); let code = str.slice(ptr, ptr += c === "u" ? 4 : 8);
if (!ESCAPE_REGEX.test(code)) { if (!ESCAPE_REGEX.test(code)) {
throw new TomlError("invalid unicode escape", { throw new TomlError("invalid unicode escape", {
toml: str, toml: str,
@@ -93717,14 +93688,24 @@ function parseValue(value, toml, ptr, integersAsBigInt) {
} }
// dist/extract.js // dist/extract.js
function sliceAndTrimEndOf(str, startPtr, endPtr) { function sliceAndTrimEndOf(str, startPtr, endPtr, allowNewLines) {
let value = str.slice(startPtr, endPtr); let value = str.slice(startPtr, endPtr);
let commentIdx = value.indexOf("#"); let commentIdx = value.indexOf("#");
if (commentIdx > -1) { if (commentIdx > -1) {
skipComment(str, commentIdx); skipComment(str, commentIdx);
value = value.slice(0, commentIdx); value = value.slice(0, commentIdx);
} }
return [value.trimEnd(), commentIdx]; let trimmed = value.trimEnd();
if (!allowNewLines) {
let newlineIdx = value.indexOf("\n", trimmed.length);
if (newlineIdx > -1) {
throw new TomlError("newlines are not allowed in inline tables", {
toml: str,
ptr: startPtr + newlineIdx
});
}
}
return [trimmed, commentIdx];
} }
function extractValue(str, ptr, end, depth, integersAsBigInt) { function extractValue(str, ptr, end, depth, integersAsBigInt) {
if (depth === 0) { if (depth === 0) {
@@ -93736,25 +93717,24 @@ function extractValue(str, ptr, end, depth, integersAsBigInt) {
let c = str[ptr]; let c = str[ptr];
if (c === "[" || c === "{") { if (c === "[" || c === "{") {
let [value, endPtr2] = c === "[" ? parseArray(str, ptr, depth, integersAsBigInt) : parseInlineTable(str, ptr, depth, integersAsBigInt); let [value, endPtr2] = c === "[" ? parseArray(str, ptr, depth, integersAsBigInt) : parseInlineTable(str, ptr, depth, integersAsBigInt);
if (end) { let newPtr = end ? skipUntil(str, endPtr2, ",", end) : endPtr2;
endPtr2 = skipVoid(str, endPtr2); if (endPtr2 - newPtr && end === "}") {
if (str[endPtr2] === ",") let nextNewLine = indexOfNewline(str, endPtr2, newPtr);
endPtr2++; if (nextNewLine > -1) {
else if (str[endPtr2] !== end) { throw new TomlError("newlines are not allowed in inline tables", {
throw new TomlError("expected comma or end of structure", {
toml: str, toml: str,
ptr: endPtr2 ptr: nextNewLine
}); });
} }
} }
return [value, endPtr2]; return [value, newPtr];
} }
let endPtr; let endPtr;
if (c === '"' || c === "'") { if (c === '"' || c === "'") {
endPtr = getStringEnd(str, ptr); endPtr = getStringEnd(str, ptr);
let parsed = parseString(str, ptr, endPtr); let parsed = parseString(str, ptr, endPtr);
if (end) { if (end) {
endPtr = skipVoid(str, endPtr); endPtr = skipVoid(str, endPtr, end !== "]");
if (str[endPtr] && str[endPtr] !== "," && str[endPtr] !== end && str[endPtr] !== "\n" && str[endPtr] !== "\r") { if (str[endPtr] && str[endPtr] !== "," && str[endPtr] !== end && str[endPtr] !== "\n" && str[endPtr] !== "\r") {
throw new TomlError("unexpected character encountered", { throw new TomlError("unexpected character encountered", {
toml: str, toml: str,
@@ -93766,7 +93746,7 @@ function extractValue(str, ptr, end, depth, integersAsBigInt) {
return [parsed, endPtr]; return [parsed, endPtr];
} }
endPtr = skipUntil(str, ptr, ",", end); endPtr = skipUntil(str, ptr, ",", end);
let slice = sliceAndTrimEndOf(str, ptr, endPtr - +(str[endPtr - 1] === ",")); let slice = sliceAndTrimEndOf(str, ptr, endPtr - +(str[endPtr - 1] === ","), end === "]");
if (!slice[0]) { if (!slice[0]) {
throw new TomlError("incomplete key-value declaration: no value specified", { throw new TomlError("incomplete key-value declaration: no value specified", {
toml: str, toml: str,
@@ -93856,16 +93836,17 @@ function parseInlineTable(str, ptr, depth, integersAsBigInt) {
let res = {}; let res = {};
let seen = /* @__PURE__ */ new Set(); let seen = /* @__PURE__ */ new Set();
let c; let c;
let comma = 0;
ptr++; ptr++;
while ((c = str[ptr++]) !== "}" && c) { while ((c = str[ptr++]) !== "}" && c) {
if (c === ",") { let err = { toml: str, ptr: ptr - 1 };
throw new TomlError("expected value, found comma", { if (c === "\n") {
toml: str, throw new TomlError("newlines are not allowed in inline tables", err);
ptr: ptr - 1 } else if (c === "#") {
}); throw new TomlError("inline tables cannot contain comments", err);
} else if (c === "#") } else if (c === ",") {
ptr = skipComment(str, ptr); throw new TomlError("expected key-value, found comma", err);
else if (c !== " " && c !== " " && c !== "\n" && c !== "\r") { } else if (c !== " " && c !== " ") {
let k; let k;
let t = res; let t = res;
let hasOwn = false; let hasOwn = false;
@@ -93894,8 +93875,15 @@ function parseInlineTable(str, ptr, depth, integersAsBigInt) {
seen.add(value); seen.add(value);
t[k] = value; t[k] = value;
ptr = valueEndPtr; ptr = valueEndPtr;
comma = str[ptr - 1] === "," ? ptr - 1 : 0;
} }
} }
if (comma) {
throw new TomlError("trailing commas are not allowed in inline tables", {
toml: str,
ptr: comma
});
}
if (!c) { if (!c) {
throw new TomlError("unfinished table encountered", { throw new TomlError("unfinished table encountered", {
toml: str, toml: str,
@@ -94147,13 +94135,14 @@ function stringifyArrayTable(array, key, depth, numberAsFloat) {
} }
let res = ""; let res = "";
for (let i = 0; i < array.length; i++) { for (let i = 0; i < array.length; i++) {
res += `${res && "\n"}[[${key}]] res += `[[${key}]]
`; `;
res += stringifyTable(0, array[i], key, depth, numberAsFloat); res += stringifyTable(array[i], key, depth, numberAsFloat);
res += "\n\n";
} }
return res; return res;
} }
function stringifyTable(tableKey, obj, prefix, depth, numberAsFloat) { function stringifyTable(obj, prefix, depth, numberAsFloat) {
if (depth === 0) { if (depth === 0) {
throw new Error("Could not stringify the object: maximum object depth exceeded"); throw new Error("Could not stringify the object: maximum object depth exceeded");
} }
@@ -94169,10 +94158,13 @@ function stringifyTable(tableKey, obj, prefix, depth, numberAsFloat) {
} }
let key = BARE_KEY.test(k) ? k : formatString(k); let key = BARE_KEY.test(k) ? k : formatString(k);
if (type === "array" && isArrayOfTables(obj[k])) { if (type === "array" && isArrayOfTables(obj[k])) {
tables += (tables && "\n") + stringifyArrayTable(obj[k], prefix ? `${prefix}.${key}` : key, depth - 1, numberAsFloat); tables += stringifyArrayTable(obj[k], prefix ? `${prefix}.${key}` : key, depth - 1, numberAsFloat);
} else if (type === "object") { } else if (type === "object") {
let tblKey = prefix ? `${prefix}.${key}` : key; let tblKey = prefix ? `${prefix}.${key}` : key;
tables += (tables && "\n") + stringifyTable(tblKey, obj[k], tblKey, depth - 1, numberAsFloat); tables += `[${tblKey}]
`;
tables += stringifyTable(obj[k], tblKey, depth - 1, numberAsFloat);
tables += "\n\n";
} else { } else {
preamble += key; preamble += key;
preamble += " = "; preamble += " = ";
@@ -94181,20 +94173,14 @@ function stringifyTable(tableKey, obj, prefix, depth, numberAsFloat) {
} }
} }
} }
if (tableKey && (preamble || !tables)) return `${preamble}
preamble = preamble ? `[${tableKey}] ${tables}`.trim();
${preamble}` : `[${tableKey}]`;
return preamble && tables ? `${preamble}
${tables}` : preamble || tables;
} }
function stringify(obj, { maxDepth = 1e3, numbersAsFloat = false } = {}) { function stringify(obj, { maxDepth = 1e3, numbersAsFloat = false } = {}) {
if (extendedTypeOf(obj) !== "object") { if (extendedTypeOf(obj) !== "object") {
throw new TypeError("stringify can only be called with an object"); throw new TypeError("stringify can only be called with an object");
} }
let str = stringifyTable(0, obj, "", maxDepth, numbersAsFloat); return stringifyTable(obj, "", maxDepth, numbersAsFloat);
if (str[str.length - 1] !== "\n")
return str + "\n";
return str;
} }
// dist/index.js // dist/index.js

9847
dist/setup/index.js generated vendored

File diff suppressed because it is too large Load Diff

262
dist/update-known-versions/index.js generated vendored
View File

@@ -28196,248 +28196,6 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.KNOWN_CHECKSUMS = void 0; exports.KNOWN_CHECKSUMS = void 0;
// AUTOGENERATED_DO_NOT_EDIT // AUTOGENERATED_DO_NOT_EDIT
exports.KNOWN_CHECKSUMS = { exports.KNOWN_CHECKSUMS = {
"aarch64-apple-darwin-0.10.9": "a92f61e9ac9b0f29668c15f56152e4a60143fca148ff5bfadb86718472c3f376",
"aarch64-pc-windows-msvc-0.10.9": "5c2526844acf978eab784161c21604343141aa6c9ed22c237ae2f315648f049d",
"aarch64-unknown-linux-gnu-0.10.9": "cc0c5a8573e7d6d78aecb954e0a62b5c0d18217bb81f1e19363b428c57a9962a",
"aarch64-unknown-linux-musl-0.10.9": "05b0d3087e913ebe11756365a90dd47c05d6728752fdbe129ad4c3ccd769826d",
"arm-unknown-linux-musleabihf-0.10.9": "6220fa3eb5f8212cae4ec3a5053060914aaa829549cf706dde9f9cc344f75f61",
"armv7-unknown-linux-gnueabihf-0.10.9": "0076eac165c2f7129627e2297478e7ffbb9465d9ae6a8961b2f53dcbd807473d",
"armv7-unknown-linux-musleabihf-0.10.9": "f702e821b80e371e14987a886d58ee103c5948b7b096fa49a552624c24d7e073",
"i686-pc-windows-msvc-0.10.9": "034bf6b91390b9adc5f41a5946fdb618ebc8cef1574f3d95af9c12fe2bf9aaf3",
"i686-unknown-linux-gnu-0.10.9": "90d9168a4e7900463f9fd79a32eb1890081fb1e238d803404f6e17b2dcdcca7b",
"i686-unknown-linux-musl-0.10.9": "1d42b0d0a037b3d658b11ec889154686db3ab269ba2b789bdbc45d36e3549f34",
"powerpc64le-unknown-linux-gnu-0.10.9": "e804f4a7d0659e09ef806365f04bdd33c940603fab903e925402748d05dd109a",
"riscv64gc-unknown-linux-gnu-0.10.9": "1541596da45855e34202130027a613a2ace7d441e04d747cb4dd9f2590461c9a",
"s390x-unknown-linux-gnu-0.10.9": "a589d4a8930c82fa7225daec19c632651b3c84f50f770efe758056b387e5f0dd",
"x86_64-apple-darwin-0.10.9": "9cc2de7d195fa157f98b306a8a1cb151ded93f488939b93363cebc8b9d598c28",
"x86_64-pc-windows-msvc-0.10.9": "f58dc40896000229db7c52b8bdd931394040ef2ad59abd1eda841f6d70b13d7a",
"x86_64-unknown-linux-gnu-0.10.9": "20d79708222611fa540b5c9ed84f352bcd3937740e51aacc0f8b15b271c57594",
"x86_64-unknown-linux-musl-0.10.9": "433e56874739e92c7cfd661ba9e5f287b376ca612c08c8194a41a98a13158aea",
"aarch64-apple-darwin-0.10.8": "c3a6fff5b6b4abddff863117878194e35dbc6b0267d61ad259ab9896f9b8dcbb",
"aarch64-pc-windows-msvc-0.10.8": "20db25dc446f9a75d1cfde0a5f4b021e1b2eb266e600a610d32c7ca5d7ff83bf",
"aarch64-unknown-linux-gnu-0.10.8": "661860e954f87dcd823251191866af3486484d1a9df60eed56f4586ed7559e3d",
"aarch64-unknown-linux-musl-0.10.8": "2ef0d0489e9e2a32f134ca80097fa36be4b486c4ab004706a1d6d0d57980ff07",
"arm-unknown-linux-musleabihf-0.10.8": "f6dfca333c566024f6feaef19adf7ce06675a1bc2fcadc2de640dd805112a518",
"armv7-unknown-linux-gnueabihf-0.10.8": "1bee8f88a7129f7922c43b0e091a7065d4e13a2934e599aa8a48f162cf9739aa",
"armv7-unknown-linux-musleabihf-0.10.8": "ad0ca78991518fde1c4c42f8590e86f29db1f746cedb637f9dac1bb7de2e28da",
"i686-pc-windows-msvc-0.10.8": "db40952a0c16eb647cb3a06c8cc13712b72e5b6a2501bc080c7e00c0f0e4ad88",
"i686-unknown-linux-gnu-0.10.8": "3a78c54ffedce8eafd59a19a32eaec538924169fa4bf9d28d2d5841a7f604210",
"i686-unknown-linux-musl-0.10.8": "25cf70c12abded06c4c18db8fdba253776bc115ce28f849af6f6ef771e67d730",
"powerpc64le-unknown-linux-gnu-0.10.8": "3a4a158e645d04825872eb59ca60dd5026529e4f9fe5dd88987a45478301724d",
"riscv64gc-unknown-linux-gnu-0.10.8": "2349e786d2de14fbd72386f42ed9f398cad52f47f6cdd78e05f338a1faf1321c",
"s390x-unknown-linux-gnu-0.10.8": "21de0f86838b06e6ebcc3cb6a079d49d3d3886e5b49822ae58e5758eb08a6710",
"x86_64-apple-darwin-0.10.8": "e0a1b22b039f8155765f5bc8c13df03a5f994a901901179791572e8e5f053281",
"x86_64-pc-windows-msvc-0.10.8": "2e70ecd22196cbd9d14eefb700814bcafc5b75a0d8275b52e8402e5fe256d928",
"x86_64-unknown-linux-gnu-0.10.8": "f0c566b55683395a62fefb9261a060fa09824914b5682c3b9629fa154762ae2f",
"x86_64-unknown-linux-musl-0.10.8": "a4e6ad1aecac61077de548d2cc9ccf2c2f1848863312b3b59fb0d2eb8d8a043c",
"aarch64-apple-darwin-0.10.7": "1eb4dcc5e0fc8669fa0b33cf1151b64ba3b8c26b60dceff4f7a686129e2af22b",
"aarch64-pc-windows-msvc-0.10.7": "45ba7b72a7435343d650c73d21d65d2e8bdda47f6bd39af00e37f3cb70aa79ef",
"aarch64-unknown-linux-gnu-0.10.7": "20efc27d946860093650bcf26096a016b10fdaf03b13c33b75fbde02962beea9",
"aarch64-unknown-linux-musl-0.10.7": "115291f9943531a3b63db3a2eabda8b74b8da4831551679382cb309c9debd9f7",
"arm-unknown-linux-musleabihf-0.10.7": "3ea331cd68f28235e13639d5400341a3893d0455f2473a74a9926b7d62cb739c",
"armv7-unknown-linux-gnueabihf-0.10.7": "2e2f88cc5a7b49282c9aa05cfe03e3b8b0a044e90981062fbeb60a7aeba188ca",
"armv7-unknown-linux-musleabihf-0.10.7": "27319e842d802c5c73be52f3774999d79d0f28f37984090998560fd925133375",
"i686-pc-windows-msvc-0.10.7": "a7960473a473ee5907a55fccb8c645e24c1da7d39076aaef652b819e3a26a28b",
"i686-unknown-linux-gnu-0.10.7": "1a22aa0d2268a9a6fb2e5f092ca3d1ef7c14f96c3b4fd546226814f376e59d73",
"i686-unknown-linux-musl-0.10.7": "75c2cc60675fb6f846b394c3f7b51f77c08f0981abf5cfcb5e27cfbb2f5837e0",
"powerpc64le-unknown-linux-gnu-0.10.7": "7398686962b966959c32e7fbfd2868fbac38491ff0d86033d7c8bbb826a04026",
"riscv64gc-unknown-linux-gnu-0.10.7": "39abc60403fdcf5c681b63c967059d42aea58a81ffb092d6dda767390222a4b0",
"s390x-unknown-linux-gnu-0.10.7": "281ae4c1343e0c5f9775358690d40e00edbf63ca788b4d8b6574a0b5cba624f4",
"x86_64-apple-darwin-0.10.7": "4fed9d4f4608fb3850db714ee37244436f850a2b6e485bc510795679c2d08866",
"x86_64-pc-windows-msvc-0.10.7": "8881afb877996a1373a12e816395122a8d39a3ac06cd066272acdb49510cf0fe",
"x86_64-unknown-linux-gnu-0.10.7": "9ac6cee4e379a5abfca06e78a777b26b7ba1f81cb7935b97054d80d85ac00774",
"x86_64-unknown-linux-musl-0.10.7": "992529add6024e67135b1c80617abd2eca7be2cf0b99b3911f923de815bd8dc1",
"aarch64-apple-darwin-0.10.6": "3993249d8f51deaf34cfce037e57e294e82267ff1f9dc45b7983a17afaf065b4",
"aarch64-pc-windows-msvc-0.10.6": "e431c9a4f8d66e872f6640500cbbf1af20418720b78ac01404399ac810ef2e46",
"aarch64-unknown-linux-gnu-0.10.6": "9380705294a85e3e634570abddd5b2577900c1873c29b790c7abc56a81dce4bc",
"aarch64-unknown-linux-musl-0.10.6": "7de7aa836fd54ff930fa5e63bc04da35e2fbd72889d6258e153479c44d08b863",
"arm-unknown-linux-musleabihf-0.10.6": "9d0b55a3b0aff97884f49e15739a9936eb33a1b59a5bf1b3c7ce4d9e517d4d76",
"armv7-unknown-linux-gnueabihf-0.10.6": "165400192202ee2487bcee4429a5e5a2fddfe8fef8985fb548e2a89fda6b2376",
"armv7-unknown-linux-musleabihf-0.10.6": "1cf58447f2003122f83b1a34aee94429cb2686010c3502bfa21c8116e09d5bdf",
"i686-pc-windows-msvc-0.10.6": "ec189db03b89262e6089e4fb895af6116b964234cf4166b330e258aaf7f999b4",
"i686-unknown-linux-gnu-0.10.6": "f72a88d489fc424aca69c1cbf175bb5aeae649aa8c55b092628e5e553b481dd5",
"i686-unknown-linux-musl-0.10.6": "94471f51aedbfaceb495949d5ce37d44352b2dfea45b61399870c39a881681fc",
"powerpc64le-unknown-linux-gnu-0.10.6": "72d504553fc7150177bbf57b585c850cb4d695ddd848b9ba1416ac122eb88293",
"riscv64gc-unknown-linux-gnu-0.10.6": "8f8a966d1f911f39334581a933805a30cdec5a7c1d4f580e03973ff45bf9b6ad",
"s390x-unknown-linux-gnu-0.10.6": "5ed60237762862b05561d02b7f095268897d0561e87dca5986b04319265bc2cf",
"x86_64-apple-darwin-0.10.6": "d7647571fb17a5107d4d23cc190418039c157fd7361ddb59bc6f8127a49e3eac",
"x86_64-pc-windows-msvc-0.10.6": "b27eb789f281e398a82197477de727fc8faf08605152115686da2c3cba0d25f7",
"x86_64-unknown-linux-gnu-0.10.6": "aaa402e19d14a6b9a4267fcf4ec35380f804c68923525cea67cd6ee05bb4e930",
"x86_64-unknown-linux-musl-0.10.6": "01d6ce770da88ce6445acb0a8764c8b1634c9f69c728dca68b19fc7a893f72b9",
"aarch64-apple-darwin-0.10.5": "796c2d264c6aba3e1179249438a9fa2fe64140748f0e5b6681e38218ab6238f1",
"aarch64-pc-windows-msvc-0.10.5": "7f88f279e271cd76a6e07fe1ad711cbdf15374206ab79f55adadb818ebbd8e43",
"aarch64-unknown-linux-gnu-0.10.5": "dfa82b047456c646c50ba769af81a6b7ba20aaf5feee96e61554861db8db5809",
"aarch64-unknown-linux-musl-0.10.5": "cf01a960442b9aff4cadc4d27c691086151e9289b5b9fbd0dc41ecfcff1db872",
"arm-unknown-linux-musleabihf-0.10.5": "abe18becc57fe3c3bf55e62b4b7be0231cb4dbb941fdb3f4f9132703b1f4868c",
"armv7-unknown-linux-gnueabihf-0.10.5": "46d79f64e88cb339160cf90f6df51ea14795960840fb4fca8aa61af8cddd8187",
"armv7-unknown-linux-musleabihf-0.10.5": "13444ea0cc650551c4c455af73ac27a77185064275475b2999c627158b7455f4",
"i686-pc-windows-msvc-0.10.5": "67d96bae5ef30b9f1e201622505591601b936996ceea84c36fce5e577db5a442",
"i686-unknown-linux-gnu-0.10.5": "56eb897036b8607bb7516349388bef6c83004ae05e694ec34e1bae69f3a0f237",
"i686-unknown-linux-musl-0.10.5": "b0be10f5c16a987294a806dfd3927348456fca8b465377c99e0d167792b842dc",
"powerpc64le-unknown-linux-gnu-0.10.5": "c7f4049b7e26a43107351808f7748c3bc0dfdf118c29f4b1470b69be15fef45b",
"riscv64gc-unknown-linux-gnu-0.10.5": "756c43f4844953a2241c4254d268335b3bd35ca81856e8e06c7d4826466e87ce",
"s390x-unknown-linux-gnu-0.10.5": "fbccde48aec139fc99558bd022ec3cab15f607b9b5e0efc0279c6145ab5ecaf7",
"x86_64-apple-darwin-0.10.5": "84c4ce2902e2e840a54a75360b00f06ceffc6c26894bc5e73151a2c55d5fd043",
"x86_64-pc-windows-msvc-0.10.5": "d5b3b04127eb6fb41ffca60c0da655124133b62b4b58e29cfc5435469a176e06",
"x86_64-unknown-linux-gnu-0.10.5": "bcb127225873baa5ebd23cf09f29996cc97c1091830c9933e2e320bf1429a584",
"x86_64-unknown-linux-musl-0.10.5": "88aeea39c77b6b796ca6b19c0216a577b18095dc450972dac7872a307bb1e160",
"aarch64-apple-darwin-0.10.4": "a6852e4dc565c8fedcf5adcdf09fca7caf5347739bed512bd95b15dada36db51",
"aarch64-pc-windows-msvc-0.10.4": "77f859cfc26181bdfb94087ce42336d9e2d9e0700bc42f6668445cde517198ce",
"aarch64-unknown-linux-gnu-0.10.4": "c84a6e6405715caa6e2f5ef8e5f29a5d0bc558a954e9f1b5c082b9d4708c222e",
"aarch64-unknown-linux-musl-0.10.4": "82fc461031dafb130af761e7dbec1bcc51b826c2e664f5bf8bc4e4f8330320cd",
"arm-unknown-linux-musleabihf-0.10.4": "2050d9037a63975dafed987bdc7d2960a3b82345951c14193060fce20f9d31d8",
"armv7-unknown-linux-gnueabihf-0.10.4": "d1824ed14f3ad0e7cb7835b46bc0299859cd8141d039a66274a135ca9797bf9c",
"armv7-unknown-linux-musleabihf-0.10.4": "3038fdf153a722941424c28ae76996d60589f7f626c2000eb6567b3c301100dd",
"i686-pc-windows-msvc-0.10.4": "b42379a65e9cec5863a22cf81810aec57281b08d426e70cc3b90320b996d84a7",
"i686-unknown-linux-gnu-0.10.4": "79821b1d6c035aa8dc32a45d41551a4f010b8e357c98df48c95c5cb5ec18a743",
"i686-unknown-linux-musl-0.10.4": "459315d7dba39b0297f44104fad1c93fa5cf866f91b533bba02d58f1e54129ad",
"powerpc64le-unknown-linux-gnu-0.10.4": "7b315d9580ef574a1d0ff2023c16e5ac8a164feb1e998f33ed144dfd4c4fc125",
"riscv64gc-unknown-linux-gnu-0.10.4": "101a71c072986929c410d4839babf66851563fd855b36c1dd7ffbbf5fbedce36",
"s390x-unknown-linux-gnu-0.10.4": "59a50f14892c82de8f3e7a1a63ebc0ef98778085e4bb35ec99323f5009232fe2",
"x86_64-apple-darwin-0.10.4": "df6dd1c3ebeab4369a098c516c15c233c62bf789a40a4864b30dad1d38d7604e",
"x86_64-pc-windows-msvc-0.10.4": "0f0e22d7507633bfb38d9b42fb6a0341f1f74b8e80b070a31231c354812432a3",
"x86_64-unknown-linux-gnu-0.10.4": "6b52a47358deea1c5e173278bf46b2b489747a59ae31f2a4362ed5c6c1c269f7",
"x86_64-unknown-linux-musl-0.10.4": "18adf097cea30a165ba086c1e72659fec3c5aca056a560e7c39e0164ac871196",
"aarch64-apple-darwin-0.10.3": "ed2a08079527dafae4943fee80162ed750286657901e642eba4c9de928706df8",
"aarch64-pc-windows-msvc-0.10.3": "48243b8acbb31d0081e00878ee3b28535ed9f28ab8b27960b88aed8e1d6dd16a",
"aarch64-unknown-linux-gnu-0.10.3": "cce7d1e4c34e22955cd647b256409b6504f4ae72acf190a6f26189efefbc9a9d",
"aarch64-unknown-linux-musl-0.10.3": "a98f8decf21204d40acb512b0e08a803ed718c640a97f3c095864967463d5b15",
"arm-unknown-linux-musleabihf-0.10.3": "e4b3c6dc59cd65125eda09e6c24b97fca71647df979f8963662807dc6a53e165",
"armv7-unknown-linux-gnueabihf-0.10.3": "1d453ef56127d3aab3ea7f383b27765840e0bdc0b683347191e4cbc26272de2e",
"armv7-unknown-linux-musleabihf-0.10.3": "d2484df75c9ba4c7e9750da00c4c4276b65c088d8b551b63717d5d9aa227ffa5",
"i686-pc-windows-msvc-0.10.3": "51f745bcab5f77fe75e6f221e3e55a4bddf54824e634ac6f229132880506ce7e",
"i686-unknown-linux-gnu-0.10.3": "e82e76ced718091d946eed30880728cf39f05b85f4f82c483a7dbf95f1663531",
"i686-unknown-linux-musl-0.10.3": "0baca51f61729c6911d1d055c2e6dee5d11d88f6abbcd1ff801460f46880dc8d",
"powerpc64le-unknown-linux-gnu-0.10.3": "cf4969ba97af3a53d1e4dc8a28441b79e78a8d9a9d41854e88b425f6b6fc6179",
"riscv64gc-unknown-linux-gnu-0.10.3": "79b6b362e48c80e5b7d251fb96546d8ee52dd3458e01518cef969f757b59502b",
"s390x-unknown-linux-gnu-0.10.3": "fc969d6011e4ffd0752abb5d812fc453649a7394c3f08a11556c9960891e359c",
"x86_64-apple-darwin-0.10.3": "e8071cedb9986724ca3d70020b4460a85a274394b378c0e8eb1e8f9e33402ff9",
"x86_64-pc-windows-msvc-0.10.3": "d029201a3eebaa8a0001fa762ee44ca14a9cb3cae4d59fc3fd69857da03a6f8c",
"x86_64-unknown-linux-gnu-0.10.3": "c60b9956a0e6727f0ddd881c303a706c6408b2047f3a8fa4d1454a826338ccdc",
"x86_64-unknown-linux-musl-0.10.3": "126496b606129eda426dac502af0d910d895f3db81da28efc49b18edf5557741",
"aarch64-apple-darwin-0.10.2": "3828b2de196687f60e9d199aea8b504299629300831eea0935ff3fe339903d0a",
"aarch64-pc-windows-msvc-0.10.2": "826e4ee3a03ec245e54c449e272fdf8aab749e039cc49c950ad43cc13702221f",
"aarch64-unknown-linux-gnu-0.10.2": "4998f545234d52fc6f1280827d392f00a9278295050d59c53a776546dbf0124d",
"aarch64-unknown-linux-musl-0.10.2": "685e47f8f88b6845a9fc2ca27c3d246c0f53af8c017daf8e98ac0a97fe20365b",
"arm-unknown-linux-musleabihf-0.10.2": "1c51ebc67e8e492fa549167a96e40bb21a2c2ccde8a8b440f9c8bc0e07f3d4a8",
"armv7-unknown-linux-gnueabihf-0.10.2": "45243fed8f587f11002f175216894c9c75e2f402324627b7e0855e670557ec14",
"armv7-unknown-linux-musleabihf-0.10.2": "45b3d7eee7a3af2e4309b0bbe4886c6640b773f6500f0e0b662d84f4a5466f67",
"i686-pc-windows-msvc-0.10.2": "a828ee0a2f42d1384f79acd3edaf01956000e1ec5d18d9992d79e17d70d9aa6c",
"i686-unknown-linux-gnu-0.10.2": "7f64628a8a0869185eed24de4a02f4c8d19c99dec7363f383050ccb7474a76e9",
"i686-unknown-linux-musl-0.10.2": "8d1978ecfa37d2d71cbb0e2e75262e65c184d040130fe2dc331f25e044ed97b4",
"powerpc64le-unknown-linux-gnu-0.10.2": "9b7f8e3ced416276a9e6321369f69234552d9cbf39d68d96a67e85cee4cd611f",
"riscv64gc-unknown-linux-gnu-0.10.2": "1ad005a361293175170f3c193b50d5a5c7f1da631649236cd857721ce8c9cbde",
"s390x-unknown-linux-gnu-0.10.2": "d4832c85f3e8e17f7ae4ced90059dc2b6927939a47fea3e92e5712e7148b9c09",
"x86_64-apple-darwin-0.10.2": "3cdbd038333cfe861ce04f3d91678547bf2e726224acf5f42d3f0affa6740e19",
"x86_64-pc-windows-msvc-0.10.2": "493ebbe0e06128d6ee4905e1ed5e2a433fb0f7cfc08b0eaca9fab4ca76778ae1",
"x86_64-unknown-linux-gnu-0.10.2": "6aa4576c31f791c0b9d4739e256d07358d45e7535695287fec03cf6839e25512",
"x86_64-unknown-linux-musl-0.10.2": "c162182ba7dd692794362d76dd183990d6e51553217954106da19bdb6ced211b",
"aarch64-apple-darwin-0.10.1": "37c101cd8a745a43d69bc3832c41866ab721467a1d58881f57b73b705abc2851",
"aarch64-pc-windows-msvc-0.10.1": "9644d0e37c41c19aa65137a928bf6fad78dc887f820202c0cfcf010cceb416a0",
"aarch64-unknown-linux-gnu-0.10.1": "3731e98805ea6789188edec0dd97e673da195bf976a72db38f325f7c51cf5cdd",
"aarch64-unknown-linux-musl-0.10.1": "ae9ae536be5b4d1cf7a6560d52a20711f267e7b21e23ee6cc538a4afa236b757",
"arm-unknown-linux-musleabihf-0.10.1": "af7994b58553156fb4acdac40b3f7b1b43260a76de96ca7123bdf861351675d4",
"armv7-unknown-linux-gnueabihf-0.10.1": "4f8857a779df69e2aa9df8ff35b6c34ef3ce45c13d2d4a0ae3957b0e68d322cc",
"armv7-unknown-linux-musleabihf-0.10.1": "79d978b0e829cab83de4c78e80bd014f3210cf0a1a653d880d0aa6760baeaf80",
"i686-pc-windows-msvc-0.10.1": "c4e989d479f9fc229302345a64f272be3c249d5fff4a2e722aa3d73c381fb303",
"i686-unknown-linux-gnu-0.10.1": "0c4a17893df6e11991483277c5f0bee06d8ea60b6e11b349a9849bfe13a8c5cf",
"i686-unknown-linux-musl-0.10.1": "7219a96adde5316489886c0d74749b7248c2c4070170b8e153d9d3f8f9fdfa5e",
"powerpc64le-unknown-linux-gnu-0.10.1": "aa2ed9587a9ad5127662da9ceccaa747b941f37cbd9e6d9334c7c6c3286c9587",
"riscv64gc-unknown-linux-gnu-0.10.1": "bda96a9ff8be79f780ff4711a2515061fe80d6f135ba55a47c41e1c6739d048e",
"s390x-unknown-linux-gnu-0.10.1": "091eeeecfcdb15a954f2488be6b89d8709709003ada81d215d6ca88145826049",
"x86_64-apple-darwin-0.10.1": "f61f1122193698a53fc2d4cc6fb5a5849b283817509778ac8f1a7d2a36a218de",
"x86_64-pc-windows-msvc-0.10.1": "64c297ef1cd8e3a50966dee20cbe039564cd59e41186e0d1dd38fa4e627fc285",
"x86_64-unknown-linux-gnu-0.10.1": "8b5af2d678da1bdae80a5107c934f6ab010c6cdeb2de5b8e07568031d9486051",
"x86_64-unknown-linux-musl-0.10.1": "d1a3b08dd9abf9e500541cadd0e2f4b144c99b9265fb00e500c2b5c82a3b4ee8",
"aarch64-apple-darwin-0.10.0": "82d4b99dc6ea686695b5ee142ceba03dd3e3eda2b414e94215ab7bce94972fbb",
"aarch64-pc-windows-msvc-0.10.0": "614dd3c409d7fb5a98b516d532c98db9b7799a23fb450150e3784338a9ebd903",
"aarch64-unknown-linux-gnu-0.10.0": "c300afd5f2d31df039fe6a26a2d68a76b62832098c272a43e1e74ab9efd4fbd7",
"aarch64-unknown-linux-musl-0.10.0": "edf1adb1d183730302f87eef9b71bc4e47b4b8058832c3393b0fbcd86f270510",
"arm-unknown-linux-musleabihf-0.10.0": "fea6d45bce1e7172192b4a7d3feb9f37c4198c243be1c573c8dacae765a32c53",
"armv7-unknown-linux-gnueabihf-0.10.0": "3e8ab76a515884c29c773e01360acb6da61a1351c630377b54ba58918d9673af",
"armv7-unknown-linux-musleabihf-0.10.0": "85423cda078ed0313f993ddea6ac897e469885539ce156643ace982bbffb8109",
"i686-pc-windows-msvc-0.10.0": "b71bca0987dd12ea09ac6a0e52fdfa89f53601b6074be38366d0592b181f3001",
"i686-unknown-linux-gnu-0.10.0": "dbac897653b0d60fb863288587dbacb30140f9725a42718f2c017df7b2d2b3c3",
"i686-unknown-linux-musl-0.10.0": "56a211155275dd33731cbbb33aa915d3e7efa59d4436502edaca39ba436c157a",
"powerpc64le-unknown-linux-gnu-0.10.0": "677a414608c61e2ecd751364dae9209cc5b76019481968b99b5d5ad7258d2d77",
"riscv64gc-unknown-linux-gnu-0.10.0": "9da4019ecfd3440a5d0a0a957d8d5e4c6534ac1e3a10636d55266a22ab4135f8",
"s390x-unknown-linux-gnu-0.10.0": "a1b9aa45c1a6b69066179e8d7e3f6e122e0f433ef2ad4e91c0acd1433a083c31",
"x86_64-apple-darwin-0.10.0": "664aed584c276f8d79cdc3b7685cd48f5d64657bd6840b06b4b2b0db731b9c99",
"x86_64-pc-windows-msvc-0.10.0": "4037b444541f695cd2eb93188a9346de3e334af562381411deade0a31c7bf898",
"x86_64-unknown-linux-gnu-0.10.0": "230e328948c92dd1ebad83949c4d56e83813dfe9c6362a4c519e6a227973f1ae",
"x86_64-unknown-linux-musl-0.10.0": "312d37f31b6f2c3bfc65668ba0efea9f1f9eaf7bc3209fe1a109e5cf861b95fa",
"aarch64-apple-darwin-0.9.30": "03a5d9ec7f7d588446b2ec226d13ff6300055e55365eca8f3fab39f342b0e805",
"aarch64-pc-windows-msvc-0.9.30": "cfbc40baf1da11c55eff92ee008f5af3cdbb4c24c40ddb0bbd489b983fadf43f",
"aarch64-unknown-linux-gnu-0.9.30": "6aadf3c71600d594e16dabf382cc15282ead4c5ca768599b6bcb43c5004d9aa8",
"aarch64-unknown-linux-musl-0.9.30": "b658b56957bceea742ca14f3ef28fb3542adbcedfb8bd5bd718ae255394ccd09",
"arm-unknown-linux-musleabihf-0.9.30": "5a7f4cd306363b734dba2d86eb760812cb1211254d36ace01860f9e783df1900",
"armv7-unknown-linux-gnueabihf-0.9.30": "bf8d9c2f1b4d0eee9bfb689b5483b1bd4b0b76acbeaaa4d0d68b132574c606ff",
"armv7-unknown-linux-musleabihf-0.9.30": "8715a9da643d9e6cb984c2d3e00480849f93f11251d1474cd382cc9d7faeab84",
"i686-pc-windows-msvc-0.9.30": "218b7ec0d052836d7ee395d5e0592e5dac7578fd618f439a5d09c1ad36466399",
"i686-unknown-linux-gnu-0.9.30": "1bab147179887ebcb5c31e016e9ac9987f687e79f92fd2f0ff9bcedf927b8228",
"i686-unknown-linux-musl-0.9.30": "14d8b2e2caa0b470418e551e027f3a8283aa8d09eae79206e7dbcd23a8ffa027",
"powerpc64-unknown-linux-gnu-0.9.30": "ac4cd1a021462885932f6023b005a4835cca4c72bb60dec186ee2be4b60dca6f",
"powerpc64le-unknown-linux-gnu-0.9.30": "73b8cbc560c6b2fa205358365d4e174abdf50cfcf57dc36a447572c56eba5ae4",
"riscv64gc-unknown-linux-gnu-0.9.30": "5e0453d9252aab874a3658a039d4ffdde79dba4096974fcdc945498697dc81cf",
"s390x-unknown-linux-gnu-0.9.30": "b35975bb9e5c2c418b428d0316cc6e3c7a6eff710c69212be14005c192f54516",
"x86_64-apple-darwin-0.9.30": "ce069bf750567e9a4a31d6e285d1eae75d444d8a281409b641235903943b7681",
"x86_64-pc-windows-msvc-0.9.30": "875981be7908295937dee09532bb66d576986d4f223259e171b0c767c885897a",
"x86_64-unknown-linux-gnu-0.9.30": "8b3762374972daa7a74bbc6896cc73229ca69a07403dd9f9ea3805a51ffd7582",
"x86_64-unknown-linux-musl-0.9.30": "1caf8fe092e2005dd4c134ba515c1aa3eea3d3c143f8a1903bcb58fcdf169365",
"aarch64-apple-darwin-0.9.29": "0729ddd5c02df33669b03627aa5d9ac7cde4421657f808d54585e3cda944bb55",
"aarch64-pc-windows-msvc-0.9.29": "39f7dce0d2993cd18d67980c012945ea678a99aef199f7afcea522b5bd70ecf7",
"aarch64-unknown-linux-gnu-0.9.29": "935b35542b7e25493a551dcb3487af23b72ad284ee8ac6a488a97d02ce2d84ec",
"aarch64-unknown-linux-musl-0.9.29": "b1edc94f5d6c36bb28a20f8c8afb400e55a428fcf396b03bf78cb7394f75077c",
"arm-unknown-linux-musleabihf-0.9.29": "c72ae74c04668d4cf3143fb11ad5bbd1c9e9a80aaa439cb3e43208c127249202",
"armv7-unknown-linux-gnueabihf-0.9.29": "e263645c9ab44e3f7e732b0317da775082f077bb86933be662395eeab97fb3d2",
"armv7-unknown-linux-musleabihf-0.9.29": "98ab47dcb345d746b230a359d72a96444b1be21cf24026c653d5c7848c680beb",
"i686-pc-windows-msvc-0.9.29": "049a929882a3f4a2d054c9dc44848d2c24175079696e131a57d60d9ab62df81a",
"i686-unknown-linux-gnu-0.9.29": "9415828fc2fdacadb56263382a27da6661a89a4bb3a6683d6d864d5c013b7c6a",
"i686-unknown-linux-musl-0.9.29": "3ac91c9cccc85c07c0950afc4f45b3e14f2a3e9484f4940366ebab72e71fa8dc",
"powerpc64-unknown-linux-gnu-0.9.29": "7feb1fb35fe66b4f83d3bc7776810f708c6609c9be48ceed6ec024b15733101d",
"powerpc64le-unknown-linux-gnu-0.9.29": "1f4e1f859868abcf3557afe78b8b7525a938921af745945deef737927a017d82",
"riscv64gc-unknown-linux-gnu-0.9.29": "18dc2d3b513c4bfe0fc4b3a67a80f62ce32077f84db343a1f0eb8003ab276732",
"s390x-unknown-linux-gnu-0.9.29": "10e6d5dcd72bf99daee6678f6b508d1056e9f1670f6d76c1cfdf02b7560bcb4a",
"x86_64-apple-darwin-0.9.29": "d251e48db2a962272a2efeb2771c82c02e40f473193a255e8e5c05eb61112139",
"x86_64-pc-windows-msvc-0.9.29": "9825b1a5955d8a432b664e56660641aac8886ed30cd9c59a94aacc68ae9116ce",
"x86_64-unknown-linux-gnu-0.9.29": "1ce5212f8f42dc7427a1bd3db4168d6d1abcf81b38d8c82a5b9d0ddc54ceebfc",
"x86_64-unknown-linux-musl-0.9.29": "44c93c73e8870e003bda17ab50d433e27d201d0cb28d2bb75351ef1497ffa9db",
"aarch64-apple-darwin-0.9.28": "12163fe09eb292d3ad1ea0f132a84485c902e2ff360d57562bf676e6615fcba0",
"aarch64-pc-windows-msvc-0.9.28": "081703fa19ae05a49f486f97468f7792e1cdacda403a091b151af7f5bd6f4595",
"aarch64-unknown-linux-gnu-0.9.28": "382c342735ff29f8ba4574d88e39bca798bcbac50bff6742710ca9cd8143e7d2",
"aarch64-unknown-linux-musl-0.9.28": "eec3249254efac972d2555ff858f8ed20f05b40fbb38ac83b15cf0a2ccc86749",
"arm-unknown-linux-musleabihf-0.9.28": "d0df2a9e7db464a567038bd560dc5007e488542c073989334a4a293b8957e1e1",
"armv7-unknown-linux-gnueabihf-0.9.28": "6ddf1979609a3f5bdf897965ed6984dacce860ce57c579596bdc4b514c19320b",
"armv7-unknown-linux-musleabihf-0.9.28": "e391ba4cc05a3a1096f1ab6cd82fcbed059d048a6ba108b4cb18da311a07c4d5",
"i686-pc-windows-msvc-0.9.28": "fb5015efd0db178268312a7a7dcde7b0d3b7d7e0eccd0372a4b6f1dcfc075472",
"i686-unknown-linux-gnu-0.9.28": "c0d34d92cb11925530fbc313de7536da3e1d097a442f54668417d241697fb3a2",
"i686-unknown-linux-musl-0.9.28": "be1ad4f30d97c95af5105405fc38329d66375cde3de18cd0f9fe73b4581155c7",
"powerpc64-unknown-linux-gnu-0.9.28": "6f23bfca0febb001792e7124d0c2ba41ddcfe01d6c030f4a8668ed634a5a582b",
"powerpc64le-unknown-linux-gnu-0.9.28": "894ac114f076cffbf041e55e1ad0df759f7bc9dba1291158690781baad38001e",
"riscv64gc-unknown-linux-gnu-0.9.28": "e61fa014a0b77acd17f9f366a55cbc0e67b377c4eff13629021a4242cc71eabb",
"s390x-unknown-linux-gnu-0.9.28": "af15dc54893b2caecc3604ac68104914b155a8bbf821f667996549e777919a90",
"x86_64-apple-darwin-0.9.28": "3a8030881d13b824e5168f5e4d060e715e40753249766bda3d52d6771d93b169",
"x86_64-pc-windows-msvc-0.9.28": "9cb567fcd92f31431220ce620787043b946c30b9bb46ca213780e5ef471453be",
"x86_64-unknown-linux-gnu-0.9.28": "66ad1822dd9cf96694b95c24f25bc05cff417a65351464da01682a91796d1f2b",
"x86_64-unknown-linux-musl-0.9.28": "83cd032167b6b97ac94830608efe11159b3d485654e39fdb0bf84718ef236afe",
"aarch64-apple-darwin-0.9.27": "1359538ed8664d172692cf4719ee0933a4a3bfb22fc91b0be1e19e7bdd8f5ef3",
"aarch64-pc-windows-msvc-0.9.27": "b448ab228f5d1165b8497e8ca10346af6f652eb8ad4e75e47fa55e8cdb5b60d7",
"aarch64-unknown-linux-gnu-0.9.27": "a58b3b77a25620ae15ff3587049b755c7cbf3eaa7df187620b3e6c3dbf71daa0",
"aarch64-unknown-linux-musl-0.9.27": "f80e97e1154a06e42143a173831289336ca9e34a67096ab070346958153e8e52",
"arm-unknown-linux-musleabihf-0.9.27": "b80f4db9254b9ddec4b576190bdf15723e948f37f648d9b273be2e153d05f820",
"armv7-unknown-linux-gnueabihf-0.9.27": "03b45c99ca940739c2a093f6a514da3dd858b3bc1e8c957c16c1832e30b30c28",
"armv7-unknown-linux-musleabihf-0.9.27": "da43ee6e2f17b4646e35e2d55ce6a021fdf47c06601a6ae8b827de7bb7b3b02f",
"i686-pc-windows-msvc-0.9.27": "f47831a97b8a1bc7c7211905c1e517cc2f4ef84df877f2a283c49609275db0fa",
"i686-unknown-linux-gnu-0.9.27": "fdf3067e0c05d39b849ad48fbbc2b58919f70a686a40506c643d32688ceba1a9",
"i686-unknown-linux-musl-0.9.27": "3c1f8c2b148ebf884311558aaff32b9fb5b68fe4f4242e3e3765381bb594386a",
"powerpc64-unknown-linux-gnu-0.9.27": "c3cbda5118b06f2261d32f4802adfdc71f618f808df0c6a3184695a6ffecb88a",
"powerpc64le-unknown-linux-gnu-0.9.27": "9011f6085cee3921c9fce82ce03041ca97aacc8cab86b7a5791faa71fa5f2712",
"riscv64gc-unknown-linux-gnu-0.9.27": "7193628620c2c50c2d6632ea8e53a4ab5313f7e8003ddedd9e999f48b6d2c222",
"s390x-unknown-linux-gnu-0.9.27": "5b055f02f2c8e5086ae1d05cf70d32d66982d27d8469ed896a65067fac2001d2",
"x86_64-apple-darwin-0.9.27": "3977309c5c79984c13c55d2d1cd7aa114a718eb29436c5bdb4bdfa08bf243438",
"x86_64-pc-windows-msvc-0.9.27": "c3bf465d5f2b93c836f369aec9f3fa8350843f24abd5f710bb74e72440b82898",
"x86_64-unknown-linux-gnu-0.9.27": "8636e693ea0e05f5f4294b161f816c4d8df065267fdb0405cfb84c8e326991fa",
"x86_64-unknown-linux-musl-0.9.27": "9f269bfb9c2e80808c373902af6a4af6cd5f4b4668b28c44aa09639cfed925c5",
"aarch64-apple-darwin-0.9.26": "fcf0a9ea6599c6ae28a4c854ac6da76f2c889354d7c36ce136ef071f7ab9721f", "aarch64-apple-darwin-0.9.26": "fcf0a9ea6599c6ae28a4c854ac6da76f2c889354d7c36ce136ef071f7ab9721f",
"aarch64-pc-windows-msvc-0.9.26": "79e1398ec98681b1b0494ed3485b0f4565e98a7db109a3f205d0fcdc6a1992f7", "aarch64-pc-windows-msvc-0.9.26": "79e1398ec98681b1b0494ed3485b0f4565e98a7db109a3f205d0fcdc6a1992f7",
"aarch64-unknown-linux-gnu-0.9.26": "f71040c59798f79c44c08a7a1c1af7de95a8d334ea924b47b67ad6b9632be270", "aarch64-unknown-linux-gnu-0.9.26": "f71040c59798f79c44c08a7a1c1af7de95a8d334ea924b47b67ad6b9632be270",
@@ -32724,8 +32482,10 @@ var __importStar = (this && this.__importStar) || (function () {
}; };
})(); })();
Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.REMOTE_MANIFEST_URL = void 0;
exports.getLatestKnownVersion = getLatestKnownVersion; exports.getLatestKnownVersion = getLatestKnownVersion;
exports.getDownloadUrl = getDownloadUrl; exports.getDownloadUrl = getDownloadUrl;
exports.getAvailableVersionsFromManifest = getAvailableVersionsFromManifest;
exports.updateVersionManifest = updateVersionManifest; exports.updateVersionManifest = updateVersionManifest;
const node_fs_1 = __nccwpck_require__(3024); const node_fs_1 = __nccwpck_require__(3024);
const node_path_1 = __nccwpck_require__(6760); const node_path_1 = __nccwpck_require__(6760);
@@ -32733,6 +32493,9 @@ const core = __importStar(__nccwpck_require__(7484));
const semver = __importStar(__nccwpck_require__(9318)); const semver = __importStar(__nccwpck_require__(9318));
const fetch_1 = __nccwpck_require__(3385); const fetch_1 = __nccwpck_require__(3385);
const localManifestFile = (0, node_path_1.join)(__dirname, "..", "..", "version-manifest.json"); const localManifestFile = (0, node_path_1.join)(__dirname, "..", "..", "version-manifest.json");
exports.REMOTE_MANIFEST_URL = "https://raw.githubusercontent.com/astral-sh/setup-uv/main/version-manifest.json";
// Cache for manifest entries to avoid re-fetching
const manifestCache = new Map();
async function getLatestKnownVersion(manifestUrl) { async function getLatestKnownVersion(manifestUrl) {
const manifestEntries = await getManifestEntries(manifestUrl); const manifestEntries = await getManifestEntries(manifestUrl);
return manifestEntries.reduce((a, b) => semver.gt(a.version, b.version) ? a : b).version; return manifestEntries.reduce((a, b) => semver.gt(a.version, b.version) ? a : b).version;
@@ -32744,7 +32507,18 @@ async function getDownloadUrl(manifestUrl, version, arch, platform) {
entry.platform === platform); entry.platform === platform);
return entry ? entry.downloadUrl : undefined; return entry ? entry.downloadUrl : undefined;
} }
async function getAvailableVersionsFromManifest(manifestUrl) {
const manifestEntries = await getManifestEntries(manifestUrl);
return [...new Set(manifestEntries.map((entry) => entry.version))];
}
async function getManifestEntries(manifestUrl) { async function getManifestEntries(manifestUrl) {
const cacheKey = manifestUrl ?? "local";
// Return cached entries if available
const cached = manifestCache.get(cacheKey);
if (cached !== undefined) {
core.debug(`Using cached manifest entries for: ${cacheKey}`);
return cached;
}
let data; let data;
if (manifestUrl !== undefined) { if (manifestUrl !== undefined) {
core.info(`Fetching manifest-file from: ${manifestUrl}`); core.info(`Fetching manifest-file from: ${manifestUrl}`);
@@ -32759,7 +32533,9 @@ async function getManifestEntries(manifestUrl) {
const fileContent = await node_fs_1.promises.readFile(localManifestFile); const fileContent = await node_fs_1.promises.readFile(localManifestFile);
data = fileContent.toString(); data = fileContent.toString();
} }
return JSON.parse(data); const entries = JSON.parse(data);
manifestCache.set(cacheKey, entries);
return entries;
} }
async function updateVersionManifest(manifestUrl, downloadUrls) { async function updateVersionManifest(manifestUrl, downloadUrls) {
const manifest = []; const manifest = [];

View File

@@ -199,10 +199,6 @@ By default, the Python install dir (`uv python dir` / `UV_PYTHON_INSTALL_DIR`) i
for the same reason that the dependency cache is pruned. for the same reason that the dependency cache is pruned.
If you want to cache Python installs along with your dependencies, set the `cache-python` input to `true`. If you want to cache Python installs along with your dependencies, set the `cache-python` input to `true`.
Note that this only caches Python versions that uv actually installs into `UV_PYTHON_INSTALL_DIR`
(i.e. managed Python installs). If uv uses a system Python, there may be nothing to cache.
To force managed Python installs, set `UV_PYTHON_PREFERENCE=only-managed`.
```yaml ```yaml
- name: Cache Python installs - name: Cache Python installs
uses: astral-sh/setup-uv@v7 uses: astral-sh/setup-uv@v7

View File

@@ -15,17 +15,6 @@ This allows directly using it in later steps:
- run: uv pip install pip - run: uv pip install pip
``` ```
By default, the venv is created at `.venv` inside the `working-directory`.
You can customize the venv location with `venv-path`, for example to place it in the runner temp directory:
```yaml
- uses: astral-sh/setup-uv@v7
with:
activate-environment: true
venv-path: ${{ runner.temp }}/custom-venv
```
> [!WARNING] > [!WARNING]
> >
> Activating the environment adds your dependencies to the `PATH`, which could break some workflows. > Activating the environment adds your dependencies to the `PATH`, which could break some workflows.

168
package-lock.json generated
View File

@@ -19,11 +19,11 @@
"@octokit/plugin-paginate-rest": "^14.0.0", "@octokit/plugin-paginate-rest": "^14.0.0",
"@octokit/plugin-rest-endpoint-methods": "^17.0.0", "@octokit/plugin-rest-endpoint-methods": "^17.0.0",
"@renovatebot/pep440": "^4.2.1", "@renovatebot/pep440": "^4.2.1",
"smol-toml": "^1.6.0", "smol-toml": "^1.4.2",
"undici": "5.28.5" "undici": "5.28.5"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "2.3.8", "@biomejs/biome": "2.3.7",
"@types/js-yaml": "^4.0.9", "@types/js-yaml": "^4.0.9",
"@types/node": "^24.10.1", "@types/node": "^24.10.1",
"@types/semver": "^7.7.1", "@types/semver": "^7.7.1",
@@ -412,6 +412,7 @@
"integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@ampproject/remapping": "^2.2.0", "@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.27.1", "@babel/code-frame": "^7.27.1",
@@ -889,9 +890,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@biomejs/biome": { "node_modules/@biomejs/biome": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.3.7.tgz",
"integrity": "sha512-Qjsgoe6FEBxWAUzwFGFrB+1+M8y/y5kwmg5CHac+GSVOdmOIqsAiXM5QMVGZJ1eCUCLlPZtq4aFAQ0eawEUuUA==", "integrity": "sha512-CTbAS/jNAiUc6rcq94BrTB8z83O9+BsgWj2sBCQg9rD6Wkh2gjfR87usjx0Ncx0zGXP1NKgT7JNglay5Zfs9jw==",
"dev": true, "dev": true,
"license": "MIT OR Apache-2.0", "license": "MIT OR Apache-2.0",
"bin": { "bin": {
@@ -905,20 +906,20 @@
"url": "https://opencollective.com/biome" "url": "https://opencollective.com/biome"
}, },
"optionalDependencies": { "optionalDependencies": {
"@biomejs/cli-darwin-arm64": "2.3.8", "@biomejs/cli-darwin-arm64": "2.3.7",
"@biomejs/cli-darwin-x64": "2.3.8", "@biomejs/cli-darwin-x64": "2.3.7",
"@biomejs/cli-linux-arm64": "2.3.8", "@biomejs/cli-linux-arm64": "2.3.7",
"@biomejs/cli-linux-arm64-musl": "2.3.8", "@biomejs/cli-linux-arm64-musl": "2.3.7",
"@biomejs/cli-linux-x64": "2.3.8", "@biomejs/cli-linux-x64": "2.3.7",
"@biomejs/cli-linux-x64-musl": "2.3.8", "@biomejs/cli-linux-x64-musl": "2.3.7",
"@biomejs/cli-win32-arm64": "2.3.8", "@biomejs/cli-win32-arm64": "2.3.7",
"@biomejs/cli-win32-x64": "2.3.8" "@biomejs/cli-win32-x64": "2.3.7"
} }
}, },
"node_modules/@biomejs/cli-darwin-arm64": { "node_modules/@biomejs/cli-darwin-arm64": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.7.tgz",
"integrity": "sha512-HM4Zg9CGQ3txTPflxD19n8MFPrmUAjaC7PQdLkugeeC0cQ+PiVrd7i09gaBS/11QKsTDBJhVg85CEIK9f50Qww==", "integrity": "sha512-LirkamEwzIUULhXcf2D5b+NatXKeqhOwilM+5eRkbrnr6daKz9rsBL0kNZ16Hcy4b8RFq22SG4tcLwM+yx/wFA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -933,9 +934,9 @@
} }
}, },
"node_modules/@biomejs/cli-darwin-x64": { "node_modules/@biomejs/cli-darwin-x64": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.7.tgz",
"integrity": "sha512-lUDQ03D7y/qEao7RgdjWVGCu+BLYadhKTm40HkpJIi6kn8LSv5PAwRlew/DmwP4YZ9ke9XXoTIQDO1vAnbRZlA==", "integrity": "sha512-Q4TO633kvrMQkKIV7wmf8HXwF0dhdTD9S458LGE24TYgBjSRbuhvio4D5eOQzirEYg6eqxfs53ga/rbdd8nBKg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -950,9 +951,9 @@
} }
}, },
"node_modules/@biomejs/cli-linux-arm64": { "node_modules/@biomejs/cli-linux-arm64": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.7.tgz",
"integrity": "sha512-Uo1OJnIkJgSgF+USx970fsM/drtPcQ39I+JO+Fjsaa9ZdCN1oysQmy6oAGbyESlouz+rzEckLTF6DS7cWse95g==", "integrity": "sha512-inHOTdlstUBzgjDcx0ge71U4SVTbwAljmkfi3MC5WzsYCRhancqfeL+sa4Ke6v2ND53WIwCFD5hGsYExoI3EZQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -967,9 +968,9 @@
} }
}, },
"node_modules/@biomejs/cli-linux-arm64-musl": { "node_modules/@biomejs/cli-linux-arm64-musl": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.7.tgz",
"integrity": "sha512-PShR4mM0sjksUMyxbyPNMxoKFPVF48fU8Qe8Sfx6w6F42verbwRLbz+QiKNiDPRJwUoMG1nPM50OBL3aOnTevA==", "integrity": "sha512-/afy8lto4CB8scWfMdt+NoCZtatBUF62Tk3ilWH2w8ENd5spLhM77zKlFZEvsKJv9AFNHknMl03zO67CiklL2Q==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -984,9 +985,9 @@
} }
}, },
"node_modules/@biomejs/cli-linux-x64": { "node_modules/@biomejs/cli-linux-x64": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.7.tgz",
"integrity": "sha512-QDPMD5bQz6qOVb3kiBui0zKZXASLo0NIQ9JVJio5RveBEFgDgsvJFUvZIbMbUZT3T00M/1wdzwWXk4GIh0KaAw==", "integrity": "sha512-fJMc3ZEuo/NaMYo5rvoWjdSS5/uVSW+HPRQujucpZqm2ZCq71b8MKJ9U4th9yrv2L5+5NjPF0nqqILCl8HY/fg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1001,9 +1002,9 @@
} }
}, },
"node_modules/@biomejs/cli-linux-x64-musl": { "node_modules/@biomejs/cli-linux-x64-musl": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.7.tgz",
"integrity": "sha512-YGLkqU91r1276uwSjiUD/xaVikdxgV1QpsicT0bIA1TaieM6E5ibMZeSyjQ/izBn4tKQthUSsVZacmoJfa3pDA==", "integrity": "sha512-CQUtgH1tIN6e5wiYSJqzSwJumHYolNtaj1dwZGCnZXm2PZU1jOJof9TsyiP3bXNDb+VOR7oo7ZvY01If0W3iFQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1018,9 +1019,9 @@
} }
}, },
"node_modules/@biomejs/cli-win32-arm64": { "node_modules/@biomejs/cli-win32-arm64": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.7.tgz",
"integrity": "sha512-H4IoCHvL1fXKDrTALeTKMiE7GGWFAraDwBYFquE/L/5r1927Te0mYIGseXi4F+lrrwhSWbSGt5qPFswNoBaCxg==", "integrity": "sha512-aJAE8eCNyRpcfx2JJAtsPtISnELJ0H4xVVSwnxm13bzI8RwbXMyVtxy2r5DV1xT3WiSP+7LxORcApWw0LM8HiA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1035,9 +1036,9 @@
} }
}, },
"node_modules/@biomejs/cli-win32-x64": { "node_modules/@biomejs/cli-win32-x64": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.7.tgz",
"integrity": "sha512-RguzimPoZWtBapfKhKjcWXBVI91tiSprqdBYu7tWhgN8pKRZhw24rFeNZTNf6UiBfjCYCi9eFQs/JzJZIhuK4w==", "integrity": "sha512-pulzUshqv9Ed//MiE8MOUeeEkbkSHVDVY5Cz5wVAnH1DUqliCQG3j6s1POaITTFqFfo7AVIx2sWdKpx/GS+Nqw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1603,6 +1604,7 @@
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.6.tgz", "resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.6.tgz",
"integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==", "integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@octokit/auth-token": "^6.0.0", "@octokit/auth-token": "^6.0.0",
"@octokit/graphql": "^9.0.3", "@octokit/graphql": "^9.0.3",
@@ -2500,6 +2502,7 @@
} }
], ],
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"caniuse-lite": "^1.0.30001733", "caniuse-lite": "^1.0.30001733",
"electron-to-chromium": "^1.5.199", "electron-to-chromium": "^1.5.199",
@@ -3627,6 +3630,7 @@
"integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==", "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@jest/core": "30.2.0", "@jest/core": "30.2.0",
"@jest/types": "30.2.0", "@jest/types": "30.2.0",
@@ -4903,9 +4907,9 @@
} }
}, },
"node_modules/smol-toml": { "node_modules/smol-toml": {
"version": "1.6.0", "version": "1.4.2",
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.0.tgz", "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.4.2.tgz",
"integrity": "sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==", "integrity": "sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==",
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"engines": { "engines": {
"node": ">= 18" "node": ">= 18"
@@ -5325,6 +5329,7 @@
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"peer": true,
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
"tsserver": "bin/tsserver" "tsserver": "bin/tsserver"
@@ -6067,6 +6072,7 @@
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz",
"integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==",
"dev": true, "dev": true,
"peer": true,
"requires": { "requires": {
"@ampproject/remapping": "^2.2.0", "@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.27.1", "@babel/code-frame": "^7.27.1",
@@ -6389,74 +6395,74 @@
"dev": true "dev": true
}, },
"@biomejs/biome": { "@biomejs/biome": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.3.7.tgz",
"integrity": "sha512-Qjsgoe6FEBxWAUzwFGFrB+1+M8y/y5kwmg5CHac+GSVOdmOIqsAiXM5QMVGZJ1eCUCLlPZtq4aFAQ0eawEUuUA==", "integrity": "sha512-CTbAS/jNAiUc6rcq94BrTB8z83O9+BsgWj2sBCQg9rD6Wkh2gjfR87usjx0Ncx0zGXP1NKgT7JNglay5Zfs9jw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@biomejs/cli-darwin-arm64": "2.3.8", "@biomejs/cli-darwin-arm64": "2.3.7",
"@biomejs/cli-darwin-x64": "2.3.8", "@biomejs/cli-darwin-x64": "2.3.7",
"@biomejs/cli-linux-arm64": "2.3.8", "@biomejs/cli-linux-arm64": "2.3.7",
"@biomejs/cli-linux-arm64-musl": "2.3.8", "@biomejs/cli-linux-arm64-musl": "2.3.7",
"@biomejs/cli-linux-x64": "2.3.8", "@biomejs/cli-linux-x64": "2.3.7",
"@biomejs/cli-linux-x64-musl": "2.3.8", "@biomejs/cli-linux-x64-musl": "2.3.7",
"@biomejs/cli-win32-arm64": "2.3.8", "@biomejs/cli-win32-arm64": "2.3.7",
"@biomejs/cli-win32-x64": "2.3.8" "@biomejs/cli-win32-x64": "2.3.7"
} }
}, },
"@biomejs/cli-darwin-arm64": { "@biomejs/cli-darwin-arm64": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.7.tgz",
"integrity": "sha512-HM4Zg9CGQ3txTPflxD19n8MFPrmUAjaC7PQdLkugeeC0cQ+PiVrd7i09gaBS/11QKsTDBJhVg85CEIK9f50Qww==", "integrity": "sha512-LirkamEwzIUULhXcf2D5b+NatXKeqhOwilM+5eRkbrnr6daKz9rsBL0kNZ16Hcy4b8RFq22SG4tcLwM+yx/wFA==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"@biomejs/cli-darwin-x64": { "@biomejs/cli-darwin-x64": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.7.tgz",
"integrity": "sha512-lUDQ03D7y/qEao7RgdjWVGCu+BLYadhKTm40HkpJIi6kn8LSv5PAwRlew/DmwP4YZ9ke9XXoTIQDO1vAnbRZlA==", "integrity": "sha512-Q4TO633kvrMQkKIV7wmf8HXwF0dhdTD9S458LGE24TYgBjSRbuhvio4D5eOQzirEYg6eqxfs53ga/rbdd8nBKg==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"@biomejs/cli-linux-arm64": { "@biomejs/cli-linux-arm64": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.7.tgz",
"integrity": "sha512-Uo1OJnIkJgSgF+USx970fsM/drtPcQ39I+JO+Fjsaa9ZdCN1oysQmy6oAGbyESlouz+rzEckLTF6DS7cWse95g==", "integrity": "sha512-inHOTdlstUBzgjDcx0ge71U4SVTbwAljmkfi3MC5WzsYCRhancqfeL+sa4Ke6v2ND53WIwCFD5hGsYExoI3EZQ==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"@biomejs/cli-linux-arm64-musl": { "@biomejs/cli-linux-arm64-musl": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.7.tgz",
"integrity": "sha512-PShR4mM0sjksUMyxbyPNMxoKFPVF48fU8Qe8Sfx6w6F42verbwRLbz+QiKNiDPRJwUoMG1nPM50OBL3aOnTevA==", "integrity": "sha512-/afy8lto4CB8scWfMdt+NoCZtatBUF62Tk3ilWH2w8ENd5spLhM77zKlFZEvsKJv9AFNHknMl03zO67CiklL2Q==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"@biomejs/cli-linux-x64": { "@biomejs/cli-linux-x64": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.7.tgz",
"integrity": "sha512-QDPMD5bQz6qOVb3kiBui0zKZXASLo0NIQ9JVJio5RveBEFgDgsvJFUvZIbMbUZT3T00M/1wdzwWXk4GIh0KaAw==", "integrity": "sha512-fJMc3ZEuo/NaMYo5rvoWjdSS5/uVSW+HPRQujucpZqm2ZCq71b8MKJ9U4th9yrv2L5+5NjPF0nqqILCl8HY/fg==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"@biomejs/cli-linux-x64-musl": { "@biomejs/cli-linux-x64-musl": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.7.tgz",
"integrity": "sha512-YGLkqU91r1276uwSjiUD/xaVikdxgV1QpsicT0bIA1TaieM6E5ibMZeSyjQ/izBn4tKQthUSsVZacmoJfa3pDA==", "integrity": "sha512-CQUtgH1tIN6e5wiYSJqzSwJumHYolNtaj1dwZGCnZXm2PZU1jOJof9TsyiP3bXNDb+VOR7oo7ZvY01If0W3iFQ==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"@biomejs/cli-win32-arm64": { "@biomejs/cli-win32-arm64": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.7.tgz",
"integrity": "sha512-H4IoCHvL1fXKDrTALeTKMiE7GGWFAraDwBYFquE/L/5r1927Te0mYIGseXi4F+lrrwhSWbSGt5qPFswNoBaCxg==", "integrity": "sha512-aJAE8eCNyRpcfx2JJAtsPtISnELJ0H4xVVSwnxm13bzI8RwbXMyVtxy2r5DV1xT3WiSP+7LxORcApWw0LM8HiA==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"@biomejs/cli-win32-x64": { "@biomejs/cli-win32-x64": {
"version": "2.3.8", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.8.tgz", "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.7.tgz",
"integrity": "sha512-RguzimPoZWtBapfKhKjcWXBVI91tiSprqdBYu7tWhgN8pKRZhw24rFeNZTNf6UiBfjCYCi9eFQs/JzJZIhuK4w==", "integrity": "sha512-pulzUshqv9Ed//MiE8MOUeeEkbkSHVDVY5Cz5wVAnH1DUqliCQG3j6s1POaITTFqFfo7AVIx2sWdKpx/GS+Nqw==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
@@ -6890,6 +6896,7 @@
"version": "7.0.6", "version": "7.0.6",
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.6.tgz", "resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.6.tgz",
"integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==", "integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==",
"peer": true,
"requires": { "requires": {
"@octokit/auth-token": "^6.0.0", "@octokit/auth-token": "^6.0.0",
"@octokit/graphql": "^9.0.3", "@octokit/graphql": "^9.0.3",
@@ -7496,6 +7503,7 @@
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.2.tgz", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.2.tgz",
"integrity": "sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==", "integrity": "sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==",
"dev": true, "dev": true,
"peer": true,
"requires": { "requires": {
"caniuse-lite": "^1.0.30001733", "caniuse-lite": "^1.0.30001733",
"electron-to-chromium": "^1.5.199", "electron-to-chromium": "^1.5.199",
@@ -8242,6 +8250,7 @@
"resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz", "resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz",
"integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==", "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==",
"dev": true, "dev": true,
"peer": true,
"requires": { "requires": {
"@jest/core": "30.2.0", "@jest/core": "30.2.0",
"@jest/types": "30.2.0", "@jest/types": "30.2.0",
@@ -9122,9 +9131,9 @@
"dev": true "dev": true
}, },
"smol-toml": { "smol-toml": {
"version": "1.6.0", "version": "1.4.2",
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.0.tgz", "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.4.2.tgz",
"integrity": "sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==" "integrity": "sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g=="
}, },
"source-map": { "source-map": {
"version": "0.6.1", "version": "0.6.1",
@@ -9389,7 +9398,8 @@
"version": "5.9.3", "version": "5.9.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true "dev": true,
"peer": true
}, },
"uglify-js": { "uglify-js": {
"version": "3.19.3", "version": "3.19.3",

View File

@@ -36,11 +36,11 @@
"@octokit/plugin-paginate-rest": "^14.0.0", "@octokit/plugin-paginate-rest": "^14.0.0",
"@octokit/plugin-rest-endpoint-methods": "^17.0.0", "@octokit/plugin-rest-endpoint-methods": "^17.0.0",
"@renovatebot/pep440": "^4.2.1", "@renovatebot/pep440": "^4.2.1",
"smol-toml": "^1.6.0", "smol-toml": "^1.4.2",
"undici": "5.28.5" "undici": "5.28.5"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "2.3.8", "@biomejs/biome": "2.3.7",
"@types/js-yaml": "^4.0.9", "@types/js-yaml": "^4.0.9",
"@types/node": "^24.10.1", "@types/node": "^24.10.1",
"@types/semver": "^7.7.1", "@types/semver": "^7.7.1",

View File

@@ -1,489 +1,5 @@
// AUTOGENERATED_DO_NOT_EDIT // AUTOGENERATED_DO_NOT_EDIT
export const KNOWN_CHECKSUMS: { [key: string]: string } = { export const KNOWN_CHECKSUMS: { [key: string]: string } = {
"aarch64-apple-darwin-0.10.9":
"a92f61e9ac9b0f29668c15f56152e4a60143fca148ff5bfadb86718472c3f376",
"aarch64-pc-windows-msvc-0.10.9":
"5c2526844acf978eab784161c21604343141aa6c9ed22c237ae2f315648f049d",
"aarch64-unknown-linux-gnu-0.10.9":
"cc0c5a8573e7d6d78aecb954e0a62b5c0d18217bb81f1e19363b428c57a9962a",
"aarch64-unknown-linux-musl-0.10.9":
"05b0d3087e913ebe11756365a90dd47c05d6728752fdbe129ad4c3ccd769826d",
"arm-unknown-linux-musleabihf-0.10.9":
"6220fa3eb5f8212cae4ec3a5053060914aaa829549cf706dde9f9cc344f75f61",
"armv7-unknown-linux-gnueabihf-0.10.9":
"0076eac165c2f7129627e2297478e7ffbb9465d9ae6a8961b2f53dcbd807473d",
"armv7-unknown-linux-musleabihf-0.10.9":
"f702e821b80e371e14987a886d58ee103c5948b7b096fa49a552624c24d7e073",
"i686-pc-windows-msvc-0.10.9":
"034bf6b91390b9adc5f41a5946fdb618ebc8cef1574f3d95af9c12fe2bf9aaf3",
"i686-unknown-linux-gnu-0.10.9":
"90d9168a4e7900463f9fd79a32eb1890081fb1e238d803404f6e17b2dcdcca7b",
"i686-unknown-linux-musl-0.10.9":
"1d42b0d0a037b3d658b11ec889154686db3ab269ba2b789bdbc45d36e3549f34",
"powerpc64le-unknown-linux-gnu-0.10.9":
"e804f4a7d0659e09ef806365f04bdd33c940603fab903e925402748d05dd109a",
"riscv64gc-unknown-linux-gnu-0.10.9":
"1541596da45855e34202130027a613a2ace7d441e04d747cb4dd9f2590461c9a",
"s390x-unknown-linux-gnu-0.10.9":
"a589d4a8930c82fa7225daec19c632651b3c84f50f770efe758056b387e5f0dd",
"x86_64-apple-darwin-0.10.9":
"9cc2de7d195fa157f98b306a8a1cb151ded93f488939b93363cebc8b9d598c28",
"x86_64-pc-windows-msvc-0.10.9":
"f58dc40896000229db7c52b8bdd931394040ef2ad59abd1eda841f6d70b13d7a",
"x86_64-unknown-linux-gnu-0.10.9":
"20d79708222611fa540b5c9ed84f352bcd3937740e51aacc0f8b15b271c57594",
"x86_64-unknown-linux-musl-0.10.9":
"433e56874739e92c7cfd661ba9e5f287b376ca612c08c8194a41a98a13158aea",
"aarch64-apple-darwin-0.10.8":
"c3a6fff5b6b4abddff863117878194e35dbc6b0267d61ad259ab9896f9b8dcbb",
"aarch64-pc-windows-msvc-0.10.8":
"20db25dc446f9a75d1cfde0a5f4b021e1b2eb266e600a610d32c7ca5d7ff83bf",
"aarch64-unknown-linux-gnu-0.10.8":
"661860e954f87dcd823251191866af3486484d1a9df60eed56f4586ed7559e3d",
"aarch64-unknown-linux-musl-0.10.8":
"2ef0d0489e9e2a32f134ca80097fa36be4b486c4ab004706a1d6d0d57980ff07",
"arm-unknown-linux-musleabihf-0.10.8":
"f6dfca333c566024f6feaef19adf7ce06675a1bc2fcadc2de640dd805112a518",
"armv7-unknown-linux-gnueabihf-0.10.8":
"1bee8f88a7129f7922c43b0e091a7065d4e13a2934e599aa8a48f162cf9739aa",
"armv7-unknown-linux-musleabihf-0.10.8":
"ad0ca78991518fde1c4c42f8590e86f29db1f746cedb637f9dac1bb7de2e28da",
"i686-pc-windows-msvc-0.10.8":
"db40952a0c16eb647cb3a06c8cc13712b72e5b6a2501bc080c7e00c0f0e4ad88",
"i686-unknown-linux-gnu-0.10.8":
"3a78c54ffedce8eafd59a19a32eaec538924169fa4bf9d28d2d5841a7f604210",
"i686-unknown-linux-musl-0.10.8":
"25cf70c12abded06c4c18db8fdba253776bc115ce28f849af6f6ef771e67d730",
"powerpc64le-unknown-linux-gnu-0.10.8":
"3a4a158e645d04825872eb59ca60dd5026529e4f9fe5dd88987a45478301724d",
"riscv64gc-unknown-linux-gnu-0.10.8":
"2349e786d2de14fbd72386f42ed9f398cad52f47f6cdd78e05f338a1faf1321c",
"s390x-unknown-linux-gnu-0.10.8":
"21de0f86838b06e6ebcc3cb6a079d49d3d3886e5b49822ae58e5758eb08a6710",
"x86_64-apple-darwin-0.10.8":
"e0a1b22b039f8155765f5bc8c13df03a5f994a901901179791572e8e5f053281",
"x86_64-pc-windows-msvc-0.10.8":
"2e70ecd22196cbd9d14eefb700814bcafc5b75a0d8275b52e8402e5fe256d928",
"x86_64-unknown-linux-gnu-0.10.8":
"f0c566b55683395a62fefb9261a060fa09824914b5682c3b9629fa154762ae2f",
"x86_64-unknown-linux-musl-0.10.8":
"a4e6ad1aecac61077de548d2cc9ccf2c2f1848863312b3b59fb0d2eb8d8a043c",
"aarch64-apple-darwin-0.10.7":
"1eb4dcc5e0fc8669fa0b33cf1151b64ba3b8c26b60dceff4f7a686129e2af22b",
"aarch64-pc-windows-msvc-0.10.7":
"45ba7b72a7435343d650c73d21d65d2e8bdda47f6bd39af00e37f3cb70aa79ef",
"aarch64-unknown-linux-gnu-0.10.7":
"20efc27d946860093650bcf26096a016b10fdaf03b13c33b75fbde02962beea9",
"aarch64-unknown-linux-musl-0.10.7":
"115291f9943531a3b63db3a2eabda8b74b8da4831551679382cb309c9debd9f7",
"arm-unknown-linux-musleabihf-0.10.7":
"3ea331cd68f28235e13639d5400341a3893d0455f2473a74a9926b7d62cb739c",
"armv7-unknown-linux-gnueabihf-0.10.7":
"2e2f88cc5a7b49282c9aa05cfe03e3b8b0a044e90981062fbeb60a7aeba188ca",
"armv7-unknown-linux-musleabihf-0.10.7":
"27319e842d802c5c73be52f3774999d79d0f28f37984090998560fd925133375",
"i686-pc-windows-msvc-0.10.7":
"a7960473a473ee5907a55fccb8c645e24c1da7d39076aaef652b819e3a26a28b",
"i686-unknown-linux-gnu-0.10.7":
"1a22aa0d2268a9a6fb2e5f092ca3d1ef7c14f96c3b4fd546226814f376e59d73",
"i686-unknown-linux-musl-0.10.7":
"75c2cc60675fb6f846b394c3f7b51f77c08f0981abf5cfcb5e27cfbb2f5837e0",
"powerpc64le-unknown-linux-gnu-0.10.7":
"7398686962b966959c32e7fbfd2868fbac38491ff0d86033d7c8bbb826a04026",
"riscv64gc-unknown-linux-gnu-0.10.7":
"39abc60403fdcf5c681b63c967059d42aea58a81ffb092d6dda767390222a4b0",
"s390x-unknown-linux-gnu-0.10.7":
"281ae4c1343e0c5f9775358690d40e00edbf63ca788b4d8b6574a0b5cba624f4",
"x86_64-apple-darwin-0.10.7":
"4fed9d4f4608fb3850db714ee37244436f850a2b6e485bc510795679c2d08866",
"x86_64-pc-windows-msvc-0.10.7":
"8881afb877996a1373a12e816395122a8d39a3ac06cd066272acdb49510cf0fe",
"x86_64-unknown-linux-gnu-0.10.7":
"9ac6cee4e379a5abfca06e78a777b26b7ba1f81cb7935b97054d80d85ac00774",
"x86_64-unknown-linux-musl-0.10.7":
"992529add6024e67135b1c80617abd2eca7be2cf0b99b3911f923de815bd8dc1",
"aarch64-apple-darwin-0.10.6":
"3993249d8f51deaf34cfce037e57e294e82267ff1f9dc45b7983a17afaf065b4",
"aarch64-pc-windows-msvc-0.10.6":
"e431c9a4f8d66e872f6640500cbbf1af20418720b78ac01404399ac810ef2e46",
"aarch64-unknown-linux-gnu-0.10.6":
"9380705294a85e3e634570abddd5b2577900c1873c29b790c7abc56a81dce4bc",
"aarch64-unknown-linux-musl-0.10.6":
"7de7aa836fd54ff930fa5e63bc04da35e2fbd72889d6258e153479c44d08b863",
"arm-unknown-linux-musleabihf-0.10.6":
"9d0b55a3b0aff97884f49e15739a9936eb33a1b59a5bf1b3c7ce4d9e517d4d76",
"armv7-unknown-linux-gnueabihf-0.10.6":
"165400192202ee2487bcee4429a5e5a2fddfe8fef8985fb548e2a89fda6b2376",
"armv7-unknown-linux-musleabihf-0.10.6":
"1cf58447f2003122f83b1a34aee94429cb2686010c3502bfa21c8116e09d5bdf",
"i686-pc-windows-msvc-0.10.6":
"ec189db03b89262e6089e4fb895af6116b964234cf4166b330e258aaf7f999b4",
"i686-unknown-linux-gnu-0.10.6":
"f72a88d489fc424aca69c1cbf175bb5aeae649aa8c55b092628e5e553b481dd5",
"i686-unknown-linux-musl-0.10.6":
"94471f51aedbfaceb495949d5ce37d44352b2dfea45b61399870c39a881681fc",
"powerpc64le-unknown-linux-gnu-0.10.6":
"72d504553fc7150177bbf57b585c850cb4d695ddd848b9ba1416ac122eb88293",
"riscv64gc-unknown-linux-gnu-0.10.6":
"8f8a966d1f911f39334581a933805a30cdec5a7c1d4f580e03973ff45bf9b6ad",
"s390x-unknown-linux-gnu-0.10.6":
"5ed60237762862b05561d02b7f095268897d0561e87dca5986b04319265bc2cf",
"x86_64-apple-darwin-0.10.6":
"d7647571fb17a5107d4d23cc190418039c157fd7361ddb59bc6f8127a49e3eac",
"x86_64-pc-windows-msvc-0.10.6":
"b27eb789f281e398a82197477de727fc8faf08605152115686da2c3cba0d25f7",
"x86_64-unknown-linux-gnu-0.10.6":
"aaa402e19d14a6b9a4267fcf4ec35380f804c68923525cea67cd6ee05bb4e930",
"x86_64-unknown-linux-musl-0.10.6":
"01d6ce770da88ce6445acb0a8764c8b1634c9f69c728dca68b19fc7a893f72b9",
"aarch64-apple-darwin-0.10.5":
"796c2d264c6aba3e1179249438a9fa2fe64140748f0e5b6681e38218ab6238f1",
"aarch64-pc-windows-msvc-0.10.5":
"7f88f279e271cd76a6e07fe1ad711cbdf15374206ab79f55adadb818ebbd8e43",
"aarch64-unknown-linux-gnu-0.10.5":
"dfa82b047456c646c50ba769af81a6b7ba20aaf5feee96e61554861db8db5809",
"aarch64-unknown-linux-musl-0.10.5":
"cf01a960442b9aff4cadc4d27c691086151e9289b5b9fbd0dc41ecfcff1db872",
"arm-unknown-linux-musleabihf-0.10.5":
"abe18becc57fe3c3bf55e62b4b7be0231cb4dbb941fdb3f4f9132703b1f4868c",
"armv7-unknown-linux-gnueabihf-0.10.5":
"46d79f64e88cb339160cf90f6df51ea14795960840fb4fca8aa61af8cddd8187",
"armv7-unknown-linux-musleabihf-0.10.5":
"13444ea0cc650551c4c455af73ac27a77185064275475b2999c627158b7455f4",
"i686-pc-windows-msvc-0.10.5":
"67d96bae5ef30b9f1e201622505591601b936996ceea84c36fce5e577db5a442",
"i686-unknown-linux-gnu-0.10.5":
"56eb897036b8607bb7516349388bef6c83004ae05e694ec34e1bae69f3a0f237",
"i686-unknown-linux-musl-0.10.5":
"b0be10f5c16a987294a806dfd3927348456fca8b465377c99e0d167792b842dc",
"powerpc64le-unknown-linux-gnu-0.10.5":
"c7f4049b7e26a43107351808f7748c3bc0dfdf118c29f4b1470b69be15fef45b",
"riscv64gc-unknown-linux-gnu-0.10.5":
"756c43f4844953a2241c4254d268335b3bd35ca81856e8e06c7d4826466e87ce",
"s390x-unknown-linux-gnu-0.10.5":
"fbccde48aec139fc99558bd022ec3cab15f607b9b5e0efc0279c6145ab5ecaf7",
"x86_64-apple-darwin-0.10.5":
"84c4ce2902e2e840a54a75360b00f06ceffc6c26894bc5e73151a2c55d5fd043",
"x86_64-pc-windows-msvc-0.10.5":
"d5b3b04127eb6fb41ffca60c0da655124133b62b4b58e29cfc5435469a176e06",
"x86_64-unknown-linux-gnu-0.10.5":
"bcb127225873baa5ebd23cf09f29996cc97c1091830c9933e2e320bf1429a584",
"x86_64-unknown-linux-musl-0.10.5":
"88aeea39c77b6b796ca6b19c0216a577b18095dc450972dac7872a307bb1e160",
"aarch64-apple-darwin-0.10.4":
"a6852e4dc565c8fedcf5adcdf09fca7caf5347739bed512bd95b15dada36db51",
"aarch64-pc-windows-msvc-0.10.4":
"77f859cfc26181bdfb94087ce42336d9e2d9e0700bc42f6668445cde517198ce",
"aarch64-unknown-linux-gnu-0.10.4":
"c84a6e6405715caa6e2f5ef8e5f29a5d0bc558a954e9f1b5c082b9d4708c222e",
"aarch64-unknown-linux-musl-0.10.4":
"82fc461031dafb130af761e7dbec1bcc51b826c2e664f5bf8bc4e4f8330320cd",
"arm-unknown-linux-musleabihf-0.10.4":
"2050d9037a63975dafed987bdc7d2960a3b82345951c14193060fce20f9d31d8",
"armv7-unknown-linux-gnueabihf-0.10.4":
"d1824ed14f3ad0e7cb7835b46bc0299859cd8141d039a66274a135ca9797bf9c",
"armv7-unknown-linux-musleabihf-0.10.4":
"3038fdf153a722941424c28ae76996d60589f7f626c2000eb6567b3c301100dd",
"i686-pc-windows-msvc-0.10.4":
"b42379a65e9cec5863a22cf81810aec57281b08d426e70cc3b90320b996d84a7",
"i686-unknown-linux-gnu-0.10.4":
"79821b1d6c035aa8dc32a45d41551a4f010b8e357c98df48c95c5cb5ec18a743",
"i686-unknown-linux-musl-0.10.4":
"459315d7dba39b0297f44104fad1c93fa5cf866f91b533bba02d58f1e54129ad",
"powerpc64le-unknown-linux-gnu-0.10.4":
"7b315d9580ef574a1d0ff2023c16e5ac8a164feb1e998f33ed144dfd4c4fc125",
"riscv64gc-unknown-linux-gnu-0.10.4":
"101a71c072986929c410d4839babf66851563fd855b36c1dd7ffbbf5fbedce36",
"s390x-unknown-linux-gnu-0.10.4":
"59a50f14892c82de8f3e7a1a63ebc0ef98778085e4bb35ec99323f5009232fe2",
"x86_64-apple-darwin-0.10.4":
"df6dd1c3ebeab4369a098c516c15c233c62bf789a40a4864b30dad1d38d7604e",
"x86_64-pc-windows-msvc-0.10.4":
"0f0e22d7507633bfb38d9b42fb6a0341f1f74b8e80b070a31231c354812432a3",
"x86_64-unknown-linux-gnu-0.10.4":
"6b52a47358deea1c5e173278bf46b2b489747a59ae31f2a4362ed5c6c1c269f7",
"x86_64-unknown-linux-musl-0.10.4":
"18adf097cea30a165ba086c1e72659fec3c5aca056a560e7c39e0164ac871196",
"aarch64-apple-darwin-0.10.3":
"ed2a08079527dafae4943fee80162ed750286657901e642eba4c9de928706df8",
"aarch64-pc-windows-msvc-0.10.3":
"48243b8acbb31d0081e00878ee3b28535ed9f28ab8b27960b88aed8e1d6dd16a",
"aarch64-unknown-linux-gnu-0.10.3":
"cce7d1e4c34e22955cd647b256409b6504f4ae72acf190a6f26189efefbc9a9d",
"aarch64-unknown-linux-musl-0.10.3":
"a98f8decf21204d40acb512b0e08a803ed718c640a97f3c095864967463d5b15",
"arm-unknown-linux-musleabihf-0.10.3":
"e4b3c6dc59cd65125eda09e6c24b97fca71647df979f8963662807dc6a53e165",
"armv7-unknown-linux-gnueabihf-0.10.3":
"1d453ef56127d3aab3ea7f383b27765840e0bdc0b683347191e4cbc26272de2e",
"armv7-unknown-linux-musleabihf-0.10.3":
"d2484df75c9ba4c7e9750da00c4c4276b65c088d8b551b63717d5d9aa227ffa5",
"i686-pc-windows-msvc-0.10.3":
"51f745bcab5f77fe75e6f221e3e55a4bddf54824e634ac6f229132880506ce7e",
"i686-unknown-linux-gnu-0.10.3":
"e82e76ced718091d946eed30880728cf39f05b85f4f82c483a7dbf95f1663531",
"i686-unknown-linux-musl-0.10.3":
"0baca51f61729c6911d1d055c2e6dee5d11d88f6abbcd1ff801460f46880dc8d",
"powerpc64le-unknown-linux-gnu-0.10.3":
"cf4969ba97af3a53d1e4dc8a28441b79e78a8d9a9d41854e88b425f6b6fc6179",
"riscv64gc-unknown-linux-gnu-0.10.3":
"79b6b362e48c80e5b7d251fb96546d8ee52dd3458e01518cef969f757b59502b",
"s390x-unknown-linux-gnu-0.10.3":
"fc969d6011e4ffd0752abb5d812fc453649a7394c3f08a11556c9960891e359c",
"x86_64-apple-darwin-0.10.3":
"e8071cedb9986724ca3d70020b4460a85a274394b378c0e8eb1e8f9e33402ff9",
"x86_64-pc-windows-msvc-0.10.3":
"d029201a3eebaa8a0001fa762ee44ca14a9cb3cae4d59fc3fd69857da03a6f8c",
"x86_64-unknown-linux-gnu-0.10.3":
"c60b9956a0e6727f0ddd881c303a706c6408b2047f3a8fa4d1454a826338ccdc",
"x86_64-unknown-linux-musl-0.10.3":
"126496b606129eda426dac502af0d910d895f3db81da28efc49b18edf5557741",
"aarch64-apple-darwin-0.10.2":
"3828b2de196687f60e9d199aea8b504299629300831eea0935ff3fe339903d0a",
"aarch64-pc-windows-msvc-0.10.2":
"826e4ee3a03ec245e54c449e272fdf8aab749e039cc49c950ad43cc13702221f",
"aarch64-unknown-linux-gnu-0.10.2":
"4998f545234d52fc6f1280827d392f00a9278295050d59c53a776546dbf0124d",
"aarch64-unknown-linux-musl-0.10.2":
"685e47f8f88b6845a9fc2ca27c3d246c0f53af8c017daf8e98ac0a97fe20365b",
"arm-unknown-linux-musleabihf-0.10.2":
"1c51ebc67e8e492fa549167a96e40bb21a2c2ccde8a8b440f9c8bc0e07f3d4a8",
"armv7-unknown-linux-gnueabihf-0.10.2":
"45243fed8f587f11002f175216894c9c75e2f402324627b7e0855e670557ec14",
"armv7-unknown-linux-musleabihf-0.10.2":
"45b3d7eee7a3af2e4309b0bbe4886c6640b773f6500f0e0b662d84f4a5466f67",
"i686-pc-windows-msvc-0.10.2":
"a828ee0a2f42d1384f79acd3edaf01956000e1ec5d18d9992d79e17d70d9aa6c",
"i686-unknown-linux-gnu-0.10.2":
"7f64628a8a0869185eed24de4a02f4c8d19c99dec7363f383050ccb7474a76e9",
"i686-unknown-linux-musl-0.10.2":
"8d1978ecfa37d2d71cbb0e2e75262e65c184d040130fe2dc331f25e044ed97b4",
"powerpc64le-unknown-linux-gnu-0.10.2":
"9b7f8e3ced416276a9e6321369f69234552d9cbf39d68d96a67e85cee4cd611f",
"riscv64gc-unknown-linux-gnu-0.10.2":
"1ad005a361293175170f3c193b50d5a5c7f1da631649236cd857721ce8c9cbde",
"s390x-unknown-linux-gnu-0.10.2":
"d4832c85f3e8e17f7ae4ced90059dc2b6927939a47fea3e92e5712e7148b9c09",
"x86_64-apple-darwin-0.10.2":
"3cdbd038333cfe861ce04f3d91678547bf2e726224acf5f42d3f0affa6740e19",
"x86_64-pc-windows-msvc-0.10.2":
"493ebbe0e06128d6ee4905e1ed5e2a433fb0f7cfc08b0eaca9fab4ca76778ae1",
"x86_64-unknown-linux-gnu-0.10.2":
"6aa4576c31f791c0b9d4739e256d07358d45e7535695287fec03cf6839e25512",
"x86_64-unknown-linux-musl-0.10.2":
"c162182ba7dd692794362d76dd183990d6e51553217954106da19bdb6ced211b",
"aarch64-apple-darwin-0.10.1":
"37c101cd8a745a43d69bc3832c41866ab721467a1d58881f57b73b705abc2851",
"aarch64-pc-windows-msvc-0.10.1":
"9644d0e37c41c19aa65137a928bf6fad78dc887f820202c0cfcf010cceb416a0",
"aarch64-unknown-linux-gnu-0.10.1":
"3731e98805ea6789188edec0dd97e673da195bf976a72db38f325f7c51cf5cdd",
"aarch64-unknown-linux-musl-0.10.1":
"ae9ae536be5b4d1cf7a6560d52a20711f267e7b21e23ee6cc538a4afa236b757",
"arm-unknown-linux-musleabihf-0.10.1":
"af7994b58553156fb4acdac40b3f7b1b43260a76de96ca7123bdf861351675d4",
"armv7-unknown-linux-gnueabihf-0.10.1":
"4f8857a779df69e2aa9df8ff35b6c34ef3ce45c13d2d4a0ae3957b0e68d322cc",
"armv7-unknown-linux-musleabihf-0.10.1":
"79d978b0e829cab83de4c78e80bd014f3210cf0a1a653d880d0aa6760baeaf80",
"i686-pc-windows-msvc-0.10.1":
"c4e989d479f9fc229302345a64f272be3c249d5fff4a2e722aa3d73c381fb303",
"i686-unknown-linux-gnu-0.10.1":
"0c4a17893df6e11991483277c5f0bee06d8ea60b6e11b349a9849bfe13a8c5cf",
"i686-unknown-linux-musl-0.10.1":
"7219a96adde5316489886c0d74749b7248c2c4070170b8e153d9d3f8f9fdfa5e",
"powerpc64le-unknown-linux-gnu-0.10.1":
"aa2ed9587a9ad5127662da9ceccaa747b941f37cbd9e6d9334c7c6c3286c9587",
"riscv64gc-unknown-linux-gnu-0.10.1":
"bda96a9ff8be79f780ff4711a2515061fe80d6f135ba55a47c41e1c6739d048e",
"s390x-unknown-linux-gnu-0.10.1":
"091eeeecfcdb15a954f2488be6b89d8709709003ada81d215d6ca88145826049",
"x86_64-apple-darwin-0.10.1":
"f61f1122193698a53fc2d4cc6fb5a5849b283817509778ac8f1a7d2a36a218de",
"x86_64-pc-windows-msvc-0.10.1":
"64c297ef1cd8e3a50966dee20cbe039564cd59e41186e0d1dd38fa4e627fc285",
"x86_64-unknown-linux-gnu-0.10.1":
"8b5af2d678da1bdae80a5107c934f6ab010c6cdeb2de5b8e07568031d9486051",
"x86_64-unknown-linux-musl-0.10.1":
"d1a3b08dd9abf9e500541cadd0e2f4b144c99b9265fb00e500c2b5c82a3b4ee8",
"aarch64-apple-darwin-0.10.0":
"82d4b99dc6ea686695b5ee142ceba03dd3e3eda2b414e94215ab7bce94972fbb",
"aarch64-pc-windows-msvc-0.10.0":
"614dd3c409d7fb5a98b516d532c98db9b7799a23fb450150e3784338a9ebd903",
"aarch64-unknown-linux-gnu-0.10.0":
"c300afd5f2d31df039fe6a26a2d68a76b62832098c272a43e1e74ab9efd4fbd7",
"aarch64-unknown-linux-musl-0.10.0":
"edf1adb1d183730302f87eef9b71bc4e47b4b8058832c3393b0fbcd86f270510",
"arm-unknown-linux-musleabihf-0.10.0":
"fea6d45bce1e7172192b4a7d3feb9f37c4198c243be1c573c8dacae765a32c53",
"armv7-unknown-linux-gnueabihf-0.10.0":
"3e8ab76a515884c29c773e01360acb6da61a1351c630377b54ba58918d9673af",
"armv7-unknown-linux-musleabihf-0.10.0":
"85423cda078ed0313f993ddea6ac897e469885539ce156643ace982bbffb8109",
"i686-pc-windows-msvc-0.10.0":
"b71bca0987dd12ea09ac6a0e52fdfa89f53601b6074be38366d0592b181f3001",
"i686-unknown-linux-gnu-0.10.0":
"dbac897653b0d60fb863288587dbacb30140f9725a42718f2c017df7b2d2b3c3",
"i686-unknown-linux-musl-0.10.0":
"56a211155275dd33731cbbb33aa915d3e7efa59d4436502edaca39ba436c157a",
"powerpc64le-unknown-linux-gnu-0.10.0":
"677a414608c61e2ecd751364dae9209cc5b76019481968b99b5d5ad7258d2d77",
"riscv64gc-unknown-linux-gnu-0.10.0":
"9da4019ecfd3440a5d0a0a957d8d5e4c6534ac1e3a10636d55266a22ab4135f8",
"s390x-unknown-linux-gnu-0.10.0":
"a1b9aa45c1a6b69066179e8d7e3f6e122e0f433ef2ad4e91c0acd1433a083c31",
"x86_64-apple-darwin-0.10.0":
"664aed584c276f8d79cdc3b7685cd48f5d64657bd6840b06b4b2b0db731b9c99",
"x86_64-pc-windows-msvc-0.10.0":
"4037b444541f695cd2eb93188a9346de3e334af562381411deade0a31c7bf898",
"x86_64-unknown-linux-gnu-0.10.0":
"230e328948c92dd1ebad83949c4d56e83813dfe9c6362a4c519e6a227973f1ae",
"x86_64-unknown-linux-musl-0.10.0":
"312d37f31b6f2c3bfc65668ba0efea9f1f9eaf7bc3209fe1a109e5cf861b95fa",
"aarch64-apple-darwin-0.9.30":
"03a5d9ec7f7d588446b2ec226d13ff6300055e55365eca8f3fab39f342b0e805",
"aarch64-pc-windows-msvc-0.9.30":
"cfbc40baf1da11c55eff92ee008f5af3cdbb4c24c40ddb0bbd489b983fadf43f",
"aarch64-unknown-linux-gnu-0.9.30":
"6aadf3c71600d594e16dabf382cc15282ead4c5ca768599b6bcb43c5004d9aa8",
"aarch64-unknown-linux-musl-0.9.30":
"b658b56957bceea742ca14f3ef28fb3542adbcedfb8bd5bd718ae255394ccd09",
"arm-unknown-linux-musleabihf-0.9.30":
"5a7f4cd306363b734dba2d86eb760812cb1211254d36ace01860f9e783df1900",
"armv7-unknown-linux-gnueabihf-0.9.30":
"bf8d9c2f1b4d0eee9bfb689b5483b1bd4b0b76acbeaaa4d0d68b132574c606ff",
"armv7-unknown-linux-musleabihf-0.9.30":
"8715a9da643d9e6cb984c2d3e00480849f93f11251d1474cd382cc9d7faeab84",
"i686-pc-windows-msvc-0.9.30":
"218b7ec0d052836d7ee395d5e0592e5dac7578fd618f439a5d09c1ad36466399",
"i686-unknown-linux-gnu-0.9.30":
"1bab147179887ebcb5c31e016e9ac9987f687e79f92fd2f0ff9bcedf927b8228",
"i686-unknown-linux-musl-0.9.30":
"14d8b2e2caa0b470418e551e027f3a8283aa8d09eae79206e7dbcd23a8ffa027",
"powerpc64-unknown-linux-gnu-0.9.30":
"ac4cd1a021462885932f6023b005a4835cca4c72bb60dec186ee2be4b60dca6f",
"powerpc64le-unknown-linux-gnu-0.9.30":
"73b8cbc560c6b2fa205358365d4e174abdf50cfcf57dc36a447572c56eba5ae4",
"riscv64gc-unknown-linux-gnu-0.9.30":
"5e0453d9252aab874a3658a039d4ffdde79dba4096974fcdc945498697dc81cf",
"s390x-unknown-linux-gnu-0.9.30":
"b35975bb9e5c2c418b428d0316cc6e3c7a6eff710c69212be14005c192f54516",
"x86_64-apple-darwin-0.9.30":
"ce069bf750567e9a4a31d6e285d1eae75d444d8a281409b641235903943b7681",
"x86_64-pc-windows-msvc-0.9.30":
"875981be7908295937dee09532bb66d576986d4f223259e171b0c767c885897a",
"x86_64-unknown-linux-gnu-0.9.30":
"8b3762374972daa7a74bbc6896cc73229ca69a07403dd9f9ea3805a51ffd7582",
"x86_64-unknown-linux-musl-0.9.30":
"1caf8fe092e2005dd4c134ba515c1aa3eea3d3c143f8a1903bcb58fcdf169365",
"aarch64-apple-darwin-0.9.29":
"0729ddd5c02df33669b03627aa5d9ac7cde4421657f808d54585e3cda944bb55",
"aarch64-pc-windows-msvc-0.9.29":
"39f7dce0d2993cd18d67980c012945ea678a99aef199f7afcea522b5bd70ecf7",
"aarch64-unknown-linux-gnu-0.9.29":
"935b35542b7e25493a551dcb3487af23b72ad284ee8ac6a488a97d02ce2d84ec",
"aarch64-unknown-linux-musl-0.9.29":
"b1edc94f5d6c36bb28a20f8c8afb400e55a428fcf396b03bf78cb7394f75077c",
"arm-unknown-linux-musleabihf-0.9.29":
"c72ae74c04668d4cf3143fb11ad5bbd1c9e9a80aaa439cb3e43208c127249202",
"armv7-unknown-linux-gnueabihf-0.9.29":
"e263645c9ab44e3f7e732b0317da775082f077bb86933be662395eeab97fb3d2",
"armv7-unknown-linux-musleabihf-0.9.29":
"98ab47dcb345d746b230a359d72a96444b1be21cf24026c653d5c7848c680beb",
"i686-pc-windows-msvc-0.9.29":
"049a929882a3f4a2d054c9dc44848d2c24175079696e131a57d60d9ab62df81a",
"i686-unknown-linux-gnu-0.9.29":
"9415828fc2fdacadb56263382a27da6661a89a4bb3a6683d6d864d5c013b7c6a",
"i686-unknown-linux-musl-0.9.29":
"3ac91c9cccc85c07c0950afc4f45b3e14f2a3e9484f4940366ebab72e71fa8dc",
"powerpc64-unknown-linux-gnu-0.9.29":
"7feb1fb35fe66b4f83d3bc7776810f708c6609c9be48ceed6ec024b15733101d",
"powerpc64le-unknown-linux-gnu-0.9.29":
"1f4e1f859868abcf3557afe78b8b7525a938921af745945deef737927a017d82",
"riscv64gc-unknown-linux-gnu-0.9.29":
"18dc2d3b513c4bfe0fc4b3a67a80f62ce32077f84db343a1f0eb8003ab276732",
"s390x-unknown-linux-gnu-0.9.29":
"10e6d5dcd72bf99daee6678f6b508d1056e9f1670f6d76c1cfdf02b7560bcb4a",
"x86_64-apple-darwin-0.9.29":
"d251e48db2a962272a2efeb2771c82c02e40f473193a255e8e5c05eb61112139",
"x86_64-pc-windows-msvc-0.9.29":
"9825b1a5955d8a432b664e56660641aac8886ed30cd9c59a94aacc68ae9116ce",
"x86_64-unknown-linux-gnu-0.9.29":
"1ce5212f8f42dc7427a1bd3db4168d6d1abcf81b38d8c82a5b9d0ddc54ceebfc",
"x86_64-unknown-linux-musl-0.9.29":
"44c93c73e8870e003bda17ab50d433e27d201d0cb28d2bb75351ef1497ffa9db",
"aarch64-apple-darwin-0.9.28":
"12163fe09eb292d3ad1ea0f132a84485c902e2ff360d57562bf676e6615fcba0",
"aarch64-pc-windows-msvc-0.9.28":
"081703fa19ae05a49f486f97468f7792e1cdacda403a091b151af7f5bd6f4595",
"aarch64-unknown-linux-gnu-0.9.28":
"382c342735ff29f8ba4574d88e39bca798bcbac50bff6742710ca9cd8143e7d2",
"aarch64-unknown-linux-musl-0.9.28":
"eec3249254efac972d2555ff858f8ed20f05b40fbb38ac83b15cf0a2ccc86749",
"arm-unknown-linux-musleabihf-0.9.28":
"d0df2a9e7db464a567038bd560dc5007e488542c073989334a4a293b8957e1e1",
"armv7-unknown-linux-gnueabihf-0.9.28":
"6ddf1979609a3f5bdf897965ed6984dacce860ce57c579596bdc4b514c19320b",
"armv7-unknown-linux-musleabihf-0.9.28":
"e391ba4cc05a3a1096f1ab6cd82fcbed059d048a6ba108b4cb18da311a07c4d5",
"i686-pc-windows-msvc-0.9.28":
"fb5015efd0db178268312a7a7dcde7b0d3b7d7e0eccd0372a4b6f1dcfc075472",
"i686-unknown-linux-gnu-0.9.28":
"c0d34d92cb11925530fbc313de7536da3e1d097a442f54668417d241697fb3a2",
"i686-unknown-linux-musl-0.9.28":
"be1ad4f30d97c95af5105405fc38329d66375cde3de18cd0f9fe73b4581155c7",
"powerpc64-unknown-linux-gnu-0.9.28":
"6f23bfca0febb001792e7124d0c2ba41ddcfe01d6c030f4a8668ed634a5a582b",
"powerpc64le-unknown-linux-gnu-0.9.28":
"894ac114f076cffbf041e55e1ad0df759f7bc9dba1291158690781baad38001e",
"riscv64gc-unknown-linux-gnu-0.9.28":
"e61fa014a0b77acd17f9f366a55cbc0e67b377c4eff13629021a4242cc71eabb",
"s390x-unknown-linux-gnu-0.9.28":
"af15dc54893b2caecc3604ac68104914b155a8bbf821f667996549e777919a90",
"x86_64-apple-darwin-0.9.28":
"3a8030881d13b824e5168f5e4d060e715e40753249766bda3d52d6771d93b169",
"x86_64-pc-windows-msvc-0.9.28":
"9cb567fcd92f31431220ce620787043b946c30b9bb46ca213780e5ef471453be",
"x86_64-unknown-linux-gnu-0.9.28":
"66ad1822dd9cf96694b95c24f25bc05cff417a65351464da01682a91796d1f2b",
"x86_64-unknown-linux-musl-0.9.28":
"83cd032167b6b97ac94830608efe11159b3d485654e39fdb0bf84718ef236afe",
"aarch64-apple-darwin-0.9.27":
"1359538ed8664d172692cf4719ee0933a4a3bfb22fc91b0be1e19e7bdd8f5ef3",
"aarch64-pc-windows-msvc-0.9.27":
"b448ab228f5d1165b8497e8ca10346af6f652eb8ad4e75e47fa55e8cdb5b60d7",
"aarch64-unknown-linux-gnu-0.9.27":
"a58b3b77a25620ae15ff3587049b755c7cbf3eaa7df187620b3e6c3dbf71daa0",
"aarch64-unknown-linux-musl-0.9.27":
"f80e97e1154a06e42143a173831289336ca9e34a67096ab070346958153e8e52",
"arm-unknown-linux-musleabihf-0.9.27":
"b80f4db9254b9ddec4b576190bdf15723e948f37f648d9b273be2e153d05f820",
"armv7-unknown-linux-gnueabihf-0.9.27":
"03b45c99ca940739c2a093f6a514da3dd858b3bc1e8c957c16c1832e30b30c28",
"armv7-unknown-linux-musleabihf-0.9.27":
"da43ee6e2f17b4646e35e2d55ce6a021fdf47c06601a6ae8b827de7bb7b3b02f",
"i686-pc-windows-msvc-0.9.27":
"f47831a97b8a1bc7c7211905c1e517cc2f4ef84df877f2a283c49609275db0fa",
"i686-unknown-linux-gnu-0.9.27":
"fdf3067e0c05d39b849ad48fbbc2b58919f70a686a40506c643d32688ceba1a9",
"i686-unknown-linux-musl-0.9.27":
"3c1f8c2b148ebf884311558aaff32b9fb5b68fe4f4242e3e3765381bb594386a",
"powerpc64-unknown-linux-gnu-0.9.27":
"c3cbda5118b06f2261d32f4802adfdc71f618f808df0c6a3184695a6ffecb88a",
"powerpc64le-unknown-linux-gnu-0.9.27":
"9011f6085cee3921c9fce82ce03041ca97aacc8cab86b7a5791faa71fa5f2712",
"riscv64gc-unknown-linux-gnu-0.9.27":
"7193628620c2c50c2d6632ea8e53a4ab5313f7e8003ddedd9e999f48b6d2c222",
"s390x-unknown-linux-gnu-0.9.27":
"5b055f02f2c8e5086ae1d05cf70d32d66982d27d8469ed896a65067fac2001d2",
"x86_64-apple-darwin-0.9.27":
"3977309c5c79984c13c55d2d1cd7aa114a718eb29436c5bdb4bdfa08bf243438",
"x86_64-pc-windows-msvc-0.9.27":
"c3bf465d5f2b93c836f369aec9f3fa8350843f24abd5f710bb74e72440b82898",
"x86_64-unknown-linux-gnu-0.9.27":
"8636e693ea0e05f5f4294b161f816c4d8df065267fdb0405cfb84c8e326991fa",
"x86_64-unknown-linux-musl-0.9.27":
"9f269bfb9c2e80808c373902af6a4af6cd5f4b4668b28c44aa09639cfed925c5",
"aarch64-apple-darwin-0.9.26": "aarch64-apple-darwin-0.9.26":
"fcf0a9ea6599c6ae28a4c854ac6da76f2c889354d7c36ce136ef071f7ab9721f", "fcf0a9ea6599c6ae28a4c854ac6da76f2c889354d7c36ce136ef071f7ab9721f",
"aarch64-pc-windows-msvc-0.9.26": "aarch64-pc-windows-msvc-0.9.26":

View File

@@ -2,21 +2,18 @@ import { promises as fs } from "node:fs";
import * as path from "node:path"; import * as path from "node:path";
import * as core from "@actions/core"; import * as core from "@actions/core";
import * as tc from "@actions/tool-cache"; import * as tc from "@actions/tool-cache";
import type { Endpoints } from "@octokit/types";
import * as pep440 from "@renovatebot/pep440"; import * as pep440 from "@renovatebot/pep440";
import * as semver from "semver"; import * as semver from "semver";
import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants"; import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants";
import { Octokit } from "../utils/octokit";
import type { Architecture, Platform } from "../utils/platforms"; import type { Architecture, Platform } from "../utils/platforms";
import { validateChecksum } from "./checksum/checksum"; import { validateChecksum } from "./checksum/checksum";
import { import {
getAvailableVersionsFromManifest,
getDownloadUrl, getDownloadUrl,
getLatestKnownVersion as getLatestVersionInManifest, getLatestKnownVersion as getLatestVersionInManifest,
REMOTE_MANIFEST_URL,
} from "./version-manifest"; } from "./version-manifest";
type Release =
Endpoints["GET /repos/{owner}/{repo}/releases"]["response"]["data"][number];
export function tryGetFromToolCache( export function tryGetFromToolCache(
arch: Architecture, arch: Architecture,
version: string, version: string,
@@ -61,27 +58,36 @@ export async function downloadVersionFromManifest(
checkSum: string | undefined, checkSum: string | undefined,
githubToken: string, githubToken: string,
): Promise<{ version: string; cachedToolDir: string }> { ): Promise<{ version: string; cachedToolDir: string }> {
const downloadUrl = await getDownloadUrl( // If no user-provided manifest, try remote manifest first (will use cache if already fetched)
manifestUrl, // then fall back to bundled manifest
version, const manifestSources =
arch, manifestUrl !== undefined
platform, ? [manifestUrl]
); : [REMOTE_MANIFEST_URL, undefined];
if (!downloadUrl) {
core.info( for (const source of manifestSources) {
`manifest-file does not contain version ${version}, arch ${arch}, platform ${platform}. Falling back to GitHub releases.`, try {
); const downloadUrl = await getDownloadUrl(source, version, arch, platform);
return await downloadVersionFromGithub( if (downloadUrl) {
platform, return await downloadVersion(
arch, downloadUrl,
version, `uv-${arch}-${platform}`,
checkSum, platform,
githubToken, arch,
); version,
checkSum,
githubToken,
);
}
} catch (err) {
core.debug(`Failed to get download URL from manifest ${source}: ${err}`);
}
} }
return await downloadVersion(
downloadUrl, core.info(
`uv-${arch}-${platform}`, `Manifest does not contain version ${version}, arch ${arch}, platform ${platform}. Falling back to GitHub releases.`,
);
return await downloadVersionFromGithub(
platform, platform,
arch, arch,
version, version,
@@ -143,7 +149,6 @@ function getExtension(platform: Platform): string {
export async function resolveVersion( export async function resolveVersion(
versionInput: string, versionInput: string,
manifestFile: string | undefined, manifestFile: string | undefined,
githubToken: string,
resolutionStrategy: "highest" | "lowest" = "highest", resolutionStrategy: "highest" | "lowest" = "highest",
): Promise<string> { ): Promise<string> {
core.debug(`Resolving version: ${versionInput}`); core.debug(`Resolving version: ${versionInput}`);
@@ -163,7 +168,7 @@ export async function resolveVersion(
} else { } else {
version = version =
versionInput === "latest" || resolveVersionSpecifierToLatest versionInput === "latest" || resolveVersionSpecifierToLatest
? await getLatestVersion(githubToken) ? await getLatestVersion()
: versionInput; : versionInput;
} }
if (tc.isExplicitVersion(version)) { if (tc.isExplicitVersion(version)) {
@@ -175,7 +180,7 @@ export async function resolveVersion(
} }
return version; return version;
} }
const availableVersions = await getAvailableVersions(githubToken); const availableVersions = await getAvailableVersions();
core.debug(`Available versions: ${availableVersions}`); core.debug(`Available versions: ${availableVersions}`);
const resolvedVersion = const resolvedVersion =
resolutionStrategy === "lowest" resolutionStrategy === "lowest"
@@ -187,79 +192,37 @@ export async function resolveVersion(
return resolvedVersion; return resolvedVersion;
} }
async function getAvailableVersions(githubToken: string): Promise<string[]> { async function getAvailableVersions(): Promise<string[]> {
core.info("Getting available versions from GitHub API..."); // 1. Try remote manifest first (no rate limits, always current)
try { try {
const octokit = new Octokit({ core.info("Getting available versions from remote manifest...");
auth: githubToken, const versions =
}); await getAvailableVersionsFromManifest(REMOTE_MANIFEST_URL);
return await getReleaseTagNames(octokit); core.debug(`Found ${versions.length} versions from remote manifest`);
return versions;
} catch (err) { } catch (err) {
if ((err as Error).message.includes("Bad credentials")) { core.debug(`Remote manifest lookup failed: ${err}`);
core.info(
"No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.",
);
const octokit = new Octokit();
return await getReleaseTagNames(octokit);
}
throw err;
} }
// 2. Fall back to bundled manifest (no network, may be stale)
core.info("Getting available versions from bundled manifest...");
return await getAvailableVersionsFromManifest(undefined);
} }
async function getReleaseTagNames(octokit: Octokit): Promise<string[]> { async function getLatestVersion() {
const response: Release[] = await octokit.paginate( // 1. Try remote manifest first (no rate limits, always current)
octokit.rest.repos.listReleases,
{
owner: OWNER,
repo: REPO,
},
);
const releaseTagNames = response.map((release) => release.tag_name);
if (releaseTagNames.length === 0) {
throw Error(
"Github API request failed while getting releases. Check the GitHub status page for outages. Try again later.",
);
}
return releaseTagNames;
}
async function getLatestVersion(githubToken: string) {
core.info("Getting latest version from GitHub API...");
const octokit = new Octokit({
auth: githubToken,
});
let latestRelease: { tag_name: string } | undefined;
try { try {
latestRelease = await getLatestRelease(octokit); core.info("Getting latest version from remote manifest...");
const version = await getLatestVersionInManifest(REMOTE_MANIFEST_URL);
core.debug(`Latest version from remote manifest: ${version}`);
return version;
} catch (err) { } catch (err) {
if ((err as Error).message.includes("Bad credentials")) { core.debug(`Remote manifest lookup failed: ${err}`);
core.info(
"No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.",
);
const octokit = new Octokit();
latestRelease = await getLatestRelease(octokit);
} else {
core.error(
"Github API request failed while getting latest release. Check the GitHub status page for outages. Try again later.",
);
throw err;
}
} }
if (!latestRelease) { // 2. Fall back to bundled manifest (no network, may be stale)
throw new Error("Could not determine latest release."); core.info("Getting latest version from bundled manifest...");
} return await getLatestVersionInManifest(undefined);
core.debug(`Latest version: ${latestRelease.tag_name}`);
return latestRelease.tag_name;
}
async function getLatestRelease(octokit: Octokit) {
const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({
owner: OWNER,
repo: REPO,
});
return latestRelease;
} }
function maxSatisfying( function maxSatisfying(

View File

@@ -5,6 +5,11 @@ import * as semver from "semver";
import { fetch } from "../utils/fetch"; import { fetch } from "../utils/fetch";
const localManifestFile = join(__dirname, "..", "..", "version-manifest.json"); const localManifestFile = join(__dirname, "..", "..", "version-manifest.json");
export const REMOTE_MANIFEST_URL =
"https://raw.githubusercontent.com/astral-sh/setup-uv/main/version-manifest.json";
// Cache for manifest entries to avoid re-fetching
const manifestCache = new Map<string, ManifestEntry[]>();
interface ManifestEntry { interface ManifestEntry {
version: string; version: string;
@@ -39,9 +44,25 @@ export async function getDownloadUrl(
return entry ? entry.downloadUrl : undefined; return entry ? entry.downloadUrl : undefined;
} }
export async function getAvailableVersionsFromManifest(
manifestUrl: string | undefined,
): Promise<string[]> {
const manifestEntries = await getManifestEntries(manifestUrl);
return [...new Set(manifestEntries.map((entry) => entry.version))];
}
async function getManifestEntries( async function getManifestEntries(
manifestUrl: string | undefined, manifestUrl: string | undefined,
): Promise<ManifestEntry[]> { ): Promise<ManifestEntry[]> {
const cacheKey = manifestUrl ?? "local";
// Return cached entries if available
const cached = manifestCache.get(cacheKey);
if (cached !== undefined) {
core.debug(`Using cached manifest entries for: ${cacheKey}`);
return cached;
}
let data: string; let data: string;
if (manifestUrl !== undefined) { if (manifestUrl !== undefined) {
core.info(`Fetching manifest-file from: ${manifestUrl}`); core.info(`Fetching manifest-file from: ${manifestUrl}`);
@@ -58,7 +79,9 @@ async function getManifestEntries(
data = fileContent.toString(); data = fileContent.toString();
} }
return JSON.parse(data); const entries: ManifestEntry[] = JSON.parse(data);
manifestCache.set(cacheKey, entries);
return entries;
} }
export async function updateVersionManifest( export async function updateVersionManifest(

View File

@@ -59,40 +59,23 @@ async function saveCache(): Promise<void> {
} }
const actualCachePath = getUvCachePath(); const actualCachePath = getUvCachePath();
if (!fs.existsSync(actualCachePath)) { await saveCacheToKey(
if (ignoreNothingToCache) { cacheKey,
core.info( actualCachePath,
"No cacheable uv cache paths were found. Ignoring because ignore-nothing-to-cache is enabled.", STATE_CACHE_MATCHED_KEY,
); "uv cache",
} else { `Cache path ${actualCachePath} does not exist on disk. This likely indicates that there are no dependencies to cache. Consider disabling the cache input if it is not needed.`,
throw new Error( );
`Cache path ${actualCachePath} does not exist on disk. This likely indicates that there are no dependencies to cache. Consider disabling the cache input if it is not needed.`,
);
}
} else {
await saveCacheToKey(
cacheKey,
actualCachePath,
STATE_CACHE_MATCHED_KEY,
"uv cache",
);
}
} }
if (cachePython) { if (cachePython) {
if (!fs.existsSync(pythonDir)) {
core.warning(
`Python cache path ${pythonDir} does not exist on disk. Skipping Python cache save because no managed Python installation was found. If you want uv to install managed Python instead of using a system interpreter, set UV_PYTHON_PREFERENCE=only-managed.`,
);
return;
}
const pythonCacheKey = `${cacheKey}-python`; const pythonCacheKey = `${cacheKey}-python`;
await saveCacheToKey( await saveCacheToKey(
pythonCacheKey, pythonCacheKey,
pythonDir, pythonDir,
STATE_PYTHON_CACHE_MATCHED_KEY, STATE_PYTHON_CACHE_MATCHED_KEY,
"Python cache", "Python cache",
`Python cache path ${pythonDir} does not exist on disk. This likely indicates that there are no Python installations to cache. Consider disabling the cache input if it is not needed.`,
); );
} }
} }
@@ -136,6 +119,7 @@ async function saveCacheToKey(
cachePath: string, cachePath: string,
stateKey: string, stateKey: string,
cacheName: string, cacheName: string,
pathNotExistErrorMessage: string,
): Promise<void> { ): Promise<void> {
const matchedKey = core.getState(stateKey); const matchedKey = core.getState(stateKey);
@@ -147,8 +131,26 @@ async function saveCacheToKey(
} }
core.info(`Including ${cacheName} path: ${cachePath}`); core.info(`Including ${cacheName} path: ${cachePath}`);
await cache.saveCache([cachePath], cacheKey); if (!fs.existsSync(cachePath) && !ignoreNothingToCache) {
core.info(`${cacheName} saved with key: ${cacheKey}`); throw new Error(pathNotExistErrorMessage);
}
try {
await cache.saveCache([cachePath], cacheKey);
core.info(`${cacheName} saved with key: ${cacheKey}`);
} catch (e) {
if (
e instanceof Error &&
e.message ===
"Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved."
) {
core.info(
`No cacheable ${cacheName} paths were found. Ignoring because ignore-nothing-to-save is enabled.`,
);
} else {
throw e;
}
}
} }
run(); run();

View File

@@ -24,7 +24,6 @@ import {
resolutionStrategy, resolutionStrategy,
toolBinDir, toolBinDir,
toolDir, toolDir,
venvPath,
versionFile as versionFileInput, versionFile as versionFileInput,
version as versionInput, version as versionInput,
workingDirectory, workingDirectory,
@@ -158,12 +157,7 @@ async function determineVersion(
manifestFile: string | undefined, manifestFile: string | undefined,
): Promise<string> { ): Promise<string> {
if (versionInput !== "") { if (versionInput !== "") {
return await resolveVersion( return await resolveVersion(versionInput, manifestFile, resolutionStrategy);
versionInput,
manifestFile,
githubToken,
resolutionStrategy,
);
} }
if (versionFileInput !== "") { if (versionFileInput !== "") {
const versionFromFile = getUvVersionFromFile(versionFileInput); const versionFromFile = getUvVersionFromFile(versionFileInput);
@@ -175,7 +169,6 @@ async function determineVersion(
return await resolveVersion( return await resolveVersion(
versionFromFile, versionFromFile,
manifestFile, manifestFile,
githubToken,
resolutionStrategy, resolutionStrategy,
); );
} }
@@ -193,7 +186,6 @@ async function determineVersion(
return await resolveVersion( return await resolveVersion(
versionFromUvToml || versionFromPyproject || "latest", versionFromUvToml || versionFromPyproject || "latest",
manifestFile, manifestFile,
githubToken,
resolutionStrategy, resolutionStrategy,
); );
} }
@@ -270,16 +262,12 @@ async function activateEnvironment(): Promise<void> {
"UV_NO_MODIFY_PATH and activate-environment cannot be used together.", "UV_NO_MODIFY_PATH and activate-environment cannot be used together.",
); );
} }
const execArgs = ["venv", ".venv", "--directory", workingDirectory];
core.info(`Creating and activating python venv at ${venvPath}...`); core.info("Activating python venv...");
await exec.exec("uv", [ await exec.exec("uv", execArgs);
"venv",
venvPath,
"--directory",
workingDirectory,
"--clear",
]);
const venvPath = path.resolve(`${workingDirectory}${path.sep}.venv`);
let venvBinPath = `${venvPath}${path.sep}bin`; let venvBinPath = `${venvPath}${path.sep}bin`;
if (process.platform === "win32") { if (process.platform === "win32") {
venvBinPath = `${venvPath}${path.sep}Scripts`; venvBinPath = `${venvPath}${path.sep}Scripts`;

View File

@@ -14,7 +14,6 @@ export const version = core.getInput("version");
export const versionFile = getVersionFile(); export const versionFile = getVersionFile();
export const pythonVersion = core.getInput("python-version"); export const pythonVersion = core.getInput("python-version");
export const activateEnvironment = core.getBooleanInput("activate-environment"); export const activateEnvironment = core.getBooleanInput("activate-environment");
export const venvPath = getVenvPath();
export const checkSum = core.getInput("checksum"); export const checkSum = core.getInput("checksum");
export const enableCache = getEnableCache(); export const enableCache = getEnableCache();
export const restoreCache = core.getInput("restore-cache") === "true"; export const restoreCache = core.getInput("restore-cache") === "true";
@@ -46,18 +45,6 @@ function getVersionFile(): string {
return versionFileInput; return versionFileInput;
} }
function getVenvPath(): string {
const venvPathInput = core.getInput("venv-path");
if (venvPathInput !== "") {
if (!activateEnvironment) {
core.warning("venv-path is only used when activate-environment is true");
}
const tildeExpanded = expandTilde(venvPathInput);
return normalizePath(resolveRelativePath(tildeExpanded));
}
return normalizePath(resolveRelativePath(".venv"));
}
function getEnableCache(): boolean { function getEnableCache(): boolean {
const enableCacheInput = core.getInput("enable-cache"); const enableCacheInput = core.getInput("enable-cache");
if (enableCacheInput === "auto") { if (enableCacheInput === "auto") {
@@ -207,19 +194,6 @@ function expandTilde(input: string): string {
return input; return input;
} }
function normalizePath(inputPath: string): string {
const normalized = path.normalize(inputPath);
const root = path.parse(normalized).root;
// Remove any trailing path separators, except when the whole path is the root.
let trimmed = normalized;
while (trimmed.length > root.length && trimmed.endsWith(path.sep)) {
trimmed = trimmed.slice(0, -1);
}
return trimmed;
}
function resolveRelativePath(inputPath: string): string { function resolveRelativePath(inputPath: string): string {
const hasNegation = inputPath.startsWith("!"); const hasNegation = inputPath.startsWith("!");
const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath; const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath;

View File

@@ -13,7 +13,6 @@ export type Architecture =
| "x86_64" | "x86_64"
| "aarch64" | "aarch64"
| "s390x" | "s390x"
| "riscv64gc"
| "powerpc64le"; | "powerpc64le";
export function getArch(): Architecture | undefined { export function getArch(): Architecture | undefined {
@@ -22,7 +21,6 @@ export function getArch(): Architecture | undefined {
arm64: "aarch64", arm64: "aarch64",
ia32: "i686", ia32: "i686",
ppc64: "powerpc64le", ppc64: "powerpc64le",
riscv64: "riscv64gc",
s390x: "s390x", s390x: "s390x",
x64: "x86_64", x64: "x86_64",
}; };
@@ -108,16 +106,10 @@ function getLinuxOSNameVersion(): string {
const content = fs.readFileSync(file, "utf8"); const content = fs.readFileSync(file, "utf8");
const id = parseOsReleaseValue(content, "ID"); const id = parseOsReleaseValue(content, "ID");
const versionId = parseOsReleaseValue(content, "VERSION_ID"); const versionId = parseOsReleaseValue(content, "VERSION_ID");
// Fallback for rolling releases (debian:unstable/testing, arch, etc.)
// that don't have VERSION_ID but have VERSION_CODENAME
const versionCodename = parseOsReleaseValue(content, "VERSION_CODENAME");
if (id && versionId) { if (id && versionId) {
return `${id}-${versionId}`; return `${id}-${versionId}`;
} }
if (id && versionCodename) {
return `${id}-${versionCodename}`;
}
} catch { } catch {
// Try next file // Try next file
} }

View File

@@ -1,1698 +1,4 @@
[ [
{
"arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-aarch64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.9"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-aarch64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.9"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-aarch64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.9"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-aarch64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.9"
},
{
"arch": "arm",
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-arm-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.9"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-armv7-unknown-linux-gnueabihf.tar.gz",
"platform": "unknown-linux-gnueabihf",
"version": "0.10.9"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-armv7-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.9"
},
{
"arch": "i686",
"artifactName": "uv-i686-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-i686-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.9"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-i686-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.9"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-i686-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.9"
},
{
"arch": "powerpc64le",
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-powerpc64le-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.9"
},
{
"arch": "riscv64gc",
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-riscv64gc-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.9"
},
{
"arch": "s390x",
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-s390x-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.9"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-x86_64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.9"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-x86_64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.9"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-x86_64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.9"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.9/uv-x86_64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.9"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-aarch64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.8"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-aarch64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.8"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-aarch64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.8"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-aarch64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.8"
},
{
"arch": "arm",
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-arm-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.8"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-armv7-unknown-linux-gnueabihf.tar.gz",
"platform": "unknown-linux-gnueabihf",
"version": "0.10.8"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-armv7-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.8"
},
{
"arch": "i686",
"artifactName": "uv-i686-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-i686-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.8"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-i686-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.8"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-i686-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.8"
},
{
"arch": "powerpc64le",
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-powerpc64le-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.8"
},
{
"arch": "riscv64gc",
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-riscv64gc-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.8"
},
{
"arch": "s390x",
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-s390x-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.8"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-x86_64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.8"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-x86_64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.8"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-x86_64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.8"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.8/uv-x86_64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.8"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-aarch64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.7"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-aarch64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.7"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-aarch64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.7"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-aarch64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.7"
},
{
"arch": "arm",
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-arm-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.7"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-armv7-unknown-linux-gnueabihf.tar.gz",
"platform": "unknown-linux-gnueabihf",
"version": "0.10.7"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-armv7-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.7"
},
{
"arch": "i686",
"artifactName": "uv-i686-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-i686-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.7"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-i686-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.7"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-i686-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.7"
},
{
"arch": "powerpc64le",
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-powerpc64le-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.7"
},
{
"arch": "riscv64gc",
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-riscv64gc-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.7"
},
{
"arch": "s390x",
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-s390x-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.7"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-x86_64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.7"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-x86_64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.7"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-x86_64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.7"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.7/uv-x86_64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.7"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-aarch64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.6"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-aarch64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.6"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-aarch64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.6"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-aarch64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.6"
},
{
"arch": "arm",
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-arm-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.6"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-armv7-unknown-linux-gnueabihf.tar.gz",
"platform": "unknown-linux-gnueabihf",
"version": "0.10.6"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-armv7-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.6"
},
{
"arch": "i686",
"artifactName": "uv-i686-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-i686-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.6"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-i686-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.6"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-i686-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.6"
},
{
"arch": "powerpc64le",
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-powerpc64le-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.6"
},
{
"arch": "riscv64gc",
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-riscv64gc-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.6"
},
{
"arch": "s390x",
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-s390x-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.6"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-x86_64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.6"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-x86_64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.6"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-x86_64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.6"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.6/uv-x86_64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.6"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-aarch64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.5"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-aarch64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.5"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-aarch64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.5"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-aarch64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.5"
},
{
"arch": "arm",
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-arm-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.5"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-armv7-unknown-linux-gnueabihf.tar.gz",
"platform": "unknown-linux-gnueabihf",
"version": "0.10.5"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-armv7-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.5"
},
{
"arch": "i686",
"artifactName": "uv-i686-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-i686-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.5"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-i686-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.5"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-i686-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.5"
},
{
"arch": "powerpc64le",
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-powerpc64le-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.5"
},
{
"arch": "riscv64gc",
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-riscv64gc-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.5"
},
{
"arch": "s390x",
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-s390x-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.5"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-x86_64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.5"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-x86_64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.5"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-x86_64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.5"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.5/uv-x86_64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.5"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-aarch64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.4"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-aarch64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.4"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-aarch64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.4"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-aarch64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.4"
},
{
"arch": "arm",
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-arm-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.4"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-armv7-unknown-linux-gnueabihf.tar.gz",
"platform": "unknown-linux-gnueabihf",
"version": "0.10.4"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-armv7-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.4"
},
{
"arch": "i686",
"artifactName": "uv-i686-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-i686-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.4"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-i686-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.4"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-i686-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.4"
},
{
"arch": "powerpc64le",
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-powerpc64le-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.4"
},
{
"arch": "riscv64gc",
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-riscv64gc-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.4"
},
{
"arch": "s390x",
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-s390x-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.4"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-x86_64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.4"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-x86_64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.4"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-x86_64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.4"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.4/uv-x86_64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.4"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-aarch64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.3"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-aarch64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.3"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-aarch64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.3"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-aarch64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.3"
},
{
"arch": "arm",
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-arm-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.3"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-armv7-unknown-linux-gnueabihf.tar.gz",
"platform": "unknown-linux-gnueabihf",
"version": "0.10.3"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-armv7-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.3"
},
{
"arch": "i686",
"artifactName": "uv-i686-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-i686-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.3"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-i686-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.3"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-i686-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.3"
},
{
"arch": "powerpc64le",
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-powerpc64le-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.3"
},
{
"arch": "riscv64gc",
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-riscv64gc-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.3"
},
{
"arch": "s390x",
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-s390x-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.3"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-x86_64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.3"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-x86_64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.3"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-x86_64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.3"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.3/uv-x86_64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.3"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-aarch64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.2"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-aarch64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.2"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-aarch64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.2"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-aarch64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.2"
},
{
"arch": "arm",
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-arm-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.2"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-armv7-unknown-linux-gnueabihf.tar.gz",
"platform": "unknown-linux-gnueabihf",
"version": "0.10.2"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-armv7-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.2"
},
{
"arch": "i686",
"artifactName": "uv-i686-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-i686-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.2"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-i686-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.2"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-i686-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.2"
},
{
"arch": "powerpc64le",
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-powerpc64le-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.2"
},
{
"arch": "riscv64gc",
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-riscv64gc-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.2"
},
{
"arch": "s390x",
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-s390x-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.2"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-x86_64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.2"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-x86_64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.2"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-x86_64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.2"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.2/uv-x86_64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.2"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-aarch64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.1"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-aarch64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.1"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-aarch64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.1"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-aarch64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.1"
},
{
"arch": "arm",
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-arm-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.1"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-armv7-unknown-linux-gnueabihf.tar.gz",
"platform": "unknown-linux-gnueabihf",
"version": "0.10.1"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-armv7-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.1"
},
{
"arch": "i686",
"artifactName": "uv-i686-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-i686-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.1"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-i686-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.1"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-i686-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.1"
},
{
"arch": "powerpc64le",
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-powerpc64le-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.1"
},
{
"arch": "riscv64gc",
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-riscv64gc-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.1"
},
{
"arch": "s390x",
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-s390x-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.1"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-x86_64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.1"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-x86_64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.1"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-x86_64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.1"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.1/uv-x86_64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.1"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-aarch64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.0"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-aarch64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.0"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-aarch64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.0"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-aarch64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.0"
},
{
"arch": "arm",
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-arm-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.0"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-armv7-unknown-linux-gnueabihf.tar.gz",
"platform": "unknown-linux-gnueabihf",
"version": "0.10.0"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-armv7-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.10.0"
},
{
"arch": "i686",
"artifactName": "uv-i686-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-i686-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.0"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-i686-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.0"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-i686-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.0"
},
{
"arch": "powerpc64le",
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-powerpc64le-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.0"
},
{
"arch": "riscv64gc",
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-riscv64gc-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.0"
},
{
"arch": "s390x",
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-s390x-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.0"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-x86_64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.10.0"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-x86_64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.10.0"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-x86_64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.10.0"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.10.0/uv-x86_64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.10.0"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-aarch64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.9.30"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-aarch64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.9.30"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-aarch64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.30"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-aarch64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.9.30"
},
{
"arch": "arm",
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-arm-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.9.30"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-armv7-unknown-linux-gnueabihf.tar.gz",
"platform": "unknown-linux-gnueabihf",
"version": "0.9.30"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-armv7-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.9.30"
},
{
"arch": "i686",
"artifactName": "uv-i686-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-i686-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.9.30"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-i686-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.30"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-i686-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.9.30"
},
{
"arch": "powerpc64",
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-powerpc64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.30"
},
{
"arch": "powerpc64le",
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-powerpc64le-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.30"
},
{
"arch": "riscv64gc",
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-riscv64gc-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.30"
},
{
"arch": "s390x",
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-s390x-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.30"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-x86_64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.9.30"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-x86_64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.9.30"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-x86_64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.30"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.30/uv-x86_64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.9.30"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-aarch64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.9.29"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-aarch64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.9.29"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-aarch64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.29"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-aarch64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.9.29"
},
{
"arch": "arm",
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-arm-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.9.29"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-armv7-unknown-linux-gnueabihf.tar.gz",
"platform": "unknown-linux-gnueabihf",
"version": "0.9.29"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-armv7-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.9.29"
},
{
"arch": "i686",
"artifactName": "uv-i686-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-i686-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.9.29"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-i686-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.29"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-i686-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.9.29"
},
{
"arch": "powerpc64",
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-powerpc64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.29"
},
{
"arch": "powerpc64le",
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-powerpc64le-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.29"
},
{
"arch": "riscv64gc",
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-riscv64gc-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.29"
},
{
"arch": "s390x",
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-s390x-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.29"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-x86_64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.9.29"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-x86_64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.9.29"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-x86_64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.29"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.29/uv-x86_64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.9.29"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-aarch64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.9.28"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-aarch64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.9.28"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-aarch64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.28"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-aarch64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.9.28"
},
{
"arch": "arm",
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-arm-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.9.28"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-armv7-unknown-linux-gnueabihf.tar.gz",
"platform": "unknown-linux-gnueabihf",
"version": "0.9.28"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-armv7-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.9.28"
},
{
"arch": "i686",
"artifactName": "uv-i686-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-i686-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.9.28"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-i686-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.28"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-i686-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.9.28"
},
{
"arch": "powerpc64",
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-powerpc64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.28"
},
{
"arch": "powerpc64le",
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-powerpc64le-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.28"
},
{
"arch": "riscv64gc",
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-riscv64gc-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.28"
},
{
"arch": "s390x",
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-s390x-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.28"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-x86_64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.9.28"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-x86_64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.9.28"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-x86_64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.28"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.28/uv-x86_64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.9.28"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-aarch64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.9.27"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-aarch64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.9.27"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-aarch64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.27"
},
{
"arch": "aarch64",
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-aarch64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.9.27"
},
{
"arch": "arm",
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-arm-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.9.27"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-armv7-unknown-linux-gnueabihf.tar.gz",
"platform": "unknown-linux-gnueabihf",
"version": "0.9.27"
},
{
"arch": "armv7",
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-armv7-unknown-linux-musleabihf.tar.gz",
"platform": "unknown-linux-musleabihf",
"version": "0.9.27"
},
{
"arch": "i686",
"artifactName": "uv-i686-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-i686-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.9.27"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-i686-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.27"
},
{
"arch": "i686",
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-i686-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.9.27"
},
{
"arch": "powerpc64",
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-powerpc64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.27"
},
{
"arch": "powerpc64le",
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-powerpc64le-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.27"
},
{
"arch": "riscv64gc",
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-riscv64gc-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.27"
},
{
"arch": "s390x",
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-s390x-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.27"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-x86_64-apple-darwin.tar.gz",
"platform": "apple-darwin",
"version": "0.9.27"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-x86_64-pc-windows-msvc.zip",
"platform": "pc-windows-msvc",
"version": "0.9.27"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-x86_64-unknown-linux-gnu.tar.gz",
"platform": "unknown-linux-gnu",
"version": "0.9.27"
},
{
"arch": "x86_64",
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.27/uv-x86_64-unknown-linux-musl.tar.gz",
"platform": "unknown-linux-musl",
"version": "0.9.27"
},
{ {
"arch": "aarch64", "arch": "aarch64",
"artifactName": "uv-aarch64-apple-darwin.tar.gz", "artifactName": "uv-aarch64-apple-darwin.tar.gz",