mirror of
https://github.com/astral-sh/setup-uv.git
synced 2026-06-23 11:50:04 +00:00
Compare commits
20 Commits
v7.1.5
...
zsol/jj-uq
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
71191068af | ||
|
|
450788bda3 | ||
|
|
9cfd029643 | ||
|
|
dd9d55bc18 | ||
|
|
8512ad0289 | ||
|
|
cc5581700e | ||
|
|
61cb8a9741 | ||
|
|
11050edb83 | ||
|
|
1d22fafd8b | ||
|
|
f4ed82a8ce | ||
|
|
e0409b43c0 | ||
|
|
702b425af1 | ||
|
|
2630c86ac3 | ||
|
|
45cfcb3be5 | ||
|
|
ce0a8994de | ||
|
|
9c8d030b7f | ||
|
|
681c641aba | ||
|
|
2e85713bb0 | ||
|
|
58b6d7b303 | ||
|
|
e8b52af86e |
8
.github/workflows/codeql-analysis.yml
vendored
8
.github/workflows/codeql-analysis.yml
vendored
@@ -41,13 +41,13 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
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@fe4161a26a8629af62121b670040955b330f9af2 # v4.31.6
|
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@fe4161a26a8629af62121b670040955b330f9af2 # v4.31.6
|
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@fe4161a26a8629af62121b670040955b330f9af2 # v4.31.6
|
uses: github/codeql-action/analyze@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
|
||||||
|
|||||||
160
.github/workflows/test.yml
vendored
160
.github/workflows/test.yml
vendored
@@ -21,14 +21,14 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
security-events: write # for zizmor
|
security-events: write # for zizmor
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Actionlint
|
- name: Actionlint
|
||||||
uses: eifinger/actionlint-action@213860089b7cf97d640aa67567898fabeb132746 # v1.9.3
|
uses: eifinger/actionlint-action@213860089b7cf97d640aa67567898fabeb132746 # v1.9.3
|
||||||
- name: Run zizmor
|
- name: Run zizmor
|
||||||
uses: zizmorcore/zizmor-action@e639db99335bc9038abc0e066dfcd72e23d26fb4 # v0.3.0
|
uses: zizmorcore/zizmor-action@e639db99335bc9038abc0e066dfcd72e23d26fb4 # v0.3.0
|
||||||
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install default version
|
- name: Install default version
|
||||||
@@ -296,7 +296,7 @@ jobs:
|
|||||||
test-tilde-expansion-tool-dirs:
|
test-tilde-expansion-tool-dirs:
|
||||||
runs-on: selfhosted-ubuntu-arm64
|
runs-on: selfhosted-ubuntu-arm64
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -321,10 +321,11 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install latest version
|
- name: Install latest version
|
||||||
|
id: setup-uv
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: 3.13.1t
|
python-version: 3.13.1t
|
||||||
@@ -335,6 +336,14 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
shell: bash
|
shell: bash
|
||||||
|
- name: Verify output python-version is correct
|
||||||
|
run: |
|
||||||
|
if [ "$PYTHON_VERSION" != "3.13.1t" ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
PYTHON_VERSION: ${{ steps.setup-uv.outputs.python-version }}
|
||||||
- run: uv sync
|
- run: uv sync
|
||||||
working-directory: __tests__/fixtures/uv-project
|
working-directory: __tests__/fixtures/uv-project
|
||||||
|
|
||||||
@@ -344,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install latest version
|
- name: Install latest version
|
||||||
@@ -381,14 +390,64 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: alpine
|
container: alpine
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install latest version
|
- name: Install latest version
|
||||||
|
id: setup-uv
|
||||||
uses: ./
|
uses: ./
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
- name: Verify cache key contains alpine
|
||||||
|
run: |
|
||||||
|
echo "Cache key: $CACHE_KEY"
|
||||||
|
if echo "$CACHE_KEY" | grep -qv "alpine"; then
|
||||||
|
echo "Cache key does not contain 'alpine'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
shell: sh
|
||||||
|
env:
|
||||||
|
CACHE_KEY: ${{ steps.setup-uv.outputs.cache-key }}
|
||||||
- run: uv sync
|
- run: uv sync
|
||||||
working-directory: __tests__/fixtures/uv-project
|
working-directory: __tests__/fixtures/uv-project
|
||||||
|
|
||||||
|
test-cache-key-os-version:
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- os: ubuntu-22.04
|
||||||
|
expected-os: "ubuntu-22.04"
|
||||||
|
- os: ubuntu-24.04
|
||||||
|
expected-os: "ubuntu-24.04"
|
||||||
|
- os: macos-14
|
||||||
|
expected-os: "macos-14"
|
||||||
|
- os: macos-15
|
||||||
|
expected-os: "macos-15"
|
||||||
|
- os: windows-2022
|
||||||
|
expected-os: "windows-2022"
|
||||||
|
- os: windows-2025
|
||||||
|
expected-os: "windows-2025"
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: Setup uv
|
||||||
|
id: setup-uv
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
- name: Verify cache key contains OS version
|
||||||
|
run: |
|
||||||
|
echo "Cache key: $CACHE_KEY"
|
||||||
|
if [[ "$CACHE_KEY" != *"${{ matrix.expected-os }}"* ]]; then
|
||||||
|
echo "Cache key does not contain expected OS version: ${{ matrix.expected-os }}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
CACHE_KEY: ${{ steps.setup-uv.outputs.cache-key }}
|
||||||
|
|
||||||
test-setup-cache:
|
test-setup-cache:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
@@ -396,7 +455,7 @@ jobs:
|
|||||||
enable-cache: ["true", "false", "auto"]
|
enable-cache: ["true", "false", "auto"]
|
||||||
os: ["ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest"]
|
os: ["ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest"]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -415,7 +474,7 @@ jobs:
|
|||||||
os: ["ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest"]
|
os: ["ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest"]
|
||||||
needs: test-setup-cache
|
needs: test-setup-cache
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Restore with cache
|
- name: Restore with cache
|
||||||
@@ -449,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -465,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Restore with cache
|
- name: Restore with cache
|
||||||
@@ -489,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -506,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Change pyproject.toml
|
- name: Change pyproject.toml
|
||||||
@@ -534,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -550,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Restore with cache
|
- name: Restore with cache
|
||||||
@@ -570,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -585,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Restore with cache
|
- name: Restore with cache
|
||||||
@@ -615,7 +674,7 @@ jobs:
|
|||||||
expected-cache-dir: "/home/ubuntu/.cache/uv"
|
expected-cache-dir: "/home/ubuntu/.cache/uv"
|
||||||
runs-on: ${{ matrix.inputs.os }}
|
runs-on: ${{ matrix.inputs.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -633,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup without cache
|
- name: Setup without cache
|
||||||
@@ -652,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup without cache
|
- name: Setup without cache
|
||||||
@@ -672,7 +731,7 @@ jobs:
|
|||||||
test-setup-cache-local:
|
test-setup-cache-local:
|
||||||
runs-on: selfhosted-ubuntu-arm64
|
runs-on: selfhosted-ubuntu-arm64
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -687,7 +746,7 @@ jobs:
|
|||||||
runs-on: selfhosted-ubuntu-arm64
|
runs-on: selfhosted-ubuntu-arm64
|
||||||
needs: test-setup-cache-local
|
needs: test-setup-cache-local
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Restore with cache
|
- name: Restore with cache
|
||||||
@@ -710,7 +769,7 @@ jobs:
|
|||||||
test-tilde-expansion-cache-local-path:
|
test-tilde-expansion-cache-local-path:
|
||||||
runs-on: selfhosted-ubuntu-arm64
|
runs-on: selfhosted-ubuntu-arm64
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Create cache directory
|
- name: Create cache directory
|
||||||
@@ -726,7 +785,7 @@ jobs:
|
|||||||
test-tilde-expansion-cache-dependency-glob:
|
test-tilde-expansion-cache-dependency-glob:
|
||||||
runs-on: selfhosted-ubuntu-arm64
|
runs-on: selfhosted-ubuntu-arm64
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Create cache directory
|
- name: Create cache directory
|
||||||
@@ -761,7 +820,7 @@ jobs:
|
|||||||
test-no-python-version:
|
test-no-python-version:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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
|
||||||
@@ -776,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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
|
||||||
@@ -795,7 +854,7 @@ jobs:
|
|||||||
test-absolute-path:
|
test-absolute-path:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Create requirements.txt
|
- name: Create requirements.txt
|
||||||
@@ -815,7 +874,7 @@ jobs:
|
|||||||
test-relative-path:
|
test-relative-path:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: mkdir
|
- name: mkdir
|
||||||
@@ -839,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup uv
|
- name: Setup uv
|
||||||
@@ -856,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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
|
||||||
@@ -881,7 +940,7 @@ jobs:
|
|||||||
test-cache-python-installs:
|
test-cache-python-installs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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
|
||||||
@@ -908,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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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
|
||||||
@@ -936,7 +995,7 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
env:
|
env:
|
||||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
CACHE_HIT: ${{ steps.restore.outputs.python-cache-hit }}
|
||||||
- run: uv sync --managed-python
|
- run: uv sync --managed-python
|
||||||
working-directory: __tests__/fixtures/uv-project
|
working-directory: __tests__/fixtures/uv-project
|
||||||
|
|
||||||
@@ -952,7 +1011,7 @@ jobs:
|
|||||||
expected-python-dir: "/home/ubuntu/.local/share/uv/python"
|
expected-python-dir: "/home/ubuntu/.local/share/uv/python"
|
||||||
runs-on: ${{ matrix.inputs.os }}
|
runs-on: ${{ matrix.inputs.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install latest version
|
- name: Install latest version
|
||||||
@@ -971,7 +1030,7 @@ jobs:
|
|||||||
test-act:
|
test-act:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install act
|
- name: Install act
|
||||||
@@ -983,6 +1042,15 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ github.token }}
|
GH_TOKEN: ${{ github.token }}
|
||||||
|
|
||||||
|
validate-typings:
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: Validate typings
|
||||||
|
uses: typesafegithub/github-actions-typing@184d97003b1300f6a10e286eb98c191e416ff02b # v2.2.1
|
||||||
|
|
||||||
all-tests-passed:
|
all-tests-passed:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs:
|
needs:
|
||||||
@@ -1002,6 +1070,7 @@ jobs:
|
|||||||
- test-python-version
|
- test-python-version
|
||||||
- test-activate-environment
|
- test-activate-environment
|
||||||
- test-musl
|
- test-musl
|
||||||
|
- test-cache-key-os-version
|
||||||
- test-cache-local
|
- test-cache-local
|
||||||
- test-cache-local-cache-disabled
|
- test-cache-local-cache-disabled
|
||||||
- test-cache-local-cache-disabled-but-explicit-path
|
- test-cache-local-cache-disabled-but-explicit-path
|
||||||
@@ -1030,6 +1099,7 @@ jobs:
|
|||||||
- test-restore-python-installs
|
- test-restore-python-installs
|
||||||
- test-python-install-dir
|
- test-python-install-dir
|
||||||
- test-act
|
- test-act
|
||||||
|
- validate-typings
|
||||||
if: always()
|
if: always()
|
||||||
steps:
|
steps:
|
||||||
- name: All tests passed
|
- name: All tests passed
|
||||||
|
|||||||
6
.github/workflows/update-known-versions.yml
vendored
6
.github/workflows/update-known-versions.yml
vendored
@@ -15,10 +15,10 @@ jobs:
|
|||||||
contents: write
|
contents: write
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||||
with:
|
with:
|
||||||
persist-credentials: true
|
persist-credentials: true
|
||||||
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.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@84ae59a2cdc2258d6fa0732dd66352dddae2a412 # v7.0.9
|
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:
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
- 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
|
||||||
|
|||||||
@@ -125,6 +125,8 @@ Have a look under [Advanced Configuration](#advanced-configuration) for detailed
|
|||||||
- `uvx-path`: The path to the installed uvx binary.
|
- `uvx-path`: The path to the installed uvx binary.
|
||||||
- `cache-hit`: A boolean value to indicate a cache entry was found.
|
- `cache-hit`: A boolean value to indicate a cache entry was found.
|
||||||
- `venv`: Path to the activated venv if activate-environment is true.
|
- `venv`: Path to the activated venv if activate-environment is true.
|
||||||
|
- `python-version`: The Python version that was set.
|
||||||
|
- `python-cache-hit`: A boolean value to indicate the Python cache entry was found.
|
||||||
|
|
||||||
### Python version
|
### Python version
|
||||||
|
|
||||||
@@ -200,7 +202,8 @@ by name (`uv`).
|
|||||||
With `setup-uv`, you can install a specific version of Python using `uv python install` rather than
|
With `setup-uv`, you can install a specific version of Python using `uv python install` rather than
|
||||||
relying on `actions/setup-python`.
|
relying on `actions/setup-python`.
|
||||||
|
|
||||||
Using `actions/setup-python` can be faster, because GitHub caches the Python versions alongside the runner.
|
Using `actions/setup-python` can be faster (~1s), because GitHub includes several Python versions in the runner image
|
||||||
|
which are available to get activated by `actions/setup-python` without having to download them.
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
|
|||||||
@@ -9,5 +9,5 @@ dependencies = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["hatchling"]
|
requires = ["uv_build>=0.9.22,<0.10.0"]
|
||||||
build-backend = "hatchling.build"
|
build-backend = "uv_build"
|
||||||
|
|||||||
@@ -1,33 +1,9 @@
|
|||||||
version = 1
|
version = 1
|
||||||
requires-python = ">=3.12"
|
revision = 3
|
||||||
|
requires-python = ">=3.8, <=3.9"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruff"
|
name = "old-python-constraint-project"
|
||||||
version = "0.6.2"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/23/f4/279d044f66b79261fd37df76bf72b64471afab5d3b7906a01499c4451910/ruff-0.6.2.tar.gz", hash = "sha256:239ee6beb9e91feb8e0ec384204a763f36cb53fb895a1a364618c6abb076b3be", size = 2460281 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/72/4b/47dd7a69287afb4069fa42c198e899463605460a58120196711bfcf0446b/ruff-0.6.2-py3-none-linux_armv6l.whl", hash = "sha256:5c8cbc6252deb3ea840ad6a20b0f8583caab0c5ef4f9cca21adc5a92b8f79f3c", size = 9695871 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ae/c3/8aac62ac4638c14a740ee76a755a925f2d0d04580ab790a9887accb729f6/ruff-0.6.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:17002fe241e76544448a8e1e6118abecbe8cd10cf68fde635dad480dba594570", size = 9459354 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/2f/cf/77fbd8d4617b9b9c503f9bffb8552c4e3ea1a58dc36975e7a9104ffb0f85/ruff-0.6.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:3dbeac76ed13456f8158b8f4fe087bf87882e645c8e8b606dd17b0b66c2c1158", size = 9163871 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/05/1c/765192bab32b79efbb498b06f0b9dcb3629112b53b8777ae1d19b8209e09/ruff-0.6.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:094600ee88cda325988d3f54e3588c46de5c18dae09d683ace278b11f9d4d534", size = 10096250 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/08/d0/86f3cb0f6934c99f759c232984a5204d67a26745cad2d9edff6248adf7d2/ruff-0.6.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:316d418fe258c036ba05fbf7dfc1f7d3d4096db63431546163b472285668132b", size = 9475376 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/cd/cc/4c8d0e225b559a3fae6092ec310d7150d3b02b4669e9223f783ef64d82c0/ruff-0.6.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d72b8b3abf8a2d51b7b9944a41307d2f442558ccb3859bbd87e6ae9be1694a5d", size = 10295634 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/db/96/d2699cfb1bb5a01c68122af43454c76c31331e1c8a9bd97d653d7c82524b/ruff-0.6.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:2aed7e243be68487aa8982e91c6e260982d00da3f38955873aecd5a9204b1d66", size = 11024941 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8b/a9/6ecd66af8929e0f2a1ed308a4137f3521789f28f0eb97d32c2ca3aa7000c/ruff-0.6.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d371f7fc9cec83497fe7cf5eaf5b76e22a8efce463de5f775a1826197feb9df8", size = 10606894 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/e4/73/2ee4cd19f44992fedac1cc6db9e3d825966072f6dcbd4032f21cbd063170/ruff-0.6.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8f310d63af08f583363dfb844ba8f9417b558199c58a5999215082036d795a1", size = 11552886 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/60/4c/c0f1cd35ce4a93c54a6bb1ee6934a3a205fa02198dd076678193853ceea1/ruff-0.6.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7db6880c53c56addb8638fe444818183385ec85eeada1d48fc5abe045301b2f1", size = 10264945 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c4/89/e45c9359b9cdd4245512ea2b9f2bb128a997feaa5f726fc9e8c7a66afadf/ruff-0.6.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:1175d39faadd9a50718f478d23bfc1d4da5743f1ab56af81a2b6caf0a2394f23", size = 10100007 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/06/74/0bd4e0a7ed5f6908df87892f9bf60a2356c0fd74102d8097298bd9b4f346/ruff-0.6.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:5b939f9c86d51635fe486585389f54582f0d65b8238e08c327c1534844b3bb9a", size = 9559267 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/54/03/3dc6dc9419f276f05805bf888c279e3e0b631284abd548d9e87cebb93aec/ruff-0.6.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d0d62ca91219f906caf9b187dea50d17353f15ec9bb15aae4a606cd697b49b4c", size = 9905304 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/5c/5b/d6a72a6a6bbf097c09de468326ef5fa1c9e7aa5e6e45979bc0d984b0dbe7/ruff-0.6.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:7438a7288f9d67ed3c8ce4d059e67f7ed65e9fe3aa2ab6f5b4b3610e57e3cb56", size = 10341480 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/79/a9/0f2f21fe15ba537c46598f96aa9ae4a3d4b9ec64926664617ca6a8c772f4/ruff-0.6.2-py3-none-win32.whl", hash = "sha256:279d5f7d86696df5f9549b56b9b6a7f6c72961b619022b5b7999b15db392a4da", size = 7961901 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/b0/80/fff12ffe11853d9f4ea3e5221e6dd2e93640a161c05c9579833e09ad40a7/ruff-0.6.2-py3-none-win_amd64.whl", hash = "sha256:d9f3469c7dd43cd22eb1c3fc16926fb8258d50cb1b216658a07be95dd117b0f2", size = 8783320 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/56/91/577cdd64cce5e74d3f8b5ecb93f29566def569c741eb008aed4f331ef821/ruff-0.6.2-py3-none-win_arm64.whl", hash = "sha256:f28fcd2cd0e02bdf739297516d5643a945cc7caf09bd9bcb4d932540a5ea4fa9", size = 8225886 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "uv-project"
|
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
@@ -35,4 +11,30 @@ dependencies = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[package.metadata]
|
[package.metadata]
|
||||||
requires-dist = [{ name = "ruff" }]
|
requires-dist = [{ name = "ruff", specifier = ">=0.6.2" }]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ruff"
|
||||||
|
version = "0.14.10"
|
||||||
|
source = { registry = "https://pypi.org/simple" }
|
||||||
|
sdist = { url = "https://files.pythonhosted.org/packages/57/08/52232a877978dd8f9cf2aeddce3e611b40a63287dfca29b6b8da791f5e8d/ruff-0.14.10.tar.gz", hash = "sha256:9a2e830f075d1a42cd28420d7809ace390832a490ed0966fe373ba288e77aaf4", size = 5859763, upload-time = "2025-12-18T19:28:57.98Z" }
|
||||||
|
wheels = [
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/60/01/933704d69f3f05ee16ef11406b78881733c186fe14b6a46b05cfcaf6d3b2/ruff-0.14.10-py3-none-linux_armv6l.whl", hash = "sha256:7a3ce585f2ade3e1f29ec1b92df13e3da262178df8c8bdf876f48fa0e8316c49", size = 13527080, upload-time = "2025-12-18T19:29:25.642Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/df/58/a0349197a7dfa603ffb7f5b0470391efa79ddc327c1e29c4851e85b09cc5/ruff-0.14.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:674f9be9372907f7257c51f1d4fc902cb7cf014b9980152b802794317941f08f", size = 13797320, upload-time = "2025-12-18T19:29:02.571Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/7b/82/36be59f00a6082e38c23536df4e71cdbc6af8d7c707eade97fcad5c98235/ruff-0.14.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d85713d522348837ef9df8efca33ccb8bd6fcfc86a2cde3ccb4bc9d28a18003d", size = 12918434, upload-time = "2025-12-18T19:28:51.202Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/a6/00/45c62a7f7e34da92a25804f813ebe05c88aa9e0c25e5cb5a7d23dd7450e3/ruff-0.14.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6987ebe0501ae4f4308d7d24e2d0fe3d7a98430f5adfd0f1fead050a740a3a77", size = 13371961, upload-time = "2025-12-18T19:29:04.991Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/40/31/a5906d60f0405f7e57045a70f2d57084a93ca7425f22e1d66904769d1628/ruff-0.14.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:16a01dfb7b9e4eee556fbfd5392806b1b8550c9b4a9f6acd3dbe6812b193c70a", size = 13275629, upload-time = "2025-12-18T19:29:21.381Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/3e/60/61c0087df21894cf9d928dc04bcd4fb10e8b2e8dca7b1a276ba2155b2002/ruff-0.14.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7165d31a925b7a294465fa81be8c12a0e9b60fb02bf177e79067c867e71f8b1f", size = 14029234, upload-time = "2025-12-18T19:29:00.132Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/44/84/77d911bee3b92348b6e5dab5a0c898d87084ea03ac5dc708f46d88407def/ruff-0.14.10-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c561695675b972effb0c0a45db233f2c816ff3da8dcfbe7dfc7eed625f218935", size = 15449890, upload-time = "2025-12-18T19:28:53.573Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/e9/36/480206eaefa24a7ec321582dda580443a8f0671fdbf6b1c80e9c3e93a16a/ruff-0.14.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4bb98fcbbc61725968893682fd4df8966a34611239c9fd07a1f6a07e7103d08e", size = 15123172, upload-time = "2025-12-18T19:29:23.453Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/5c/38/68e414156015ba80cef5473d57919d27dfb62ec804b96180bafdeaf0e090/ruff-0.14.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f24b47993a9d8cb858429e97bdf8544c78029f09b520af615c1d261bf827001d", size = 14460260, upload-time = "2025-12-18T19:29:27.808Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/b3/19/9e050c0dca8aba824d67cc0db69fb459c28d8cd3f6855b1405b3f29cc91d/ruff-0.14.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59aabd2e2c4fd614d2862e7939c34a532c04f1084476d6833dddef4afab87e9f", size = 14229978, upload-time = "2025-12-18T19:29:11.32Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/51/eb/e8dd1dd6e05b9e695aa9dd420f4577debdd0f87a5ff2fedda33c09e9be8c/ruff-0.14.10-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:213db2b2e44be8625002dbea33bb9c60c66ea2c07c084a00d55732689d697a7f", size = 14338036, upload-time = "2025-12-18T19:29:09.184Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/6a/12/f3e3a505db7c19303b70af370d137795fcfec136d670d5de5391e295c134/ruff-0.14.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b914c40ab64865a17a9a5b67911d14df72346a634527240039eb3bd650e5979d", size = 13264051, upload-time = "2025-12-18T19:29:13.431Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/08/64/8c3a47eaccfef8ac20e0484e68e0772013eb85802f8a9f7603ca751eb166/ruff-0.14.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:1484983559f026788e3a5c07c81ef7d1e97c1c78ed03041a18f75df104c45405", size = 13283998, upload-time = "2025-12-18T19:29:06.994Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/12/84/534a5506f4074e5cc0529e5cd96cfc01bb480e460c7edf5af70d2bcae55e/ruff-0.14.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:c70427132db492d25f982fffc8d6c7535cc2fd2c83fc8888f05caaa248521e60", size = 13601891, upload-time = "2025-12-18T19:28:55.811Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/0d/1e/14c916087d8598917dbad9b2921d340f7884824ad6e9c55de948a93b106d/ruff-0.14.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:5bcf45b681e9f1ee6445d317ce1fa9d6cba9a6049542d1c3d5b5958986be8830", size = 14336660, upload-time = "2025-12-18T19:29:16.531Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/f2/1c/d7b67ab43f30013b47c12b42d1acd354c195351a3f7a1d67f59e54227ede/ruff-0.14.10-py3-none-win32.whl", hash = "sha256:104c49fc7ab73f3f3a758039adea978869a918f31b73280db175b43a2d9b51d6", size = 13196187, upload-time = "2025-12-18T19:29:19.006Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/fb/9c/896c862e13886fae2af961bef3e6312db9ebc6adc2b156fe95e615dee8c1/ruff-0.14.10-py3-none-win_amd64.whl", hash = "sha256:466297bd73638c6bdf06485683e812db1c00c7ac96d4ddd0294a338c62fdc154", size = 14661283, upload-time = "2025-12-18T19:29:30.16Z" },
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/74/31/b0e29d572670dca3674eeee78e418f20bdf97fa8aa9ea71380885e175ca0/ruff-0.14.10-py3-none-win_arm64.whl", hash = "sha256:e51d046cf6dda98a4633b8a8a771451107413b0f07183b2bef03f075599e44e6", size = 13729839, upload-time = "2025-12-18T19:28:48.636Z" },
|
||||||
|
]
|
||||||
|
|||||||
75
action-types.yml
Normal file
75
action-types.yml
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
# See https://github.com/typesafegithub/github-actions-typing
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
version:
|
||||||
|
type: string
|
||||||
|
version-file:
|
||||||
|
type: string
|
||||||
|
python-version:
|
||||||
|
type: string
|
||||||
|
activate-environment:
|
||||||
|
type: boolean
|
||||||
|
working-directory:
|
||||||
|
type: string
|
||||||
|
checksum:
|
||||||
|
type: string
|
||||||
|
github-token:
|
||||||
|
type: string
|
||||||
|
enable-cache:
|
||||||
|
type: enum
|
||||||
|
allowed-values:
|
||||||
|
- "true"
|
||||||
|
- "false"
|
||||||
|
- auto
|
||||||
|
cache-dependency-glob:
|
||||||
|
type: list
|
||||||
|
separator: "\n"
|
||||||
|
list-item:
|
||||||
|
type: string
|
||||||
|
restore-cache:
|
||||||
|
type: boolean
|
||||||
|
save-cache:
|
||||||
|
type: boolean
|
||||||
|
cache-suffix:
|
||||||
|
type: string
|
||||||
|
cache-local-path:
|
||||||
|
type: string
|
||||||
|
prune-cache:
|
||||||
|
type: boolean
|
||||||
|
cache-python:
|
||||||
|
type: boolean
|
||||||
|
ignore-nothing-to-cache:
|
||||||
|
type: boolean
|
||||||
|
ignore-empty-workdir:
|
||||||
|
type: boolean
|
||||||
|
tool-dir:
|
||||||
|
type: string
|
||||||
|
tool-bin-dir:
|
||||||
|
type: string
|
||||||
|
manifest-file:
|
||||||
|
type: string
|
||||||
|
add-problem-matchers:
|
||||||
|
type: boolean
|
||||||
|
resolution-strategy:
|
||||||
|
type: enum
|
||||||
|
allowed-values:
|
||||||
|
- highest
|
||||||
|
- lowest
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
uv-version:
|
||||||
|
type: string
|
||||||
|
uv-path:
|
||||||
|
type: string
|
||||||
|
uvx-path:
|
||||||
|
type: string
|
||||||
|
cache-hit:
|
||||||
|
type: boolean
|
||||||
|
cache-key:
|
||||||
|
type: string
|
||||||
|
venv:
|
||||||
|
type: string
|
||||||
|
python-version:
|
||||||
|
type: string
|
||||||
|
python-cache-hit:
|
||||||
|
type: boolean
|
||||||
@@ -89,8 +89,14 @@ outputs:
|
|||||||
description: "The path to the installed uvx binary."
|
description: "The path to the installed uvx binary."
|
||||||
cache-hit:
|
cache-hit:
|
||||||
description: "A boolean value to indicate a cache entry was found"
|
description: "A boolean value to indicate a cache entry was found"
|
||||||
|
cache-key:
|
||||||
|
description: "The cache key used for storing/restoring the cache"
|
||||||
venv:
|
venv:
|
||||||
description: "Path to the activated venv if activate-environment is true"
|
description: "Path to the activated venv if activate-environment is true"
|
||||||
|
python-version:
|
||||||
|
description: "The Python version that was set."
|
||||||
|
python-cache-hit:
|
||||||
|
description: "A boolean value to indicate the Python cache entry was found"
|
||||||
runs:
|
runs:
|
||||||
using: "node24"
|
using: "node24"
|
||||||
main: "dist/setup/index.js"
|
main: "dist/setup/index.js"
|
||||||
|
|||||||
5350
dist/save-cache/index.js
generated
vendored
5350
dist/save-cache/index.js
generated
vendored
@@ -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 });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
@@ -90599,45 +90599,52 @@ var __importStar = (this && this.__importStar) || (function () {
|
|||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.STATE_CACHE_MATCHED_KEY = exports.STATE_CACHE_KEY = void 0;
|
exports.STATE_PYTHON_CACHE_MATCHED_KEY = exports.STATE_CACHE_MATCHED_KEY = exports.STATE_CACHE_KEY = void 0;
|
||||||
exports.restoreCache = restoreCache;
|
exports.restoreCache = restoreCache;
|
||||||
const cache = __importStar(__nccwpck_require__(5116));
|
const cache = __importStar(__nccwpck_require__(5116));
|
||||||
const core = __importStar(__nccwpck_require__(7484));
|
const core = __importStar(__nccwpck_require__(7484));
|
||||||
const exec = __importStar(__nccwpck_require__(5236));
|
|
||||||
const hash_files_1 = __nccwpck_require__(9660);
|
const hash_files_1 = __nccwpck_require__(9660);
|
||||||
const inputs_1 = __nccwpck_require__(9612);
|
const inputs_1 = __nccwpck_require__(9612);
|
||||||
const platforms_1 = __nccwpck_require__(8361);
|
const platforms_1 = __nccwpck_require__(8361);
|
||||||
exports.STATE_CACHE_KEY = "cache-key";
|
exports.STATE_CACHE_KEY = "cache-key";
|
||||||
exports.STATE_CACHE_MATCHED_KEY = "cache-matched-key";
|
exports.STATE_CACHE_MATCHED_KEY = "cache-matched-key";
|
||||||
const CACHE_VERSION = "1";
|
exports.STATE_PYTHON_CACHE_MATCHED_KEY = "python-cache-matched-key";
|
||||||
async function restoreCache() {
|
const CACHE_VERSION = "2";
|
||||||
const cacheKey = await computeKeys();
|
async function restoreCache(pythonVersion) {
|
||||||
|
const cacheKey = await computeKeys(pythonVersion);
|
||||||
core.saveState(exports.STATE_CACHE_KEY, cacheKey);
|
core.saveState(exports.STATE_CACHE_KEY, cacheKey);
|
||||||
|
core.setOutput("cache-key", cacheKey);
|
||||||
if (!inputs_1.restoreCache) {
|
if (!inputs_1.restoreCache) {
|
||||||
core.info("restore-cache is false. Skipping restore cache step.");
|
core.info("restore-cache is false. Skipping restore cache step.");
|
||||||
|
core.setOutput("python-cache-hit", false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let matchedKey;
|
|
||||||
core.info(`Trying to restore uv cache from GitHub Actions cache with key: ${cacheKey}`);
|
|
||||||
if (inputs_1.cacheLocalPath === undefined) {
|
if (inputs_1.cacheLocalPath === undefined) {
|
||||||
throw new Error("cache-local-path is not set. Cannot restore cache without a valid cache path.");
|
throw new Error("cache-local-path is not set. Cannot restore cache without a valid cache path.");
|
||||||
}
|
}
|
||||||
const cachePaths = [inputs_1.cacheLocalPath.path];
|
await restoreCacheFromKey(cacheKey, inputs_1.cacheLocalPath.path, exports.STATE_CACHE_MATCHED_KEY, "cache-hit");
|
||||||
if (inputs_1.cachePython) {
|
if (inputs_1.cachePython) {
|
||||||
cachePaths.push(inputs_1.pythonDir);
|
await restoreCacheFromKey(`${cacheKey}-python`, inputs_1.pythonDir, exports.STATE_PYTHON_CACHE_MATCHED_KEY, "python-cache-hit");
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
core.setOutput("python-cache-hit", false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
async function restoreCacheFromKey(cacheKey, cachePath, stateKey, outputKey) {
|
||||||
|
core.info(`Trying to restore cache from GitHub Actions cache with key: ${cacheKey}`);
|
||||||
|
let matchedKey;
|
||||||
try {
|
try {
|
||||||
matchedKey = await cache.restoreCache(cachePaths, cacheKey);
|
matchedKey = await cache.restoreCache([cachePath], cacheKey);
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
const message = err.message;
|
const message = err.message;
|
||||||
core.warning(message);
|
core.warning(message);
|
||||||
core.setOutput("cache-hit", false);
|
core.setOutput(outputKey, false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
handleMatchResult(matchedKey, cacheKey);
|
handleMatchResult(matchedKey, cacheKey, stateKey, outputKey);
|
||||||
}
|
}
|
||||||
async function computeKeys() {
|
async function computeKeys(pythonVersion) {
|
||||||
let cacheDependencyPathHash = "-";
|
let cacheDependencyPathHash = "-";
|
||||||
if (inputs_1.cacheDependencyGlob !== "") {
|
if (inputs_1.cacheDependencyGlob !== "") {
|
||||||
core.info(`Searching files using cache dependency glob: ${inputs_1.cacheDependencyGlob.split("\n").join(",")}`);
|
core.info(`Searching files using cache dependency glob: ${inputs_1.cacheDependencyGlob.split("\n").join(",")}`);
|
||||||
@@ -90650,49 +90657,22 @@ async function computeKeys() {
|
|||||||
cacheDependencyPathHash = "-no-dependency-glob";
|
cacheDependencyPathHash = "-no-dependency-glob";
|
||||||
}
|
}
|
||||||
const suffix = inputs_1.cacheSuffix ? `-${inputs_1.cacheSuffix}` : "";
|
const suffix = inputs_1.cacheSuffix ? `-${inputs_1.cacheSuffix}` : "";
|
||||||
const pythonVersion = await getPythonVersion();
|
const version = pythonVersion ?? "unknown";
|
||||||
const platform = await (0, platforms_1.getPlatform)();
|
const platform = await (0, platforms_1.getPlatform)();
|
||||||
|
const osNameVersion = (0, platforms_1.getOSNameVersion)();
|
||||||
const pruned = inputs_1.pruneCache ? "-pruned" : "";
|
const pruned = inputs_1.pruneCache ? "-pruned" : "";
|
||||||
const python = inputs_1.cachePython ? "-py" : "";
|
const python = inputs_1.cachePython ? "-py" : "";
|
||||||
return `setup-uv-${CACHE_VERSION}-${(0, platforms_1.getArch)()}-${platform}-${pythonVersion}${pruned}${python}${cacheDependencyPathHash}${suffix}`;
|
return `setup-uv-${CACHE_VERSION}-${(0, platforms_1.getArch)()}-${platform}-${osNameVersion}-${version}${pruned}${python}${cacheDependencyPathHash}${suffix}`;
|
||||||
}
|
}
|
||||||
async function getPythonVersion() {
|
function handleMatchResult(matchedKey, primaryKey, stateKey, outputKey) {
|
||||||
if (inputs_1.pythonVersion !== "") {
|
|
||||||
return inputs_1.pythonVersion;
|
|
||||||
}
|
|
||||||
let output = "";
|
|
||||||
const options = {
|
|
||||||
listeners: {
|
|
||||||
stdout: (data) => {
|
|
||||||
output += data.toString();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
silent: !core.isDebug(),
|
|
||||||
};
|
|
||||||
try {
|
|
||||||
const execArgs = ["python", "find", "--directory", inputs_1.workingDirectory];
|
|
||||||
await exec.exec("uv", execArgs, options);
|
|
||||||
const pythonPath = output.trim();
|
|
||||||
output = "";
|
|
||||||
await exec.exec(pythonPath, ["--version"], options);
|
|
||||||
// output is like "Python 3.8.10"
|
|
||||||
return output.split(" ")[1].trim();
|
|
||||||
}
|
|
||||||
catch (error) {
|
|
||||||
const err = error;
|
|
||||||
core.debug(`Failed to get python version from uv. Error: ${err.message}`);
|
|
||||||
return "unknown";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function handleMatchResult(matchedKey, primaryKey) {
|
|
||||||
if (!matchedKey) {
|
if (!matchedKey) {
|
||||||
core.info(`No GitHub Actions cache found for key: ${primaryKey}`);
|
core.info(`No GitHub Actions cache found for key: ${primaryKey}`);
|
||||||
core.setOutput("cache-hit", false);
|
core.setOutput(outputKey, false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
core.saveState(exports.STATE_CACHE_MATCHED_KEY, matchedKey);
|
core.saveState(stateKey, matchedKey);
|
||||||
core.info(`uv cache restored from GitHub Actions cache with key: ${matchedKey}`);
|
core.info(`cache restored from GitHub Actions cache with key: ${matchedKey}`);
|
||||||
core.setOutput("cache-hit", true);
|
core.setOutput(outputKey, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -90866,46 +90846,17 @@ async function saveCache() {
|
|||||||
}
|
}
|
||||||
if (matchedKey === cacheKey) {
|
if (matchedKey === cacheKey) {
|
||||||
core.info(`Cache hit occurred on key ${cacheKey}, not saving cache.`);
|
core.info(`Cache hit occurred on key ${cacheKey}, not saving cache.`);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
if (inputs_1.pruneCache) {
|
else {
|
||||||
await pruneCache();
|
if (inputs_1.pruneCache) {
|
||||||
|
await pruneCache();
|
||||||
|
}
|
||||||
|
const actualCachePath = getUvCachePath();
|
||||||
|
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.cacheLocalPath === undefined) {
|
|
||||||
throw new Error("cache-local-path is not set. Cannot save cache without a valid cache path.");
|
|
||||||
}
|
|
||||||
let actualCachePath = inputs_1.cacheLocalPath.path;
|
|
||||||
if (process.env.UV_CACHE_DIR &&
|
|
||||||
process.env.UV_CACHE_DIR !== inputs_1.cacheLocalPath.path) {
|
|
||||||
core.warning(`The environment variable UV_CACHE_DIR has been changed to "${process.env.UV_CACHE_DIR}", by an action or step running after astral-sh/setup-uv. This can lead to unexpected behavior. If you expected this to happen set the cache-local-path input to "${process.env.UV_CACHE_DIR}" instead of "${inputs_1.cacheLocalPath.path}".`);
|
|
||||||
actualCachePath = process.env.UV_CACHE_DIR;
|
|
||||||
}
|
|
||||||
core.info(`Saving cache path: ${actualCachePath}`);
|
|
||||||
if (!fs.existsSync(actualCachePath) && !inputs_1.ignoreNothingToCache) {
|
|
||||||
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.`);
|
|
||||||
}
|
|
||||||
const cachePaths = [actualCachePath];
|
|
||||||
if (inputs_1.cachePython) {
|
if (inputs_1.cachePython) {
|
||||||
core.info(`Including Python cache path: ${inputs_1.pythonDir}`);
|
const pythonCacheKey = `${cacheKey}-python`;
|
||||||
if (!fs.existsSync(inputs_1.pythonDir) && !inputs_1.ignoreNothingToCache) {
|
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.`);
|
||||||
throw new Error(`Python cache path ${inputs_1.pythonDir} 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.`);
|
|
||||||
}
|
|
||||||
cachePaths.push(inputs_1.pythonDir);
|
|
||||||
}
|
|
||||||
core.info(`Final cache paths: ${cachePaths.join(", ")}`);
|
|
||||||
try {
|
|
||||||
await cache.saveCache(cachePaths, cacheKey);
|
|
||||||
core.info(`cache saved with the 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 paths were found. Ignoring because ignore-nothing-to-save is enabled.");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
async function pruneCache() {
|
async function pruneCache() {
|
||||||
@@ -90921,6 +90872,42 @@ async function pruneCache() {
|
|||||||
const uvPath = core.getState(constants_1.STATE_UV_PATH);
|
const uvPath = core.getState(constants_1.STATE_UV_PATH);
|
||||||
await exec.exec(uvPath, execArgs, options);
|
await exec.exec(uvPath, execArgs, options);
|
||||||
}
|
}
|
||||||
|
function getUvCachePath() {
|
||||||
|
if (inputs_1.cacheLocalPath === undefined) {
|
||||||
|
throw new Error("cache-local-path is not set. Cannot save cache without a valid cache path.");
|
||||||
|
}
|
||||||
|
if (process.env.UV_CACHE_DIR &&
|
||||||
|
process.env.UV_CACHE_DIR !== inputs_1.cacheLocalPath.path) {
|
||||||
|
core.warning(`The environment variable UV_CACHE_DIR has been changed to "${process.env.UV_CACHE_DIR}", by an action or step running after astral-sh/setup-uv. This can lead to unexpected behavior. If you expected this to happen set the cache-local-path input to "${process.env.UV_CACHE_DIR}" instead of "${inputs_1.cacheLocalPath.path}".`);
|
||||||
|
return process.env.UV_CACHE_DIR;
|
||||||
|
}
|
||||||
|
return inputs_1.cacheLocalPath.path;
|
||||||
|
}
|
||||||
|
async function saveCacheToKey(cacheKey, cachePath, stateKey, cacheName, pathNotExistErrorMessage) {
|
||||||
|
const matchedKey = core.getState(stateKey);
|
||||||
|
if (matchedKey === cacheKey) {
|
||||||
|
core.info(`${cacheName} hit occurred on key ${cacheKey}, not saving cache.`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
core.info(`Including ${cacheName} path: ${cachePath}`);
|
||||||
|
if (!fs.existsSync(cachePath) && !inputs_1.ignoreNothingToCache) {
|
||||||
|
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();
|
||||||
|
|
||||||
|
|
||||||
@@ -91182,7 +91169,7 @@ function getCacheDirFromConfig() {
|
|||||||
}
|
}
|
||||||
function getUvPythonDir() {
|
function getUvPythonDir() {
|
||||||
if (process.env.UV_PYTHON_INSTALL_DIR !== undefined) {
|
if (process.env.UV_PYTHON_INSTALL_DIR !== undefined) {
|
||||||
core.info(`UV_PYTHON_INSTALL_DIR is already set to ${process.env.UV_PYTHON_INSTALL_DIR}`);
|
core.info(`UV_PYTHON_INSTALL_DIR is already set to ${process.env.UV_PYTHON_INSTALL_DIR}`);
|
||||||
return process.env.UV_PYTHON_INSTALL_DIR;
|
return process.env.UV_PYTHON_INSTALL_DIR;
|
||||||
}
|
}
|
||||||
if (process.env.RUNNER_ENVIRONMENT !== "github-hosted") {
|
if (process.env.RUNNER_ENVIRONMENT !== "github-hosted") {
|
||||||
@@ -91282,9 +91269,15 @@ var __importStar = (this && this.__importStar) || (function () {
|
|||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.getArch = getArch;
|
exports.getArch = getArch;
|
||||||
exports.getPlatform = getPlatform;
|
exports.getPlatform = getPlatform;
|
||||||
|
exports.getOSNameVersion = getOSNameVersion;
|
||||||
|
const node_fs_1 = __importDefault(__nccwpck_require__(3024));
|
||||||
|
const node_os_1 = __importDefault(__nccwpck_require__(8161));
|
||||||
const core = __importStar(__nccwpck_require__(7484));
|
const core = __importStar(__nccwpck_require__(7484));
|
||||||
const exec = __importStar(__nccwpck_require__(5236));
|
const exec = __importStar(__nccwpck_require__(5236));
|
||||||
function getArch() {
|
function getArch() {
|
||||||
@@ -91342,6 +91335,63 @@ async function isMuslOs() {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Returns OS name and version for cache key differentiation.
|
||||||
|
* Examples: "ubuntu-22.04", "macos-14", "windows-2022"
|
||||||
|
* Throws if OS detection fails.
|
||||||
|
*/
|
||||||
|
function getOSNameVersion() {
|
||||||
|
const platform = process.platform;
|
||||||
|
if (platform === "linux") {
|
||||||
|
return getLinuxOSNameVersion();
|
||||||
|
}
|
||||||
|
if (platform === "darwin") {
|
||||||
|
return getMacOSNameVersion();
|
||||||
|
}
|
||||||
|
if (platform === "win32") {
|
||||||
|
return getWindowsNameVersion();
|
||||||
|
}
|
||||||
|
throw new Error(`Unsupported platform: ${platform}`);
|
||||||
|
}
|
||||||
|
function getLinuxOSNameVersion() {
|
||||||
|
const files = ["/etc/os-release", "/usr/lib/os-release"];
|
||||||
|
for (const file of files) {
|
||||||
|
try {
|
||||||
|
const content = node_fs_1.default.readFileSync(file, "utf8");
|
||||||
|
const id = parseOsReleaseValue(content, "ID");
|
||||||
|
const versionId = parseOsReleaseValue(content, "VERSION_ID");
|
||||||
|
if (id && versionId) {
|
||||||
|
return `${id}-${versionId}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
// Try next file
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new Error("Failed to determine Linux distribution. " +
|
||||||
|
"Could not read /etc/os-release or /usr/lib/os-release");
|
||||||
|
}
|
||||||
|
function parseOsReleaseValue(content, key) {
|
||||||
|
const regex = new RegExp(`^${key}=["']?([^"'\\n]*)["']?$`, "m");
|
||||||
|
const match = content.match(regex);
|
||||||
|
return match?.[1];
|
||||||
|
}
|
||||||
|
function getMacOSNameVersion() {
|
||||||
|
const darwinVersion = Number.parseInt(node_os_1.default.release().split(".")[0], 10);
|
||||||
|
if (Number.isNaN(darwinVersion)) {
|
||||||
|
throw new Error(`Failed to parse macOS version from: ${node_os_1.default.release()}`);
|
||||||
|
}
|
||||||
|
const macosVersion = darwinVersion - 9;
|
||||||
|
return `macos-${macosVersion}`;
|
||||||
|
}
|
||||||
|
function getWindowsNameVersion() {
|
||||||
|
const version = node_os_1.default.version();
|
||||||
|
const match = version.match(/Windows(?: Server)? (\d+)/);
|
||||||
|
if (!match) {
|
||||||
|
throw new Error(`Failed to parse Windows version from: ${version}`);
|
||||||
|
}
|
||||||
|
return `windows-${match[1]}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
@@ -91482,6 +91532,14 @@ module.exports = require("node:fs");
|
|||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 8161:
|
||||||
|
/***/ ((module) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
module.exports = require("node:os");
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
/***/ 6760:
|
/***/ 6760:
|
||||||
/***/ ((module) => {
|
/***/ ((module) => {
|
||||||
|
|
||||||
|
|||||||
9805
dist/setup/index.js
generated
vendored
9805
dist/setup/index.js
generated
vendored
File diff suppressed because it is too large
Load Diff
182
dist/update-known-versions/index.js
generated
vendored
182
dist/update-known-versions/index.js
generated
vendored
@@ -28196,6 +28196,168 @@ 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.9.26": "fcf0a9ea6599c6ae28a4c854ac6da76f2c889354d7c36ce136ef071f7ab9721f",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.26": "79e1398ec98681b1b0494ed3485b0f4565e98a7db109a3f205d0fcdc6a1992f7",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.26": "f71040c59798f79c44c08a7a1c1af7de95a8d334ea924b47b67ad6b9632be270",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.26": "ba8698c36c00c22efed4bd3506339b03c95604d001f02eaf6fbc814c9224d801",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.26": "8baa850e6f7a4f8edeef411891780161e95682bf291c85405fdc331925c425c2",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.26": "f9cf9806b3bd434b4aca5de1a8412502a29bcbc908848cdea18e32480964ab79",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.26": "881df52998da192f0609be37abe445ab0d89f28daceecb171ea8a14088153aee",
|
||||||
|
"i686-pc-windows-msvc-0.9.26": "2fa5e36d7dc3053962a95a2583b2bcc19aab2ec6c5d4c887cca58de819cf77dd",
|
||||||
|
"i686-unknown-linux-gnu-0.9.26": "03548a2abd1d604724c9d65184b506d3eafef1b0a7d8cea974a083f5f9c9496f",
|
||||||
|
"i686-unknown-linux-musl-0.9.26": "5208601b9baee1a04a604f441bd94a1ab91b511f142b27729b073f4286994f8f",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.26": "6ac6baa2dd7db742ff58a2d54e3fc09693e69c878666bcacf9d49bc58decc98a",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.26": "1a7fbd268b7520e03747022f879113545a5bd71cad02e9cbabd591b268b5a36c",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.26": "9f202ad04cc398dc77a6efe20ea91ec044ad66e1f7a60777e6efd20a357f479a",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.26": "f8e6b8f1264821add1ea21d592b4522300401f44ac4124fba9fea6874fd79797",
|
||||||
|
"x86_64-apple-darwin-0.9.26": "171eb8c518313e157c5b4cec7b4f743bc6bab1bd23e09b646679a02d096a047f",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.26": "eb02fd95d8e0eed462b4a67ecdd320d865b38c560bffcda9a0b87ec944bdf036",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.26": "30ccbf0a66dc8727a02b0e245c583ee970bdafecf3a443c1686e1b30ec4939e8",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.26": "708b752876aeeb753257e1d55470569789e465684c1d3bc1760db26360b6c28b",
|
||||||
|
"aarch64-apple-darwin-0.9.25": "606b3c6949d971709f2526fa0d9f0fd23ccf60e09f117999b406b424af18a6a6",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.25": "6a4c2a753a94d9639725b435f5d1a65bfa25cd196d448ad60841f5fe81ef0052",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.25": "a8f1d71a42c4470251a880348b2d28d530018693324175084fa1749d267c98c6",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.25": "11cddffc61826e3b7af02db37bc3ed8e9e6747dad328d45c8b02f89408afbf75",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.25": "52f3a96605a7873ec44bb84c33ee08e717df61136fec121f715871cae5b779ec",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.25": "7ae274742a5b2398bd75f9075536c7f0b3f99ebc8c6588c37e3bfcd9cc9d781d",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.25": "77220a539dfffe576cdc9b9e9ab5432c07dd1b63915c859c227883af7ba00538",
|
||||||
|
"i686-pc-windows-msvc-0.9.25": "55dbf32074a76e029410620e7e3fbef9762799c7dfcf539b098ccc0a64cac9a3",
|
||||||
|
"i686-unknown-linux-gnu-0.9.25": "b9dae29f4e37bc89e69836e59169a51d8cac4da118b7548a20b2269b19c94cad",
|
||||||
|
"i686-unknown-linux-musl-0.9.25": "a84a159856a0227c273e86594d9cf8fbf84c56bd4eeeb9a665c946304c49dbec",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.25": "37bc519ebe5e4efb12fd155eb94512547a874f0e41251203b49d715f75eb5a20",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.25": "a01a273b5cd64ece96d4589afbacaf5e99a0695f37ebe9a72fd6b2f7cf0a7071",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.25": "9d9692f1bd5ff6d9db2c4bffc4ceeb8d8746ae03ddeca0b24a0f8fc9ea81b911",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.25": "92d5e4504ef83f421a841381678f871bf2a8821a69d3374dd638e2014d4762ab",
|
||||||
|
"x86_64-apple-darwin-0.9.25": "4982dfff14b3548bc85d0fa0abec6ab8ae62836b218bf1223741ba1392ef93bf",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.25": "d63f8e59cf76bcce9cb8a3eac6c1a89adce0f89a29bacca978c9bf842f419277",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.25": "fa1f4abfe101d43e820342210c3c6854028703770f81e95b119ed1e65ec81b35",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.25": "700776c376ce36ed5b731fcd699e141d897551f5111907987b63897e0c1ad797",
|
||||||
|
"aarch64-apple-darwin-0.9.24": "89661d9a16682197086df54bb43d0b03e58e23d4d9360fc8c6c0166f2828fd71",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.24": "40ceb66af2667fc9b4d30a65ad8b8795d4effc39a44019b4218ad03f8f1d5a14",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.24": "9b291a1a4f2fefc430e4fc49c00cb93eb448d41c5c79edf45211ceffedde3334",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.24": "b16359904ede857b90b68168f10b0f6bf500858df9bed4e7156dbc59fd3f0747",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.24": "b343d7f49ea5c0982c9696cbc5c7f96d7053cf8f9c7383a58d6c0c44fbeb6422",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.24": "8d05b55fe2108ecab3995c2b656679a72c543fd9dc72eeb3a525106a709cfdcb",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.24": "788d2bee1dfdb57a462f2a5c4e3d6e8c68ee9f9f1a938bdcdc00fa9e5edeaeec",
|
||||||
|
"i686-pc-windows-msvc-0.9.24": "b49265a713cb3f874bcb373572095993d3098ab77cd2665483f53b24b788e5e9",
|
||||||
|
"i686-unknown-linux-gnu-0.9.24": "940b8985c4d464c7cc69e40b17bf09d840b980028e1d82a3fb8dd007a737f29e",
|
||||||
|
"i686-unknown-linux-musl-0.9.24": "4ffe6f377b7d68904d8d882af8adc85f2fa1bbccd26151785ff961adb67f2a99",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.24": "1fbaff65544a2c36bbd8992e2abe6c50179401745dc00b5e12bded89794056a4",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.24": "57ea84430ccf49f97184d9ee21102b250214fc6e6af4a87eefaaf8bb7c9c2b9a",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.24": "81a884380f0ee954afd968140aaa55df19f2bee30d74f3c0c94a11d2265bb388",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.24": "3da41f22f78f27a7764e303b07c68f5716f748128327c7d3d72f11c6b81b6c78",
|
||||||
|
"x86_64-apple-darwin-0.9.24": "fda9b3203cce6ec3a37177440c33c4c1963c4957fff17e2820c60ab6ccd625da",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.24": "cf9d6fa12017199d19c6f9a8f7f55811c8c04d70681b8cb6d89ffb179f08cf1f",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.24": "fb13ad85106da6b21dd16613afca910994446fe94a78ee0b5bed9c75cd066078",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.24": "cf307aa4271038daa334ca64e75aa40c0c085ce6fa0c0e6f21e41a2b62c7904d",
|
||||||
|
"aarch64-apple-darwin-0.9.23": "3aae069424778d13ef45ebd2ec906c66ab10e459e7b33341a64cd371a3d70998",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.23": "dfdb23dbfa6c89847e4163f0b3b683de889df7d9bdf95a3909dfbc6430106304",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.23": "d60b0b2aee79f9d83897615fed427bee1ea4ebcb2f15b48dd522319ecdb3de91",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.23": "ee987d943427ee24c1d3af79c7ad676950c9ad634e60a4d07e328d8a54fff92f",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.23": "1950c235e76e007f75d30903dc5da6747a344c72a1608123feff720c134ecbfe",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.23": "a7104ab491a0c2f0c58760bcb9a13cfb64c899e02a7b747c4d11da114b3f9114",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.23": "c5d494337a5ca86ad83d6a887634fda3f8392560799e4236a44d76f8e27621b6",
|
||||||
|
"i686-pc-windows-msvc-0.9.23": "94292f02b7484616bb3cd7361411540a5a52e952d149eb6faeec610b6657015d",
|
||||||
|
"i686-unknown-linux-gnu-0.9.23": "627627174d31e6fa270e91c7b2988558e4b18b86cc31de9222b6cf3b7354e9b7",
|
||||||
|
"i686-unknown-linux-musl-0.9.23": "5f65a0eb1f9067a4f5149275faba3bcb3af94dd68fbce7cd9e93ba86b5bc59c3",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.23": "69e2925397d0e781e8525ad0fd22896a114ffa02f5055e7a360e4dda3796c24e",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.23": "fb3ad2cb1a19f1bb4785580dc71837161147beab134fdc3eb4e8ccda577db1e0",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.23": "0d1d9300e2df3155b0d0b071c292fb27f8213d91854decdfb27c293397dc8e0e",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.23": "7d0b411a365b0cd8fad2b336c259743e7381676654adfbdb4f887b4136820cb8",
|
||||||
|
"x86_64-apple-darwin-0.9.23": "b5bbfbd5d8c7effa24b505365ae306116fdac58880bc9b024ec4c89435d57728",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.23": "bb6d2987906b27d3031640c4a909b6f7c134cd29674c41ef545c6e7d57dd6700",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.23": "b7bd7d9b9c9c34327f1118f99fe8c298252787ea35f7b345b8bf639377f63217",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.23": "a824a0f5f7aa67b668f54756284d458a25dea332da6e558d303890d134cc06d1",
|
||||||
|
"aarch64-apple-darwin-0.9.22": "4bfc6dacc9bcc9e433a9214a658495ca082b94fd607949b6745a955f34ccbc3c",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.22": "19b848523d5802279702f5df4ade6d45f17d111cf9e368883d4f6560f0426d49",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.22": "2f8716c407d5da21b8a3e8609ed358147216aaab28b96b1d6d7f48e9bcc6254e",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.22": "a400eaede62557af86bed6c5252a101aa1efd596698bb10c9400334fcc2847ec",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.22": "23e0770034e31aaf47b0c84156b2e5ec7638ca0edc76a4cccb8bdc94bfd16159",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.22": "db3ac49b78b3ac57c0e6e9a0ea61237a235447338594ad8e398e8074448bd071",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.22": "c153ac78c571dbbd9bab54c954b93b496645efbd4d3a0689b03e04d0de17c30f",
|
||||||
|
"i686-pc-windows-msvc-0.9.22": "f08889e9567feb1e802c9e588de60efef5a436630e4c211fbf4a2116928f69ab",
|
||||||
|
"i686-unknown-linux-gnu-0.9.22": "841e534a28285dcadfea2ca0f848a9669df287990f93d64c6bf87a9794c98ec9",
|
||||||
|
"i686-unknown-linux-musl-0.9.22": "b2c5322e188980afd4bc1afb19f4e8dee7000ad0e17ca754e97dab21c1d4d1f5",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.22": "309c4a48d7f65cdf47aa7e1c5e02502556e04f486d46e9591f5b4196c92730a3",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.22": "1e829630f8317cf3e9818c3ad1f9927fdc9d087cd38abb05f9587c19872a8560",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.22": "d3036e36b330ad6caab68fa31c12c21f80c9b8cc7822416343a5100f09d6b640",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.22": "aff367a5c6ffb87b9cebbda4372464ca6aff69a53c81a94f1d78541be9677b2d",
|
||||||
|
"x86_64-apple-darwin-0.9.22": "c0057ad78b475f343739b1bbe223361c1054524c9edf310ee1dc85a050207f86",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.22": "93a0a244f26eec208d8ea8077e3de743d9687ad76c190342722f1f57fa629457",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.22": "e170aed70ac0225feee612e855d3a57ae73c61ffb22c7e52c3fd33b87c286508",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.22": "84d087a8e77a223d80578919894f3103f46ca7c263250c3e0478ce7c38850349",
|
||||||
|
"aarch64-apple-darwin-0.9.21": "473977236ef8ac5937c80de08a3599cb6ed6021d0e015e10f88076767877a153",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.21": "54f66a44108b1b68583c9da0a515195d011189874ec9547710c032801726e042",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.21": "416984484783a357170c43f98e7d2d203f1fb595d6b3b95131513c53e50986ef",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.21": "03a49fb609888032dbc3be9fd114b50fc9bce8b73b3df319746ae08d1fbdea83",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.21": "5d84273d9e79aa1262e11d50b4b4e61c7b33bbbf47c7f7e271cb07f89ac479c1",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.21": "74b2a73b3569cbba8c73470eb45dfba393401c834dd432fc8bd2039b40b1dde6",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.21": "fa3806603be42aad687bb97ff5939a32f5e1c21d565155299410ad445669ce11",
|
||||||
|
"i686-pc-windows-msvc-0.9.21": "941e2b656cf9c94eac4b751933b24e5820247d938958c3d62d9d95d0e2409956",
|
||||||
|
"i686-unknown-linux-gnu-0.9.21": "73fbd705cb4b5c071318afee896ba9984e3a14fcf7842435a93c43dc9ca0a12c",
|
||||||
|
"i686-unknown-linux-musl-0.9.21": "c38f823354fff387758f6288ad184b104f47520b3cee7d53e92f3666b3466f55",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.21": "2cf68ea2ff75c4a627101bfe22064d6646a03cd7ddb939c933f3d8127b8d5982",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.21": "3ede0329f67f5db37914b5dfd6014c414d27e1bf0153dab8d5cc2e066da034dc",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.21": "3b7b070afd9c7be5a6364f081081cf9fec2160b53eba46cad27304b8b158e4ab",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.21": "34bd75d67a5819c9f796a78b1ec9ebd48021d87d2391b4cf282249c4d026f145",
|
||||||
|
"x86_64-apple-darwin-0.9.21": "26390da48bd55e21ab62451a80ad240ef6df10d4c48ec199cbb34c18b4288983",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.21": "d27952e73183ef8f6ee8c2a50cf8b3f2e08e01b6a9279a00a85cb261ea8d8337",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.21": "0a1ab27383c28ef1c041f85cbbc609d8e3752dfb4b238d2ad97b208a52232baf",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.21": "7abc29b3a06a99fb23564400fe884f5798a1786dc2ca05b6e0f70c53de748ab2",
|
||||||
|
"aarch64-apple-darwin-0.9.20": "c3f4b03a5d526119d41fa8b8f255aa8053c49d787778df654895e3d174b1519a",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.20": "ddba8b1ca82df9b49745c93855c670490d776027269cf7de404d951919c96ea7",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.20": "0451ecac1d0ed43d5870927df84c3d1dc93d72cf1933310acfadce5ad457c587",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.20": "d1b645d63c70da3f6f2368ea4dbc9dd5534b54be74ae32dee8941531c6874b6d",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.20": "ddbaab7f1413f181bafc96c8b18af8e69372373798d2294d03d3935fd829c939",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.20": "e1b2f5e4298878e6ac1137f744ba38b59ce68abd6a43878e66a1cac4dd7efd0e",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.20": "afc4a709ad83773bafa4ba83afa44bb101e44b817c5ad620cb9c54b62fe52e4e",
|
||||||
|
"i686-pc-windows-msvc-0.9.20": "d7e50a3bc433bbb08e7890206bec0623627e6a911a6c10322c98721bde1a9cb0",
|
||||||
|
"i686-unknown-linux-gnu-0.9.20": "aec778b1c44607416102139b6bb6a7f53a313fce8ad1033049b10ac90ed3c597",
|
||||||
|
"i686-unknown-linux-musl-0.9.20": "92dd40f272b65f8301f0f9559fe55ac99b340caba93fe1952172e3485494cbba",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.20": "c2abda00a2b53cde9b6c8380ef9773749d341039771d7447df5647d935eb54c6",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.20": "f40409d551a30081ada78cca7a1a260c02a7d16c912d73988d8e212324dea758",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.20": "6dda223f877ff3eb3eba2fcf14abfd36280e5db1c0480addf5da5273ece087d6",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.20": "8ca14c1a9fe47ad2293a321f061c7278b32d7bc200d2692662790ab6ccd395c1",
|
||||||
|
"x86_64-apple-darwin-0.9.20": "0059dc2986e7032c12b7039e1a66e570ab5c3a41598263c76e5a9c4e7da9f971",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.20": "be51ed9fcba5be4ac9c41a46aaf8af5cef86624fe27e2c645771b174069e049d",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.20": "01ac5d872ab4cf6b11965c9df317f699882405f0319872fe3dbbb3adb045600b",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.20": "0de686dcc02e0b045980779e7330f2deb98e6cd9ece40d3341bd45c6733e682d",
|
||||||
|
"aarch64-apple-darwin-0.9.18": "dc3bee4abbb3bac267a3985a23ea7617d19d41ff381dbaf560ba415ad65af68f",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.18": "fadb43ba13091f44e1786fc3967e65c7786d86192aa205d718307c649927cfc2",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.18": "f8e23ec786b18660ade6b033b6191b7e9c283c872eeb8c4531d56a873decf160",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.18": "b710ceb9889276cbd7ce04e2ca06b5bd3e288da465bd38f7dd17955c4e703a65",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.18": "2219049d28baaa0764e0315996e26c70ef548a0ba59add7f42358575ab04b410",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.18": "dddf55144884f5d83b9f5795f0b16d023abedf615505962a6ebcaaef2cb62815",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.18": "265d49a8976a5956d3cab524e85e86df5397ab0daf6bd77f1494b0b9e1c00b9a",
|
||||||
|
"i686-pc-windows-msvc-0.9.18": "52bd6fedef821a2412de73c31fdcf41c31b0a5c5886a416c3ba1a3d282ff02b8",
|
||||||
|
"i686-unknown-linux-gnu-0.9.18": "6cc0437382adddd0439c874c41625539523725d551da9f9aecf7c0a3e86a1c77",
|
||||||
|
"i686-unknown-linux-musl-0.9.18": "a727b054337ce453e98b80d6eccaa913cf542c155f3252503aff3e613735c640",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.18": "522154f752a90513cedcc621071893e46fb05d025ce8f0d4523514e8a87417d7",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.18": "0660534d548800b17d2fc1dcdaf0f284e48ca3e34fff2b8b5c1797610e18fc0e",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.18": "db6f5cbbc56a7212e61445a8cd1fcf880dc2906b4cac8f945320f0ab8eb9bf75",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.18": "bfa789548a345189b70d9069d9d7ef8f9c2236f0d10e2ae47a13549ffded5b84",
|
||||||
|
"x86_64-apple-darwin-0.9.18": "f86836c637333c65bbc7902acc9c49888eef9fbd15dccbc1946b10e30b041073",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.18": "28cbe5d30907a774bfe27a517a39b494ec6f7d3816bda8bbf6f9645490449182",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.18": "c2def3db178ade63933fa15ffc96e882c196ce53e06173dcee05b36c5f6f68f5",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.18": "a55ae2d0d53c8f6541bb4d6afc95857ff33a97de8f1d23e9d09acdcb865c4a00",
|
||||||
|
"aarch64-apple-darwin-0.9.17": "a1e1464aa1d04d5e5fa700aa2f2e10397d1114e835dbd56be25ba65c9a31bd99",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.17": "28423a27ad1d82347c00411a6792567119b3c1cfe775d3312c0e08a6b489be5b",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.17": "e9eba97b7169e47fd3c926e409f0b714820f0befc23b3ae062780586a793e4cc",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.17": "f6f48a301f8e855765af42ef50257af0cebc9c5439dfdcbc188142941aea45ca",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.17": "4d80f3509b6351882a64c1dd08f72a80e2b27f055a996295ef1f935bc3efcdde",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.17": "30a6c041429e2176062573f33c5c44307cb756264224bcb005723a6e18cff34c",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.17": "6b034dc63735c2a4541430cbece688e28bce51a09e2ad1ea2c1646a6b24cf1c3",
|
||||||
|
"i686-pc-windows-msvc-0.9.17": "6e93737710e31bf73fcc3b4b6da616bd341e9c6baf1162ddc1e7f65884063f50",
|
||||||
|
"i686-unknown-linux-gnu-0.9.17": "d2426a6d10bedd83524599bb0fbe0ba22e681ed45e892b4fd29086b424daf02a",
|
||||||
|
"i686-unknown-linux-musl-0.9.17": "988c7702a2e88092b30f16fb7f8c18284a8062044cf57e6abd1dfeae82aa6377",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.17": "5ad301d9fa15e0791ef96abd83f0ed97e7ac1191b4b7578caaad3151633fb17c",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.17": "4958185c5febf22f1c4c84944334cb0d9262c2c2c93faf30c1e0abd26f9d94fa",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.17": "feed7cc7b5fc8a99e683ee1761cf99e3da12b60a2a413b7b87a0447726a66369",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.17": "a297518913a0f0e4af1bce434440ca9d415728aaf828c7def0e913aa5c46da8f",
|
||||||
|
"x86_64-apple-darwin-0.9.17": "249e7fb18d45c06ba283c48f0a8e586ecc5fbb9e8dad0923c4169a7c4db815b2",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.17": "ebc76197bf3e1a58f9dac6f70f49b0ebd3e6907ab35289ce228bce5ba8a3f201",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.17": "0114d54f9aafd07516cf1cadfe72afa970f5fd293fbe82dd924b8a7b42c984d8",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.17": "ab616c1851e7b1ed377a9ff3997dcee184bea7eda0b20bc8607abba6c469cbad",
|
||||||
"aarch64-apple-darwin-0.9.16": "db6d7fb299c35dc9bbbeb89cfa9aa55a9584f637d370c0a4c62a50df9c9294a7",
|
"aarch64-apple-darwin-0.9.16": "db6d7fb299c35dc9bbbeb89cfa9aa55a9584f637d370c0a4c62a50df9c9294a7",
|
||||||
"aarch64-pc-windows-msvc-0.9.16": "591c73f47dfec72f9d242eebcb36197f27ad652a59d70e70db5c52018684d78e",
|
"aarch64-pc-windows-msvc-0.9.16": "591c73f47dfec72f9d242eebcb36197f27ad652a59d70e70db5c52018684d78e",
|
||||||
"aarch64-unknown-linux-gnu-0.9.16": "a8e9e3f7e621e212d9663ea28827bd8fb9ec11c453ae88d520b48e969e9ff5db",
|
"aarch64-unknown-linux-gnu-0.9.16": "a8e9e3f7e621e212d9663ea28827bd8fb9ec11c453ae88d520b48e969e9ff5db",
|
||||||
@@ -32320,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);
|
||||||
@@ -32329,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;
|
||||||
@@ -32340,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}`);
|
||||||
@@ -32355,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 = [];
|
||||||
|
|||||||
@@ -2,6 +2,34 @@
|
|||||||
|
|
||||||
This document covers all caching-related configuration options for setup-uv.
|
This document covers all caching-related configuration options for setup-uv.
|
||||||
|
|
||||||
|
## Cache key
|
||||||
|
|
||||||
|
The cache key is automatically generated based on:
|
||||||
|
|
||||||
|
- **Architecture**: CPU architecture (e.g., `x86_64`, `aarch64`)
|
||||||
|
- **Platform**: OS platform type (e.g., `unknown-linux-gnu`, `unknown-linux-musl`, `apple-darwin`,
|
||||||
|
`pc-windows-msvc`)
|
||||||
|
- **OS version**: OS name and version (e.g., `ubuntu-22.04`, `macos-14`, `windows-2022`)
|
||||||
|
- **Python version**: The Python version in use
|
||||||
|
- **Cache options**: Whether pruning and Python caching are enabled
|
||||||
|
- **Dependency hash**: Hash of files matching `cache-dependency-glob`
|
||||||
|
- **Suffix**: Optional `cache-suffix` if provided
|
||||||
|
|
||||||
|
Including the OS version ensures that caches are not shared between different OS versions,
|
||||||
|
preventing binary incompatibility issues when runner images change.
|
||||||
|
|
||||||
|
The computed cache key is available as the `cache-key` output:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Setup uv
|
||||||
|
id: setup-uv
|
||||||
|
uses: astral-sh/setup-uv@v7
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
- name: Print cache key
|
||||||
|
run: echo "Cache key: ${{ steps.setup-uv.outputs.cache-key }}"
|
||||||
|
```
|
||||||
|
|
||||||
## Enable caching
|
## Enable caching
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
|
|||||||
105
src/cache/restore-cache.ts
vendored
105
src/cache/restore-cache.ts
vendored
@@ -1,6 +1,5 @@
|
|||||||
import * as cache from "@actions/cache";
|
import * as cache from "@actions/cache";
|
||||||
import * as core from "@actions/core";
|
import * as core from "@actions/core";
|
||||||
import * as exec from "@actions/exec";
|
|
||||||
import { hashFiles } from "../hash/hash-files";
|
import { hashFiles } from "../hash/hash-files";
|
||||||
import {
|
import {
|
||||||
cacheDependencyGlob,
|
cacheDependencyGlob,
|
||||||
@@ -9,51 +8,75 @@ import {
|
|||||||
cacheSuffix,
|
cacheSuffix,
|
||||||
pruneCache,
|
pruneCache,
|
||||||
pythonDir,
|
pythonDir,
|
||||||
pythonVersion as pythonVersionInput,
|
|
||||||
restoreCache as shouldRestoreCache,
|
restoreCache as shouldRestoreCache,
|
||||||
workingDirectory,
|
|
||||||
} from "../utils/inputs";
|
} from "../utils/inputs";
|
||||||
import { getArch, getPlatform } from "../utils/platforms";
|
import { getArch, getOSNameVersion, getPlatform } from "../utils/platforms";
|
||||||
|
|
||||||
export const STATE_CACHE_KEY = "cache-key";
|
export const STATE_CACHE_KEY = "cache-key";
|
||||||
export const STATE_CACHE_MATCHED_KEY = "cache-matched-key";
|
export const STATE_CACHE_MATCHED_KEY = "cache-matched-key";
|
||||||
const CACHE_VERSION = "1";
|
export const STATE_PYTHON_CACHE_MATCHED_KEY = "python-cache-matched-key";
|
||||||
|
|
||||||
export async function restoreCache(): Promise<void> {
|
const CACHE_VERSION = "2";
|
||||||
const cacheKey = await computeKeys();
|
|
||||||
|
export async function restoreCache(pythonVersion?: string): Promise<void> {
|
||||||
|
const cacheKey = await computeKeys(pythonVersion);
|
||||||
core.saveState(STATE_CACHE_KEY, cacheKey);
|
core.saveState(STATE_CACHE_KEY, cacheKey);
|
||||||
|
core.setOutput("cache-key", cacheKey);
|
||||||
|
|
||||||
if (!shouldRestoreCache) {
|
if (!shouldRestoreCache) {
|
||||||
core.info("restore-cache is false. Skipping restore cache step.");
|
core.info("restore-cache is false. Skipping restore cache step.");
|
||||||
|
core.setOutput("python-cache-hit", false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let matchedKey: string | undefined;
|
|
||||||
core.info(
|
|
||||||
`Trying to restore uv cache from GitHub Actions cache with key: ${cacheKey}`,
|
|
||||||
);
|
|
||||||
if (cacheLocalPath === undefined) {
|
if (cacheLocalPath === undefined) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
"cache-local-path is not set. Cannot restore cache without a valid cache path.",
|
"cache-local-path is not set. Cannot restore cache without a valid cache path.",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
const cachePaths = [cacheLocalPath.path];
|
|
||||||
|
await restoreCacheFromKey(
|
||||||
|
cacheKey,
|
||||||
|
cacheLocalPath.path,
|
||||||
|
STATE_CACHE_MATCHED_KEY,
|
||||||
|
"cache-hit",
|
||||||
|
);
|
||||||
|
|
||||||
if (cachePython) {
|
if (cachePython) {
|
||||||
cachePaths.push(pythonDir);
|
await restoreCacheFromKey(
|
||||||
|
`${cacheKey}-python`,
|
||||||
|
pythonDir,
|
||||||
|
STATE_PYTHON_CACHE_MATCHED_KEY,
|
||||||
|
"python-cache-hit",
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
core.setOutput("python-cache-hit", false);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function restoreCacheFromKey(
|
||||||
|
cacheKey: string,
|
||||||
|
cachePath: string,
|
||||||
|
stateKey: string,
|
||||||
|
outputKey: string,
|
||||||
|
): Promise<void> {
|
||||||
|
core.info(
|
||||||
|
`Trying to restore cache from GitHub Actions cache with key: ${cacheKey}`,
|
||||||
|
);
|
||||||
|
let matchedKey: string | undefined;
|
||||||
try {
|
try {
|
||||||
matchedKey = await cache.restoreCache(cachePaths, cacheKey);
|
matchedKey = await cache.restoreCache([cachePath], cacheKey);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
const message = (err as Error).message;
|
const message = (err as Error).message;
|
||||||
core.warning(message);
|
core.warning(message);
|
||||||
core.setOutput("cache-hit", false);
|
core.setOutput(outputKey, false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
handleMatchResult(matchedKey, cacheKey);
|
handleMatchResult(matchedKey, cacheKey, stateKey, outputKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function computeKeys(): Promise<string> {
|
async function computeKeys(pythonVersion?: string): Promise<string> {
|
||||||
let cacheDependencyPathHash = "-";
|
let cacheDependencyPathHash = "-";
|
||||||
if (cacheDependencyGlob !== "") {
|
if (cacheDependencyGlob !== "") {
|
||||||
core.info(
|
core.info(
|
||||||
@@ -70,57 +93,27 @@ async function computeKeys(): Promise<string> {
|
|||||||
cacheDependencyPathHash = "-no-dependency-glob";
|
cacheDependencyPathHash = "-no-dependency-glob";
|
||||||
}
|
}
|
||||||
const suffix = cacheSuffix ? `-${cacheSuffix}` : "";
|
const suffix = cacheSuffix ? `-${cacheSuffix}` : "";
|
||||||
const pythonVersion = await getPythonVersion();
|
const version = pythonVersion ?? "unknown";
|
||||||
const platform = await getPlatform();
|
const platform = await getPlatform();
|
||||||
|
const osNameVersion = getOSNameVersion();
|
||||||
const pruned = pruneCache ? "-pruned" : "";
|
const pruned = pruneCache ? "-pruned" : "";
|
||||||
const python = cachePython ? "-py" : "";
|
const python = cachePython ? "-py" : "";
|
||||||
return `setup-uv-${CACHE_VERSION}-${getArch()}-${platform}-${pythonVersion}${pruned}${python}${cacheDependencyPathHash}${suffix}`;
|
return `setup-uv-${CACHE_VERSION}-${getArch()}-${platform}-${osNameVersion}-${version}${pruned}${python}${cacheDependencyPathHash}${suffix}`;
|
||||||
}
|
|
||||||
|
|
||||||
async function getPythonVersion(): Promise<string> {
|
|
||||||
if (pythonVersionInput !== "") {
|
|
||||||
return pythonVersionInput;
|
|
||||||
}
|
|
||||||
|
|
||||||
let output = "";
|
|
||||||
const options: exec.ExecOptions = {
|
|
||||||
listeners: {
|
|
||||||
stdout: (data: Buffer) => {
|
|
||||||
output += data.toString();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
silent: !core.isDebug(),
|
|
||||||
};
|
|
||||||
|
|
||||||
try {
|
|
||||||
const execArgs = ["python", "find", "--directory", workingDirectory];
|
|
||||||
await exec.exec("uv", execArgs, options);
|
|
||||||
const pythonPath = output.trim();
|
|
||||||
|
|
||||||
output = "";
|
|
||||||
await exec.exec(pythonPath, ["--version"], options);
|
|
||||||
// output is like "Python 3.8.10"
|
|
||||||
return output.split(" ")[1].trim();
|
|
||||||
} catch (error) {
|
|
||||||
const err = error as Error;
|
|
||||||
core.debug(`Failed to get python version from uv. Error: ${err.message}`);
|
|
||||||
return "unknown";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleMatchResult(
|
function handleMatchResult(
|
||||||
matchedKey: string | undefined,
|
matchedKey: string | undefined,
|
||||||
primaryKey: string,
|
primaryKey: string,
|
||||||
|
stateKey: string,
|
||||||
|
outputKey: string,
|
||||||
): void {
|
): void {
|
||||||
if (!matchedKey) {
|
if (!matchedKey) {
|
||||||
core.info(`No GitHub Actions cache found for key: ${primaryKey}`);
|
core.info(`No GitHub Actions cache found for key: ${primaryKey}`);
|
||||||
core.setOutput("cache-hit", false);
|
core.setOutput(outputKey, false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
core.saveState(STATE_CACHE_MATCHED_KEY, matchedKey);
|
core.saveState(stateKey, matchedKey);
|
||||||
core.info(
|
core.info(`cache restored from GitHub Actions cache with key: ${matchedKey}`);
|
||||||
`uv cache restored from GitHub Actions cache with key: ${matchedKey}`,
|
core.setOutput(outputKey, true);
|
||||||
);
|
|
||||||
core.setOutput("cache-hit", true);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,329 @@
|
|||||||
// 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.9.26":
|
||||||
|
"fcf0a9ea6599c6ae28a4c854ac6da76f2c889354d7c36ce136ef071f7ab9721f",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.26":
|
||||||
|
"79e1398ec98681b1b0494ed3485b0f4565e98a7db109a3f205d0fcdc6a1992f7",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.26":
|
||||||
|
"f71040c59798f79c44c08a7a1c1af7de95a8d334ea924b47b67ad6b9632be270",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.26":
|
||||||
|
"ba8698c36c00c22efed4bd3506339b03c95604d001f02eaf6fbc814c9224d801",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.26":
|
||||||
|
"8baa850e6f7a4f8edeef411891780161e95682bf291c85405fdc331925c425c2",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.26":
|
||||||
|
"f9cf9806b3bd434b4aca5de1a8412502a29bcbc908848cdea18e32480964ab79",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.26":
|
||||||
|
"881df52998da192f0609be37abe445ab0d89f28daceecb171ea8a14088153aee",
|
||||||
|
"i686-pc-windows-msvc-0.9.26":
|
||||||
|
"2fa5e36d7dc3053962a95a2583b2bcc19aab2ec6c5d4c887cca58de819cf77dd",
|
||||||
|
"i686-unknown-linux-gnu-0.9.26":
|
||||||
|
"03548a2abd1d604724c9d65184b506d3eafef1b0a7d8cea974a083f5f9c9496f",
|
||||||
|
"i686-unknown-linux-musl-0.9.26":
|
||||||
|
"5208601b9baee1a04a604f441bd94a1ab91b511f142b27729b073f4286994f8f",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.26":
|
||||||
|
"6ac6baa2dd7db742ff58a2d54e3fc09693e69c878666bcacf9d49bc58decc98a",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.26":
|
||||||
|
"1a7fbd268b7520e03747022f879113545a5bd71cad02e9cbabd591b268b5a36c",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.26":
|
||||||
|
"9f202ad04cc398dc77a6efe20ea91ec044ad66e1f7a60777e6efd20a357f479a",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.26":
|
||||||
|
"f8e6b8f1264821add1ea21d592b4522300401f44ac4124fba9fea6874fd79797",
|
||||||
|
"x86_64-apple-darwin-0.9.26":
|
||||||
|
"171eb8c518313e157c5b4cec7b4f743bc6bab1bd23e09b646679a02d096a047f",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.26":
|
||||||
|
"eb02fd95d8e0eed462b4a67ecdd320d865b38c560bffcda9a0b87ec944bdf036",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.26":
|
||||||
|
"30ccbf0a66dc8727a02b0e245c583ee970bdafecf3a443c1686e1b30ec4939e8",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.26":
|
||||||
|
"708b752876aeeb753257e1d55470569789e465684c1d3bc1760db26360b6c28b",
|
||||||
|
"aarch64-apple-darwin-0.9.25":
|
||||||
|
"606b3c6949d971709f2526fa0d9f0fd23ccf60e09f117999b406b424af18a6a6",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.25":
|
||||||
|
"6a4c2a753a94d9639725b435f5d1a65bfa25cd196d448ad60841f5fe81ef0052",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.25":
|
||||||
|
"a8f1d71a42c4470251a880348b2d28d530018693324175084fa1749d267c98c6",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.25":
|
||||||
|
"11cddffc61826e3b7af02db37bc3ed8e9e6747dad328d45c8b02f89408afbf75",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.25":
|
||||||
|
"52f3a96605a7873ec44bb84c33ee08e717df61136fec121f715871cae5b779ec",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.25":
|
||||||
|
"7ae274742a5b2398bd75f9075536c7f0b3f99ebc8c6588c37e3bfcd9cc9d781d",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.25":
|
||||||
|
"77220a539dfffe576cdc9b9e9ab5432c07dd1b63915c859c227883af7ba00538",
|
||||||
|
"i686-pc-windows-msvc-0.9.25":
|
||||||
|
"55dbf32074a76e029410620e7e3fbef9762799c7dfcf539b098ccc0a64cac9a3",
|
||||||
|
"i686-unknown-linux-gnu-0.9.25":
|
||||||
|
"b9dae29f4e37bc89e69836e59169a51d8cac4da118b7548a20b2269b19c94cad",
|
||||||
|
"i686-unknown-linux-musl-0.9.25":
|
||||||
|
"a84a159856a0227c273e86594d9cf8fbf84c56bd4eeeb9a665c946304c49dbec",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.25":
|
||||||
|
"37bc519ebe5e4efb12fd155eb94512547a874f0e41251203b49d715f75eb5a20",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.25":
|
||||||
|
"a01a273b5cd64ece96d4589afbacaf5e99a0695f37ebe9a72fd6b2f7cf0a7071",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.25":
|
||||||
|
"9d9692f1bd5ff6d9db2c4bffc4ceeb8d8746ae03ddeca0b24a0f8fc9ea81b911",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.25":
|
||||||
|
"92d5e4504ef83f421a841381678f871bf2a8821a69d3374dd638e2014d4762ab",
|
||||||
|
"x86_64-apple-darwin-0.9.25":
|
||||||
|
"4982dfff14b3548bc85d0fa0abec6ab8ae62836b218bf1223741ba1392ef93bf",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.25":
|
||||||
|
"d63f8e59cf76bcce9cb8a3eac6c1a89adce0f89a29bacca978c9bf842f419277",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.25":
|
||||||
|
"fa1f4abfe101d43e820342210c3c6854028703770f81e95b119ed1e65ec81b35",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.25":
|
||||||
|
"700776c376ce36ed5b731fcd699e141d897551f5111907987b63897e0c1ad797",
|
||||||
|
"aarch64-apple-darwin-0.9.24":
|
||||||
|
"89661d9a16682197086df54bb43d0b03e58e23d4d9360fc8c6c0166f2828fd71",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.24":
|
||||||
|
"40ceb66af2667fc9b4d30a65ad8b8795d4effc39a44019b4218ad03f8f1d5a14",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.24":
|
||||||
|
"9b291a1a4f2fefc430e4fc49c00cb93eb448d41c5c79edf45211ceffedde3334",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.24":
|
||||||
|
"b16359904ede857b90b68168f10b0f6bf500858df9bed4e7156dbc59fd3f0747",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.24":
|
||||||
|
"b343d7f49ea5c0982c9696cbc5c7f96d7053cf8f9c7383a58d6c0c44fbeb6422",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.24":
|
||||||
|
"8d05b55fe2108ecab3995c2b656679a72c543fd9dc72eeb3a525106a709cfdcb",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.24":
|
||||||
|
"788d2bee1dfdb57a462f2a5c4e3d6e8c68ee9f9f1a938bdcdc00fa9e5edeaeec",
|
||||||
|
"i686-pc-windows-msvc-0.9.24":
|
||||||
|
"b49265a713cb3f874bcb373572095993d3098ab77cd2665483f53b24b788e5e9",
|
||||||
|
"i686-unknown-linux-gnu-0.9.24":
|
||||||
|
"940b8985c4d464c7cc69e40b17bf09d840b980028e1d82a3fb8dd007a737f29e",
|
||||||
|
"i686-unknown-linux-musl-0.9.24":
|
||||||
|
"4ffe6f377b7d68904d8d882af8adc85f2fa1bbccd26151785ff961adb67f2a99",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.24":
|
||||||
|
"1fbaff65544a2c36bbd8992e2abe6c50179401745dc00b5e12bded89794056a4",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.24":
|
||||||
|
"57ea84430ccf49f97184d9ee21102b250214fc6e6af4a87eefaaf8bb7c9c2b9a",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.24":
|
||||||
|
"81a884380f0ee954afd968140aaa55df19f2bee30d74f3c0c94a11d2265bb388",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.24":
|
||||||
|
"3da41f22f78f27a7764e303b07c68f5716f748128327c7d3d72f11c6b81b6c78",
|
||||||
|
"x86_64-apple-darwin-0.9.24":
|
||||||
|
"fda9b3203cce6ec3a37177440c33c4c1963c4957fff17e2820c60ab6ccd625da",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.24":
|
||||||
|
"cf9d6fa12017199d19c6f9a8f7f55811c8c04d70681b8cb6d89ffb179f08cf1f",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.24":
|
||||||
|
"fb13ad85106da6b21dd16613afca910994446fe94a78ee0b5bed9c75cd066078",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.24":
|
||||||
|
"cf307aa4271038daa334ca64e75aa40c0c085ce6fa0c0e6f21e41a2b62c7904d",
|
||||||
|
"aarch64-apple-darwin-0.9.23":
|
||||||
|
"3aae069424778d13ef45ebd2ec906c66ab10e459e7b33341a64cd371a3d70998",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.23":
|
||||||
|
"dfdb23dbfa6c89847e4163f0b3b683de889df7d9bdf95a3909dfbc6430106304",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.23":
|
||||||
|
"d60b0b2aee79f9d83897615fed427bee1ea4ebcb2f15b48dd522319ecdb3de91",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.23":
|
||||||
|
"ee987d943427ee24c1d3af79c7ad676950c9ad634e60a4d07e328d8a54fff92f",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.23":
|
||||||
|
"1950c235e76e007f75d30903dc5da6747a344c72a1608123feff720c134ecbfe",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.23":
|
||||||
|
"a7104ab491a0c2f0c58760bcb9a13cfb64c899e02a7b747c4d11da114b3f9114",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.23":
|
||||||
|
"c5d494337a5ca86ad83d6a887634fda3f8392560799e4236a44d76f8e27621b6",
|
||||||
|
"i686-pc-windows-msvc-0.9.23":
|
||||||
|
"94292f02b7484616bb3cd7361411540a5a52e952d149eb6faeec610b6657015d",
|
||||||
|
"i686-unknown-linux-gnu-0.9.23":
|
||||||
|
"627627174d31e6fa270e91c7b2988558e4b18b86cc31de9222b6cf3b7354e9b7",
|
||||||
|
"i686-unknown-linux-musl-0.9.23":
|
||||||
|
"5f65a0eb1f9067a4f5149275faba3bcb3af94dd68fbce7cd9e93ba86b5bc59c3",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.23":
|
||||||
|
"69e2925397d0e781e8525ad0fd22896a114ffa02f5055e7a360e4dda3796c24e",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.23":
|
||||||
|
"fb3ad2cb1a19f1bb4785580dc71837161147beab134fdc3eb4e8ccda577db1e0",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.23":
|
||||||
|
"0d1d9300e2df3155b0d0b071c292fb27f8213d91854decdfb27c293397dc8e0e",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.23":
|
||||||
|
"7d0b411a365b0cd8fad2b336c259743e7381676654adfbdb4f887b4136820cb8",
|
||||||
|
"x86_64-apple-darwin-0.9.23":
|
||||||
|
"b5bbfbd5d8c7effa24b505365ae306116fdac58880bc9b024ec4c89435d57728",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.23":
|
||||||
|
"bb6d2987906b27d3031640c4a909b6f7c134cd29674c41ef545c6e7d57dd6700",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.23":
|
||||||
|
"b7bd7d9b9c9c34327f1118f99fe8c298252787ea35f7b345b8bf639377f63217",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.23":
|
||||||
|
"a824a0f5f7aa67b668f54756284d458a25dea332da6e558d303890d134cc06d1",
|
||||||
|
"aarch64-apple-darwin-0.9.22":
|
||||||
|
"4bfc6dacc9bcc9e433a9214a658495ca082b94fd607949b6745a955f34ccbc3c",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.22":
|
||||||
|
"19b848523d5802279702f5df4ade6d45f17d111cf9e368883d4f6560f0426d49",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.22":
|
||||||
|
"2f8716c407d5da21b8a3e8609ed358147216aaab28b96b1d6d7f48e9bcc6254e",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.22":
|
||||||
|
"a400eaede62557af86bed6c5252a101aa1efd596698bb10c9400334fcc2847ec",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.22":
|
||||||
|
"23e0770034e31aaf47b0c84156b2e5ec7638ca0edc76a4cccb8bdc94bfd16159",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.22":
|
||||||
|
"db3ac49b78b3ac57c0e6e9a0ea61237a235447338594ad8e398e8074448bd071",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.22":
|
||||||
|
"c153ac78c571dbbd9bab54c954b93b496645efbd4d3a0689b03e04d0de17c30f",
|
||||||
|
"i686-pc-windows-msvc-0.9.22":
|
||||||
|
"f08889e9567feb1e802c9e588de60efef5a436630e4c211fbf4a2116928f69ab",
|
||||||
|
"i686-unknown-linux-gnu-0.9.22":
|
||||||
|
"841e534a28285dcadfea2ca0f848a9669df287990f93d64c6bf87a9794c98ec9",
|
||||||
|
"i686-unknown-linux-musl-0.9.22":
|
||||||
|
"b2c5322e188980afd4bc1afb19f4e8dee7000ad0e17ca754e97dab21c1d4d1f5",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.22":
|
||||||
|
"309c4a48d7f65cdf47aa7e1c5e02502556e04f486d46e9591f5b4196c92730a3",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.22":
|
||||||
|
"1e829630f8317cf3e9818c3ad1f9927fdc9d087cd38abb05f9587c19872a8560",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.22":
|
||||||
|
"d3036e36b330ad6caab68fa31c12c21f80c9b8cc7822416343a5100f09d6b640",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.22":
|
||||||
|
"aff367a5c6ffb87b9cebbda4372464ca6aff69a53c81a94f1d78541be9677b2d",
|
||||||
|
"x86_64-apple-darwin-0.9.22":
|
||||||
|
"c0057ad78b475f343739b1bbe223361c1054524c9edf310ee1dc85a050207f86",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.22":
|
||||||
|
"93a0a244f26eec208d8ea8077e3de743d9687ad76c190342722f1f57fa629457",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.22":
|
||||||
|
"e170aed70ac0225feee612e855d3a57ae73c61ffb22c7e52c3fd33b87c286508",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.22":
|
||||||
|
"84d087a8e77a223d80578919894f3103f46ca7c263250c3e0478ce7c38850349",
|
||||||
|
"aarch64-apple-darwin-0.9.21":
|
||||||
|
"473977236ef8ac5937c80de08a3599cb6ed6021d0e015e10f88076767877a153",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.21":
|
||||||
|
"54f66a44108b1b68583c9da0a515195d011189874ec9547710c032801726e042",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.21":
|
||||||
|
"416984484783a357170c43f98e7d2d203f1fb595d6b3b95131513c53e50986ef",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.21":
|
||||||
|
"03a49fb609888032dbc3be9fd114b50fc9bce8b73b3df319746ae08d1fbdea83",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.21":
|
||||||
|
"5d84273d9e79aa1262e11d50b4b4e61c7b33bbbf47c7f7e271cb07f89ac479c1",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.21":
|
||||||
|
"74b2a73b3569cbba8c73470eb45dfba393401c834dd432fc8bd2039b40b1dde6",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.21":
|
||||||
|
"fa3806603be42aad687bb97ff5939a32f5e1c21d565155299410ad445669ce11",
|
||||||
|
"i686-pc-windows-msvc-0.9.21":
|
||||||
|
"941e2b656cf9c94eac4b751933b24e5820247d938958c3d62d9d95d0e2409956",
|
||||||
|
"i686-unknown-linux-gnu-0.9.21":
|
||||||
|
"73fbd705cb4b5c071318afee896ba9984e3a14fcf7842435a93c43dc9ca0a12c",
|
||||||
|
"i686-unknown-linux-musl-0.9.21":
|
||||||
|
"c38f823354fff387758f6288ad184b104f47520b3cee7d53e92f3666b3466f55",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.21":
|
||||||
|
"2cf68ea2ff75c4a627101bfe22064d6646a03cd7ddb939c933f3d8127b8d5982",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.21":
|
||||||
|
"3ede0329f67f5db37914b5dfd6014c414d27e1bf0153dab8d5cc2e066da034dc",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.21":
|
||||||
|
"3b7b070afd9c7be5a6364f081081cf9fec2160b53eba46cad27304b8b158e4ab",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.21":
|
||||||
|
"34bd75d67a5819c9f796a78b1ec9ebd48021d87d2391b4cf282249c4d026f145",
|
||||||
|
"x86_64-apple-darwin-0.9.21":
|
||||||
|
"26390da48bd55e21ab62451a80ad240ef6df10d4c48ec199cbb34c18b4288983",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.21":
|
||||||
|
"d27952e73183ef8f6ee8c2a50cf8b3f2e08e01b6a9279a00a85cb261ea8d8337",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.21":
|
||||||
|
"0a1ab27383c28ef1c041f85cbbc609d8e3752dfb4b238d2ad97b208a52232baf",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.21":
|
||||||
|
"7abc29b3a06a99fb23564400fe884f5798a1786dc2ca05b6e0f70c53de748ab2",
|
||||||
|
"aarch64-apple-darwin-0.9.20":
|
||||||
|
"c3f4b03a5d526119d41fa8b8f255aa8053c49d787778df654895e3d174b1519a",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.20":
|
||||||
|
"ddba8b1ca82df9b49745c93855c670490d776027269cf7de404d951919c96ea7",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.20":
|
||||||
|
"0451ecac1d0ed43d5870927df84c3d1dc93d72cf1933310acfadce5ad457c587",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.20":
|
||||||
|
"d1b645d63c70da3f6f2368ea4dbc9dd5534b54be74ae32dee8941531c6874b6d",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.20":
|
||||||
|
"ddbaab7f1413f181bafc96c8b18af8e69372373798d2294d03d3935fd829c939",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.20":
|
||||||
|
"e1b2f5e4298878e6ac1137f744ba38b59ce68abd6a43878e66a1cac4dd7efd0e",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.20":
|
||||||
|
"afc4a709ad83773bafa4ba83afa44bb101e44b817c5ad620cb9c54b62fe52e4e",
|
||||||
|
"i686-pc-windows-msvc-0.9.20":
|
||||||
|
"d7e50a3bc433bbb08e7890206bec0623627e6a911a6c10322c98721bde1a9cb0",
|
||||||
|
"i686-unknown-linux-gnu-0.9.20":
|
||||||
|
"aec778b1c44607416102139b6bb6a7f53a313fce8ad1033049b10ac90ed3c597",
|
||||||
|
"i686-unknown-linux-musl-0.9.20":
|
||||||
|
"92dd40f272b65f8301f0f9559fe55ac99b340caba93fe1952172e3485494cbba",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.20":
|
||||||
|
"c2abda00a2b53cde9b6c8380ef9773749d341039771d7447df5647d935eb54c6",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.20":
|
||||||
|
"f40409d551a30081ada78cca7a1a260c02a7d16c912d73988d8e212324dea758",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.20":
|
||||||
|
"6dda223f877ff3eb3eba2fcf14abfd36280e5db1c0480addf5da5273ece087d6",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.20":
|
||||||
|
"8ca14c1a9fe47ad2293a321f061c7278b32d7bc200d2692662790ab6ccd395c1",
|
||||||
|
"x86_64-apple-darwin-0.9.20":
|
||||||
|
"0059dc2986e7032c12b7039e1a66e570ab5c3a41598263c76e5a9c4e7da9f971",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.20":
|
||||||
|
"be51ed9fcba5be4ac9c41a46aaf8af5cef86624fe27e2c645771b174069e049d",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.20":
|
||||||
|
"01ac5d872ab4cf6b11965c9df317f699882405f0319872fe3dbbb3adb045600b",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.20":
|
||||||
|
"0de686dcc02e0b045980779e7330f2deb98e6cd9ece40d3341bd45c6733e682d",
|
||||||
|
"aarch64-apple-darwin-0.9.18":
|
||||||
|
"dc3bee4abbb3bac267a3985a23ea7617d19d41ff381dbaf560ba415ad65af68f",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.18":
|
||||||
|
"fadb43ba13091f44e1786fc3967e65c7786d86192aa205d718307c649927cfc2",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.18":
|
||||||
|
"f8e23ec786b18660ade6b033b6191b7e9c283c872eeb8c4531d56a873decf160",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.18":
|
||||||
|
"b710ceb9889276cbd7ce04e2ca06b5bd3e288da465bd38f7dd17955c4e703a65",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.18":
|
||||||
|
"2219049d28baaa0764e0315996e26c70ef548a0ba59add7f42358575ab04b410",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.18":
|
||||||
|
"dddf55144884f5d83b9f5795f0b16d023abedf615505962a6ebcaaef2cb62815",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.18":
|
||||||
|
"265d49a8976a5956d3cab524e85e86df5397ab0daf6bd77f1494b0b9e1c00b9a",
|
||||||
|
"i686-pc-windows-msvc-0.9.18":
|
||||||
|
"52bd6fedef821a2412de73c31fdcf41c31b0a5c5886a416c3ba1a3d282ff02b8",
|
||||||
|
"i686-unknown-linux-gnu-0.9.18":
|
||||||
|
"6cc0437382adddd0439c874c41625539523725d551da9f9aecf7c0a3e86a1c77",
|
||||||
|
"i686-unknown-linux-musl-0.9.18":
|
||||||
|
"a727b054337ce453e98b80d6eccaa913cf542c155f3252503aff3e613735c640",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.18":
|
||||||
|
"522154f752a90513cedcc621071893e46fb05d025ce8f0d4523514e8a87417d7",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.18":
|
||||||
|
"0660534d548800b17d2fc1dcdaf0f284e48ca3e34fff2b8b5c1797610e18fc0e",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.18":
|
||||||
|
"db6f5cbbc56a7212e61445a8cd1fcf880dc2906b4cac8f945320f0ab8eb9bf75",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.18":
|
||||||
|
"bfa789548a345189b70d9069d9d7ef8f9c2236f0d10e2ae47a13549ffded5b84",
|
||||||
|
"x86_64-apple-darwin-0.9.18":
|
||||||
|
"f86836c637333c65bbc7902acc9c49888eef9fbd15dccbc1946b10e30b041073",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.18":
|
||||||
|
"28cbe5d30907a774bfe27a517a39b494ec6f7d3816bda8bbf6f9645490449182",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.18":
|
||||||
|
"c2def3db178ade63933fa15ffc96e882c196ce53e06173dcee05b36c5f6f68f5",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.18":
|
||||||
|
"a55ae2d0d53c8f6541bb4d6afc95857ff33a97de8f1d23e9d09acdcb865c4a00",
|
||||||
|
"aarch64-apple-darwin-0.9.17":
|
||||||
|
"a1e1464aa1d04d5e5fa700aa2f2e10397d1114e835dbd56be25ba65c9a31bd99",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.17":
|
||||||
|
"28423a27ad1d82347c00411a6792567119b3c1cfe775d3312c0e08a6b489be5b",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.17":
|
||||||
|
"e9eba97b7169e47fd3c926e409f0b714820f0befc23b3ae062780586a793e4cc",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.17":
|
||||||
|
"f6f48a301f8e855765af42ef50257af0cebc9c5439dfdcbc188142941aea45ca",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.17":
|
||||||
|
"4d80f3509b6351882a64c1dd08f72a80e2b27f055a996295ef1f935bc3efcdde",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.17":
|
||||||
|
"30a6c041429e2176062573f33c5c44307cb756264224bcb005723a6e18cff34c",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.17":
|
||||||
|
"6b034dc63735c2a4541430cbece688e28bce51a09e2ad1ea2c1646a6b24cf1c3",
|
||||||
|
"i686-pc-windows-msvc-0.9.17":
|
||||||
|
"6e93737710e31bf73fcc3b4b6da616bd341e9c6baf1162ddc1e7f65884063f50",
|
||||||
|
"i686-unknown-linux-gnu-0.9.17":
|
||||||
|
"d2426a6d10bedd83524599bb0fbe0ba22e681ed45e892b4fd29086b424daf02a",
|
||||||
|
"i686-unknown-linux-musl-0.9.17":
|
||||||
|
"988c7702a2e88092b30f16fb7f8c18284a8062044cf57e6abd1dfeae82aa6377",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.17":
|
||||||
|
"5ad301d9fa15e0791ef96abd83f0ed97e7ac1191b4b7578caaad3151633fb17c",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.17":
|
||||||
|
"4958185c5febf22f1c4c84944334cb0d9262c2c2c93faf30c1e0abd26f9d94fa",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.17":
|
||||||
|
"feed7cc7b5fc8a99e683ee1761cf99e3da12b60a2a413b7b87a0447726a66369",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.17":
|
||||||
|
"a297518913a0f0e4af1bce434440ca9d415728aaf828c7def0e913aa5c46da8f",
|
||||||
|
"x86_64-apple-darwin-0.9.17":
|
||||||
|
"249e7fb18d45c06ba283c48f0a8e586ecc5fbb9e8dad0923c4169a7c4db815b2",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.17":
|
||||||
|
"ebc76197bf3e1a58f9dac6f70f49b0ebd3e6907ab35289ce228bce5ba8a3f201",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.17":
|
||||||
|
"0114d54f9aafd07516cf1cadfe72afa970f5fd293fbe82dd924b8a7b42c984d8",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.17":
|
||||||
|
"ab616c1851e7b1ed377a9ff3997dcee184bea7eda0b20bc8607abba6c469cbad",
|
||||||
"aarch64-apple-darwin-0.9.16":
|
"aarch64-apple-darwin-0.9.16":
|
||||||
"db6d7fb299c35dc9bbbeb89cfa9aa55a9584f637d370c0a4c62a50df9c9294a7",
|
"db6d7fb299c35dc9bbbeb89cfa9aa55a9584f637d370c0a4c62a50df9c9294a7",
|
||||||
"aarch64-pc-windows-msvc-0.9.16":
|
"aarch64-pc-windows-msvc-0.9.16":
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import * as pep440 from "@renovatebot/pep440";
|
|||||||
import {
|
import {
|
||||||
STATE_CACHE_KEY,
|
STATE_CACHE_KEY,
|
||||||
STATE_CACHE_MATCHED_KEY,
|
STATE_CACHE_MATCHED_KEY,
|
||||||
|
STATE_PYTHON_CACHE_MATCHED_KEY,
|
||||||
} from "./cache/restore-cache";
|
} from "./cache/restore-cache";
|
||||||
import { STATE_UV_PATH, STATE_UV_VERSION } from "./utils/constants";
|
import { STATE_UV_PATH, STATE_UV_VERSION } from "./utils/constants";
|
||||||
import {
|
import {
|
||||||
@@ -52,63 +53,30 @@ async function saveCache(): Promise<void> {
|
|||||||
}
|
}
|
||||||
if (matchedKey === cacheKey) {
|
if (matchedKey === cacheKey) {
|
||||||
core.info(`Cache hit occurred on key ${cacheKey}, not saving cache.`);
|
core.info(`Cache hit occurred on key ${cacheKey}, not saving cache.`);
|
||||||
return;
|
} else {
|
||||||
}
|
if (shouldPruneCache) {
|
||||||
|
await pruneCache();
|
||||||
|
}
|
||||||
|
|
||||||
if (shouldPruneCache) {
|
const actualCachePath = getUvCachePath();
|
||||||
await pruneCache();
|
await saveCacheToKey(
|
||||||
}
|
cacheKey,
|
||||||
|
actualCachePath,
|
||||||
if (cacheLocalPath === undefined) {
|
STATE_CACHE_MATCHED_KEY,
|
||||||
throw new Error(
|
"uv cache",
|
||||||
"cache-local-path is not set. Cannot save cache without a valid cache path.",
|
|
||||||
);
|
|
||||||
}
|
|
||||||
let actualCachePath = cacheLocalPath.path;
|
|
||||||
if (
|
|
||||||
process.env.UV_CACHE_DIR &&
|
|
||||||
process.env.UV_CACHE_DIR !== cacheLocalPath.path
|
|
||||||
) {
|
|
||||||
core.warning(
|
|
||||||
`The environment variable UV_CACHE_DIR has been changed to "${process.env.UV_CACHE_DIR}", by an action or step running after astral-sh/setup-uv. This can lead to unexpected behavior. If you expected this to happen set the cache-local-path input to "${process.env.UV_CACHE_DIR}" instead of "${cacheLocalPath.path}".`,
|
|
||||||
);
|
|
||||||
actualCachePath = process.env.UV_CACHE_DIR;
|
|
||||||
}
|
|
||||||
|
|
||||||
core.info(`Saving cache path: ${actualCachePath}`);
|
|
||||||
if (!fs.existsSync(actualCachePath) && !ignoreNothingToCache) {
|
|
||||||
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.`,
|
`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.`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const cachePaths = [actualCachePath];
|
|
||||||
if (cachePython) {
|
if (cachePython) {
|
||||||
core.info(`Including Python cache path: ${pythonDir}`);
|
const pythonCacheKey = `${cacheKey}-python`;
|
||||||
if (!fs.existsSync(pythonDir) && !ignoreNothingToCache) {
|
await saveCacheToKey(
|
||||||
throw new Error(
|
pythonCacheKey,
|
||||||
`Python cache path ${pythonDir} 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.`,
|
pythonDir,
|
||||||
);
|
STATE_PYTHON_CACHE_MATCHED_KEY,
|
||||||
}
|
"Python cache",
|
||||||
cachePaths.push(pythonDir);
|
`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.`,
|
||||||
}
|
);
|
||||||
|
|
||||||
core.info(`Final cache paths: ${cachePaths.join(", ")}`);
|
|
||||||
try {
|
|
||||||
await cache.saveCache(cachePaths, cacheKey);
|
|
||||||
core.info(`cache saved with the 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 paths were found. Ignoring because ignore-nothing-to-save is enabled.",
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,4 +96,61 @@ async function pruneCache(): Promise<void> {
|
|||||||
await exec.exec(uvPath, execArgs, options);
|
await exec.exec(uvPath, execArgs, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getUvCachePath(): string {
|
||||||
|
if (cacheLocalPath === undefined) {
|
||||||
|
throw new Error(
|
||||||
|
"cache-local-path is not set. Cannot save cache without a valid cache path.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
process.env.UV_CACHE_DIR &&
|
||||||
|
process.env.UV_CACHE_DIR !== cacheLocalPath.path
|
||||||
|
) {
|
||||||
|
core.warning(
|
||||||
|
`The environment variable UV_CACHE_DIR has been changed to "${process.env.UV_CACHE_DIR}", by an action or step running after astral-sh/setup-uv. This can lead to unexpected behavior. If you expected this to happen set the cache-local-path input to "${process.env.UV_CACHE_DIR}" instead of "${cacheLocalPath.path}".`,
|
||||||
|
);
|
||||||
|
return process.env.UV_CACHE_DIR;
|
||||||
|
}
|
||||||
|
return cacheLocalPath.path;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function saveCacheToKey(
|
||||||
|
cacheKey: string,
|
||||||
|
cachePath: string,
|
||||||
|
stateKey: string,
|
||||||
|
cacheName: string,
|
||||||
|
pathNotExistErrorMessage: string,
|
||||||
|
): Promise<void> {
|
||||||
|
const matchedKey = core.getState(stateKey);
|
||||||
|
|
||||||
|
if (matchedKey === cacheKey) {
|
||||||
|
core.info(
|
||||||
|
`${cacheName} hit occurred on key ${cacheKey}, not saving cache.`,
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
core.info(`Including ${cacheName} path: ${cachePath}`);
|
||||||
|
if (!fs.existsSync(cachePath) && !ignoreNothingToCache) {
|
||||||
|
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();
|
||||||
|
|||||||
@@ -36,6 +36,37 @@ import {
|
|||||||
} from "./utils/platforms";
|
} from "./utils/platforms";
|
||||||
import { getUvVersionFromFile } from "./version/resolve";
|
import { getUvVersionFromFile } from "./version/resolve";
|
||||||
|
|
||||||
|
async function getPythonVersion(): Promise<string> {
|
||||||
|
if (pythonVersion !== "") {
|
||||||
|
return pythonVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
let output = "";
|
||||||
|
const options: exec.ExecOptions = {
|
||||||
|
listeners: {
|
||||||
|
stdout: (data: Buffer) => {
|
||||||
|
output += data.toString();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
silent: !core.isDebug(),
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
const execArgs = ["python", "find", "--directory", workingDirectory];
|
||||||
|
await exec.exec("uv", execArgs, options);
|
||||||
|
const pythonPath = output.trim();
|
||||||
|
|
||||||
|
output = "";
|
||||||
|
await exec.exec(pythonPath, ["--version"], options);
|
||||||
|
// output is like "Python 3.8.10"
|
||||||
|
return output.split(" ")[1].trim();
|
||||||
|
} catch (error) {
|
||||||
|
const err = error as Error;
|
||||||
|
core.debug(`Failed to get python version from uv. Error: ${err.message}`);
|
||||||
|
return "unknown";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function run(): Promise<void> {
|
async function run(): Promise<void> {
|
||||||
detectEmptyWorkdir();
|
detectEmptyWorkdir();
|
||||||
const platform = await getPlatform();
|
const platform = await getPlatform();
|
||||||
@@ -63,8 +94,11 @@ async function run(): Promise<void> {
|
|||||||
core.saveState(STATE_UV_VERSION, setupResult.version);
|
core.saveState(STATE_UV_VERSION, setupResult.version);
|
||||||
core.info(`Successfully installed uv version ${setupResult.version}`);
|
core.info(`Successfully installed uv version ${setupResult.version}`);
|
||||||
|
|
||||||
|
const pythonVersion = await getPythonVersion();
|
||||||
|
core.setOutput("python-version", pythonVersion);
|
||||||
|
|
||||||
if (enableCache) {
|
if (enableCache) {
|
||||||
await restoreCache();
|
await restoreCache(pythonVersion);
|
||||||
}
|
}
|
||||||
// https://github.com/nodejs/node/issues/56645#issuecomment-3077594952
|
// https://github.com/nodejs/node/issues/56645#issuecomment-3077594952
|
||||||
await new Promise((resolve) => setTimeout(resolve, 50));
|
await new Promise((resolve) => setTimeout(resolve, 50));
|
||||||
@@ -123,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);
|
||||||
@@ -140,7 +169,6 @@ async function determineVersion(
|
|||||||
return await resolveVersion(
|
return await resolveVersion(
|
||||||
versionFromFile,
|
versionFromFile,
|
||||||
manifestFile,
|
manifestFile,
|
||||||
githubToken,
|
|
||||||
resolutionStrategy,
|
resolutionStrategy,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -158,7 +186,6 @@ async function determineVersion(
|
|||||||
return await resolveVersion(
|
return await resolveVersion(
|
||||||
versionFromUvToml || versionFromPyproject || "latest",
|
versionFromUvToml || versionFromPyproject || "latest",
|
||||||
manifestFile,
|
manifestFile,
|
||||||
githubToken,
|
|
||||||
resolutionStrategy,
|
resolutionStrategy,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ function getCacheDirFromConfig(): string | undefined {
|
|||||||
export function getUvPythonDir(): string {
|
export function getUvPythonDir(): string {
|
||||||
if (process.env.UV_PYTHON_INSTALL_DIR !== undefined) {
|
if (process.env.UV_PYTHON_INSTALL_DIR !== undefined) {
|
||||||
core.info(
|
core.info(
|
||||||
`UV_PYTHON_INSTALL_DIR is already set to ${process.env.UV_PYTHON_INSTALL_DIR}`,
|
`UV_PYTHON_INSTALL_DIR is already set to ${process.env.UV_PYTHON_INSTALL_DIR}`,
|
||||||
);
|
);
|
||||||
return process.env.UV_PYTHON_INSTALL_DIR;
|
return process.env.UV_PYTHON_INSTALL_DIR;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import fs from "node:fs";
|
||||||
|
import os from "node:os";
|
||||||
import * as core from "@actions/core";
|
import * as core from "@actions/core";
|
||||||
import * as exec from "@actions/exec";
|
import * as exec from "@actions/exec";
|
||||||
export type Platform =
|
export type Platform =
|
||||||
@@ -74,3 +76,71 @@ async function isMuslOs(): Promise<boolean> {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns OS name and version for cache key differentiation.
|
||||||
|
* Examples: "ubuntu-22.04", "macos-14", "windows-2022"
|
||||||
|
* Throws if OS detection fails.
|
||||||
|
*/
|
||||||
|
export function getOSNameVersion(): string {
|
||||||
|
const platform = process.platform;
|
||||||
|
|
||||||
|
if (platform === "linux") {
|
||||||
|
return getLinuxOSNameVersion();
|
||||||
|
}
|
||||||
|
if (platform === "darwin") {
|
||||||
|
return getMacOSNameVersion();
|
||||||
|
}
|
||||||
|
if (platform === "win32") {
|
||||||
|
return getWindowsNameVersion();
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Error(`Unsupported platform: ${platform}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getLinuxOSNameVersion(): string {
|
||||||
|
const files = ["/etc/os-release", "/usr/lib/os-release"];
|
||||||
|
|
||||||
|
for (const file of files) {
|
||||||
|
try {
|
||||||
|
const content = fs.readFileSync(file, "utf8");
|
||||||
|
const id = parseOsReleaseValue(content, "ID");
|
||||||
|
const versionId = parseOsReleaseValue(content, "VERSION_ID");
|
||||||
|
|
||||||
|
if (id && versionId) {
|
||||||
|
return `${id}-${versionId}`;
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
// Try next file
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Error(
|
||||||
|
"Failed to determine Linux distribution. " +
|
||||||
|
"Could not read /etc/os-release or /usr/lib/os-release",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseOsReleaseValue(content: string, key: string): string | undefined {
|
||||||
|
const regex = new RegExp(`^${key}=["']?([^"'\\n]*)["']?$`, "m");
|
||||||
|
const match = content.match(regex);
|
||||||
|
return match?.[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
function getMacOSNameVersion(): string {
|
||||||
|
const darwinVersion = Number.parseInt(os.release().split(".")[0], 10);
|
||||||
|
if (Number.isNaN(darwinVersion)) {
|
||||||
|
throw new Error(`Failed to parse macOS version from: ${os.release()}`);
|
||||||
|
}
|
||||||
|
const macosVersion = darwinVersion - 9;
|
||||||
|
return `macos-${macosVersion}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getWindowsNameVersion(): string {
|
||||||
|
const version = os.version();
|
||||||
|
const match = version.match(/Windows(?: Server)? (\d+)/);
|
||||||
|
if (!match) {
|
||||||
|
throw new Error(`Failed to parse Windows version from: ${version}`);
|
||||||
|
}
|
||||||
|
return `windows-${match[1]}`;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,4 +1,1138 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "arm",
|
||||||
|
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnueabihf",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-i686-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64",
|
||||||
|
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64le",
|
||||||
|
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "riscv64gc",
|
||||||
|
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "s390x",
|
||||||
|
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "arm",
|
||||||
|
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnueabihf",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-i686-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64",
|
||||||
|
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64le",
|
||||||
|
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "riscv64gc",
|
||||||
|
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "s390x",
|
||||||
|
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.25/uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "arm",
|
||||||
|
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnueabihf",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-i686-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64",
|
||||||
|
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64le",
|
||||||
|
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "riscv64gc",
|
||||||
|
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "s390x",
|
||||||
|
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.24/uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "arm",
|
||||||
|
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnueabihf",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-i686-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64",
|
||||||
|
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64le",
|
||||||
|
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "riscv64gc",
|
||||||
|
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "s390x",
|
||||||
|
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.23/uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "arm",
|
||||||
|
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnueabihf",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-i686-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64",
|
||||||
|
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64le",
|
||||||
|
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "riscv64gc",
|
||||||
|
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "s390x",
|
||||||
|
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.22/uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "arm",
|
||||||
|
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnueabihf",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-i686-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64",
|
||||||
|
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64le",
|
||||||
|
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "riscv64gc",
|
||||||
|
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "s390x",
|
||||||
|
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.21/uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "arm",
|
||||||
|
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnueabihf",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-i686-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64",
|
||||||
|
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64le",
|
||||||
|
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "riscv64gc",
|
||||||
|
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "s390x",
|
||||||
|
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.20/uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "arm",
|
||||||
|
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnueabihf",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-i686-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64",
|
||||||
|
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64le",
|
||||||
|
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "riscv64gc",
|
||||||
|
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "s390x",
|
||||||
|
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.18/uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "arm",
|
||||||
|
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnueabihf",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-i686-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64",
|
||||||
|
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64le",
|
||||||
|
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "riscv64gc",
|
||||||
|
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "s390x",
|
||||||
|
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.9.17/uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.9.17"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"arch": "aarch64",
|
"arch": "aarch64",
|
||||||
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
|||||||
Reference in New Issue
Block a user