mirror of
https://github.com/astral-sh/setup-uv.git
synced 2026-06-09 11:30:42 +00:00
Compare commits
72 Commits
v3.2.4
...
use-uv-fro
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
928a502318 | ||
|
|
f95cd8710c | ||
|
|
61ee7954c6 | ||
|
|
cad8337f4e | ||
|
|
a4c8ae423e | ||
|
|
afa3c8c42b | ||
|
|
4db96194c3 | ||
|
|
2625dd350b | ||
|
|
f9e15a1be8 | ||
|
|
1c21f62d98 | ||
|
|
982fbca0f8 | ||
|
|
35cf70845a | ||
|
|
7cf65ded99 | ||
|
|
6ade4fc248 | ||
|
|
6e6e5a74f6 | ||
|
|
20980170aa | ||
|
|
02dfe76bef | ||
|
|
3548439624 | ||
|
|
9d3a8b144e | ||
|
|
14dc0be27c | ||
|
|
b5f58b2abc | ||
|
|
4e3dbecc19 | ||
|
|
2487ffc9aa | ||
|
|
118b7214ec | ||
|
|
d942048030 | ||
|
|
77cc1aee22 | ||
|
|
169ed2a5f2 | ||
|
|
9fffe05b88 | ||
|
|
5ce9ee0011 | ||
|
|
d577e74f98 | ||
|
|
7174288630 | ||
|
|
94a861f4b5 | ||
|
|
e9f61537d9 | ||
|
|
4cd05096c3 | ||
|
|
7768fe6bf0 | ||
|
|
7b290f7b85 | ||
|
|
949720bc7f | ||
|
|
d837751086 | ||
|
|
9869cbc19a | ||
|
|
03fe035094 | ||
|
|
887a942a15 | ||
|
|
d174a24c07 | ||
|
|
12c852e6ba | ||
|
|
180f8b4439 | ||
|
|
e3fb95a689 | ||
|
|
2af22b5b2d | ||
|
|
dd578776bb | ||
|
|
85aa0bf0c1 | ||
|
|
1f2cbfa7bb | ||
|
|
25b3ce6330 | ||
|
|
856099c958 | ||
|
|
e3017a763c | ||
|
|
3460fe1a9a | ||
|
|
884a30e33c | ||
|
|
f064c84ddb | ||
|
|
be4207d29e | ||
|
|
bdcda7e77f | ||
|
|
1e4d4ea9ff | ||
|
|
f0b64e0d53 | ||
|
|
38f3f10444 | ||
|
|
8bdd012be5 | ||
|
|
5f42d5af6c | ||
|
|
26ddfef6e1 | ||
|
|
ee4fa33003 | ||
|
|
420915557e | ||
|
|
9839fa9fb5 | ||
|
|
196fe5f098 | ||
|
|
49d8a3d9a8 | ||
|
|
d8db0a86d3 | ||
|
|
ed171c292b | ||
|
|
691a091485 | ||
|
|
9b71657bb2 |
2
.github/workflows/release-drafter.yml
vendored
2
.github/workflows/release-drafter.yml
vendored
@@ -14,6 +14,6 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 🚀 Run Release Drafter
|
||||
uses: release-drafter/release-drafter@v6.0.0
|
||||
uses: release-drafter/release-drafter@v6.1.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
10
.github/workflows/test-cache-windows.yml
vendored
10
.github/workflows/test-cache-windows.yml
vendored
@@ -11,10 +11,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
test-setup-cache:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [windows-latest]
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
@@ -25,10 +22,7 @@ jobs:
|
||||
- run: uv sync
|
||||
working-directory: __tests__\fixtures\uv-project
|
||||
test-restore-cache:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [windows-latest]
|
||||
runs-on: windows-latest
|
||||
needs: test-setup-cache
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
118
.github/workflows/test-cache.yml
vendored
118
.github/workflows/test-cache.yml
vendored
@@ -14,21 +14,65 @@ jobs:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, macos-14]
|
||||
enable-cache: [ "true", "false", "auto" ]
|
||||
os: ["ubuntu-latest", "selfhosted-ubuntu-arm64"]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
|
||||
enable-cache: ${{ matrix.enable-cache }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-${{ matrix.os }}-${{ matrix.enable-cache }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-restore-cache:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, macos-14]
|
||||
enable-cache: [ "true", "false", "auto" ]
|
||||
os: [ "ubuntu-latest", "selfhosted-ubuntu-arm64" ]
|
||||
needs: test-setup-cache
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: ${{ matrix.enable-cache }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-${{ matrix.os }}-${{ matrix.enable-cache }}
|
||||
- name: Cache was hit
|
||||
if: ${{ matrix.enable-cache == 'true' || (matrix.enable-cache == 'auto' && matrix.os == 'ubuntu-latest') }}
|
||||
run: |
|
||||
if [ "$CACHE_HIT" != "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- name: Cache was not hit
|
||||
if: ${{ matrix.enable-cache == 'false' || (matrix.enable-cache == 'auto' && matrix.os == 'selfhosted-ubuntu-arm64') }}
|
||||
run: |
|
||||
if [ "$CACHE_HIT" == "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-setup-cache-requirements-txt:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-requirements-txt
|
||||
- run: |
|
||||
uv venv
|
||||
uv pip install -r requirements.txt
|
||||
working-directory: __tests__/fixtures/requirements-txt-project
|
||||
test-restore-cache-requirements-txt:
|
||||
runs-on: ubuntu-latest
|
||||
needs: test-setup-cache
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -37,7 +81,7 @@ jobs:
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-requirements-txt
|
||||
- name: Cache was hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" != "true" ]; then
|
||||
@@ -45,8 +89,10 @@ jobs:
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
- run: |
|
||||
uv venv
|
||||
uv pip install -r requirements.txt
|
||||
working-directory: __tests__/fixtures/requirements-txt-project
|
||||
|
||||
test-setup-cache-dependency-glob:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -59,7 +105,7 @@ jobs:
|
||||
cache-dependency-glob: |
|
||||
__tests__/fixtures/uv-project/uv.lock
|
||||
**/pyproject.toml
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-dependency-glob
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-restore-cache-dependency-glob:
|
||||
@@ -79,7 +125,8 @@ jobs:
|
||||
cache-dependency-glob: |
|
||||
__tests__/fixtures/uv-project/uv.lock
|
||||
**/pyproject.toml
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-dependency-glob
|
||||
ignore-nothing-to-cache: true
|
||||
- name: Cache was not hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" == "true" ]; then
|
||||
@@ -96,7 +143,7 @@ jobs:
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
|
||||
cache-local-path: /tmp/uv-cache
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
@@ -110,7 +157,7 @@ jobs:
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
|
||||
cache-local-path: /tmp/uv-cache
|
||||
- name: Cache was hit
|
||||
run: |
|
||||
@@ -122,38 +169,38 @@ jobs:
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
prepare-tilde-expansion-tests:
|
||||
test-tilde-expansion-cache-local-path:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Create cache directory
|
||||
run: mkdir -p ~/uv-cache
|
||||
shell: bash
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
cache-local-path: ~/uv-cache/cache-local-path
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-tilde-expansion-cache-dependency-glob:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Create cache directory
|
||||
run: mkdir -p ~/uv-cache
|
||||
shell: bash
|
||||
- name: Create cache dependency glob file
|
||||
run: touch ~/uv-cache.glob
|
||||
shell: bash
|
||||
|
||||
test-tilde-expansion-cache-local-path:
|
||||
needs: prepare-tilde-expansion-tests
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-local-path: ~/uv-cache/cache-local-path
|
||||
|
||||
test-tilde-expansion-cache-dependency-glob:
|
||||
needs: prepare-tilde-expansion-tests
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-local-path: ~/uv-cache/cache-dependency-glob
|
||||
cache-dependency-glob: "~/uv-cache.glob"
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
cleanup-tilde-expansion-tests:
|
||||
needs:
|
||||
@@ -167,3 +214,16 @@ jobs:
|
||||
- name: Remove cache dependency glob file
|
||||
run: rm -f ~/uv-cache.glob
|
||||
shell: bash
|
||||
|
||||
test-no-python-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Fake pyproject.toml at root
|
||||
run: cp __tests__/fixtures/old-python-constraint-project/pyproject.toml pyproject.toml
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/old-python-constraint-project
|
||||
|
||||
98
.github/workflows/test.yml
vendored
98
.github/workflows/test.yml
vendored
@@ -28,19 +28,18 @@ jobs:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, macos-14, selfhosted-ubuntu-arm64]
|
||||
os: [ubuntu-latest, macos-latest, macos-14]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install default version
|
||||
- name: Install latest version
|
||||
uses: ./
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-specific-version:
|
||||
runs-on: ${{ matrix.os }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, macos-14, selfhosted-ubuntu-arm64]
|
||||
uv-version: ["latest", "0.3.0", "0.3.2", "0.3", "0.3.x", ">=0.3.0"]
|
||||
uv-version: ["0.3.0", "0.3.2", "0.3", "0.3.x", ">=0.3.0"]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install version ${{ matrix.uv-version }}
|
||||
@@ -50,10 +49,7 @@ jobs:
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-semver-range:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, selfhosted-ubuntu-arm64]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install version 0.3
|
||||
@@ -68,19 +64,52 @@ jobs:
|
||||
fi
|
||||
env:
|
||||
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
|
||||
test-pyproject-file-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install version 0.5.14
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
pyproject-file: "__tests__/fixtures/pyproject-toml-project/pyproject.toml"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$UV_VERSION" != "0.5.14" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
|
||||
test-uv-file-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install version 0.5.15
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
pyproject-file: "__tests__/fixtures/uv-toml-project/pyproject.toml"
|
||||
uv-file: "__tests__/fixtures/uv-toml-project/uv.toml"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$UV_VERSION" != "0.5.15" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
|
||||
test-checksum:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, selfhosted-ubuntu-arm64]
|
||||
os: [ubuntu-latest, macos-latest]
|
||||
checksum:
|
||||
["4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd"]
|
||||
exclude:
|
||||
- os: selfhosted-ubuntu-arm64
|
||||
- os: macos-latest
|
||||
checksum: "4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd"
|
||||
include:
|
||||
- os: selfhosted-ubuntu-arm64
|
||||
checksum: "e11b01402ab645392c7ad6044db63d37e4fd1e745e015306993b07695ea5f9f8"
|
||||
- os: macos-latest
|
||||
checksum: "a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218"
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checksum matches expected
|
||||
@@ -88,6 +117,8 @@ jobs:
|
||||
with:
|
||||
version: "0.3.2"
|
||||
checksum: ${{ matrix.checksum }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-with-explicit-token:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -115,7 +146,6 @@ jobs:
|
||||
macos-latest,
|
||||
macos-14,
|
||||
windows-latest,
|
||||
selfhosted-ubuntu-arm64,
|
||||
]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -123,7 +153,6 @@ jobs:
|
||||
uses: ./
|
||||
- run: uv tool install ruff
|
||||
- run: ruff --version
|
||||
|
||||
test-tilde-expansion-tool-dirs:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
@@ -143,4 +172,43 @@ jobs:
|
||||
echo "UV_TOOL_DIR does not contain /home/ubuntu/tool-dir: $UV_TOOL_DIR"
|
||||
exit 1
|
||||
fi
|
||||
test-python-version:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install latest version
|
||||
uses: ./
|
||||
with:
|
||||
python-version: 3.13.1t
|
||||
- name: Verify UV_PYTHON is set to correct version
|
||||
run: |
|
||||
echo "$UV_PYTHON"
|
||||
if [ "$UV_PYTHON" != "3.13.1t" ]; then
|
||||
exit 1
|
||||
fi
|
||||
shell: bash
|
||||
- name: Verify packages can be installed
|
||||
run: uv pip install --python=3.13.1t pip
|
||||
shell: bash
|
||||
- name: Verify python version is correct
|
||||
run: |
|
||||
python --version
|
||||
if [ "$(python --version)" != "Python 3.13.1" ]; then
|
||||
exit 1
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
test-malformed-pyproject-file-fallback:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install using malformed pyproject.toml
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
pyproject-file: "__tests__/fixtures/malformed-pyproject-toml-project/pyproject.toml"
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
4
.github/workflows/update-known-checksums.yml
vendored
4
.github/workflows/update-known-checksums.yml
vendored
@@ -1,6 +1,8 @@
|
||||
name: "Update known checksums"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: "0 4 * * *" # Run every day at 4am UTC
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -17,7 +19,7 @@ jobs:
|
||||
src/download/checksum/known-checksums.ts ${{ secrets.GITHUB_TOKEN }}
|
||||
- run: npm install && npm run all
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
|
||||
uses: peter-evans/create-pull-request@67ccf781d68cd99b580ae25a5c18a1cc84ffff1f # v7.0.6
|
||||
with:
|
||||
commit-message: "chore: update known checksums"
|
||||
title:
|
||||
|
||||
168
README.md
168
README.md
@@ -11,13 +11,18 @@ Set up your GitHub Actions workflow with a specific version of [uv](https://docs
|
||||
## Contents
|
||||
|
||||
- [Usage](#usage)
|
||||
- [Install the latest version (default)](#install-the-latest-version-default)
|
||||
- [Install a required-version or latest (default)](#install-a-required-version-or-latest-default)
|
||||
- [Install the latest version](#install-the-latest-version)
|
||||
- [Install a specific version](#install-a-specific-version)
|
||||
- [Install a version by supplying a semver range](#install-a-version-by-supplying-a-semver-range)
|
||||
- [Install a required-version](#install-a-required-version)
|
||||
- [Python version](#python-version)
|
||||
- [Validate checksum](#validate-checksum)
|
||||
- [Enable Caching](#enable-caching)
|
||||
- [Cache dependency glob](#cache-dependency-glob)
|
||||
- [Local cache path](#local-cache-path)
|
||||
- [Disable cache pruning](#disable-cache-pruning)
|
||||
- [Ignore nothing to cache](#ignore-nothing-to-cache)
|
||||
- [GitHub authentication token](#github-authentication-token)
|
||||
- [UV_TOOL_DIR](#uv_tool_dir)
|
||||
- [UV_TOOL_BIN_DIR](#uv_tool_bin_dir)
|
||||
@@ -27,61 +32,121 @@ Set up your GitHub Actions workflow with a specific version of [uv](https://docs
|
||||
|
||||
## Usage
|
||||
|
||||
### Install the latest version (default)
|
||||
### Install a required-version or latest (default)
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
version: "latest"
|
||||
uses: astral-sh/setup-uv@v5
|
||||
```
|
||||
|
||||
If you do not specify a version, this action will look for a [required-version](https://docs.astral.sh/uv/reference/settings/#required-version)
|
||||
in a `uv.toml` or `pyproject.toml` file in the repository root. If none is found, the latest version will be installed.
|
||||
|
||||
For an example workflow, see
|
||||
[here](https://github.com/charliermarsh/autobot/blob/e42c66659bf97b90ca9ff305a19cc99952d0d43f/.github/workflows/ci.yaml).
|
||||
|
||||
> [!TIP]
|
||||
>
|
||||
> Using `latest` requires that uv download the executable on every run, which incurs a cost
|
||||
> (especially on self-hosted runners). As a best practice, consider pinning the version to a
|
||||
> specific release.
|
||||
### Install the latest version
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
version: "latest"
|
||||
```
|
||||
|
||||
### Install a specific version
|
||||
|
||||
```yaml
|
||||
- name: Install a specific version of uv
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
version: "0.4.4"
|
||||
```
|
||||
|
||||
### Install a version by supplying a semver range
|
||||
|
||||
You can also specify a [semver range](https://github.com/npm/node-semver?tab=readme-ov-file#ranges)
|
||||
You can specify a [semver range](https://github.com/npm/node-semver?tab=readme-ov-file#ranges)
|
||||
to install the latest version that satisfies the range.
|
||||
|
||||
```yaml
|
||||
- name: Install a semver range of uv
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
version: ">=0.4.0"
|
||||
```
|
||||
|
||||
```yaml
|
||||
- name: Pinning a minor version of uv
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
version: "0.4.x"
|
||||
```
|
||||
|
||||
### Install a required-version
|
||||
|
||||
You can specify a [required-version](https://docs.astral.sh/uv/reference/settings/#required-version)
|
||||
in either a `uv.toml` or `pyproject.toml` file:
|
||||
|
||||
```yaml
|
||||
- name: Install required-version defined in uv.toml
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
uv-file: "path/to/uv.toml"
|
||||
```
|
||||
|
||||
```yaml
|
||||
- name: Install required-version defined in pyproject.toml
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
pyproject-file: "path/to/pyproject.toml"
|
||||
```
|
||||
|
||||
### Python version
|
||||
|
||||
You can use the input `python-version` to
|
||||
|
||||
- set the environment variable `UV_PYTHON` for the rest of your workflow
|
||||
- create a new virtual environment with the specified python version
|
||||
- activate the virtual environment for the rest of your workflow
|
||||
|
||||
This will override any python version specifications in `pyproject.toml` and `.python-version`
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv and set the python version to 3.13t
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
python-version: 3.13t
|
||||
- run: uv pip install --python=3.13t pip
|
||||
```
|
||||
|
||||
You can combine this with a matrix to test multiple python versions:
|
||||
|
||||
```yaml
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.9", "3.10", "3.11", "3.12"]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install the latest version of uv and set the python version
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Test with python ${{ matrix.python-version }}
|
||||
run: uv run --frozen pytest
|
||||
```
|
||||
|
||||
### Validate checksum
|
||||
|
||||
You can also specify a checksum to validate the downloaded file. Checksums up to the default version
|
||||
You can specify a checksum to validate the downloaded executable. Checksums up to the default version
|
||||
are automatically verified by this action. The sha256 hashes can be found on the
|
||||
[releases page](https://github.com/astral-sh/uv/releases) of the uv repo.
|
||||
|
||||
```yaml
|
||||
- name: Install a specific version and validate the checksum
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
version: "0.3.1"
|
||||
checksum: "e11b01402ab645392c7ad6044db63d37e4fd1e745e015306993b07695ea5f9f8"
|
||||
@@ -89,8 +154,8 @@ are automatically verified by this action. The sha256 hashes can be found on the
|
||||
|
||||
### Enable caching
|
||||
|
||||
If you enable caching, the [uv cache](https://docs.astral.sh/uv/concepts/cache/) will be cached to
|
||||
the GitHub Actions Cache. This can speed up runs that reuse the cache by several minutes.
|
||||
If you enable caching, the [uv cache](https://docs.astral.sh/uv/concepts/cache/) will be uploaded to
|
||||
the GitHub Actions cache. This can speed up runs that reuse the cache by several minutes.
|
||||
|
||||
> [!TIP]
|
||||
>
|
||||
@@ -102,7 +167,7 @@ You can optionally define a custom cache key suffix.
|
||||
```yaml
|
||||
- name: Enable caching and define a custom cache key suffix
|
||||
id: setup-uv
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: "optional-suffix"
|
||||
@@ -119,25 +184,30 @@ use it in subsequent steps. For example, to use the cache in the above case:
|
||||
|
||||
#### Cache dependency glob
|
||||
|
||||
If you want to control when the cache is invalidated, specify a glob pattern with the
|
||||
`cache-dependency-glob` input. The cache will be invalidated if any file matching the glob pattern
|
||||
changes. If you use relative paths, the glob matches files relative to the repository root.
|
||||
If you want to control when the GitHub Actions cache is invalidated, specify a glob pattern with the
|
||||
`cache-dependency-glob` input. The GitHub Actions cache will be invalidated if any file matching the glob pattern
|
||||
changes. If you use relative paths, they are relative to the repository root.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> The default is `**/uv.lock`.
|
||||
> The default is
|
||||
> ```yaml
|
||||
> cache-dependency-glob: |
|
||||
> **/requirements*.txt
|
||||
> **/uv.lock
|
||||
> ```
|
||||
|
||||
```yaml
|
||||
- name: Define a cache dependency glob
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: "**/requirements*.txt"
|
||||
cache-dependency-glob: "**/pyproject.toml"
|
||||
```
|
||||
|
||||
```yaml
|
||||
- name: Define a list of cache dependency globs
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: |
|
||||
@@ -147,7 +217,7 @@ changes. If you use relative paths, the glob matches files relative to the repos
|
||||
|
||||
```yaml
|
||||
- name: Define an absolute cache dependency glob
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: "/tmp/my-folder/requirements*.txt"
|
||||
@@ -155,7 +225,7 @@ changes. If you use relative paths, the glob matches files relative to the repos
|
||||
|
||||
```yaml
|
||||
- name: Never invalidate the cache
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: ""
|
||||
@@ -170,7 +240,7 @@ It defaults to `setup-uv-cache` in the `TMP` dir, `D:\a\_temp\uv-tool-dir` on Wi
|
||||
|
||||
```yaml
|
||||
- name: Define a custom uv cache path
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
cache-local-path: "/path/to/cache"
|
||||
```
|
||||
@@ -181,20 +251,33 @@ By default, the uv cache is pruned after every run, removing pre-built wheels, b
|
||||
wheels that were built from source. On GitHub-hosted runners, it's typically faster to omit those
|
||||
pre-built wheels from the cache (and instead re-download them from the registry on each run).
|
||||
However, on self-hosted or local runners, preserving the cache may be more efficient. See
|
||||
the[documentation](https://docs.astral.sh/uv/concepts/cache/#caching-in-continuous-integration) for
|
||||
more.
|
||||
the [documentation](https://docs.astral.sh/uv/concepts/cache/#caching-in-continuous-integration) for
|
||||
more information.
|
||||
|
||||
If you want to persist the entire cache across runs, disable cache pruning with the `prune-cache`
|
||||
input.
|
||||
|
||||
```yaml
|
||||
- name: Don't prune the cache before saving it
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
enable-cache: true
|
||||
prune-cache: false
|
||||
```
|
||||
|
||||
### Ignore nothing to cache
|
||||
|
||||
By default, the action will fail if caching is enabled but there is nothing to upload (the uv cache directory does not exist).
|
||||
If you want to ignore this, set the `ignore-nothing-to-cache` input to `true`.
|
||||
|
||||
```yaml
|
||||
- name: Ignore nothing to cache
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
enable-cache: true
|
||||
ignore-nothing-to-cache: true
|
||||
```
|
||||
|
||||
### GitHub authentication token
|
||||
|
||||
This action uses the GitHub API to fetch the uv release artifacts. To avoid hitting the GitHub API
|
||||
@@ -207,7 +290,7 @@ are not sufficient, you can provide a custom GitHub token with the necessary per
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv with a custom GitHub token
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
github-token: ${{ secrets.CUSTOM_GITHUB_TOKEN }}
|
||||
```
|
||||
@@ -225,7 +308,7 @@ input:
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv with a custom tool dir
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
tool-dir: "/path/to/tool/dir"
|
||||
```
|
||||
@@ -244,7 +327,7 @@ If you want to change this behaviour (especially on self-hosted runners) you can
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv with a custom tool bin dir
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
tool-bin-dir: "/path/to/tool-bin/dir"
|
||||
```
|
||||
@@ -260,7 +343,7 @@ This action supports expanding the `~` character to the user's home directory fo
|
||||
|
||||
```yaml
|
||||
- name: Expand the tilde character
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
cache-local-path: "~/path/to/cache"
|
||||
tool-dir: "~/path/to/tool/dir"
|
||||
@@ -282,21 +365,22 @@ by name (`uv`).
|
||||
|
||||
### Do I still need `actions/setup-python` alongside `setup-uv`?
|
||||
|
||||
No. This action is modelled as a drop-in replacement for `actions/setup-python` when using 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`.
|
||||
|
||||
Using `actions/setup-python` can be faster, because GitHub caches the Python versions alongside the runner.
|
||||
|
||||
For example:
|
||||
|
||||
```yaml
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@main
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
enable-cache: true
|
||||
- name: Test
|
||||
run: uv run --frozen pytest
|
||||
run: uv run --frozen pytest # Uses the Python version automatically installed by uv
|
||||
```
|
||||
|
||||
To install a specific version of Python, use
|
||||
@@ -304,7 +388,7 @@ To install a specific version of Python, use
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
enable-cache: true
|
||||
- name: Install Python 3.12
|
||||
@@ -323,7 +407,7 @@ output:
|
||||
uses: actions/checkout@main
|
||||
- name: Install the default version of uv
|
||||
id: setup-uv
|
||||
uses: astral-sh/setup-uv@v3
|
||||
uses: astral-sh/setup-uv@v5
|
||||
- name: Print the installed version
|
||||
run: echo "Installed uv version is ${{ steps.setup-uv.outputs.uv-version }}"
|
||||
```
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
3.11
|
||||
@@ -0,0 +1,6 @@
|
||||
def main():
|
||||
print("Hello from malformed-pyproject-toml-project!")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,9 @@
|
||||
[project]
|
||||
name = "malformed-pyproject-toml-project"
|
||||
version = "0.1.0"
|
||||
description = "Add your description here"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.11"
|
||||
dependencies = []
|
||||
|
||||
[malformed-toml
|
||||
@@ -0,0 +1,13 @@
|
||||
[project]
|
||||
name = "old-python-constraint-project"
|
||||
version = "0.1.0"
|
||||
description = "Add your description here"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.8,<=3.9"
|
||||
dependencies = [
|
||||
"ruff>=0.6.2",
|
||||
]
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
@@ -0,0 +1,2 @@
|
||||
def hello() -> str:
|
||||
return "Hello from uv-project!"
|
||||
38
__tests__/fixtures/old-python-constraint-project/uv.lock
generated
Normal file
38
__tests__/fixtures/old-python-constraint-project/uv.lock
generated
Normal file
@@ -0,0 +1,38 @@
|
||||
version = 1
|
||||
requires-python = ">=3.12"
|
||||
|
||||
[[package]]
|
||||
name = "ruff"
|
||||
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"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "ruff" },
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [{ name = "ruff" }]
|
||||
@@ -0,0 +1 @@
|
||||
3.11
|
||||
0
__tests__/fixtures/pyproject-toml-project/README.md
Normal file
0
__tests__/fixtures/pyproject-toml-project/README.md
Normal file
6
__tests__/fixtures/pyproject-toml-project/hello.py
Normal file
6
__tests__/fixtures/pyproject-toml-project/hello.py
Normal file
@@ -0,0 +1,6 @@
|
||||
def main():
|
||||
print("Hello from pyproject-toml-project!")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
19
__tests__/fixtures/pyproject-toml-project/pyproject.toml
Normal file
19
__tests__/fixtures/pyproject-toml-project/pyproject.toml
Normal file
@@ -0,0 +1,19 @@
|
||||
[project]
|
||||
name = "pyproject-toml-project"
|
||||
version = "0.1.0"
|
||||
description = "Add your description here"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.11"
|
||||
dependencies = []
|
||||
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
"reuse==5.0.2",
|
||||
{include-group = "lint"},
|
||||
]
|
||||
lint = [
|
||||
"flake8==4.0.1",
|
||||
]
|
||||
|
||||
[tool.uv]
|
||||
required-version = "==0.5.14"
|
||||
@@ -0,0 +1 @@
|
||||
print("Hello world")
|
||||
@@ -0,0 +1 @@
|
||||
ruff>=0.6.2
|
||||
1
__tests__/fixtures/uv-toml-project/.python-version
Normal file
1
__tests__/fixtures/uv-toml-project/.python-version
Normal file
@@ -0,0 +1 @@
|
||||
3.11
|
||||
0
__tests__/fixtures/uv-toml-project/README.md
Normal file
0
__tests__/fixtures/uv-toml-project/README.md
Normal file
6
__tests__/fixtures/uv-toml-project/hello.py
Normal file
6
__tests__/fixtures/uv-toml-project/hello.py
Normal file
@@ -0,0 +1,6 @@
|
||||
def main():
|
||||
print("Hello from uv-toml-project!")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
10
__tests__/fixtures/uv-toml-project/pyproject.toml
Normal file
10
__tests__/fixtures/uv-toml-project/pyproject.toml
Normal file
@@ -0,0 +1,10 @@
|
||||
[project]
|
||||
name = "uv-toml-project"
|
||||
version = "0.1.0"
|
||||
description = "Add your description here"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.11"
|
||||
dependencies = []
|
||||
|
||||
[tool.uv]
|
||||
required-version = "==0.5.14"
|
||||
1
__tests__/fixtures/uv-toml-project/uv.toml
Normal file
1
__tests__/fixtures/uv-toml-project/uv.toml
Normal file
@@ -0,0 +1 @@
|
||||
required-version = "==0.5.15"
|
||||
29
action.yml
29
action.yml
@@ -4,25 +4,35 @@ description:
|
||||
author: "astral-sh"
|
||||
inputs:
|
||||
version:
|
||||
description: "The version of uv to install"
|
||||
default: "latest"
|
||||
description: "The version of uv to install e.g., `0.5.0` Defaults to the version in pyproject.toml or 'latest'."
|
||||
default: ""
|
||||
pyproject-file:
|
||||
description: "Path to a pyproject.toml"
|
||||
default: ""
|
||||
uv-file:
|
||||
description: "Path to a uv.toml"
|
||||
default: ""
|
||||
python-version:
|
||||
description: "The version of Python to set UV_PYTHON to"
|
||||
required: false
|
||||
checksum:
|
||||
description: "The checksum of the uv version to install"
|
||||
required: false
|
||||
github-token:
|
||||
description:
|
||||
"Used to increase the rate limit when retrieving versions and downloading
|
||||
uv."
|
||||
"Used to increase the rate limit when retrieving versions and downloading uv."
|
||||
required: false
|
||||
default: ${{ github.token }}
|
||||
enable-cache:
|
||||
description: "Enable caching of the uv cache"
|
||||
default: "false"
|
||||
description: "Enable uploading of the uv cache"
|
||||
default: "auto"
|
||||
cache-dependency-glob:
|
||||
description:
|
||||
"Glob pattern to match files relative to the repository root to control
|
||||
the cache."
|
||||
default: "**/uv.lock"
|
||||
default: |
|
||||
**/uv.lock
|
||||
**/requirements*.txt
|
||||
cache-suffix:
|
||||
description: "Suffix for the cache key"
|
||||
required: false
|
||||
@@ -31,7 +41,10 @@ inputs:
|
||||
default: ""
|
||||
prune-cache:
|
||||
description: "Prune cache before saving."
|
||||
default: true
|
||||
default: "true"
|
||||
ignore-nothing-to-cache:
|
||||
description: "Ignore when nothing is found to cache."
|
||||
default: "false"
|
||||
tool-dir:
|
||||
description: "Custom path to set UV_TOOL_DIR to."
|
||||
required: false
|
||||
|
||||
9670
dist/save-cache/index.js
generated
vendored
9670
dist/save-cache/index.js
generated
vendored
@@ -44,7 +44,10 @@ const core = __importStar(__nccwpck_require__(7484));
|
||||
const path = __importStar(__nccwpck_require__(6928));
|
||||
const utils = __importStar(__nccwpck_require__(680));
|
||||
const cacheHttpClient = __importStar(__nccwpck_require__(5552));
|
||||
const cacheTwirpClient = __importStar(__nccwpck_require__(6819));
|
||||
const config_1 = __nccwpck_require__(7606);
|
||||
const tar_1 = __nccwpck_require__(5321);
|
||||
const constants_1 = __nccwpck_require__(8287);
|
||||
class ValidationError extends Error {
|
||||
constructor(message) {
|
||||
super(message);
|
||||
@@ -88,15 +91,39 @@ exports.isFeatureAvailable = isFeatureAvailable;
|
||||
* Restores cache from keys
|
||||
*
|
||||
* @param paths a list of file paths to restore from the cache
|
||||
* @param primaryKey an explicit key for restoring the cache
|
||||
* @param restoreKeys an optional ordered list of keys to use for restoring the cache if no cache hit occurred for key
|
||||
* @param primaryKey an explicit key for restoring the cache. Lookup is done with prefix matching.
|
||||
* @param restoreKeys an optional ordered list of keys to use for restoring the cache if no cache hit occurred for primaryKey
|
||||
* @param downloadOptions cache download options
|
||||
* @param enableCrossOsArchive an optional boolean enabled to restore on windows any cache created on any platform
|
||||
* @returns string returns the key for the cache hit, otherwise returns undefined
|
||||
*/
|
||||
function restoreCache(paths, primaryKey, restoreKeys, options, enableCrossOsArchive = false) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const cacheServiceVersion = (0, config_1.getCacheServiceVersion)();
|
||||
core.debug(`Cache service version: ${cacheServiceVersion}`);
|
||||
checkPaths(paths);
|
||||
switch (cacheServiceVersion) {
|
||||
case 'v2':
|
||||
return yield restoreCacheV2(paths, primaryKey, restoreKeys, options, enableCrossOsArchive);
|
||||
case 'v1':
|
||||
default:
|
||||
return yield restoreCacheV1(paths, primaryKey, restoreKeys, options, enableCrossOsArchive);
|
||||
}
|
||||
});
|
||||
}
|
||||
exports.restoreCache = restoreCache;
|
||||
/**
|
||||
* Restores cache using the legacy Cache Service
|
||||
*
|
||||
* @param paths a list of file paths to restore from the cache
|
||||
* @param primaryKey an explicit key for restoring the cache. Lookup is done with prefix matching.
|
||||
* @param restoreKeys an optional ordered list of keys to use for restoring the cache if no cache hit occurred for primaryKey
|
||||
* @param options cache download options
|
||||
* @param enableCrossOsArchive an optional boolean enabled to restore on Windows any cache created on any platform
|
||||
* @returns string returns the key for the cache hit, otherwise returns undefined
|
||||
*/
|
||||
function restoreCacheV1(paths, primaryKey, restoreKeys, options, enableCrossOsArchive = false) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
restoreKeys = restoreKeys || [];
|
||||
const keys = [primaryKey, ...restoreKeys];
|
||||
core.debug('Resolved Keys:');
|
||||
@@ -158,7 +185,85 @@ function restoreCache(paths, primaryKey, restoreKeys, options, enableCrossOsArch
|
||||
return undefined;
|
||||
});
|
||||
}
|
||||
exports.restoreCache = restoreCache;
|
||||
/**
|
||||
* Restores cache using Cache Service v2
|
||||
*
|
||||
* @param paths a list of file paths to restore from the cache
|
||||
* @param primaryKey an explicit key for restoring the cache. Lookup is done with prefix matching
|
||||
* @param restoreKeys an optional ordered list of keys to use for restoring the cache if no cache hit occurred for primaryKey
|
||||
* @param downloadOptions cache download options
|
||||
* @param enableCrossOsArchive an optional boolean enabled to restore on windows any cache created on any platform
|
||||
* @returns string returns the key for the cache hit, otherwise returns undefined
|
||||
*/
|
||||
function restoreCacheV2(paths, primaryKey, restoreKeys, options, enableCrossOsArchive = false) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
// Override UploadOptions to force the use of Azure
|
||||
options = Object.assign(Object.assign({}, options), { useAzureSdk: true });
|
||||
restoreKeys = restoreKeys || [];
|
||||
const keys = [primaryKey, ...restoreKeys];
|
||||
core.debug('Resolved Keys:');
|
||||
core.debug(JSON.stringify(keys));
|
||||
if (keys.length > 10) {
|
||||
throw new ValidationError(`Key Validation Error: Keys are limited to a maximum of 10.`);
|
||||
}
|
||||
for (const key of keys) {
|
||||
checkKey(key);
|
||||
}
|
||||
let archivePath = '';
|
||||
try {
|
||||
const twirpClient = cacheTwirpClient.internalCacheTwirpClient();
|
||||
const compressionMethod = yield utils.getCompressionMethod();
|
||||
const request = {
|
||||
key: primaryKey,
|
||||
restoreKeys,
|
||||
version: utils.getCacheVersion(paths, compressionMethod, enableCrossOsArchive)
|
||||
};
|
||||
const response = yield twirpClient.GetCacheEntryDownloadURL(request);
|
||||
if (!response.ok) {
|
||||
core.warning(`Cache not found for keys: ${keys.join(', ')}`);
|
||||
return undefined;
|
||||
}
|
||||
core.info(`Cache hit for: ${request.key}`);
|
||||
if (options === null || options === void 0 ? void 0 : options.lookupOnly) {
|
||||
core.info('Lookup only - skipping download');
|
||||
return response.matchedKey;
|
||||
}
|
||||
archivePath = path.join(yield utils.createTempDirectory(), utils.getCacheFileName(compressionMethod));
|
||||
core.debug(`Archive path: ${archivePath}`);
|
||||
core.debug(`Starting download of archive to: ${archivePath}`);
|
||||
yield cacheHttpClient.downloadCache(response.signedDownloadUrl, archivePath, options);
|
||||
const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath);
|
||||
core.info(`Cache Size: ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B)`);
|
||||
if (core.isDebug()) {
|
||||
yield (0, tar_1.listTar)(archivePath, compressionMethod);
|
||||
}
|
||||
yield (0, tar_1.extractTar)(archivePath, compressionMethod);
|
||||
core.info('Cache restored successfully');
|
||||
return response.matchedKey;
|
||||
}
|
||||
catch (error) {
|
||||
const typedError = error;
|
||||
if (typedError.name === ValidationError.name) {
|
||||
throw error;
|
||||
}
|
||||
else {
|
||||
// Supress all non-validation cache related errors because caching should be optional
|
||||
core.warning(`Failed to restore: ${error.message}`);
|
||||
}
|
||||
}
|
||||
finally {
|
||||
try {
|
||||
if (archivePath) {
|
||||
yield utils.unlinkFile(archivePath);
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
core.debug(`Failed to delete archive: ${error}`);
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Saves a list of files with the specified key
|
||||
*
|
||||
@@ -169,10 +274,33 @@ exports.restoreCache = restoreCache;
|
||||
* @returns number returns cacheId if the cache was saved successfully and throws an error if save fails
|
||||
*/
|
||||
function saveCache(paths, key, options, enableCrossOsArchive = false) {
|
||||
var _a, _b, _c, _d, _e;
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const cacheServiceVersion = (0, config_1.getCacheServiceVersion)();
|
||||
core.debug(`Cache service version: ${cacheServiceVersion}`);
|
||||
checkPaths(paths);
|
||||
checkKey(key);
|
||||
switch (cacheServiceVersion) {
|
||||
case 'v2':
|
||||
return yield saveCacheV2(paths, key, options, enableCrossOsArchive);
|
||||
case 'v1':
|
||||
default:
|
||||
return yield saveCacheV1(paths, key, options, enableCrossOsArchive);
|
||||
}
|
||||
});
|
||||
}
|
||||
exports.saveCache = saveCache;
|
||||
/**
|
||||
* Save cache using the legacy Cache Service
|
||||
*
|
||||
* @param paths
|
||||
* @param key
|
||||
* @param options
|
||||
* @param enableCrossOsArchive
|
||||
* @returns
|
||||
*/
|
||||
function saveCacheV1(paths, key, options, enableCrossOsArchive = false) {
|
||||
var _a, _b, _c, _d, _e;
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const compressionMethod = yield utils.getCompressionMethod();
|
||||
let cacheId = -1;
|
||||
const cachePaths = yield utils.resolvePaths(paths);
|
||||
@@ -193,7 +321,7 @@ function saveCache(paths, key, options, enableCrossOsArchive = false) {
|
||||
const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath);
|
||||
core.debug(`File Size: ${archiveFileSize}`);
|
||||
// For GHES, this check will take place in ReserveCache API with enterprise file size limit
|
||||
if (archiveFileSize > fileSizeLimit && !utils.isGhes()) {
|
||||
if (archiveFileSize > fileSizeLimit && !(0, config_1.isGhes)()) {
|
||||
throw new Error(`Cache size of ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B) is over the 10GB limit, not saving cache.`);
|
||||
}
|
||||
core.debug('Reserving Cache');
|
||||
@@ -212,7 +340,95 @@ function saveCache(paths, key, options, enableCrossOsArchive = false) {
|
||||
throw new ReserveCacheError(`Unable to reserve cache with key ${key}, another job may be creating this cache. More details: ${(_e = reserveCacheResponse === null || reserveCacheResponse === void 0 ? void 0 : reserveCacheResponse.error) === null || _e === void 0 ? void 0 : _e.message}`);
|
||||
}
|
||||
core.debug(`Saving Cache (ID: ${cacheId})`);
|
||||
yield cacheHttpClient.saveCache(cacheId, archivePath, options);
|
||||
yield cacheHttpClient.saveCache(cacheId, archivePath, '', options);
|
||||
}
|
||||
catch (error) {
|
||||
const typedError = error;
|
||||
if (typedError.name === ValidationError.name) {
|
||||
throw error;
|
||||
}
|
||||
else if (typedError.name === ReserveCacheError.name) {
|
||||
core.info(`Failed to save: ${typedError.message}`);
|
||||
}
|
||||
else {
|
||||
core.warning(`Failed to save: ${typedError.message}`);
|
||||
}
|
||||
}
|
||||
finally {
|
||||
// Try to delete the archive to save space
|
||||
try {
|
||||
yield utils.unlinkFile(archivePath);
|
||||
}
|
||||
catch (error) {
|
||||
core.debug(`Failed to delete archive: ${error}`);
|
||||
}
|
||||
}
|
||||
return cacheId;
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Save cache using Cache Service v2
|
||||
*
|
||||
* @param paths a list of file paths to restore from the cache
|
||||
* @param key an explicit key for restoring the cache
|
||||
* @param options cache upload options
|
||||
* @param enableCrossOsArchive an optional boolean enabled to save cache on windows which could be restored on any platform
|
||||
* @returns
|
||||
*/
|
||||
function saveCacheV2(paths, key, options, enableCrossOsArchive = false) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
// Override UploadOptions to force the use of Azure
|
||||
// ...options goes first because we want to override the default values
|
||||
// set in UploadOptions with these specific figures
|
||||
options = Object.assign(Object.assign({}, options), { uploadChunkSize: 64 * 1024 * 1024, uploadConcurrency: 8, useAzureSdk: true });
|
||||
const compressionMethod = yield utils.getCompressionMethod();
|
||||
const twirpClient = cacheTwirpClient.internalCacheTwirpClient();
|
||||
let cacheId = -1;
|
||||
const cachePaths = yield utils.resolvePaths(paths);
|
||||
core.debug('Cache Paths:');
|
||||
core.debug(`${JSON.stringify(cachePaths)}`);
|
||||
if (cachePaths.length === 0) {
|
||||
throw new Error(`Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved.`);
|
||||
}
|
||||
const archiveFolder = yield utils.createTempDirectory();
|
||||
const archivePath = path.join(archiveFolder, utils.getCacheFileName(compressionMethod));
|
||||
core.debug(`Archive Path: ${archivePath}`);
|
||||
try {
|
||||
yield (0, tar_1.createTar)(archiveFolder, cachePaths, compressionMethod);
|
||||
if (core.isDebug()) {
|
||||
yield (0, tar_1.listTar)(archivePath, compressionMethod);
|
||||
}
|
||||
const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath);
|
||||
core.debug(`File Size: ${archiveFileSize}`);
|
||||
// For GHES, this check will take place in ReserveCache API with enterprise file size limit
|
||||
if (archiveFileSize > constants_1.CacheFileSizeLimit && !(0, config_1.isGhes)()) {
|
||||
throw new Error(`Cache size of ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B) is over the 10GB limit, not saving cache.`);
|
||||
}
|
||||
// Set the archive size in the options, will be used to display the upload progress
|
||||
options.archiveSizeBytes = archiveFileSize;
|
||||
core.debug('Reserving Cache');
|
||||
const version = utils.getCacheVersion(paths, compressionMethod, enableCrossOsArchive);
|
||||
const request = {
|
||||
key,
|
||||
version
|
||||
};
|
||||
const response = yield twirpClient.CreateCacheEntry(request);
|
||||
if (!response.ok) {
|
||||
throw new ReserveCacheError(`Unable to reserve cache with key ${key}, another job may be creating this cache.`);
|
||||
}
|
||||
core.debug(`Attempting to upload cache located at: ${archivePath}`);
|
||||
yield cacheHttpClient.saveCache(cacheId, archivePath, response.signedUploadUrl, options);
|
||||
const finalizeRequest = {
|
||||
key,
|
||||
version,
|
||||
sizeBytes: `${archiveFileSize}`
|
||||
};
|
||||
const finalizeResponse = yield twirpClient.FinalizeCacheEntryUpload(finalizeRequest);
|
||||
core.debug(`FinalizeCacheEntryUploadResponse: ${finalizeResponse.ok}`);
|
||||
if (!finalizeResponse.ok) {
|
||||
throw new Error(`Unable to finalize cache with key ${key}, another job may be finalizing this cache.`);
|
||||
}
|
||||
cacheId = parseInt(finalizeResponse.entryId);
|
||||
}
|
||||
catch (error) {
|
||||
const typedError = error;
|
||||
@@ -238,11 +454,1753 @@ function saveCache(paths, key, options, enableCrossOsArchive = false) {
|
||||
return cacheId;
|
||||
});
|
||||
}
|
||||
exports.saveCache = saveCache;
|
||||
//# sourceMappingURL=cache.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 8200:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.Timestamp = void 0;
|
||||
const runtime_1 = __nccwpck_require__(8886);
|
||||
const runtime_2 = __nccwpck_require__(8886);
|
||||
const runtime_3 = __nccwpck_require__(8886);
|
||||
const runtime_4 = __nccwpck_require__(8886);
|
||||
const runtime_5 = __nccwpck_require__(8886);
|
||||
const runtime_6 = __nccwpck_require__(8886);
|
||||
const runtime_7 = __nccwpck_require__(8886);
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class Timestamp$Type extends runtime_7.MessageType {
|
||||
constructor() {
|
||||
super("google.protobuf.Timestamp", [
|
||||
{ no: 1, name: "seconds", kind: "scalar", T: 3 /*ScalarType.INT64*/ },
|
||||
{ no: 2, name: "nanos", kind: "scalar", T: 5 /*ScalarType.INT32*/ }
|
||||
]);
|
||||
}
|
||||
/**
|
||||
* Creates a new `Timestamp` for the current time.
|
||||
*/
|
||||
now() {
|
||||
const msg = this.create();
|
||||
const ms = Date.now();
|
||||
msg.seconds = runtime_6.PbLong.from(Math.floor(ms / 1000)).toString();
|
||||
msg.nanos = (ms % 1000) * 1000000;
|
||||
return msg;
|
||||
}
|
||||
/**
|
||||
* Converts a `Timestamp` to a JavaScript Date.
|
||||
*/
|
||||
toDate(message) {
|
||||
return new Date(runtime_6.PbLong.from(message.seconds).toNumber() * 1000 + Math.ceil(message.nanos / 1000000));
|
||||
}
|
||||
/**
|
||||
* Converts a JavaScript Date to a `Timestamp`.
|
||||
*/
|
||||
fromDate(date) {
|
||||
const msg = this.create();
|
||||
const ms = date.getTime();
|
||||
msg.seconds = runtime_6.PbLong.from(Math.floor(ms / 1000)).toString();
|
||||
msg.nanos = (ms % 1000) * 1000000;
|
||||
return msg;
|
||||
}
|
||||
/**
|
||||
* In JSON format, the `Timestamp` type is encoded as a string
|
||||
* in the RFC 3339 format.
|
||||
*/
|
||||
internalJsonWrite(message, options) {
|
||||
let ms = runtime_6.PbLong.from(message.seconds).toNumber() * 1000;
|
||||
if (ms < Date.parse("0001-01-01T00:00:00Z") || ms > Date.parse("9999-12-31T23:59:59Z"))
|
||||
throw new Error("Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.");
|
||||
if (message.nanos < 0)
|
||||
throw new Error("Unable to encode invalid Timestamp to JSON. Nanos must not be negative.");
|
||||
let z = "Z";
|
||||
if (message.nanos > 0) {
|
||||
let nanosStr = (message.nanos + 1000000000).toString().substring(1);
|
||||
if (nanosStr.substring(3) === "000000")
|
||||
z = "." + nanosStr.substring(0, 3) + "Z";
|
||||
else if (nanosStr.substring(6) === "000")
|
||||
z = "." + nanosStr.substring(0, 6) + "Z";
|
||||
else
|
||||
z = "." + nanosStr + "Z";
|
||||
}
|
||||
return new Date(ms).toISOString().replace(".000Z", z);
|
||||
}
|
||||
/**
|
||||
* In JSON format, the `Timestamp` type is encoded as a string
|
||||
* in the RFC 3339 format.
|
||||
*/
|
||||
internalJsonRead(json, options, target) {
|
||||
if (typeof json !== "string")
|
||||
throw new Error("Unable to parse Timestamp from JSON " + (0, runtime_5.typeofJsonValue)(json) + ".");
|
||||
let matches = json.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);
|
||||
if (!matches)
|
||||
throw new Error("Unable to parse Timestamp from JSON. Invalid format.");
|
||||
let ms = Date.parse(matches[1] + "-" + matches[2] + "-" + matches[3] + "T" + matches[4] + ":" + matches[5] + ":" + matches[6] + (matches[8] ? matches[8] : "Z"));
|
||||
if (Number.isNaN(ms))
|
||||
throw new Error("Unable to parse Timestamp from JSON. Invalid value.");
|
||||
if (ms < Date.parse("0001-01-01T00:00:00Z") || ms > Date.parse("9999-12-31T23:59:59Z"))
|
||||
throw new globalThis.Error("Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.");
|
||||
if (!target)
|
||||
target = this.create();
|
||||
target.seconds = runtime_6.PbLong.from(ms / 1000).toString();
|
||||
target.nanos = 0;
|
||||
if (matches[7])
|
||||
target.nanos = (parseInt("1" + matches[7] + "0".repeat(9 - matches[7].length)) - 1000000000);
|
||||
return target;
|
||||
}
|
||||
create(value) {
|
||||
const message = { seconds: "0", nanos: 0 };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* int64 seconds */ 1:
|
||||
message.seconds = reader.int64().toString();
|
||||
break;
|
||||
case /* int32 nanos */ 2:
|
||||
message.nanos = reader.int32();
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* int64 seconds = 1; */
|
||||
if (message.seconds !== "0")
|
||||
writer.tag(1, runtime_1.WireType.Varint).int64(message.seconds);
|
||||
/* int32 nanos = 2; */
|
||||
if (message.nanos !== 0)
|
||||
writer.tag(2, runtime_1.WireType.Varint).int32(message.nanos);
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message google.protobuf.Timestamp
|
||||
*/
|
||||
exports.Timestamp = new Timestamp$Type();
|
||||
//# sourceMappingURL=timestamp.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 3156:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.CacheService = exports.LookupCacheEntryResponse = exports.LookupCacheEntryRequest = exports.ListCacheEntriesResponse = exports.ListCacheEntriesRequest = exports.DeleteCacheEntryResponse = exports.DeleteCacheEntryRequest = exports.GetCacheEntryDownloadURLResponse = exports.GetCacheEntryDownloadURLRequest = exports.FinalizeCacheEntryUploadResponse = exports.FinalizeCacheEntryUploadRequest = exports.CreateCacheEntryResponse = exports.CreateCacheEntryRequest = void 0;
|
||||
// @generated by protobuf-ts 2.9.1 with parameter long_type_string,client_none,generate_dependencies
|
||||
// @generated from protobuf file "results/api/v1/cache.proto" (package "github.actions.results.api.v1", syntax proto3)
|
||||
// tslint:disable
|
||||
const runtime_rpc_1 = __nccwpck_require__(4420);
|
||||
const runtime_1 = __nccwpck_require__(8886);
|
||||
const runtime_2 = __nccwpck_require__(8886);
|
||||
const runtime_3 = __nccwpck_require__(8886);
|
||||
const runtime_4 = __nccwpck_require__(8886);
|
||||
const runtime_5 = __nccwpck_require__(8886);
|
||||
const cacheentry_1 = __nccwpck_require__(5893);
|
||||
const cachemetadata_1 = __nccwpck_require__(9444);
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class CreateCacheEntryRequest$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.api.v1.CreateCacheEntryRequest", [
|
||||
{ no: 1, name: "metadata", kind: "message", T: () => cachemetadata_1.CacheMetadata },
|
||||
{ no: 2, name: "key", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 3, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { key: "", version: "" };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* github.actions.results.entities.v1.CacheMetadata metadata */ 1:
|
||||
message.metadata = cachemetadata_1.CacheMetadata.internalBinaryRead(reader, reader.uint32(), options, message.metadata);
|
||||
break;
|
||||
case /* string key */ 2:
|
||||
message.key = reader.string();
|
||||
break;
|
||||
case /* string version */ 3:
|
||||
message.version = reader.string();
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* github.actions.results.entities.v1.CacheMetadata metadata = 1; */
|
||||
if (message.metadata)
|
||||
cachemetadata_1.CacheMetadata.internalBinaryWrite(message.metadata, writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
|
||||
/* string key = 2; */
|
||||
if (message.key !== "")
|
||||
writer.tag(2, runtime_1.WireType.LengthDelimited).string(message.key);
|
||||
/* string version = 3; */
|
||||
if (message.version !== "")
|
||||
writer.tag(3, runtime_1.WireType.LengthDelimited).string(message.version);
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.api.v1.CreateCacheEntryRequest
|
||||
*/
|
||||
exports.CreateCacheEntryRequest = new CreateCacheEntryRequest$Type();
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class CreateCacheEntryResponse$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.api.v1.CreateCacheEntryResponse", [
|
||||
{ no: 1, name: "ok", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
|
||||
{ no: 2, name: "signed_upload_url", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { ok: false, signedUploadUrl: "" };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* bool ok */ 1:
|
||||
message.ok = reader.bool();
|
||||
break;
|
||||
case /* string signed_upload_url */ 2:
|
||||
message.signedUploadUrl = reader.string();
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* bool ok = 1; */
|
||||
if (message.ok !== false)
|
||||
writer.tag(1, runtime_1.WireType.Varint).bool(message.ok);
|
||||
/* string signed_upload_url = 2; */
|
||||
if (message.signedUploadUrl !== "")
|
||||
writer.tag(2, runtime_1.WireType.LengthDelimited).string(message.signedUploadUrl);
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.api.v1.CreateCacheEntryResponse
|
||||
*/
|
||||
exports.CreateCacheEntryResponse = new CreateCacheEntryResponse$Type();
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class FinalizeCacheEntryUploadRequest$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.api.v1.FinalizeCacheEntryUploadRequest", [
|
||||
{ no: 1, name: "metadata", kind: "message", T: () => cachemetadata_1.CacheMetadata },
|
||||
{ no: 2, name: "key", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 3, name: "size_bytes", kind: "scalar", T: 3 /*ScalarType.INT64*/ },
|
||||
{ no: 4, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { key: "", sizeBytes: "0", version: "" };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* github.actions.results.entities.v1.CacheMetadata metadata */ 1:
|
||||
message.metadata = cachemetadata_1.CacheMetadata.internalBinaryRead(reader, reader.uint32(), options, message.metadata);
|
||||
break;
|
||||
case /* string key */ 2:
|
||||
message.key = reader.string();
|
||||
break;
|
||||
case /* int64 size_bytes */ 3:
|
||||
message.sizeBytes = reader.int64().toString();
|
||||
break;
|
||||
case /* string version */ 4:
|
||||
message.version = reader.string();
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* github.actions.results.entities.v1.CacheMetadata metadata = 1; */
|
||||
if (message.metadata)
|
||||
cachemetadata_1.CacheMetadata.internalBinaryWrite(message.metadata, writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
|
||||
/* string key = 2; */
|
||||
if (message.key !== "")
|
||||
writer.tag(2, runtime_1.WireType.LengthDelimited).string(message.key);
|
||||
/* int64 size_bytes = 3; */
|
||||
if (message.sizeBytes !== "0")
|
||||
writer.tag(3, runtime_1.WireType.Varint).int64(message.sizeBytes);
|
||||
/* string version = 4; */
|
||||
if (message.version !== "")
|
||||
writer.tag(4, runtime_1.WireType.LengthDelimited).string(message.version);
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.api.v1.FinalizeCacheEntryUploadRequest
|
||||
*/
|
||||
exports.FinalizeCacheEntryUploadRequest = new FinalizeCacheEntryUploadRequest$Type();
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class FinalizeCacheEntryUploadResponse$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.api.v1.FinalizeCacheEntryUploadResponse", [
|
||||
{ no: 1, name: "ok", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
|
||||
{ no: 2, name: "entry_id", kind: "scalar", T: 3 /*ScalarType.INT64*/ }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { ok: false, entryId: "0" };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* bool ok */ 1:
|
||||
message.ok = reader.bool();
|
||||
break;
|
||||
case /* int64 entry_id */ 2:
|
||||
message.entryId = reader.int64().toString();
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* bool ok = 1; */
|
||||
if (message.ok !== false)
|
||||
writer.tag(1, runtime_1.WireType.Varint).bool(message.ok);
|
||||
/* int64 entry_id = 2; */
|
||||
if (message.entryId !== "0")
|
||||
writer.tag(2, runtime_1.WireType.Varint).int64(message.entryId);
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.api.v1.FinalizeCacheEntryUploadResponse
|
||||
*/
|
||||
exports.FinalizeCacheEntryUploadResponse = new FinalizeCacheEntryUploadResponse$Type();
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class GetCacheEntryDownloadURLRequest$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.api.v1.GetCacheEntryDownloadURLRequest", [
|
||||
{ no: 1, name: "metadata", kind: "message", T: () => cachemetadata_1.CacheMetadata },
|
||||
{ no: 2, name: "key", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 3, name: "restore_keys", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 4, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { key: "", restoreKeys: [], version: "" };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* github.actions.results.entities.v1.CacheMetadata metadata */ 1:
|
||||
message.metadata = cachemetadata_1.CacheMetadata.internalBinaryRead(reader, reader.uint32(), options, message.metadata);
|
||||
break;
|
||||
case /* string key */ 2:
|
||||
message.key = reader.string();
|
||||
break;
|
||||
case /* repeated string restore_keys */ 3:
|
||||
message.restoreKeys.push(reader.string());
|
||||
break;
|
||||
case /* string version */ 4:
|
||||
message.version = reader.string();
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* github.actions.results.entities.v1.CacheMetadata metadata = 1; */
|
||||
if (message.metadata)
|
||||
cachemetadata_1.CacheMetadata.internalBinaryWrite(message.metadata, writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
|
||||
/* string key = 2; */
|
||||
if (message.key !== "")
|
||||
writer.tag(2, runtime_1.WireType.LengthDelimited).string(message.key);
|
||||
/* repeated string restore_keys = 3; */
|
||||
for (let i = 0; i < message.restoreKeys.length; i++)
|
||||
writer.tag(3, runtime_1.WireType.LengthDelimited).string(message.restoreKeys[i]);
|
||||
/* string version = 4; */
|
||||
if (message.version !== "")
|
||||
writer.tag(4, runtime_1.WireType.LengthDelimited).string(message.version);
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.api.v1.GetCacheEntryDownloadURLRequest
|
||||
*/
|
||||
exports.GetCacheEntryDownloadURLRequest = new GetCacheEntryDownloadURLRequest$Type();
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class GetCacheEntryDownloadURLResponse$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.api.v1.GetCacheEntryDownloadURLResponse", [
|
||||
{ no: 1, name: "ok", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
|
||||
{ no: 2, name: "signed_download_url", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 3, name: "matched_key", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { ok: false, signedDownloadUrl: "", matchedKey: "" };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* bool ok */ 1:
|
||||
message.ok = reader.bool();
|
||||
break;
|
||||
case /* string signed_download_url */ 2:
|
||||
message.signedDownloadUrl = reader.string();
|
||||
break;
|
||||
case /* string matched_key */ 3:
|
||||
message.matchedKey = reader.string();
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* bool ok = 1; */
|
||||
if (message.ok !== false)
|
||||
writer.tag(1, runtime_1.WireType.Varint).bool(message.ok);
|
||||
/* string signed_download_url = 2; */
|
||||
if (message.signedDownloadUrl !== "")
|
||||
writer.tag(2, runtime_1.WireType.LengthDelimited).string(message.signedDownloadUrl);
|
||||
/* string matched_key = 3; */
|
||||
if (message.matchedKey !== "")
|
||||
writer.tag(3, runtime_1.WireType.LengthDelimited).string(message.matchedKey);
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.api.v1.GetCacheEntryDownloadURLResponse
|
||||
*/
|
||||
exports.GetCacheEntryDownloadURLResponse = new GetCacheEntryDownloadURLResponse$Type();
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class DeleteCacheEntryRequest$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.api.v1.DeleteCacheEntryRequest", [
|
||||
{ no: 1, name: "metadata", kind: "message", T: () => cachemetadata_1.CacheMetadata },
|
||||
{ no: 2, name: "key", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { key: "" };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* github.actions.results.entities.v1.CacheMetadata metadata */ 1:
|
||||
message.metadata = cachemetadata_1.CacheMetadata.internalBinaryRead(reader, reader.uint32(), options, message.metadata);
|
||||
break;
|
||||
case /* string key */ 2:
|
||||
message.key = reader.string();
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* github.actions.results.entities.v1.CacheMetadata metadata = 1; */
|
||||
if (message.metadata)
|
||||
cachemetadata_1.CacheMetadata.internalBinaryWrite(message.metadata, writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
|
||||
/* string key = 2; */
|
||||
if (message.key !== "")
|
||||
writer.tag(2, runtime_1.WireType.LengthDelimited).string(message.key);
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.api.v1.DeleteCacheEntryRequest
|
||||
*/
|
||||
exports.DeleteCacheEntryRequest = new DeleteCacheEntryRequest$Type();
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class DeleteCacheEntryResponse$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.api.v1.DeleteCacheEntryResponse", [
|
||||
{ no: 1, name: "ok", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
|
||||
{ no: 2, name: "entry_id", kind: "scalar", T: 3 /*ScalarType.INT64*/ }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { ok: false, entryId: "0" };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* bool ok */ 1:
|
||||
message.ok = reader.bool();
|
||||
break;
|
||||
case /* int64 entry_id */ 2:
|
||||
message.entryId = reader.int64().toString();
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* bool ok = 1; */
|
||||
if (message.ok !== false)
|
||||
writer.tag(1, runtime_1.WireType.Varint).bool(message.ok);
|
||||
/* int64 entry_id = 2; */
|
||||
if (message.entryId !== "0")
|
||||
writer.tag(2, runtime_1.WireType.Varint).int64(message.entryId);
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.api.v1.DeleteCacheEntryResponse
|
||||
*/
|
||||
exports.DeleteCacheEntryResponse = new DeleteCacheEntryResponse$Type();
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class ListCacheEntriesRequest$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.api.v1.ListCacheEntriesRequest", [
|
||||
{ no: 1, name: "metadata", kind: "message", T: () => cachemetadata_1.CacheMetadata },
|
||||
{ no: 2, name: "key", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 3, name: "restore_keys", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { key: "", restoreKeys: [] };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* github.actions.results.entities.v1.CacheMetadata metadata */ 1:
|
||||
message.metadata = cachemetadata_1.CacheMetadata.internalBinaryRead(reader, reader.uint32(), options, message.metadata);
|
||||
break;
|
||||
case /* string key */ 2:
|
||||
message.key = reader.string();
|
||||
break;
|
||||
case /* repeated string restore_keys */ 3:
|
||||
message.restoreKeys.push(reader.string());
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* github.actions.results.entities.v1.CacheMetadata metadata = 1; */
|
||||
if (message.metadata)
|
||||
cachemetadata_1.CacheMetadata.internalBinaryWrite(message.metadata, writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
|
||||
/* string key = 2; */
|
||||
if (message.key !== "")
|
||||
writer.tag(2, runtime_1.WireType.LengthDelimited).string(message.key);
|
||||
/* repeated string restore_keys = 3; */
|
||||
for (let i = 0; i < message.restoreKeys.length; i++)
|
||||
writer.tag(3, runtime_1.WireType.LengthDelimited).string(message.restoreKeys[i]);
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.api.v1.ListCacheEntriesRequest
|
||||
*/
|
||||
exports.ListCacheEntriesRequest = new ListCacheEntriesRequest$Type();
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class ListCacheEntriesResponse$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.api.v1.ListCacheEntriesResponse", [
|
||||
{ no: 1, name: "entries", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => cacheentry_1.CacheEntry }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { entries: [] };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* repeated github.actions.results.entities.v1.CacheEntry entries */ 1:
|
||||
message.entries.push(cacheentry_1.CacheEntry.internalBinaryRead(reader, reader.uint32(), options));
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* repeated github.actions.results.entities.v1.CacheEntry entries = 1; */
|
||||
for (let i = 0; i < message.entries.length; i++)
|
||||
cacheentry_1.CacheEntry.internalBinaryWrite(message.entries[i], writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.api.v1.ListCacheEntriesResponse
|
||||
*/
|
||||
exports.ListCacheEntriesResponse = new ListCacheEntriesResponse$Type();
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class LookupCacheEntryRequest$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.api.v1.LookupCacheEntryRequest", [
|
||||
{ no: 1, name: "metadata", kind: "message", T: () => cachemetadata_1.CacheMetadata },
|
||||
{ no: 2, name: "key", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 3, name: "restore_keys", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 4, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { key: "", restoreKeys: [], version: "" };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* github.actions.results.entities.v1.CacheMetadata metadata */ 1:
|
||||
message.metadata = cachemetadata_1.CacheMetadata.internalBinaryRead(reader, reader.uint32(), options, message.metadata);
|
||||
break;
|
||||
case /* string key */ 2:
|
||||
message.key = reader.string();
|
||||
break;
|
||||
case /* repeated string restore_keys */ 3:
|
||||
message.restoreKeys.push(reader.string());
|
||||
break;
|
||||
case /* string version */ 4:
|
||||
message.version = reader.string();
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* github.actions.results.entities.v1.CacheMetadata metadata = 1; */
|
||||
if (message.metadata)
|
||||
cachemetadata_1.CacheMetadata.internalBinaryWrite(message.metadata, writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
|
||||
/* string key = 2; */
|
||||
if (message.key !== "")
|
||||
writer.tag(2, runtime_1.WireType.LengthDelimited).string(message.key);
|
||||
/* repeated string restore_keys = 3; */
|
||||
for (let i = 0; i < message.restoreKeys.length; i++)
|
||||
writer.tag(3, runtime_1.WireType.LengthDelimited).string(message.restoreKeys[i]);
|
||||
/* string version = 4; */
|
||||
if (message.version !== "")
|
||||
writer.tag(4, runtime_1.WireType.LengthDelimited).string(message.version);
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.api.v1.LookupCacheEntryRequest
|
||||
*/
|
||||
exports.LookupCacheEntryRequest = new LookupCacheEntryRequest$Type();
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class LookupCacheEntryResponse$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.api.v1.LookupCacheEntryResponse", [
|
||||
{ no: 1, name: "exists", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
|
||||
{ no: 2, name: "entry", kind: "message", T: () => cacheentry_1.CacheEntry }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { exists: false };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* bool exists */ 1:
|
||||
message.exists = reader.bool();
|
||||
break;
|
||||
case /* github.actions.results.entities.v1.CacheEntry entry */ 2:
|
||||
message.entry = cacheentry_1.CacheEntry.internalBinaryRead(reader, reader.uint32(), options, message.entry);
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* bool exists = 1; */
|
||||
if (message.exists !== false)
|
||||
writer.tag(1, runtime_1.WireType.Varint).bool(message.exists);
|
||||
/* github.actions.results.entities.v1.CacheEntry entry = 2; */
|
||||
if (message.entry)
|
||||
cacheentry_1.CacheEntry.internalBinaryWrite(message.entry, writer.tag(2, runtime_1.WireType.LengthDelimited).fork(), options).join();
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.api.v1.LookupCacheEntryResponse
|
||||
*/
|
||||
exports.LookupCacheEntryResponse = new LookupCacheEntryResponse$Type();
|
||||
/**
|
||||
* @generated ServiceType for protobuf service github.actions.results.api.v1.CacheService
|
||||
*/
|
||||
exports.CacheService = new runtime_rpc_1.ServiceType("github.actions.results.api.v1.CacheService", [
|
||||
{ name: "CreateCacheEntry", options: {}, I: exports.CreateCacheEntryRequest, O: exports.CreateCacheEntryResponse },
|
||||
{ name: "FinalizeCacheEntryUpload", options: {}, I: exports.FinalizeCacheEntryUploadRequest, O: exports.FinalizeCacheEntryUploadResponse },
|
||||
{ name: "GetCacheEntryDownloadURL", options: {}, I: exports.GetCacheEntryDownloadURLRequest, O: exports.GetCacheEntryDownloadURLResponse },
|
||||
{ name: "DeleteCacheEntry", options: {}, I: exports.DeleteCacheEntryRequest, O: exports.DeleteCacheEntryResponse },
|
||||
{ name: "ListCacheEntries", options: {}, I: exports.ListCacheEntriesRequest, O: exports.ListCacheEntriesResponse },
|
||||
{ name: "LookupCacheEntry", options: {}, I: exports.LookupCacheEntryRequest, O: exports.LookupCacheEntryResponse }
|
||||
]);
|
||||
//# sourceMappingURL=cache.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 564:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.createCacheServiceServer = exports.CacheServiceMethodList = exports.CacheServiceMethod = exports.CacheServiceClientProtobuf = exports.CacheServiceClientJSON = void 0;
|
||||
const twirp_ts_1 = __nccwpck_require__(430);
|
||||
const cache_1 = __nccwpck_require__(3156);
|
||||
class CacheServiceClientJSON {
|
||||
constructor(rpc) {
|
||||
this.rpc = rpc;
|
||||
this.CreateCacheEntry.bind(this);
|
||||
this.FinalizeCacheEntryUpload.bind(this);
|
||||
this.GetCacheEntryDownloadURL.bind(this);
|
||||
this.DeleteCacheEntry.bind(this);
|
||||
this.ListCacheEntries.bind(this);
|
||||
this.LookupCacheEntry.bind(this);
|
||||
}
|
||||
CreateCacheEntry(request) {
|
||||
const data = cache_1.CreateCacheEntryRequest.toJson(request, {
|
||||
useProtoFieldName: true,
|
||||
emitDefaultValues: false,
|
||||
});
|
||||
const promise = this.rpc.request("github.actions.results.api.v1.CacheService", "CreateCacheEntry", "application/json", data);
|
||||
return promise.then((data) => cache_1.CreateCacheEntryResponse.fromJson(data, {
|
||||
ignoreUnknownFields: true,
|
||||
}));
|
||||
}
|
||||
FinalizeCacheEntryUpload(request) {
|
||||
const data = cache_1.FinalizeCacheEntryUploadRequest.toJson(request, {
|
||||
useProtoFieldName: true,
|
||||
emitDefaultValues: false,
|
||||
});
|
||||
const promise = this.rpc.request("github.actions.results.api.v1.CacheService", "FinalizeCacheEntryUpload", "application/json", data);
|
||||
return promise.then((data) => cache_1.FinalizeCacheEntryUploadResponse.fromJson(data, {
|
||||
ignoreUnknownFields: true,
|
||||
}));
|
||||
}
|
||||
GetCacheEntryDownloadURL(request) {
|
||||
const data = cache_1.GetCacheEntryDownloadURLRequest.toJson(request, {
|
||||
useProtoFieldName: true,
|
||||
emitDefaultValues: false,
|
||||
});
|
||||
const promise = this.rpc.request("github.actions.results.api.v1.CacheService", "GetCacheEntryDownloadURL", "application/json", data);
|
||||
return promise.then((data) => cache_1.GetCacheEntryDownloadURLResponse.fromJson(data, {
|
||||
ignoreUnknownFields: true,
|
||||
}));
|
||||
}
|
||||
DeleteCacheEntry(request) {
|
||||
const data = cache_1.DeleteCacheEntryRequest.toJson(request, {
|
||||
useProtoFieldName: true,
|
||||
emitDefaultValues: false,
|
||||
});
|
||||
const promise = this.rpc.request("github.actions.results.api.v1.CacheService", "DeleteCacheEntry", "application/json", data);
|
||||
return promise.then((data) => cache_1.DeleteCacheEntryResponse.fromJson(data, {
|
||||
ignoreUnknownFields: true,
|
||||
}));
|
||||
}
|
||||
ListCacheEntries(request) {
|
||||
const data = cache_1.ListCacheEntriesRequest.toJson(request, {
|
||||
useProtoFieldName: true,
|
||||
emitDefaultValues: false,
|
||||
});
|
||||
const promise = this.rpc.request("github.actions.results.api.v1.CacheService", "ListCacheEntries", "application/json", data);
|
||||
return promise.then((data) => cache_1.ListCacheEntriesResponse.fromJson(data, {
|
||||
ignoreUnknownFields: true,
|
||||
}));
|
||||
}
|
||||
LookupCacheEntry(request) {
|
||||
const data = cache_1.LookupCacheEntryRequest.toJson(request, {
|
||||
useProtoFieldName: true,
|
||||
emitDefaultValues: false,
|
||||
});
|
||||
const promise = this.rpc.request("github.actions.results.api.v1.CacheService", "LookupCacheEntry", "application/json", data);
|
||||
return promise.then((data) => cache_1.LookupCacheEntryResponse.fromJson(data, {
|
||||
ignoreUnknownFields: true,
|
||||
}));
|
||||
}
|
||||
}
|
||||
exports.CacheServiceClientJSON = CacheServiceClientJSON;
|
||||
class CacheServiceClientProtobuf {
|
||||
constructor(rpc) {
|
||||
this.rpc = rpc;
|
||||
this.CreateCacheEntry.bind(this);
|
||||
this.FinalizeCacheEntryUpload.bind(this);
|
||||
this.GetCacheEntryDownloadURL.bind(this);
|
||||
this.DeleteCacheEntry.bind(this);
|
||||
this.ListCacheEntries.bind(this);
|
||||
this.LookupCacheEntry.bind(this);
|
||||
}
|
||||
CreateCacheEntry(request) {
|
||||
const data = cache_1.CreateCacheEntryRequest.toBinary(request);
|
||||
const promise = this.rpc.request("github.actions.results.api.v1.CacheService", "CreateCacheEntry", "application/protobuf", data);
|
||||
return promise.then((data) => cache_1.CreateCacheEntryResponse.fromBinary(data));
|
||||
}
|
||||
FinalizeCacheEntryUpload(request) {
|
||||
const data = cache_1.FinalizeCacheEntryUploadRequest.toBinary(request);
|
||||
const promise = this.rpc.request("github.actions.results.api.v1.CacheService", "FinalizeCacheEntryUpload", "application/protobuf", data);
|
||||
return promise.then((data) => cache_1.FinalizeCacheEntryUploadResponse.fromBinary(data));
|
||||
}
|
||||
GetCacheEntryDownloadURL(request) {
|
||||
const data = cache_1.GetCacheEntryDownloadURLRequest.toBinary(request);
|
||||
const promise = this.rpc.request("github.actions.results.api.v1.CacheService", "GetCacheEntryDownloadURL", "application/protobuf", data);
|
||||
return promise.then((data) => cache_1.GetCacheEntryDownloadURLResponse.fromBinary(data));
|
||||
}
|
||||
DeleteCacheEntry(request) {
|
||||
const data = cache_1.DeleteCacheEntryRequest.toBinary(request);
|
||||
const promise = this.rpc.request("github.actions.results.api.v1.CacheService", "DeleteCacheEntry", "application/protobuf", data);
|
||||
return promise.then((data) => cache_1.DeleteCacheEntryResponse.fromBinary(data));
|
||||
}
|
||||
ListCacheEntries(request) {
|
||||
const data = cache_1.ListCacheEntriesRequest.toBinary(request);
|
||||
const promise = this.rpc.request("github.actions.results.api.v1.CacheService", "ListCacheEntries", "application/protobuf", data);
|
||||
return promise.then((data) => cache_1.ListCacheEntriesResponse.fromBinary(data));
|
||||
}
|
||||
LookupCacheEntry(request) {
|
||||
const data = cache_1.LookupCacheEntryRequest.toBinary(request);
|
||||
const promise = this.rpc.request("github.actions.results.api.v1.CacheService", "LookupCacheEntry", "application/protobuf", data);
|
||||
return promise.then((data) => cache_1.LookupCacheEntryResponse.fromBinary(data));
|
||||
}
|
||||
}
|
||||
exports.CacheServiceClientProtobuf = CacheServiceClientProtobuf;
|
||||
var CacheServiceMethod;
|
||||
(function (CacheServiceMethod) {
|
||||
CacheServiceMethod["CreateCacheEntry"] = "CreateCacheEntry";
|
||||
CacheServiceMethod["FinalizeCacheEntryUpload"] = "FinalizeCacheEntryUpload";
|
||||
CacheServiceMethod["GetCacheEntryDownloadURL"] = "GetCacheEntryDownloadURL";
|
||||
CacheServiceMethod["DeleteCacheEntry"] = "DeleteCacheEntry";
|
||||
CacheServiceMethod["ListCacheEntries"] = "ListCacheEntries";
|
||||
CacheServiceMethod["LookupCacheEntry"] = "LookupCacheEntry";
|
||||
})(CacheServiceMethod || (exports.CacheServiceMethod = CacheServiceMethod = {}));
|
||||
exports.CacheServiceMethodList = [
|
||||
CacheServiceMethod.CreateCacheEntry,
|
||||
CacheServiceMethod.FinalizeCacheEntryUpload,
|
||||
CacheServiceMethod.GetCacheEntryDownloadURL,
|
||||
CacheServiceMethod.DeleteCacheEntry,
|
||||
CacheServiceMethod.ListCacheEntries,
|
||||
CacheServiceMethod.LookupCacheEntry,
|
||||
];
|
||||
function createCacheServiceServer(service) {
|
||||
return new twirp_ts_1.TwirpServer({
|
||||
service,
|
||||
packageName: "github.actions.results.api.v1",
|
||||
serviceName: "CacheService",
|
||||
methodList: exports.CacheServiceMethodList,
|
||||
matchRoute: matchCacheServiceRoute,
|
||||
});
|
||||
}
|
||||
exports.createCacheServiceServer = createCacheServiceServer;
|
||||
function matchCacheServiceRoute(method, events) {
|
||||
switch (method) {
|
||||
case "CreateCacheEntry":
|
||||
return (ctx, service, data, interceptors) => __awaiter(this, void 0, void 0, function* () {
|
||||
ctx = Object.assign(Object.assign({}, ctx), { methodName: "CreateCacheEntry" });
|
||||
yield events.onMatch(ctx);
|
||||
return handleCacheServiceCreateCacheEntryRequest(ctx, service, data, interceptors);
|
||||
});
|
||||
case "FinalizeCacheEntryUpload":
|
||||
return (ctx, service, data, interceptors) => __awaiter(this, void 0, void 0, function* () {
|
||||
ctx = Object.assign(Object.assign({}, ctx), { methodName: "FinalizeCacheEntryUpload" });
|
||||
yield events.onMatch(ctx);
|
||||
return handleCacheServiceFinalizeCacheEntryUploadRequest(ctx, service, data, interceptors);
|
||||
});
|
||||
case "GetCacheEntryDownloadURL":
|
||||
return (ctx, service, data, interceptors) => __awaiter(this, void 0, void 0, function* () {
|
||||
ctx = Object.assign(Object.assign({}, ctx), { methodName: "GetCacheEntryDownloadURL" });
|
||||
yield events.onMatch(ctx);
|
||||
return handleCacheServiceGetCacheEntryDownloadURLRequest(ctx, service, data, interceptors);
|
||||
});
|
||||
case "DeleteCacheEntry":
|
||||
return (ctx, service, data, interceptors) => __awaiter(this, void 0, void 0, function* () {
|
||||
ctx = Object.assign(Object.assign({}, ctx), { methodName: "DeleteCacheEntry" });
|
||||
yield events.onMatch(ctx);
|
||||
return handleCacheServiceDeleteCacheEntryRequest(ctx, service, data, interceptors);
|
||||
});
|
||||
case "ListCacheEntries":
|
||||
return (ctx, service, data, interceptors) => __awaiter(this, void 0, void 0, function* () {
|
||||
ctx = Object.assign(Object.assign({}, ctx), { methodName: "ListCacheEntries" });
|
||||
yield events.onMatch(ctx);
|
||||
return handleCacheServiceListCacheEntriesRequest(ctx, service, data, interceptors);
|
||||
});
|
||||
case "LookupCacheEntry":
|
||||
return (ctx, service, data, interceptors) => __awaiter(this, void 0, void 0, function* () {
|
||||
ctx = Object.assign(Object.assign({}, ctx), { methodName: "LookupCacheEntry" });
|
||||
yield events.onMatch(ctx);
|
||||
return handleCacheServiceLookupCacheEntryRequest(ctx, service, data, interceptors);
|
||||
});
|
||||
default:
|
||||
events.onNotFound();
|
||||
const msg = `no handler found`;
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.BadRoute, msg);
|
||||
}
|
||||
}
|
||||
function handleCacheServiceCreateCacheEntryRequest(ctx, service, data, interceptors) {
|
||||
switch (ctx.contentType) {
|
||||
case twirp_ts_1.TwirpContentType.JSON:
|
||||
return handleCacheServiceCreateCacheEntryJSON(ctx, service, data, interceptors);
|
||||
case twirp_ts_1.TwirpContentType.Protobuf:
|
||||
return handleCacheServiceCreateCacheEntryProtobuf(ctx, service, data, interceptors);
|
||||
default:
|
||||
const msg = "unexpected Content-Type";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.BadRoute, msg);
|
||||
}
|
||||
}
|
||||
function handleCacheServiceFinalizeCacheEntryUploadRequest(ctx, service, data, interceptors) {
|
||||
switch (ctx.contentType) {
|
||||
case twirp_ts_1.TwirpContentType.JSON:
|
||||
return handleCacheServiceFinalizeCacheEntryUploadJSON(ctx, service, data, interceptors);
|
||||
case twirp_ts_1.TwirpContentType.Protobuf:
|
||||
return handleCacheServiceFinalizeCacheEntryUploadProtobuf(ctx, service, data, interceptors);
|
||||
default:
|
||||
const msg = "unexpected Content-Type";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.BadRoute, msg);
|
||||
}
|
||||
}
|
||||
function handleCacheServiceGetCacheEntryDownloadURLRequest(ctx, service, data, interceptors) {
|
||||
switch (ctx.contentType) {
|
||||
case twirp_ts_1.TwirpContentType.JSON:
|
||||
return handleCacheServiceGetCacheEntryDownloadURLJSON(ctx, service, data, interceptors);
|
||||
case twirp_ts_1.TwirpContentType.Protobuf:
|
||||
return handleCacheServiceGetCacheEntryDownloadURLProtobuf(ctx, service, data, interceptors);
|
||||
default:
|
||||
const msg = "unexpected Content-Type";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.BadRoute, msg);
|
||||
}
|
||||
}
|
||||
function handleCacheServiceDeleteCacheEntryRequest(ctx, service, data, interceptors) {
|
||||
switch (ctx.contentType) {
|
||||
case twirp_ts_1.TwirpContentType.JSON:
|
||||
return handleCacheServiceDeleteCacheEntryJSON(ctx, service, data, interceptors);
|
||||
case twirp_ts_1.TwirpContentType.Protobuf:
|
||||
return handleCacheServiceDeleteCacheEntryProtobuf(ctx, service, data, interceptors);
|
||||
default:
|
||||
const msg = "unexpected Content-Type";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.BadRoute, msg);
|
||||
}
|
||||
}
|
||||
function handleCacheServiceListCacheEntriesRequest(ctx, service, data, interceptors) {
|
||||
switch (ctx.contentType) {
|
||||
case twirp_ts_1.TwirpContentType.JSON:
|
||||
return handleCacheServiceListCacheEntriesJSON(ctx, service, data, interceptors);
|
||||
case twirp_ts_1.TwirpContentType.Protobuf:
|
||||
return handleCacheServiceListCacheEntriesProtobuf(ctx, service, data, interceptors);
|
||||
default:
|
||||
const msg = "unexpected Content-Type";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.BadRoute, msg);
|
||||
}
|
||||
}
|
||||
function handleCacheServiceLookupCacheEntryRequest(ctx, service, data, interceptors) {
|
||||
switch (ctx.contentType) {
|
||||
case twirp_ts_1.TwirpContentType.JSON:
|
||||
return handleCacheServiceLookupCacheEntryJSON(ctx, service, data, interceptors);
|
||||
case twirp_ts_1.TwirpContentType.Protobuf:
|
||||
return handleCacheServiceLookupCacheEntryProtobuf(ctx, service, data, interceptors);
|
||||
default:
|
||||
const msg = "unexpected Content-Type";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.BadRoute, msg);
|
||||
}
|
||||
}
|
||||
function handleCacheServiceCreateCacheEntryJSON(ctx, service, data, interceptors) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let request;
|
||||
let response;
|
||||
try {
|
||||
const body = JSON.parse(data.toString() || "{}");
|
||||
request = cache_1.CreateCacheEntryRequest.fromJson(body, {
|
||||
ignoreUnknownFields: true,
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
if (e instanceof Error) {
|
||||
const msg = "the json request could not be decoded";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.Malformed, msg).withCause(e, true);
|
||||
}
|
||||
}
|
||||
if (interceptors && interceptors.length > 0) {
|
||||
const interceptor = (0, twirp_ts_1.chainInterceptors)(...interceptors);
|
||||
response = yield interceptor(ctx, request, (ctx, inputReq) => {
|
||||
return service.CreateCacheEntry(ctx, inputReq);
|
||||
});
|
||||
}
|
||||
else {
|
||||
response = yield service.CreateCacheEntry(ctx, request);
|
||||
}
|
||||
return JSON.stringify(cache_1.CreateCacheEntryResponse.toJson(response, {
|
||||
useProtoFieldName: true,
|
||||
emitDefaultValues: false,
|
||||
}));
|
||||
});
|
||||
}
|
||||
function handleCacheServiceFinalizeCacheEntryUploadJSON(ctx, service, data, interceptors) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let request;
|
||||
let response;
|
||||
try {
|
||||
const body = JSON.parse(data.toString() || "{}");
|
||||
request = cache_1.FinalizeCacheEntryUploadRequest.fromJson(body, {
|
||||
ignoreUnknownFields: true,
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
if (e instanceof Error) {
|
||||
const msg = "the json request could not be decoded";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.Malformed, msg).withCause(e, true);
|
||||
}
|
||||
}
|
||||
if (interceptors && interceptors.length > 0) {
|
||||
const interceptor = (0, twirp_ts_1.chainInterceptors)(...interceptors);
|
||||
response = yield interceptor(ctx, request, (ctx, inputReq) => {
|
||||
return service.FinalizeCacheEntryUpload(ctx, inputReq);
|
||||
});
|
||||
}
|
||||
else {
|
||||
response = yield service.FinalizeCacheEntryUpload(ctx, request);
|
||||
}
|
||||
return JSON.stringify(cache_1.FinalizeCacheEntryUploadResponse.toJson(response, {
|
||||
useProtoFieldName: true,
|
||||
emitDefaultValues: false,
|
||||
}));
|
||||
});
|
||||
}
|
||||
function handleCacheServiceGetCacheEntryDownloadURLJSON(ctx, service, data, interceptors) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let request;
|
||||
let response;
|
||||
try {
|
||||
const body = JSON.parse(data.toString() || "{}");
|
||||
request = cache_1.GetCacheEntryDownloadURLRequest.fromJson(body, {
|
||||
ignoreUnknownFields: true,
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
if (e instanceof Error) {
|
||||
const msg = "the json request could not be decoded";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.Malformed, msg).withCause(e, true);
|
||||
}
|
||||
}
|
||||
if (interceptors && interceptors.length > 0) {
|
||||
const interceptor = (0, twirp_ts_1.chainInterceptors)(...interceptors);
|
||||
response = yield interceptor(ctx, request, (ctx, inputReq) => {
|
||||
return service.GetCacheEntryDownloadURL(ctx, inputReq);
|
||||
});
|
||||
}
|
||||
else {
|
||||
response = yield service.GetCacheEntryDownloadURL(ctx, request);
|
||||
}
|
||||
return JSON.stringify(cache_1.GetCacheEntryDownloadURLResponse.toJson(response, {
|
||||
useProtoFieldName: true,
|
||||
emitDefaultValues: false,
|
||||
}));
|
||||
});
|
||||
}
|
||||
function handleCacheServiceDeleteCacheEntryJSON(ctx, service, data, interceptors) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let request;
|
||||
let response;
|
||||
try {
|
||||
const body = JSON.parse(data.toString() || "{}");
|
||||
request = cache_1.DeleteCacheEntryRequest.fromJson(body, {
|
||||
ignoreUnknownFields: true,
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
if (e instanceof Error) {
|
||||
const msg = "the json request could not be decoded";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.Malformed, msg).withCause(e, true);
|
||||
}
|
||||
}
|
||||
if (interceptors && interceptors.length > 0) {
|
||||
const interceptor = (0, twirp_ts_1.chainInterceptors)(...interceptors);
|
||||
response = yield interceptor(ctx, request, (ctx, inputReq) => {
|
||||
return service.DeleteCacheEntry(ctx, inputReq);
|
||||
});
|
||||
}
|
||||
else {
|
||||
response = yield service.DeleteCacheEntry(ctx, request);
|
||||
}
|
||||
return JSON.stringify(cache_1.DeleteCacheEntryResponse.toJson(response, {
|
||||
useProtoFieldName: true,
|
||||
emitDefaultValues: false,
|
||||
}));
|
||||
});
|
||||
}
|
||||
function handleCacheServiceListCacheEntriesJSON(ctx, service, data, interceptors) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let request;
|
||||
let response;
|
||||
try {
|
||||
const body = JSON.parse(data.toString() || "{}");
|
||||
request = cache_1.ListCacheEntriesRequest.fromJson(body, {
|
||||
ignoreUnknownFields: true,
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
if (e instanceof Error) {
|
||||
const msg = "the json request could not be decoded";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.Malformed, msg).withCause(e, true);
|
||||
}
|
||||
}
|
||||
if (interceptors && interceptors.length > 0) {
|
||||
const interceptor = (0, twirp_ts_1.chainInterceptors)(...interceptors);
|
||||
response = yield interceptor(ctx, request, (ctx, inputReq) => {
|
||||
return service.ListCacheEntries(ctx, inputReq);
|
||||
});
|
||||
}
|
||||
else {
|
||||
response = yield service.ListCacheEntries(ctx, request);
|
||||
}
|
||||
return JSON.stringify(cache_1.ListCacheEntriesResponse.toJson(response, {
|
||||
useProtoFieldName: true,
|
||||
emitDefaultValues: false,
|
||||
}));
|
||||
});
|
||||
}
|
||||
function handleCacheServiceLookupCacheEntryJSON(ctx, service, data, interceptors) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let request;
|
||||
let response;
|
||||
try {
|
||||
const body = JSON.parse(data.toString() || "{}");
|
||||
request = cache_1.LookupCacheEntryRequest.fromJson(body, {
|
||||
ignoreUnknownFields: true,
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
if (e instanceof Error) {
|
||||
const msg = "the json request could not be decoded";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.Malformed, msg).withCause(e, true);
|
||||
}
|
||||
}
|
||||
if (interceptors && interceptors.length > 0) {
|
||||
const interceptor = (0, twirp_ts_1.chainInterceptors)(...interceptors);
|
||||
response = yield interceptor(ctx, request, (ctx, inputReq) => {
|
||||
return service.LookupCacheEntry(ctx, inputReq);
|
||||
});
|
||||
}
|
||||
else {
|
||||
response = yield service.LookupCacheEntry(ctx, request);
|
||||
}
|
||||
return JSON.stringify(cache_1.LookupCacheEntryResponse.toJson(response, {
|
||||
useProtoFieldName: true,
|
||||
emitDefaultValues: false,
|
||||
}));
|
||||
});
|
||||
}
|
||||
function handleCacheServiceCreateCacheEntryProtobuf(ctx, service, data, interceptors) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let request;
|
||||
let response;
|
||||
try {
|
||||
request = cache_1.CreateCacheEntryRequest.fromBinary(data);
|
||||
}
|
||||
catch (e) {
|
||||
if (e instanceof Error) {
|
||||
const msg = "the protobuf request could not be decoded";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.Malformed, msg).withCause(e, true);
|
||||
}
|
||||
}
|
||||
if (interceptors && interceptors.length > 0) {
|
||||
const interceptor = (0, twirp_ts_1.chainInterceptors)(...interceptors);
|
||||
response = yield interceptor(ctx, request, (ctx, inputReq) => {
|
||||
return service.CreateCacheEntry(ctx, inputReq);
|
||||
});
|
||||
}
|
||||
else {
|
||||
response = yield service.CreateCacheEntry(ctx, request);
|
||||
}
|
||||
return Buffer.from(cache_1.CreateCacheEntryResponse.toBinary(response));
|
||||
});
|
||||
}
|
||||
function handleCacheServiceFinalizeCacheEntryUploadProtobuf(ctx, service, data, interceptors) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let request;
|
||||
let response;
|
||||
try {
|
||||
request = cache_1.FinalizeCacheEntryUploadRequest.fromBinary(data);
|
||||
}
|
||||
catch (e) {
|
||||
if (e instanceof Error) {
|
||||
const msg = "the protobuf request could not be decoded";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.Malformed, msg).withCause(e, true);
|
||||
}
|
||||
}
|
||||
if (interceptors && interceptors.length > 0) {
|
||||
const interceptor = (0, twirp_ts_1.chainInterceptors)(...interceptors);
|
||||
response = yield interceptor(ctx, request, (ctx, inputReq) => {
|
||||
return service.FinalizeCacheEntryUpload(ctx, inputReq);
|
||||
});
|
||||
}
|
||||
else {
|
||||
response = yield service.FinalizeCacheEntryUpload(ctx, request);
|
||||
}
|
||||
return Buffer.from(cache_1.FinalizeCacheEntryUploadResponse.toBinary(response));
|
||||
});
|
||||
}
|
||||
function handleCacheServiceGetCacheEntryDownloadURLProtobuf(ctx, service, data, interceptors) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let request;
|
||||
let response;
|
||||
try {
|
||||
request = cache_1.GetCacheEntryDownloadURLRequest.fromBinary(data);
|
||||
}
|
||||
catch (e) {
|
||||
if (e instanceof Error) {
|
||||
const msg = "the protobuf request could not be decoded";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.Malformed, msg).withCause(e, true);
|
||||
}
|
||||
}
|
||||
if (interceptors && interceptors.length > 0) {
|
||||
const interceptor = (0, twirp_ts_1.chainInterceptors)(...interceptors);
|
||||
response = yield interceptor(ctx, request, (ctx, inputReq) => {
|
||||
return service.GetCacheEntryDownloadURL(ctx, inputReq);
|
||||
});
|
||||
}
|
||||
else {
|
||||
response = yield service.GetCacheEntryDownloadURL(ctx, request);
|
||||
}
|
||||
return Buffer.from(cache_1.GetCacheEntryDownloadURLResponse.toBinary(response));
|
||||
});
|
||||
}
|
||||
function handleCacheServiceDeleteCacheEntryProtobuf(ctx, service, data, interceptors) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let request;
|
||||
let response;
|
||||
try {
|
||||
request = cache_1.DeleteCacheEntryRequest.fromBinary(data);
|
||||
}
|
||||
catch (e) {
|
||||
if (e instanceof Error) {
|
||||
const msg = "the protobuf request could not be decoded";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.Malformed, msg).withCause(e, true);
|
||||
}
|
||||
}
|
||||
if (interceptors && interceptors.length > 0) {
|
||||
const interceptor = (0, twirp_ts_1.chainInterceptors)(...interceptors);
|
||||
response = yield interceptor(ctx, request, (ctx, inputReq) => {
|
||||
return service.DeleteCacheEntry(ctx, inputReq);
|
||||
});
|
||||
}
|
||||
else {
|
||||
response = yield service.DeleteCacheEntry(ctx, request);
|
||||
}
|
||||
return Buffer.from(cache_1.DeleteCacheEntryResponse.toBinary(response));
|
||||
});
|
||||
}
|
||||
function handleCacheServiceListCacheEntriesProtobuf(ctx, service, data, interceptors) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let request;
|
||||
let response;
|
||||
try {
|
||||
request = cache_1.ListCacheEntriesRequest.fromBinary(data);
|
||||
}
|
||||
catch (e) {
|
||||
if (e instanceof Error) {
|
||||
const msg = "the protobuf request could not be decoded";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.Malformed, msg).withCause(e, true);
|
||||
}
|
||||
}
|
||||
if (interceptors && interceptors.length > 0) {
|
||||
const interceptor = (0, twirp_ts_1.chainInterceptors)(...interceptors);
|
||||
response = yield interceptor(ctx, request, (ctx, inputReq) => {
|
||||
return service.ListCacheEntries(ctx, inputReq);
|
||||
});
|
||||
}
|
||||
else {
|
||||
response = yield service.ListCacheEntries(ctx, request);
|
||||
}
|
||||
return Buffer.from(cache_1.ListCacheEntriesResponse.toBinary(response));
|
||||
});
|
||||
}
|
||||
function handleCacheServiceLookupCacheEntryProtobuf(ctx, service, data, interceptors) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let request;
|
||||
let response;
|
||||
try {
|
||||
request = cache_1.LookupCacheEntryRequest.fromBinary(data);
|
||||
}
|
||||
catch (e) {
|
||||
if (e instanceof Error) {
|
||||
const msg = "the protobuf request could not be decoded";
|
||||
throw new twirp_ts_1.TwirpError(twirp_ts_1.TwirpErrorCode.Malformed, msg).withCause(e, true);
|
||||
}
|
||||
}
|
||||
if (interceptors && interceptors.length > 0) {
|
||||
const interceptor = (0, twirp_ts_1.chainInterceptors)(...interceptors);
|
||||
response = yield interceptor(ctx, request, (ctx, inputReq) => {
|
||||
return service.LookupCacheEntry(ctx, inputReq);
|
||||
});
|
||||
}
|
||||
else {
|
||||
response = yield service.LookupCacheEntry(ctx, request);
|
||||
}
|
||||
return Buffer.from(cache_1.LookupCacheEntryResponse.toBinary(response));
|
||||
});
|
||||
}
|
||||
//# sourceMappingURL=cache.twirp.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 5893:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.CacheEntry = void 0;
|
||||
const runtime_1 = __nccwpck_require__(8886);
|
||||
const runtime_2 = __nccwpck_require__(8886);
|
||||
const runtime_3 = __nccwpck_require__(8886);
|
||||
const runtime_4 = __nccwpck_require__(8886);
|
||||
const runtime_5 = __nccwpck_require__(8886);
|
||||
const timestamp_1 = __nccwpck_require__(8200);
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class CacheEntry$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.entities.v1.CacheEntry", [
|
||||
{ no: 1, name: "key", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 2, name: "hash", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 3, name: "size_bytes", kind: "scalar", T: 3 /*ScalarType.INT64*/ },
|
||||
{ no: 4, name: "scope", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 5, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 6, name: "created_at", kind: "message", T: () => timestamp_1.Timestamp },
|
||||
{ no: 7, name: "last_accessed_at", kind: "message", T: () => timestamp_1.Timestamp },
|
||||
{ no: 8, name: "expires_at", kind: "message", T: () => timestamp_1.Timestamp }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { key: "", hash: "", sizeBytes: "0", scope: "", version: "" };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* string key */ 1:
|
||||
message.key = reader.string();
|
||||
break;
|
||||
case /* string hash */ 2:
|
||||
message.hash = reader.string();
|
||||
break;
|
||||
case /* int64 size_bytes */ 3:
|
||||
message.sizeBytes = reader.int64().toString();
|
||||
break;
|
||||
case /* string scope */ 4:
|
||||
message.scope = reader.string();
|
||||
break;
|
||||
case /* string version */ 5:
|
||||
message.version = reader.string();
|
||||
break;
|
||||
case /* google.protobuf.Timestamp created_at */ 6:
|
||||
message.createdAt = timestamp_1.Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.createdAt);
|
||||
break;
|
||||
case /* google.protobuf.Timestamp last_accessed_at */ 7:
|
||||
message.lastAccessedAt = timestamp_1.Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.lastAccessedAt);
|
||||
break;
|
||||
case /* google.protobuf.Timestamp expires_at */ 8:
|
||||
message.expiresAt = timestamp_1.Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.expiresAt);
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* string key = 1; */
|
||||
if (message.key !== "")
|
||||
writer.tag(1, runtime_1.WireType.LengthDelimited).string(message.key);
|
||||
/* string hash = 2; */
|
||||
if (message.hash !== "")
|
||||
writer.tag(2, runtime_1.WireType.LengthDelimited).string(message.hash);
|
||||
/* int64 size_bytes = 3; */
|
||||
if (message.sizeBytes !== "0")
|
||||
writer.tag(3, runtime_1.WireType.Varint).int64(message.sizeBytes);
|
||||
/* string scope = 4; */
|
||||
if (message.scope !== "")
|
||||
writer.tag(4, runtime_1.WireType.LengthDelimited).string(message.scope);
|
||||
/* string version = 5; */
|
||||
if (message.version !== "")
|
||||
writer.tag(5, runtime_1.WireType.LengthDelimited).string(message.version);
|
||||
/* google.protobuf.Timestamp created_at = 6; */
|
||||
if (message.createdAt)
|
||||
timestamp_1.Timestamp.internalBinaryWrite(message.createdAt, writer.tag(6, runtime_1.WireType.LengthDelimited).fork(), options).join();
|
||||
/* google.protobuf.Timestamp last_accessed_at = 7; */
|
||||
if (message.lastAccessedAt)
|
||||
timestamp_1.Timestamp.internalBinaryWrite(message.lastAccessedAt, writer.tag(7, runtime_1.WireType.LengthDelimited).fork(), options).join();
|
||||
/* google.protobuf.Timestamp expires_at = 8; */
|
||||
if (message.expiresAt)
|
||||
timestamp_1.Timestamp.internalBinaryWrite(message.expiresAt, writer.tag(8, runtime_1.WireType.LengthDelimited).fork(), options).join();
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.entities.v1.CacheEntry
|
||||
*/
|
||||
exports.CacheEntry = new CacheEntry$Type();
|
||||
//# sourceMappingURL=cacheentry.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 9444:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.CacheMetadata = void 0;
|
||||
const runtime_1 = __nccwpck_require__(8886);
|
||||
const runtime_2 = __nccwpck_require__(8886);
|
||||
const runtime_3 = __nccwpck_require__(8886);
|
||||
const runtime_4 = __nccwpck_require__(8886);
|
||||
const runtime_5 = __nccwpck_require__(8886);
|
||||
const cachescope_1 = __nccwpck_require__(9425);
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class CacheMetadata$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.entities.v1.CacheMetadata", [
|
||||
{ no: 1, name: "repository_id", kind: "scalar", T: 3 /*ScalarType.INT64*/ },
|
||||
{ no: 2, name: "scope", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => cachescope_1.CacheScope }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { repositoryId: "0", scope: [] };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* int64 repository_id */ 1:
|
||||
message.repositoryId = reader.int64().toString();
|
||||
break;
|
||||
case /* repeated github.actions.results.entities.v1.CacheScope scope */ 2:
|
||||
message.scope.push(cachescope_1.CacheScope.internalBinaryRead(reader, reader.uint32(), options));
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* int64 repository_id = 1; */
|
||||
if (message.repositoryId !== "0")
|
||||
writer.tag(1, runtime_1.WireType.Varint).int64(message.repositoryId);
|
||||
/* repeated github.actions.results.entities.v1.CacheScope scope = 2; */
|
||||
for (let i = 0; i < message.scope.length; i++)
|
||||
cachescope_1.CacheScope.internalBinaryWrite(message.scope[i], writer.tag(2, runtime_1.WireType.LengthDelimited).fork(), options).join();
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.entities.v1.CacheMetadata
|
||||
*/
|
||||
exports.CacheMetadata = new CacheMetadata$Type();
|
||||
//# sourceMappingURL=cachemetadata.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 9425:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.CacheScope = void 0;
|
||||
const runtime_1 = __nccwpck_require__(8886);
|
||||
const runtime_2 = __nccwpck_require__(8886);
|
||||
const runtime_3 = __nccwpck_require__(8886);
|
||||
const runtime_4 = __nccwpck_require__(8886);
|
||||
const runtime_5 = __nccwpck_require__(8886);
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class CacheScope$Type extends runtime_5.MessageType {
|
||||
constructor() {
|
||||
super("github.actions.results.entities.v1.CacheScope", [
|
||||
{ no: 1, name: "scope", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 2, name: "permission", kind: "scalar", T: 3 /*ScalarType.INT64*/ }
|
||||
]);
|
||||
}
|
||||
create(value) {
|
||||
const message = { scope: "", permission: "0" };
|
||||
globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
|
||||
if (value !== undefined)
|
||||
(0, runtime_3.reflectionMergePartial)(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* string scope */ 1:
|
||||
message.scope = reader.string();
|
||||
break;
|
||||
case /* int64 permission */ 2:
|
||||
message.permission = reader.int64().toString();
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
/* string scope = 1; */
|
||||
if (message.scope !== "")
|
||||
writer.tag(1, runtime_1.WireType.LengthDelimited).string(message.scope);
|
||||
/* int64 permission = 2; */
|
||||
if (message.permission !== "0")
|
||||
writer.tag(2, runtime_1.WireType.Varint).int64(message.permission);
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message github.actions.results.entities.v1.CacheScope
|
||||
*/
|
||||
exports.CacheScope = new CacheScope$Type();
|
||||
//# sourceMappingURL=cachescope.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 5552:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
@@ -281,20 +2239,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.saveCache = exports.reserveCache = exports.downloadCache = exports.getCacheEntry = exports.getCacheVersion = void 0;
|
||||
exports.saveCache = exports.reserveCache = exports.downloadCache = exports.getCacheEntry = void 0;
|
||||
const core = __importStar(__nccwpck_require__(7484));
|
||||
const http_client_1 = __nccwpck_require__(4844);
|
||||
const auth_1 = __nccwpck_require__(4552);
|
||||
const crypto = __importStar(__nccwpck_require__(6982));
|
||||
const fs = __importStar(__nccwpck_require__(9896));
|
||||
const url_1 = __nccwpck_require__(7016);
|
||||
const utils = __importStar(__nccwpck_require__(680));
|
||||
const uploadUtils_1 = __nccwpck_require__(5268);
|
||||
const downloadUtils_1 = __nccwpck_require__(5067);
|
||||
const options_1 = __nccwpck_require__(8356);
|
||||
const requestUtils_1 = __nccwpck_require__(2846);
|
||||
const versionSalt = '1.0';
|
||||
const config_1 = __nccwpck_require__(7606);
|
||||
const user_agent_1 = __nccwpck_require__(1899);
|
||||
function getCacheApiUrl(resource) {
|
||||
const baseUrl = process.env['ACTIONS_CACHE_URL'] || '';
|
||||
const baseUrl = (0, config_1.getCacheServiceURL)();
|
||||
if (!baseUrl) {
|
||||
throw new Error('Cache Service Url not found, unable to restore cache.');
|
||||
}
|
||||
@@ -316,29 +2275,12 @@ function getRequestOptions() {
|
||||
function createHttpClient() {
|
||||
const token = process.env['ACTIONS_RUNTIME_TOKEN'] || '';
|
||||
const bearerCredentialHandler = new auth_1.BearerCredentialHandler(token);
|
||||
return new http_client_1.HttpClient('actions/cache', [bearerCredentialHandler], getRequestOptions());
|
||||
return new http_client_1.HttpClient((0, user_agent_1.getUserAgentString)(), [bearerCredentialHandler], getRequestOptions());
|
||||
}
|
||||
function getCacheVersion(paths, compressionMethod, enableCrossOsArchive = false) {
|
||||
// don't pass changes upstream
|
||||
const components = paths.slice();
|
||||
// Add compression method to cache version to restore
|
||||
// compressed cache as per compression method
|
||||
if (compressionMethod) {
|
||||
components.push(compressionMethod);
|
||||
}
|
||||
// Only check for windows platforms if enableCrossOsArchive is false
|
||||
if (process.platform === 'win32' && !enableCrossOsArchive) {
|
||||
components.push('windows-only');
|
||||
}
|
||||
// Add salt to cache version to support breaking changes in cache entry
|
||||
components.push(versionSalt);
|
||||
return crypto.createHash('sha256').update(components.join('|')).digest('hex');
|
||||
}
|
||||
exports.getCacheVersion = getCacheVersion;
|
||||
function getCacheEntry(keys, paths, options) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const httpClient = createHttpClient();
|
||||
const version = getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod, options === null || options === void 0 ? void 0 : options.enableCrossOsArchive);
|
||||
const version = utils.getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod, options === null || options === void 0 ? void 0 : options.enableCrossOsArchive);
|
||||
const resource = `cache?keys=${encodeURIComponent(keys.join(','))}&version=${version}`;
|
||||
const response = yield (0, requestUtils_1.retryTypedResponse)('getCacheEntry', () => __awaiter(this, void 0, void 0, function* () { return httpClient.getJson(getCacheApiUrl(resource)); }));
|
||||
// Cache not found
|
||||
@@ -409,7 +2351,7 @@ exports.downloadCache = downloadCache;
|
||||
function reserveCache(key, paths, options) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const httpClient = createHttpClient();
|
||||
const version = getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod, options === null || options === void 0 ? void 0 : options.enableCrossOsArchive);
|
||||
const version = utils.getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod, options === null || options === void 0 ? void 0 : options.enableCrossOsArchive);
|
||||
const reserveCacheRequest = {
|
||||
key,
|
||||
version,
|
||||
@@ -491,20 +2433,30 @@ function commitCache(httpClient, cacheId, filesize) {
|
||||
}));
|
||||
});
|
||||
}
|
||||
function saveCache(cacheId, archivePath, options) {
|
||||
function saveCache(cacheId, archivePath, signedUploadURL, options) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const httpClient = createHttpClient();
|
||||
core.debug('Upload cache');
|
||||
yield uploadFile(httpClient, cacheId, archivePath, options);
|
||||
// Commit Cache
|
||||
core.debug('Commiting cache');
|
||||
const cacheSize = utils.getArchiveFileSizeInBytes(archivePath);
|
||||
core.info(`Cache Size: ~${Math.round(cacheSize / (1024 * 1024))} MB (${cacheSize} B)`);
|
||||
const commitCacheResponse = yield commitCache(httpClient, cacheId, cacheSize);
|
||||
if (!(0, requestUtils_1.isSuccessStatusCode)(commitCacheResponse.statusCode)) {
|
||||
throw new Error(`Cache service responded with ${commitCacheResponse.statusCode} during commit cache.`);
|
||||
const uploadOptions = (0, options_1.getUploadOptions)(options);
|
||||
if (uploadOptions.useAzureSdk) {
|
||||
// Use Azure storage SDK to upload caches directly to Azure
|
||||
if (!signedUploadURL) {
|
||||
throw new Error('Azure Storage SDK can only be used when a signed URL is provided.');
|
||||
}
|
||||
yield (0, uploadUtils_1.uploadCacheArchiveSDK)(signedUploadURL, archivePath, options);
|
||||
}
|
||||
else {
|
||||
const httpClient = createHttpClient();
|
||||
core.debug('Upload cache');
|
||||
yield uploadFile(httpClient, cacheId, archivePath, options);
|
||||
// Commit Cache
|
||||
core.debug('Commiting cache');
|
||||
const cacheSize = utils.getArchiveFileSizeInBytes(archivePath);
|
||||
core.info(`Cache Size: ~${Math.round(cacheSize / (1024 * 1024))} MB (${cacheSize} B)`);
|
||||
const commitCacheResponse = yield commitCache(httpClient, cacheId, cacheSize);
|
||||
if (!(0, requestUtils_1.isSuccessStatusCode)(commitCacheResponse.statusCode)) {
|
||||
throw new Error(`Cache service responded with ${commitCacheResponse.statusCode} during commit cache.`);
|
||||
}
|
||||
core.info('Cache saved successfully');
|
||||
}
|
||||
core.info('Cache saved successfully');
|
||||
});
|
||||
}
|
||||
exports.saveCache = saveCache;
|
||||
@@ -557,7 +2509,7 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
|
||||
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.isGhes = exports.assertDefined = exports.getGnuTarPathOnWindows = exports.getCacheFileName = exports.getCompressionMethod = exports.unlinkFile = exports.resolvePaths = exports.getArchiveFileSizeInBytes = exports.createTempDirectory = void 0;
|
||||
exports.getRuntimeToken = exports.getCacheVersion = exports.assertDefined = exports.getGnuTarPathOnWindows = exports.getCacheFileName = exports.getCompressionMethod = exports.unlinkFile = exports.resolvePaths = exports.getArchiveFileSizeInBytes = exports.createTempDirectory = void 0;
|
||||
const core = __importStar(__nccwpck_require__(7484));
|
||||
const exec = __importStar(__nccwpck_require__(5236));
|
||||
const glob = __importStar(__nccwpck_require__(9688));
|
||||
@@ -568,6 +2520,7 @@ const path = __importStar(__nccwpck_require__(6928));
|
||||
const semver = __importStar(__nccwpck_require__(9318));
|
||||
const util = __importStar(__nccwpck_require__(9023));
|
||||
const constants_1 = __nccwpck_require__(8287);
|
||||
const versionSalt = '1.0';
|
||||
// From https://github.com/actions/toolkit/blob/main/packages/tool-cache/src/tool-cache.ts#L23
|
||||
function createTempDirectory() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
@@ -705,15 +2658,76 @@ function assertDefined(name, value) {
|
||||
return value;
|
||||
}
|
||||
exports.assertDefined = assertDefined;
|
||||
function getCacheVersion(paths, compressionMethod, enableCrossOsArchive = false) {
|
||||
// don't pass changes upstream
|
||||
const components = paths.slice();
|
||||
// Add compression method to cache version to restore
|
||||
// compressed cache as per compression method
|
||||
if (compressionMethod) {
|
||||
components.push(compressionMethod);
|
||||
}
|
||||
// Only check for windows platforms if enableCrossOsArchive is false
|
||||
if (process.platform === 'win32' && !enableCrossOsArchive) {
|
||||
components.push('windows-only');
|
||||
}
|
||||
// Add salt to cache version to support breaking changes in cache entry
|
||||
components.push(versionSalt);
|
||||
return crypto.createHash('sha256').update(components.join('|')).digest('hex');
|
||||
}
|
||||
exports.getCacheVersion = getCacheVersion;
|
||||
function getRuntimeToken() {
|
||||
const token = process.env['ACTIONS_RUNTIME_TOKEN'];
|
||||
if (!token) {
|
||||
throw new Error('Unable to get the ACTIONS_RUNTIME_TOKEN env variable');
|
||||
}
|
||||
return token;
|
||||
}
|
||||
exports.getRuntimeToken = getRuntimeToken;
|
||||
//# sourceMappingURL=cacheUtils.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 7606:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.getCacheServiceURL = exports.getCacheServiceVersion = exports.isGhes = void 0;
|
||||
function isGhes() {
|
||||
const ghUrl = new URL(process.env['GITHUB_SERVER_URL'] || 'https://github.com');
|
||||
const hostname = ghUrl.hostname.trimEnd().toUpperCase();
|
||||
const isGitHubHost = hostname === 'GITHUB.COM';
|
||||
const isGheHost = hostname.endsWith('.GHE.COM') || hostname.endsWith('.GHE.LOCALHOST');
|
||||
return !isGitHubHost && !isGheHost;
|
||||
const isGheHost = hostname.endsWith('.GHE.COM');
|
||||
const isLocalHost = hostname.endsWith('.LOCALHOST');
|
||||
return !isGitHubHost && !isGheHost && !isLocalHost;
|
||||
}
|
||||
exports.isGhes = isGhes;
|
||||
//# sourceMappingURL=cacheUtils.js.map
|
||||
function getCacheServiceVersion() {
|
||||
// Cache service v2 is not supported on GHES. We will default to
|
||||
// cache service v1 even if the feature flag was enabled by user.
|
||||
if (isGhes())
|
||||
return 'v1';
|
||||
return process.env['ACTIONS_CACHE_SERVICE_V2'] ? 'v2' : 'v1';
|
||||
}
|
||||
exports.getCacheServiceVersion = getCacheServiceVersion;
|
||||
function getCacheServiceURL() {
|
||||
const version = getCacheServiceVersion();
|
||||
// Based on the version of the cache service, we will determine which
|
||||
// URL to use.
|
||||
switch (version) {
|
||||
case 'v1':
|
||||
return (process.env['ACTIONS_CACHE_URL'] ||
|
||||
process.env['ACTIONS_RESULTS_URL'] ||
|
||||
'');
|
||||
case 'v2':
|
||||
return process.env['ACTIONS_RESULTS_URL'] || '';
|
||||
default:
|
||||
throw new Error(`Unsupported cache service version: ${version}`);
|
||||
}
|
||||
}
|
||||
exports.getCacheServiceURL = getCacheServiceURL;
|
||||
//# sourceMappingURL=config.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
@@ -723,7 +2737,7 @@ exports.isGhes = isGhes;
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.ManifestFilename = exports.TarFilename = exports.SystemTarPathOnWindows = exports.GnuTarPathOnWindows = exports.SocketTimeout = exports.DefaultRetryDelay = exports.DefaultRetryAttempts = exports.ArchiveToolType = exports.CompressionMethod = exports.CacheFilename = void 0;
|
||||
exports.CacheFileSizeLimit = exports.ManifestFilename = exports.TarFilename = exports.SystemTarPathOnWindows = exports.GnuTarPathOnWindows = exports.SocketTimeout = exports.DefaultRetryDelay = exports.DefaultRetryAttempts = exports.ArchiveToolType = exports.CompressionMethod = exports.CacheFilename = void 0;
|
||||
var CacheFilename;
|
||||
(function (CacheFilename) {
|
||||
CacheFilename["Gzip"] = "cache.tgz";
|
||||
@@ -756,6 +2770,7 @@ exports.GnuTarPathOnWindows = `${process.env['PROGRAMFILES']}\\Git\\usr\\bin\\ta
|
||||
exports.SystemTarPathOnWindows = `${process.env['SYSTEMDRIVE']}\\Windows\\System32\\tar.exe`;
|
||||
exports.TarFilename = 'cache.tar';
|
||||
exports.ManifestFilename = 'manifest.txt';
|
||||
exports.CacheFileSizeLimit = 10 * Math.pow(1024, 3); // 10GiB per repository
|
||||
//# sourceMappingURL=constants.js.map
|
||||
|
||||
/***/ }),
|
||||
@@ -1289,6 +3304,270 @@ exports.retryHttpClientResponse = retryHttpClientResponse;
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 6819:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.internalCacheTwirpClient = void 0;
|
||||
const core_1 = __nccwpck_require__(7484);
|
||||
const user_agent_1 = __nccwpck_require__(1899);
|
||||
const errors_1 = __nccwpck_require__(263);
|
||||
const config_1 = __nccwpck_require__(7606);
|
||||
const cacheUtils_1 = __nccwpck_require__(680);
|
||||
const auth_1 = __nccwpck_require__(4552);
|
||||
const http_client_1 = __nccwpck_require__(4844);
|
||||
const cache_twirp_1 = __nccwpck_require__(564);
|
||||
/**
|
||||
* This class is a wrapper around the CacheServiceClientJSON class generated by Twirp.
|
||||
*
|
||||
* It adds retry logic to the request method, which is not present in the generated client.
|
||||
*
|
||||
* This class is used to interact with cache service v2.
|
||||
*/
|
||||
class CacheServiceClient {
|
||||
constructor(userAgent, maxAttempts, baseRetryIntervalMilliseconds, retryMultiplier) {
|
||||
this.maxAttempts = 5;
|
||||
this.baseRetryIntervalMilliseconds = 3000;
|
||||
this.retryMultiplier = 1.5;
|
||||
const token = (0, cacheUtils_1.getRuntimeToken)();
|
||||
this.baseUrl = (0, config_1.getCacheServiceURL)();
|
||||
if (maxAttempts) {
|
||||
this.maxAttempts = maxAttempts;
|
||||
}
|
||||
if (baseRetryIntervalMilliseconds) {
|
||||
this.baseRetryIntervalMilliseconds = baseRetryIntervalMilliseconds;
|
||||
}
|
||||
if (retryMultiplier) {
|
||||
this.retryMultiplier = retryMultiplier;
|
||||
}
|
||||
this.httpClient = new http_client_1.HttpClient(userAgent, [
|
||||
new auth_1.BearerCredentialHandler(token)
|
||||
]);
|
||||
}
|
||||
// This function satisfies the Rpc interface. It is compatible with the JSON
|
||||
// JSON generated client.
|
||||
request(service, method, contentType, data) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const url = new URL(`/twirp/${service}/${method}`, this.baseUrl).href;
|
||||
(0, core_1.debug)(`[Request] ${method} ${url}`);
|
||||
const headers = {
|
||||
'Content-Type': contentType
|
||||
};
|
||||
try {
|
||||
const { body } = yield this.retryableRequest(() => __awaiter(this, void 0, void 0, function* () { return this.httpClient.post(url, JSON.stringify(data), headers); }));
|
||||
return body;
|
||||
}
|
||||
catch (error) {
|
||||
throw new Error(`Failed to ${method}: ${error.message}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
retryableRequest(operation) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let attempt = 0;
|
||||
let errorMessage = '';
|
||||
let rawBody = '';
|
||||
while (attempt < this.maxAttempts) {
|
||||
let isRetryable = false;
|
||||
try {
|
||||
const response = yield operation();
|
||||
const statusCode = response.message.statusCode;
|
||||
rawBody = yield response.readBody();
|
||||
(0, core_1.debug)(`[Response] - ${response.message.statusCode}`);
|
||||
(0, core_1.debug)(`Headers: ${JSON.stringify(response.message.headers, null, 2)}`);
|
||||
const body = JSON.parse(rawBody);
|
||||
(0, core_1.debug)(`Body: ${JSON.stringify(body, null, 2)}`);
|
||||
if (this.isSuccessStatusCode(statusCode)) {
|
||||
return { response, body };
|
||||
}
|
||||
isRetryable = this.isRetryableHttpStatusCode(statusCode);
|
||||
errorMessage = `Failed request: (${statusCode}) ${response.message.statusMessage}`;
|
||||
if (body.msg) {
|
||||
if (errors_1.UsageError.isUsageErrorMessage(body.msg)) {
|
||||
throw new errors_1.UsageError();
|
||||
}
|
||||
errorMessage = `${errorMessage}: ${body.msg}`;
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
if (error instanceof SyntaxError) {
|
||||
(0, core_1.debug)(`Raw Body: ${rawBody}`);
|
||||
}
|
||||
if (error instanceof errors_1.UsageError) {
|
||||
throw error;
|
||||
}
|
||||
if (errors_1.NetworkError.isNetworkErrorCode(error === null || error === void 0 ? void 0 : error.code)) {
|
||||
throw new errors_1.NetworkError(error === null || error === void 0 ? void 0 : error.code);
|
||||
}
|
||||
isRetryable = true;
|
||||
errorMessage = error.message;
|
||||
}
|
||||
if (!isRetryable) {
|
||||
throw new Error(`Received non-retryable error: ${errorMessage}`);
|
||||
}
|
||||
if (attempt + 1 === this.maxAttempts) {
|
||||
throw new Error(`Failed to make request after ${this.maxAttempts} attempts: ${errorMessage}`);
|
||||
}
|
||||
const retryTimeMilliseconds = this.getExponentialRetryTimeMilliseconds(attempt);
|
||||
(0, core_1.info)(`Attempt ${attempt + 1} of ${this.maxAttempts} failed with error: ${errorMessage}. Retrying request in ${retryTimeMilliseconds} ms...`);
|
||||
yield this.sleep(retryTimeMilliseconds);
|
||||
attempt++;
|
||||
}
|
||||
throw new Error(`Request failed`);
|
||||
});
|
||||
}
|
||||
isSuccessStatusCode(statusCode) {
|
||||
if (!statusCode)
|
||||
return false;
|
||||
return statusCode >= 200 && statusCode < 300;
|
||||
}
|
||||
isRetryableHttpStatusCode(statusCode) {
|
||||
if (!statusCode)
|
||||
return false;
|
||||
const retryableStatusCodes = [
|
||||
http_client_1.HttpCodes.BadGateway,
|
||||
http_client_1.HttpCodes.GatewayTimeout,
|
||||
http_client_1.HttpCodes.InternalServerError,
|
||||
http_client_1.HttpCodes.ServiceUnavailable,
|
||||
http_client_1.HttpCodes.TooManyRequests
|
||||
];
|
||||
return retryableStatusCodes.includes(statusCode);
|
||||
}
|
||||
sleep(milliseconds) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise(resolve => setTimeout(resolve, milliseconds));
|
||||
});
|
||||
}
|
||||
getExponentialRetryTimeMilliseconds(attempt) {
|
||||
if (attempt < 0) {
|
||||
throw new Error('attempt should be a positive integer');
|
||||
}
|
||||
if (attempt === 0) {
|
||||
return this.baseRetryIntervalMilliseconds;
|
||||
}
|
||||
const minTime = this.baseRetryIntervalMilliseconds * Math.pow(this.retryMultiplier, attempt);
|
||||
const maxTime = minTime * this.retryMultiplier;
|
||||
// returns a random number between minTime and maxTime (exclusive)
|
||||
return Math.trunc(Math.random() * (maxTime - minTime) + minTime);
|
||||
}
|
||||
}
|
||||
function internalCacheTwirpClient(options) {
|
||||
const client = new CacheServiceClient((0, user_agent_1.getUserAgentString)(), options === null || options === void 0 ? void 0 : options.maxAttempts, options === null || options === void 0 ? void 0 : options.retryIntervalMs, options === null || options === void 0 ? void 0 : options.retryMultiplier);
|
||||
return new cache_twirp_1.CacheServiceClientJSON(client);
|
||||
}
|
||||
exports.internalCacheTwirpClient = internalCacheTwirpClient;
|
||||
//# sourceMappingURL=cacheTwirpClient.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 263:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.UsageError = exports.NetworkError = exports.GHESNotSupportedError = exports.CacheNotFoundError = exports.InvalidResponseError = exports.FilesNotFoundError = void 0;
|
||||
class FilesNotFoundError extends Error {
|
||||
constructor(files = []) {
|
||||
let message = 'No files were found to upload';
|
||||
if (files.length > 0) {
|
||||
message += `: ${files.join(', ')}`;
|
||||
}
|
||||
super(message);
|
||||
this.files = files;
|
||||
this.name = 'FilesNotFoundError';
|
||||
}
|
||||
}
|
||||
exports.FilesNotFoundError = FilesNotFoundError;
|
||||
class InvalidResponseError extends Error {
|
||||
constructor(message) {
|
||||
super(message);
|
||||
this.name = 'InvalidResponseError';
|
||||
}
|
||||
}
|
||||
exports.InvalidResponseError = InvalidResponseError;
|
||||
class CacheNotFoundError extends Error {
|
||||
constructor(message = 'Cache not found') {
|
||||
super(message);
|
||||
this.name = 'CacheNotFoundError';
|
||||
}
|
||||
}
|
||||
exports.CacheNotFoundError = CacheNotFoundError;
|
||||
class GHESNotSupportedError extends Error {
|
||||
constructor(message = '@actions/cache v4.1.4+, actions/cache/save@v4+ and actions/cache/restore@v4+ are not currently supported on GHES.') {
|
||||
super(message);
|
||||
this.name = 'GHESNotSupportedError';
|
||||
}
|
||||
}
|
||||
exports.GHESNotSupportedError = GHESNotSupportedError;
|
||||
class NetworkError extends Error {
|
||||
constructor(code) {
|
||||
const message = `Unable to make request: ${code}\nIf you are using self-hosted runners, please make sure your runner has access to all GitHub endpoints: https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners#communication-between-self-hosted-runners-and-github`;
|
||||
super(message);
|
||||
this.code = code;
|
||||
this.name = 'NetworkError';
|
||||
}
|
||||
}
|
||||
exports.NetworkError = NetworkError;
|
||||
NetworkError.isNetworkErrorCode = (code) => {
|
||||
if (!code)
|
||||
return false;
|
||||
return [
|
||||
'ECONNRESET',
|
||||
'ENOTFOUND',
|
||||
'ETIMEDOUT',
|
||||
'ECONNREFUSED',
|
||||
'EHOSTUNREACH'
|
||||
].includes(code);
|
||||
};
|
||||
class UsageError extends Error {
|
||||
constructor() {
|
||||
const message = `Cache storage quota has been hit. Unable to upload any new cache entries. Usage is recalculated every 6-12 hours.\nMore info on storage limits: https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#calculating-minute-and-storage-spending`;
|
||||
super(message);
|
||||
this.name = 'UsageError';
|
||||
}
|
||||
}
|
||||
exports.UsageError = UsageError;
|
||||
UsageError.isUsageErrorMessage = (msg) => {
|
||||
if (!msg)
|
||||
return false;
|
||||
return msg.includes('insufficient usage');
|
||||
};
|
||||
//# sourceMappingURL=errors.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 1899:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.getUserAgentString = void 0;
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports
|
||||
const packageJson = __nccwpck_require__(4012);
|
||||
/**
|
||||
* Ensure that this User Agent String is used in all HTTP calls so that we can monitor telemetry between different versions of this package
|
||||
*/
|
||||
function getUserAgentString() {
|
||||
return `@actions/cache-${packageJson.version}`;
|
||||
}
|
||||
exports.getUserAgentString = getUserAgentString;
|
||||
//# sourceMappingURL=user-agent.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 5321:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
@@ -1568,6 +3847,180 @@ exports.createTar = createTar;
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 5268:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.uploadCacheArchiveSDK = exports.UploadProgress = void 0;
|
||||
const core = __importStar(__nccwpck_require__(7484));
|
||||
const storage_blob_1 = __nccwpck_require__(1012);
|
||||
const errors_1 = __nccwpck_require__(263);
|
||||
/**
|
||||
* Class for tracking the upload state and displaying stats.
|
||||
*/
|
||||
class UploadProgress {
|
||||
constructor(contentLength) {
|
||||
this.contentLength = contentLength;
|
||||
this.sentBytes = 0;
|
||||
this.displayedComplete = false;
|
||||
this.startTime = Date.now();
|
||||
}
|
||||
/**
|
||||
* Sets the number of bytes sent
|
||||
*
|
||||
* @param sentBytes the number of bytes sent
|
||||
*/
|
||||
setSentBytes(sentBytes) {
|
||||
this.sentBytes = sentBytes;
|
||||
}
|
||||
/**
|
||||
* Returns the total number of bytes transferred.
|
||||
*/
|
||||
getTransferredBytes() {
|
||||
return this.sentBytes;
|
||||
}
|
||||
/**
|
||||
* Returns true if the upload is complete.
|
||||
*/
|
||||
isDone() {
|
||||
return this.getTransferredBytes() === this.contentLength;
|
||||
}
|
||||
/**
|
||||
* Prints the current upload stats. Once the upload completes, this will print one
|
||||
* last line and then stop.
|
||||
*/
|
||||
display() {
|
||||
if (this.displayedComplete) {
|
||||
return;
|
||||
}
|
||||
const transferredBytes = this.sentBytes;
|
||||
const percentage = (100 * (transferredBytes / this.contentLength)).toFixed(1);
|
||||
const elapsedTime = Date.now() - this.startTime;
|
||||
const uploadSpeed = (transferredBytes /
|
||||
(1024 * 1024) /
|
||||
(elapsedTime / 1000)).toFixed(1);
|
||||
core.info(`Sent ${transferredBytes} of ${this.contentLength} (${percentage}%), ${uploadSpeed} MBs/sec`);
|
||||
if (this.isDone()) {
|
||||
this.displayedComplete = true;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Returns a function used to handle TransferProgressEvents.
|
||||
*/
|
||||
onProgress() {
|
||||
return (progress) => {
|
||||
this.setSentBytes(progress.loadedBytes);
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Starts the timer that displays the stats.
|
||||
*
|
||||
* @param delayInMs the delay between each write
|
||||
*/
|
||||
startDisplayTimer(delayInMs = 1000) {
|
||||
const displayCallback = () => {
|
||||
this.display();
|
||||
if (!this.isDone()) {
|
||||
this.timeoutHandle = setTimeout(displayCallback, delayInMs);
|
||||
}
|
||||
};
|
||||
this.timeoutHandle = setTimeout(displayCallback, delayInMs);
|
||||
}
|
||||
/**
|
||||
* Stops the timer that displays the stats. As this typically indicates the upload
|
||||
* is complete, this will display one last line, unless the last line has already
|
||||
* been written.
|
||||
*/
|
||||
stopDisplayTimer() {
|
||||
if (this.timeoutHandle) {
|
||||
clearTimeout(this.timeoutHandle);
|
||||
this.timeoutHandle = undefined;
|
||||
}
|
||||
this.display();
|
||||
}
|
||||
}
|
||||
exports.UploadProgress = UploadProgress;
|
||||
/**
|
||||
* Uploads a cache archive directly to Azure Blob Storage using the Azure SDK.
|
||||
* This function will display progress information to the console. Concurrency of the
|
||||
* upload is determined by the calling functions.
|
||||
*
|
||||
* @param signedUploadURL
|
||||
* @param archivePath
|
||||
* @param options
|
||||
* @returns
|
||||
*/
|
||||
function uploadCacheArchiveSDK(signedUploadURL, archivePath, options) {
|
||||
var _a;
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const blobClient = new storage_blob_1.BlobClient(signedUploadURL);
|
||||
const blockBlobClient = blobClient.getBlockBlobClient();
|
||||
const uploadProgress = new UploadProgress((_a = options === null || options === void 0 ? void 0 : options.archiveSizeBytes) !== null && _a !== void 0 ? _a : 0);
|
||||
// Specify data transfer options
|
||||
const uploadOptions = {
|
||||
blockSize: options === null || options === void 0 ? void 0 : options.uploadChunkSize,
|
||||
concurrency: options === null || options === void 0 ? void 0 : options.uploadConcurrency,
|
||||
maxSingleShotSize: 128 * 1024 * 1024,
|
||||
onProgress: uploadProgress.onProgress()
|
||||
};
|
||||
try {
|
||||
uploadProgress.startDisplayTimer();
|
||||
core.debug(`BlobClient: ${blobClient.name}:${blobClient.accountName}:${blobClient.containerName}`);
|
||||
const response = yield blockBlobClient.uploadFile(archivePath, uploadOptions);
|
||||
// TODO: better management of non-retryable errors
|
||||
if (response._response.status >= 400) {
|
||||
throw new errors_1.InvalidResponseError(`uploadCacheArchiveSDK: upload failed with status code ${response._response.status}`);
|
||||
}
|
||||
return response;
|
||||
}
|
||||
catch (error) {
|
||||
core.warning(`uploadCacheArchiveSDK: internal error uploading cache archive: ${error.message}`);
|
||||
throw error;
|
||||
}
|
||||
finally {
|
||||
uploadProgress.stopDisplayTimer();
|
||||
}
|
||||
});
|
||||
}
|
||||
exports.uploadCacheArchiveSDK = uploadCacheArchiveSDK;
|
||||
//# sourceMappingURL=uploadUtils.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 8356:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
@@ -1605,11 +4058,16 @@ const core = __importStar(__nccwpck_require__(7484));
|
||||
* @param copy the original upload options
|
||||
*/
|
||||
function getUploadOptions(copy) {
|
||||
// Defaults if not overriden
|
||||
const result = {
|
||||
useAzureSdk: false,
|
||||
uploadConcurrency: 4,
|
||||
uploadChunkSize: 32 * 1024 * 1024
|
||||
};
|
||||
if (copy) {
|
||||
if (typeof copy.useAzureSdk === 'boolean') {
|
||||
result.useAzureSdk = copy.useAzureSdk;
|
||||
}
|
||||
if (typeof copy.uploadConcurrency === 'number') {
|
||||
result.uploadConcurrency = copy.uploadConcurrency;
|
||||
}
|
||||
@@ -1617,6 +4075,18 @@ function getUploadOptions(copy) {
|
||||
result.uploadChunkSize = copy.uploadChunkSize;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Add env var overrides
|
||||
*/
|
||||
// Cap the uploadConcurrency at 32
|
||||
result.uploadConcurrency = !isNaN(Number(process.env['CACHE_UPLOAD_CONCURRENCY']))
|
||||
? Math.min(32, Number(process.env['CACHE_UPLOAD_CONCURRENCY']))
|
||||
: result.uploadConcurrency;
|
||||
// Cap the uploadChunkSize at 128MiB
|
||||
result.uploadChunkSize = !isNaN(Number(process.env['CACHE_UPLOAD_CHUNK_SIZE']))
|
||||
? Math.min(128 * 1024 * 1024, Number(process.env['CACHE_UPLOAD_CHUNK_SIZE']) * 1024 * 1024)
|
||||
: result.uploadChunkSize;
|
||||
core.debug(`Use Azure SDK: ${result.useAzureSdk}`);
|
||||
core.debug(`Upload concurrency: ${result.uploadConcurrency}`);
|
||||
core.debug(`Upload chunk size: ${result.uploadChunkSize}`);
|
||||
return result;
|
||||
@@ -47196,6 +49666,4940 @@ exports.VERSION = void 0;
|
||||
exports.VERSION = '1.4.1';
|
||||
//# sourceMappingURL=version.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 7889:
|
||||
/***/ (function(__unused_webpack_module, exports) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.ClientStreamingCall = void 0;
|
||||
/**
|
||||
* A client streaming RPC call. This means that the clients sends 0, 1, or
|
||||
* more messages to the server, and the server replies with exactly one
|
||||
* message.
|
||||
*/
|
||||
class ClientStreamingCall {
|
||||
constructor(method, requestHeaders, request, headers, response, status, trailers) {
|
||||
this.method = method;
|
||||
this.requestHeaders = requestHeaders;
|
||||
this.requests = request;
|
||||
this.headers = headers;
|
||||
this.response = response;
|
||||
this.status = status;
|
||||
this.trailers = trailers;
|
||||
}
|
||||
/**
|
||||
* Instead of awaiting the response status and trailers, you can
|
||||
* just as well await this call itself to receive the server outcome.
|
||||
* Note that it may still be valid to send more request messages.
|
||||
*/
|
||||
then(onfulfilled, onrejected) {
|
||||
return this.promiseFinished().then(value => onfulfilled ? Promise.resolve(onfulfilled(value)) : value, reason => onrejected ? Promise.resolve(onrejected(reason)) : Promise.reject(reason));
|
||||
}
|
||||
promiseFinished() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let [headers, response, status, trailers] = yield Promise.all([this.headers, this.response, this.status, this.trailers]);
|
||||
return {
|
||||
method: this.method,
|
||||
requestHeaders: this.requestHeaders,
|
||||
headers,
|
||||
response,
|
||||
status,
|
||||
trailers
|
||||
};
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.ClientStreamingCall = ClientStreamingCall;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 1409:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.Deferred = exports.DeferredState = void 0;
|
||||
var DeferredState;
|
||||
(function (DeferredState) {
|
||||
DeferredState[DeferredState["PENDING"] = 0] = "PENDING";
|
||||
DeferredState[DeferredState["REJECTED"] = 1] = "REJECTED";
|
||||
DeferredState[DeferredState["RESOLVED"] = 2] = "RESOLVED";
|
||||
})(DeferredState = exports.DeferredState || (exports.DeferredState = {}));
|
||||
/**
|
||||
* A deferred promise. This is a "controller" for a promise, which lets you
|
||||
* pass a promise around and reject or resolve it from the outside.
|
||||
*
|
||||
* Warning: This class is to be used with care. Using it can make code very
|
||||
* difficult to read. It is intended for use in library code that exposes
|
||||
* promises, not for regular business logic.
|
||||
*/
|
||||
class Deferred {
|
||||
/**
|
||||
* @param preventUnhandledRejectionWarning - prevents the warning
|
||||
* "Unhandled Promise rejection" by adding a noop rejection handler.
|
||||
* Working with calls returned from the runtime-rpc package in an
|
||||
* async function usually means awaiting one call property after
|
||||
* the other. This means that the "status" is not being awaited when
|
||||
* an earlier await for the "headers" is rejected. This causes the
|
||||
* "unhandled promise reject" warning. A more correct behaviour for
|
||||
* calls might be to become aware whether at least one of the
|
||||
* promises is handled and swallow the rejection warning for the
|
||||
* others.
|
||||
*/
|
||||
constructor(preventUnhandledRejectionWarning = true) {
|
||||
this._state = DeferredState.PENDING;
|
||||
this._promise = new Promise((resolve, reject) => {
|
||||
this._resolve = resolve;
|
||||
this._reject = reject;
|
||||
});
|
||||
if (preventUnhandledRejectionWarning) {
|
||||
this._promise.catch(_ => { });
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Get the current state of the promise.
|
||||
*/
|
||||
get state() {
|
||||
return this._state;
|
||||
}
|
||||
/**
|
||||
* Get the deferred promise.
|
||||
*/
|
||||
get promise() {
|
||||
return this._promise;
|
||||
}
|
||||
/**
|
||||
* Resolve the promise. Throws if the promise is already resolved or rejected.
|
||||
*/
|
||||
resolve(value) {
|
||||
if (this.state !== DeferredState.PENDING)
|
||||
throw new Error(`cannot resolve ${DeferredState[this.state].toLowerCase()}`);
|
||||
this._resolve(value);
|
||||
this._state = DeferredState.RESOLVED;
|
||||
}
|
||||
/**
|
||||
* Reject the promise. Throws if the promise is already resolved or rejected.
|
||||
*/
|
||||
reject(reason) {
|
||||
if (this.state !== DeferredState.PENDING)
|
||||
throw new Error(`cannot reject ${DeferredState[this.state].toLowerCase()}`);
|
||||
this._reject(reason);
|
||||
this._state = DeferredState.REJECTED;
|
||||
}
|
||||
/**
|
||||
* Resolve the promise. Ignore if not pending.
|
||||
*/
|
||||
resolvePending(val) {
|
||||
if (this._state === DeferredState.PENDING)
|
||||
this.resolve(val);
|
||||
}
|
||||
/**
|
||||
* Reject the promise. Ignore if not pending.
|
||||
*/
|
||||
rejectPending(reason) {
|
||||
if (this._state === DeferredState.PENDING)
|
||||
this.reject(reason);
|
||||
}
|
||||
}
|
||||
exports.Deferred = Deferred;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 6826:
|
||||
/***/ (function(__unused_webpack_module, exports) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.DuplexStreamingCall = void 0;
|
||||
/**
|
||||
* A duplex streaming RPC call. This means that the clients sends an
|
||||
* arbitrary amount of messages to the server, while at the same time,
|
||||
* the server sends an arbitrary amount of messages to the client.
|
||||
*/
|
||||
class DuplexStreamingCall {
|
||||
constructor(method, requestHeaders, request, headers, response, status, trailers) {
|
||||
this.method = method;
|
||||
this.requestHeaders = requestHeaders;
|
||||
this.requests = request;
|
||||
this.headers = headers;
|
||||
this.responses = response;
|
||||
this.status = status;
|
||||
this.trailers = trailers;
|
||||
}
|
||||
/**
|
||||
* Instead of awaiting the response status and trailers, you can
|
||||
* just as well await this call itself to receive the server outcome.
|
||||
* Note that it may still be valid to send more request messages.
|
||||
*/
|
||||
then(onfulfilled, onrejected) {
|
||||
return this.promiseFinished().then(value => onfulfilled ? Promise.resolve(onfulfilled(value)) : value, reason => onrejected ? Promise.resolve(onrejected(reason)) : Promise.reject(reason));
|
||||
}
|
||||
promiseFinished() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let [headers, status, trailers] = yield Promise.all([this.headers, this.status, this.trailers]);
|
||||
return {
|
||||
method: this.method,
|
||||
requestHeaders: this.requestHeaders,
|
||||
headers,
|
||||
status,
|
||||
trailers,
|
||||
};
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.DuplexStreamingCall = DuplexStreamingCall;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 4420:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
// Public API of the rpc runtime.
|
||||
// Note: we do not use `export * from ...` to help tree shakers,
|
||||
// webpack verbose output hints that this should be useful
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
var service_type_1 = __nccwpck_require__(6892);
|
||||
Object.defineProperty(exports, "ServiceType", ({ enumerable: true, get: function () { return service_type_1.ServiceType; } }));
|
||||
var reflection_info_1 = __nccwpck_require__(2496);
|
||||
Object.defineProperty(exports, "readMethodOptions", ({ enumerable: true, get: function () { return reflection_info_1.readMethodOptions; } }));
|
||||
Object.defineProperty(exports, "readMethodOption", ({ enumerable: true, get: function () { return reflection_info_1.readMethodOption; } }));
|
||||
Object.defineProperty(exports, "readServiceOption", ({ enumerable: true, get: function () { return reflection_info_1.readServiceOption; } }));
|
||||
var rpc_error_1 = __nccwpck_require__(8636);
|
||||
Object.defineProperty(exports, "RpcError", ({ enumerable: true, get: function () { return rpc_error_1.RpcError; } }));
|
||||
var rpc_options_1 = __nccwpck_require__(8576);
|
||||
Object.defineProperty(exports, "mergeRpcOptions", ({ enumerable: true, get: function () { return rpc_options_1.mergeRpcOptions; } }));
|
||||
var rpc_output_stream_1 = __nccwpck_require__(2726);
|
||||
Object.defineProperty(exports, "RpcOutputStreamController", ({ enumerable: true, get: function () { return rpc_output_stream_1.RpcOutputStreamController; } }));
|
||||
var test_transport_1 = __nccwpck_require__(9122);
|
||||
Object.defineProperty(exports, "TestTransport", ({ enumerable: true, get: function () { return test_transport_1.TestTransport; } }));
|
||||
var deferred_1 = __nccwpck_require__(1409);
|
||||
Object.defineProperty(exports, "Deferred", ({ enumerable: true, get: function () { return deferred_1.Deferred; } }));
|
||||
Object.defineProperty(exports, "DeferredState", ({ enumerable: true, get: function () { return deferred_1.DeferredState; } }));
|
||||
var duplex_streaming_call_1 = __nccwpck_require__(6826);
|
||||
Object.defineProperty(exports, "DuplexStreamingCall", ({ enumerable: true, get: function () { return duplex_streaming_call_1.DuplexStreamingCall; } }));
|
||||
var client_streaming_call_1 = __nccwpck_require__(7889);
|
||||
Object.defineProperty(exports, "ClientStreamingCall", ({ enumerable: true, get: function () { return client_streaming_call_1.ClientStreamingCall; } }));
|
||||
var server_streaming_call_1 = __nccwpck_require__(6173);
|
||||
Object.defineProperty(exports, "ServerStreamingCall", ({ enumerable: true, get: function () { return server_streaming_call_1.ServerStreamingCall; } }));
|
||||
var unary_call_1 = __nccwpck_require__(9288);
|
||||
Object.defineProperty(exports, "UnaryCall", ({ enumerable: true, get: function () { return unary_call_1.UnaryCall; } }));
|
||||
var rpc_interceptor_1 = __nccwpck_require__(2849);
|
||||
Object.defineProperty(exports, "stackIntercept", ({ enumerable: true, get: function () { return rpc_interceptor_1.stackIntercept; } }));
|
||||
Object.defineProperty(exports, "stackDuplexStreamingInterceptors", ({ enumerable: true, get: function () { return rpc_interceptor_1.stackDuplexStreamingInterceptors; } }));
|
||||
Object.defineProperty(exports, "stackClientStreamingInterceptors", ({ enumerable: true, get: function () { return rpc_interceptor_1.stackClientStreamingInterceptors; } }));
|
||||
Object.defineProperty(exports, "stackServerStreamingInterceptors", ({ enumerable: true, get: function () { return rpc_interceptor_1.stackServerStreamingInterceptors; } }));
|
||||
Object.defineProperty(exports, "stackUnaryInterceptors", ({ enumerable: true, get: function () { return rpc_interceptor_1.stackUnaryInterceptors; } }));
|
||||
var server_call_context_1 = __nccwpck_require__(3352);
|
||||
Object.defineProperty(exports, "ServerCallContextController", ({ enumerable: true, get: function () { return server_call_context_1.ServerCallContextController; } }));
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 2496:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.readServiceOption = exports.readMethodOption = exports.readMethodOptions = exports.normalizeMethodInfo = void 0;
|
||||
const runtime_1 = __nccwpck_require__(8886);
|
||||
/**
|
||||
* Turns PartialMethodInfo into MethodInfo.
|
||||
*/
|
||||
function normalizeMethodInfo(method, service) {
|
||||
var _a, _b, _c;
|
||||
let m = method;
|
||||
m.service = service;
|
||||
m.localName = (_a = m.localName) !== null && _a !== void 0 ? _a : runtime_1.lowerCamelCase(m.name);
|
||||
// noinspection PointlessBooleanExpressionJS
|
||||
m.serverStreaming = !!m.serverStreaming;
|
||||
// noinspection PointlessBooleanExpressionJS
|
||||
m.clientStreaming = !!m.clientStreaming;
|
||||
m.options = (_b = m.options) !== null && _b !== void 0 ? _b : {};
|
||||
m.idempotency = (_c = m.idempotency) !== null && _c !== void 0 ? _c : undefined;
|
||||
return m;
|
||||
}
|
||||
exports.normalizeMethodInfo = normalizeMethodInfo;
|
||||
/**
|
||||
* Read custom method options from a generated service client.
|
||||
*
|
||||
* @deprecated use readMethodOption()
|
||||
*/
|
||||
function readMethodOptions(service, methodName, extensionName, extensionType) {
|
||||
var _a;
|
||||
const options = (_a = service.methods.find((m, i) => m.localName === methodName || i === methodName)) === null || _a === void 0 ? void 0 : _a.options;
|
||||
return options && options[extensionName] ? extensionType.fromJson(options[extensionName]) : undefined;
|
||||
}
|
||||
exports.readMethodOptions = readMethodOptions;
|
||||
function readMethodOption(service, methodName, extensionName, extensionType) {
|
||||
var _a;
|
||||
const options = (_a = service.methods.find((m, i) => m.localName === methodName || i === methodName)) === null || _a === void 0 ? void 0 : _a.options;
|
||||
if (!options) {
|
||||
return undefined;
|
||||
}
|
||||
const optionVal = options[extensionName];
|
||||
if (optionVal === undefined) {
|
||||
return optionVal;
|
||||
}
|
||||
return extensionType ? extensionType.fromJson(optionVal) : optionVal;
|
||||
}
|
||||
exports.readMethodOption = readMethodOption;
|
||||
function readServiceOption(service, extensionName, extensionType) {
|
||||
const options = service.options;
|
||||
if (!options) {
|
||||
return undefined;
|
||||
}
|
||||
const optionVal = options[extensionName];
|
||||
if (optionVal === undefined) {
|
||||
return optionVal;
|
||||
}
|
||||
return extensionType ? extensionType.fromJson(optionVal) : optionVal;
|
||||
}
|
||||
exports.readServiceOption = readServiceOption;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 8636:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.RpcError = void 0;
|
||||
/**
|
||||
* An error that occurred while calling a RPC method.
|
||||
*/
|
||||
class RpcError extends Error {
|
||||
constructor(message, code = 'UNKNOWN', meta) {
|
||||
super(message);
|
||||
this.name = 'RpcError';
|
||||
// see https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#example
|
||||
Object.setPrototypeOf(this, new.target.prototype);
|
||||
this.code = code;
|
||||
this.meta = meta !== null && meta !== void 0 ? meta : {};
|
||||
}
|
||||
toString() {
|
||||
const l = [this.name + ': ' + this.message];
|
||||
if (this.code) {
|
||||
l.push('');
|
||||
l.push('Code: ' + this.code);
|
||||
}
|
||||
if (this.serviceName && this.methodName) {
|
||||
l.push('Method: ' + this.serviceName + '/' + this.methodName);
|
||||
}
|
||||
let m = Object.entries(this.meta);
|
||||
if (m.length) {
|
||||
l.push('');
|
||||
l.push('Meta:');
|
||||
for (let [k, v] of m) {
|
||||
l.push(` ${k}: ${v}`);
|
||||
}
|
||||
}
|
||||
return l.join('\n');
|
||||
}
|
||||
}
|
||||
exports.RpcError = RpcError;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 2849:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.stackDuplexStreamingInterceptors = exports.stackClientStreamingInterceptors = exports.stackServerStreamingInterceptors = exports.stackUnaryInterceptors = exports.stackIntercept = void 0;
|
||||
const runtime_1 = __nccwpck_require__(8886);
|
||||
/**
|
||||
* Creates a "stack" of of all interceptors specified in the given `RpcOptions`.
|
||||
* Used by generated client implementations.
|
||||
* @internal
|
||||
*/
|
||||
function stackIntercept(kind, transport, method, options, input) {
|
||||
var _a, _b, _c, _d;
|
||||
if (kind == "unary") {
|
||||
let tail = (mtd, inp, opt) => transport.unary(mtd, inp, opt);
|
||||
for (const curr of ((_a = options.interceptors) !== null && _a !== void 0 ? _a : []).filter(i => i.interceptUnary).reverse()) {
|
||||
const next = tail;
|
||||
tail = (mtd, inp, opt) => curr.interceptUnary(next, mtd, inp, opt);
|
||||
}
|
||||
return tail(method, input, options);
|
||||
}
|
||||
if (kind == "serverStreaming") {
|
||||
let tail = (mtd, inp, opt) => transport.serverStreaming(mtd, inp, opt);
|
||||
for (const curr of ((_b = options.interceptors) !== null && _b !== void 0 ? _b : []).filter(i => i.interceptServerStreaming).reverse()) {
|
||||
const next = tail;
|
||||
tail = (mtd, inp, opt) => curr.interceptServerStreaming(next, mtd, inp, opt);
|
||||
}
|
||||
return tail(method, input, options);
|
||||
}
|
||||
if (kind == "clientStreaming") {
|
||||
let tail = (mtd, opt) => transport.clientStreaming(mtd, opt);
|
||||
for (const curr of ((_c = options.interceptors) !== null && _c !== void 0 ? _c : []).filter(i => i.interceptClientStreaming).reverse()) {
|
||||
const next = tail;
|
||||
tail = (mtd, opt) => curr.interceptClientStreaming(next, mtd, opt);
|
||||
}
|
||||
return tail(method, options);
|
||||
}
|
||||
if (kind == "duplex") {
|
||||
let tail = (mtd, opt) => transport.duplex(mtd, opt);
|
||||
for (const curr of ((_d = options.interceptors) !== null && _d !== void 0 ? _d : []).filter(i => i.interceptDuplex).reverse()) {
|
||||
const next = tail;
|
||||
tail = (mtd, opt) => curr.interceptDuplex(next, mtd, opt);
|
||||
}
|
||||
return tail(method, options);
|
||||
}
|
||||
runtime_1.assertNever(kind);
|
||||
}
|
||||
exports.stackIntercept = stackIntercept;
|
||||
/**
|
||||
* @deprecated replaced by `stackIntercept()`, still here to support older generated code
|
||||
*/
|
||||
function stackUnaryInterceptors(transport, method, input, options) {
|
||||
return stackIntercept("unary", transport, method, options, input);
|
||||
}
|
||||
exports.stackUnaryInterceptors = stackUnaryInterceptors;
|
||||
/**
|
||||
* @deprecated replaced by `stackIntercept()`, still here to support older generated code
|
||||
*/
|
||||
function stackServerStreamingInterceptors(transport, method, input, options) {
|
||||
return stackIntercept("serverStreaming", transport, method, options, input);
|
||||
}
|
||||
exports.stackServerStreamingInterceptors = stackServerStreamingInterceptors;
|
||||
/**
|
||||
* @deprecated replaced by `stackIntercept()`, still here to support older generated code
|
||||
*/
|
||||
function stackClientStreamingInterceptors(transport, method, options) {
|
||||
return stackIntercept("clientStreaming", transport, method, options);
|
||||
}
|
||||
exports.stackClientStreamingInterceptors = stackClientStreamingInterceptors;
|
||||
/**
|
||||
* @deprecated replaced by `stackIntercept()`, still here to support older generated code
|
||||
*/
|
||||
function stackDuplexStreamingInterceptors(transport, method, options) {
|
||||
return stackIntercept("duplex", transport, method, options);
|
||||
}
|
||||
exports.stackDuplexStreamingInterceptors = stackDuplexStreamingInterceptors;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 8576:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.mergeRpcOptions = void 0;
|
||||
const runtime_1 = __nccwpck_require__(8886);
|
||||
/**
|
||||
* Merges custom RPC options with defaults. Returns a new instance and keeps
|
||||
* the "defaults" and the "options" unmodified.
|
||||
*
|
||||
* Merges `RpcMetadata` "meta", overwriting values from "defaults" with
|
||||
* values from "options". Does not append values to existing entries.
|
||||
*
|
||||
* Merges "jsonOptions", including "jsonOptions.typeRegistry", by creating
|
||||
* a new array that contains types from "options.jsonOptions.typeRegistry"
|
||||
* first, then types from "defaults.jsonOptions.typeRegistry".
|
||||
*
|
||||
* Merges "binaryOptions".
|
||||
*
|
||||
* Merges "interceptors" by creating a new array that contains interceptors
|
||||
* from "defaults" first, then interceptors from "options".
|
||||
*
|
||||
* Works with objects that extend `RpcOptions`, but only if the added
|
||||
* properties are of type Date, primitive like string, boolean, or Array
|
||||
* of primitives. If you have other property types, you have to merge them
|
||||
* yourself.
|
||||
*/
|
||||
function mergeRpcOptions(defaults, options) {
|
||||
if (!options)
|
||||
return defaults;
|
||||
let o = {};
|
||||
copy(defaults, o);
|
||||
copy(options, o);
|
||||
for (let key of Object.keys(options)) {
|
||||
let val = options[key];
|
||||
switch (key) {
|
||||
case "jsonOptions":
|
||||
o.jsonOptions = runtime_1.mergeJsonOptions(defaults.jsonOptions, o.jsonOptions);
|
||||
break;
|
||||
case "binaryOptions":
|
||||
o.binaryOptions = runtime_1.mergeBinaryOptions(defaults.binaryOptions, o.binaryOptions);
|
||||
break;
|
||||
case "meta":
|
||||
o.meta = {};
|
||||
copy(defaults.meta, o.meta);
|
||||
copy(options.meta, o.meta);
|
||||
break;
|
||||
case "interceptors":
|
||||
o.interceptors = defaults.interceptors ? defaults.interceptors.concat(val) : val.concat();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return o;
|
||||
}
|
||||
exports.mergeRpcOptions = mergeRpcOptions;
|
||||
function copy(a, into) {
|
||||
if (!a)
|
||||
return;
|
||||
let c = into;
|
||||
for (let [k, v] of Object.entries(a)) {
|
||||
if (v instanceof Date)
|
||||
c[k] = new Date(v.getTime());
|
||||
else if (Array.isArray(v))
|
||||
c[k] = v.concat();
|
||||
else
|
||||
c[k] = v;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 2726:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.RpcOutputStreamController = void 0;
|
||||
const deferred_1 = __nccwpck_require__(1409);
|
||||
const runtime_1 = __nccwpck_require__(8886);
|
||||
/**
|
||||
* A `RpcOutputStream` that you control.
|
||||
*/
|
||||
class RpcOutputStreamController {
|
||||
constructor() {
|
||||
this._lis = {
|
||||
nxt: [],
|
||||
msg: [],
|
||||
err: [],
|
||||
cmp: [],
|
||||
};
|
||||
this._closed = false;
|
||||
}
|
||||
// --- RpcOutputStream callback API
|
||||
onNext(callback) {
|
||||
return this.addLis(callback, this._lis.nxt);
|
||||
}
|
||||
onMessage(callback) {
|
||||
return this.addLis(callback, this._lis.msg);
|
||||
}
|
||||
onError(callback) {
|
||||
return this.addLis(callback, this._lis.err);
|
||||
}
|
||||
onComplete(callback) {
|
||||
return this.addLis(callback, this._lis.cmp);
|
||||
}
|
||||
addLis(callback, list) {
|
||||
list.push(callback);
|
||||
return () => {
|
||||
let i = list.indexOf(callback);
|
||||
if (i >= 0)
|
||||
list.splice(i, 1);
|
||||
};
|
||||
}
|
||||
// remove all listeners
|
||||
clearLis() {
|
||||
for (let l of Object.values(this._lis))
|
||||
l.splice(0, l.length);
|
||||
}
|
||||
// --- Controller API
|
||||
/**
|
||||
* Is this stream already closed by a completion or error?
|
||||
*/
|
||||
get closed() {
|
||||
return this._closed !== false;
|
||||
}
|
||||
/**
|
||||
* Emit message, close with error, or close successfully, but only one
|
||||
* at a time.
|
||||
* Can be used to wrap a stream by using the other stream's `onNext`.
|
||||
*/
|
||||
notifyNext(message, error, complete) {
|
||||
runtime_1.assert((message ? 1 : 0) + (error ? 1 : 0) + (complete ? 1 : 0) <= 1, 'only one emission at a time');
|
||||
if (message)
|
||||
this.notifyMessage(message);
|
||||
if (error)
|
||||
this.notifyError(error);
|
||||
if (complete)
|
||||
this.notifyComplete();
|
||||
}
|
||||
/**
|
||||
* Emits a new message. Throws if stream is closed.
|
||||
*
|
||||
* Triggers onNext and onMessage callbacks.
|
||||
*/
|
||||
notifyMessage(message) {
|
||||
runtime_1.assert(!this.closed, 'stream is closed');
|
||||
this.pushIt({ value: message, done: false });
|
||||
this._lis.msg.forEach(l => l(message));
|
||||
this._lis.nxt.forEach(l => l(message, undefined, false));
|
||||
}
|
||||
/**
|
||||
* Closes the stream with an error. Throws if stream is closed.
|
||||
*
|
||||
* Triggers onNext and onError callbacks.
|
||||
*/
|
||||
notifyError(error) {
|
||||
runtime_1.assert(!this.closed, 'stream is closed');
|
||||
this._closed = error;
|
||||
this.pushIt(error);
|
||||
this._lis.err.forEach(l => l(error));
|
||||
this._lis.nxt.forEach(l => l(undefined, error, false));
|
||||
this.clearLis();
|
||||
}
|
||||
/**
|
||||
* Closes the stream successfully. Throws if stream is closed.
|
||||
*
|
||||
* Triggers onNext and onComplete callbacks.
|
||||
*/
|
||||
notifyComplete() {
|
||||
runtime_1.assert(!this.closed, 'stream is closed');
|
||||
this._closed = true;
|
||||
this.pushIt({ value: null, done: true });
|
||||
this._lis.cmp.forEach(l => l());
|
||||
this._lis.nxt.forEach(l => l(undefined, undefined, true));
|
||||
this.clearLis();
|
||||
}
|
||||
/**
|
||||
* Creates an async iterator (that can be used with `for await {...}`)
|
||||
* to consume the stream.
|
||||
*
|
||||
* Some things to note:
|
||||
* - If an error occurs, the `for await` will throw it.
|
||||
* - If an error occurred before the `for await` was started, `for await`
|
||||
* will re-throw it.
|
||||
* - If the stream is already complete, the `for await` will be empty.
|
||||
* - If your `for await` consumes slower than the stream produces,
|
||||
* for example because you are relaying messages in a slow operation,
|
||||
* messages are queued.
|
||||
*/
|
||||
[Symbol.asyncIterator]() {
|
||||
// init the iterator state, enabling pushIt()
|
||||
if (!this._itState) {
|
||||
this._itState = { q: [] };
|
||||
}
|
||||
// if we are closed, we are definitely not receiving any more messages.
|
||||
// but we can't let the iterator get stuck. we want to either:
|
||||
// a) finish the new iterator immediately, because we are completed
|
||||
// b) reject the new iterator, because we errored
|
||||
if (this._closed === true)
|
||||
this.pushIt({ value: null, done: true });
|
||||
else if (this._closed !== false)
|
||||
this.pushIt(this._closed);
|
||||
// the async iterator
|
||||
return {
|
||||
next: () => {
|
||||
let state = this._itState;
|
||||
runtime_1.assert(state, "bad state"); // if we don't have a state here, code is broken
|
||||
// there should be no pending result.
|
||||
// did the consumer call next() before we resolved our previous result promise?
|
||||
runtime_1.assert(!state.p, "iterator contract broken");
|
||||
// did we produce faster than the iterator consumed?
|
||||
// return the oldest result from the queue.
|
||||
let first = state.q.shift();
|
||||
if (first)
|
||||
return ("value" in first) ? Promise.resolve(first) : Promise.reject(first);
|
||||
// we have no result ATM, but we promise one.
|
||||
// as soon as we have a result, we must resolve promise.
|
||||
state.p = new deferred_1.Deferred();
|
||||
return state.p.promise;
|
||||
},
|
||||
};
|
||||
}
|
||||
// "push" a new iterator result.
|
||||
// this either resolves a pending promise, or enqueues the result.
|
||||
pushIt(result) {
|
||||
let state = this._itState;
|
||||
if (!state)
|
||||
return;
|
||||
// is the consumer waiting for us?
|
||||
if (state.p) {
|
||||
// yes, consumer is waiting for this promise.
|
||||
const p = state.p;
|
||||
runtime_1.assert(p.state == deferred_1.DeferredState.PENDING, "iterator contract broken");
|
||||
// resolve the promise
|
||||
("value" in result) ? p.resolve(result) : p.reject(result);
|
||||
// must cleanup, otherwise iterator.next() would pick it up again.
|
||||
delete state.p;
|
||||
}
|
||||
else {
|
||||
// we are producing faster than the iterator consumes.
|
||||
// push result onto queue.
|
||||
state.q.push(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.RpcOutputStreamController = RpcOutputStreamController;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 3352:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.ServerCallContextController = void 0;
|
||||
class ServerCallContextController {
|
||||
constructor(method, headers, deadline, sendResponseHeadersFn, defaultStatus = { code: 'OK', detail: '' }) {
|
||||
this._cancelled = false;
|
||||
this._listeners = [];
|
||||
this.method = method;
|
||||
this.headers = headers;
|
||||
this.deadline = deadline;
|
||||
this.trailers = {};
|
||||
this._sendRH = sendResponseHeadersFn;
|
||||
this.status = defaultStatus;
|
||||
}
|
||||
/**
|
||||
* Set the call cancelled.
|
||||
*
|
||||
* Invokes all callbacks registered with onCancel() and
|
||||
* sets `cancelled = true`.
|
||||
*/
|
||||
notifyCancelled() {
|
||||
if (!this._cancelled) {
|
||||
this._cancelled = true;
|
||||
for (let l of this._listeners) {
|
||||
l();
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Send response headers.
|
||||
*/
|
||||
sendResponseHeaders(data) {
|
||||
this._sendRH(data);
|
||||
}
|
||||
/**
|
||||
* Is the call cancelled?
|
||||
*
|
||||
* When the client closes the connection before the server
|
||||
* is done, the call is cancelled.
|
||||
*
|
||||
* If you want to cancel a request on the server, throw a
|
||||
* RpcError with the CANCELLED status code.
|
||||
*/
|
||||
get cancelled() {
|
||||
return this._cancelled;
|
||||
}
|
||||
/**
|
||||
* Add a callback for cancellation.
|
||||
*/
|
||||
onCancel(callback) {
|
||||
const l = this._listeners;
|
||||
l.push(callback);
|
||||
return () => {
|
||||
let i = l.indexOf(callback);
|
||||
if (i >= 0)
|
||||
l.splice(i, 1);
|
||||
};
|
||||
}
|
||||
}
|
||||
exports.ServerCallContextController = ServerCallContextController;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 6173:
|
||||
/***/ (function(__unused_webpack_module, exports) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.ServerStreamingCall = void 0;
|
||||
/**
|
||||
* A server streaming RPC call. The client provides exactly one input message
|
||||
* but the server may respond with 0, 1, or more messages.
|
||||
*/
|
||||
class ServerStreamingCall {
|
||||
constructor(method, requestHeaders, request, headers, response, status, trailers) {
|
||||
this.method = method;
|
||||
this.requestHeaders = requestHeaders;
|
||||
this.request = request;
|
||||
this.headers = headers;
|
||||
this.responses = response;
|
||||
this.status = status;
|
||||
this.trailers = trailers;
|
||||
}
|
||||
/**
|
||||
* Instead of awaiting the response status and trailers, you can
|
||||
* just as well await this call itself to receive the server outcome.
|
||||
* You should first setup some listeners to the `request` to
|
||||
* see the actual messages the server replied with.
|
||||
*/
|
||||
then(onfulfilled, onrejected) {
|
||||
return this.promiseFinished().then(value => onfulfilled ? Promise.resolve(onfulfilled(value)) : value, reason => onrejected ? Promise.resolve(onrejected(reason)) : Promise.reject(reason));
|
||||
}
|
||||
promiseFinished() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let [headers, status, trailers] = yield Promise.all([this.headers, this.status, this.trailers]);
|
||||
return {
|
||||
method: this.method,
|
||||
requestHeaders: this.requestHeaders,
|
||||
request: this.request,
|
||||
headers,
|
||||
status,
|
||||
trailers,
|
||||
};
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.ServerStreamingCall = ServerStreamingCall;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 6892:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.ServiceType = void 0;
|
||||
const reflection_info_1 = __nccwpck_require__(2496);
|
||||
class ServiceType {
|
||||
constructor(typeName, methods, options) {
|
||||
this.typeName = typeName;
|
||||
this.methods = methods.map(i => reflection_info_1.normalizeMethodInfo(i, this));
|
||||
this.options = options !== null && options !== void 0 ? options : {};
|
||||
}
|
||||
}
|
||||
exports.ServiceType = ServiceType;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 9122:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.TestTransport = void 0;
|
||||
const rpc_error_1 = __nccwpck_require__(8636);
|
||||
const runtime_1 = __nccwpck_require__(8886);
|
||||
const rpc_output_stream_1 = __nccwpck_require__(2726);
|
||||
const rpc_options_1 = __nccwpck_require__(8576);
|
||||
const unary_call_1 = __nccwpck_require__(9288);
|
||||
const server_streaming_call_1 = __nccwpck_require__(6173);
|
||||
const client_streaming_call_1 = __nccwpck_require__(7889);
|
||||
const duplex_streaming_call_1 = __nccwpck_require__(6826);
|
||||
/**
|
||||
* Transport for testing.
|
||||
*/
|
||||
class TestTransport {
|
||||
/**
|
||||
* Initialize with mock data. Omitted fields have default value.
|
||||
*/
|
||||
constructor(data) {
|
||||
/**
|
||||
* Suppress warning / error about uncaught rejections of
|
||||
* "status" and "trailers".
|
||||
*/
|
||||
this.suppressUncaughtRejections = true;
|
||||
this.headerDelay = 10;
|
||||
this.responseDelay = 50;
|
||||
this.betweenResponseDelay = 10;
|
||||
this.afterResponseDelay = 10;
|
||||
this.data = data !== null && data !== void 0 ? data : {};
|
||||
}
|
||||
/**
|
||||
* Sent message(s) during the last operation.
|
||||
*/
|
||||
get sentMessages() {
|
||||
if (this.lastInput instanceof TestInputStream) {
|
||||
return this.lastInput.sent;
|
||||
}
|
||||
else if (typeof this.lastInput == "object") {
|
||||
return [this.lastInput.single];
|
||||
}
|
||||
return [];
|
||||
}
|
||||
/**
|
||||
* Sending message(s) completed?
|
||||
*/
|
||||
get sendComplete() {
|
||||
if (this.lastInput instanceof TestInputStream) {
|
||||
return this.lastInput.completed;
|
||||
}
|
||||
else if (typeof this.lastInput == "object") {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// Creates a promise for response headers from the mock data.
|
||||
promiseHeaders() {
|
||||
var _a;
|
||||
const headers = (_a = this.data.headers) !== null && _a !== void 0 ? _a : TestTransport.defaultHeaders;
|
||||
return headers instanceof rpc_error_1.RpcError
|
||||
? Promise.reject(headers)
|
||||
: Promise.resolve(headers);
|
||||
}
|
||||
// Creates a promise for a single, valid, message from the mock data.
|
||||
promiseSingleResponse(method) {
|
||||
if (this.data.response instanceof rpc_error_1.RpcError) {
|
||||
return Promise.reject(this.data.response);
|
||||
}
|
||||
let r;
|
||||
if (Array.isArray(this.data.response)) {
|
||||
runtime_1.assert(this.data.response.length > 0);
|
||||
r = this.data.response[0];
|
||||
}
|
||||
else if (this.data.response !== undefined) {
|
||||
r = this.data.response;
|
||||
}
|
||||
else {
|
||||
r = method.O.create();
|
||||
}
|
||||
runtime_1.assert(method.O.is(r));
|
||||
return Promise.resolve(r);
|
||||
}
|
||||
/**
|
||||
* Pushes response messages from the mock data to the output stream.
|
||||
* If an error response, status or trailers are mocked, the stream is
|
||||
* closed with the respective error.
|
||||
* Otherwise, stream is completed successfully.
|
||||
*
|
||||
* The returned promise resolves when the stream is closed. It should
|
||||
* not reject. If it does, code is broken.
|
||||
*/
|
||||
streamResponses(method, stream, abort) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
// normalize "data.response" into an array of valid output messages
|
||||
const messages = [];
|
||||
if (this.data.response === undefined) {
|
||||
messages.push(method.O.create());
|
||||
}
|
||||
else if (Array.isArray(this.data.response)) {
|
||||
for (let msg of this.data.response) {
|
||||
runtime_1.assert(method.O.is(msg));
|
||||
messages.push(msg);
|
||||
}
|
||||
}
|
||||
else if (!(this.data.response instanceof rpc_error_1.RpcError)) {
|
||||
runtime_1.assert(method.O.is(this.data.response));
|
||||
messages.push(this.data.response);
|
||||
}
|
||||
// start the stream with an initial delay.
|
||||
// if the request is cancelled, notify() error and exit.
|
||||
try {
|
||||
yield delay(this.responseDelay, abort)(undefined);
|
||||
}
|
||||
catch (error) {
|
||||
stream.notifyError(error);
|
||||
return;
|
||||
}
|
||||
// if error response was mocked, notify() error (stream is now closed with error) and exit.
|
||||
if (this.data.response instanceof rpc_error_1.RpcError) {
|
||||
stream.notifyError(this.data.response);
|
||||
return;
|
||||
}
|
||||
// regular response messages were mocked. notify() them.
|
||||
for (let msg of messages) {
|
||||
stream.notifyMessage(msg);
|
||||
// add a short delay between responses
|
||||
// if the request is cancelled, notify() error and exit.
|
||||
try {
|
||||
yield delay(this.betweenResponseDelay, abort)(undefined);
|
||||
}
|
||||
catch (error) {
|
||||
stream.notifyError(error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
// error status was mocked, notify() error (stream is now closed with error) and exit.
|
||||
if (this.data.status instanceof rpc_error_1.RpcError) {
|
||||
stream.notifyError(this.data.status);
|
||||
return;
|
||||
}
|
||||
// error trailers were mocked, notify() error (stream is now closed with error) and exit.
|
||||
if (this.data.trailers instanceof rpc_error_1.RpcError) {
|
||||
stream.notifyError(this.data.trailers);
|
||||
return;
|
||||
}
|
||||
// stream completed successfully
|
||||
stream.notifyComplete();
|
||||
});
|
||||
}
|
||||
// Creates a promise for response status from the mock data.
|
||||
promiseStatus() {
|
||||
var _a;
|
||||
const status = (_a = this.data.status) !== null && _a !== void 0 ? _a : TestTransport.defaultStatus;
|
||||
return status instanceof rpc_error_1.RpcError
|
||||
? Promise.reject(status)
|
||||
: Promise.resolve(status);
|
||||
}
|
||||
// Creates a promise for response trailers from the mock data.
|
||||
promiseTrailers() {
|
||||
var _a;
|
||||
const trailers = (_a = this.data.trailers) !== null && _a !== void 0 ? _a : TestTransport.defaultTrailers;
|
||||
return trailers instanceof rpc_error_1.RpcError
|
||||
? Promise.reject(trailers)
|
||||
: Promise.resolve(trailers);
|
||||
}
|
||||
maybeSuppressUncaught(...promise) {
|
||||
if (this.suppressUncaughtRejections) {
|
||||
for (let p of promise) {
|
||||
p.catch(() => {
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
mergeOptions(options) {
|
||||
return rpc_options_1.mergeRpcOptions({}, options);
|
||||
}
|
||||
unary(method, input, options) {
|
||||
var _a;
|
||||
const requestHeaders = (_a = options.meta) !== null && _a !== void 0 ? _a : {}, headersPromise = this.promiseHeaders()
|
||||
.then(delay(this.headerDelay, options.abort)), responsePromise = headersPromise
|
||||
.catch(_ => {
|
||||
})
|
||||
.then(delay(this.responseDelay, options.abort))
|
||||
.then(_ => this.promiseSingleResponse(method)), statusPromise = responsePromise
|
||||
.catch(_ => {
|
||||
})
|
||||
.then(delay(this.afterResponseDelay, options.abort))
|
||||
.then(_ => this.promiseStatus()), trailersPromise = responsePromise
|
||||
.catch(_ => {
|
||||
})
|
||||
.then(delay(this.afterResponseDelay, options.abort))
|
||||
.then(_ => this.promiseTrailers());
|
||||
this.maybeSuppressUncaught(statusPromise, trailersPromise);
|
||||
this.lastInput = { single: input };
|
||||
return new unary_call_1.UnaryCall(method, requestHeaders, input, headersPromise, responsePromise, statusPromise, trailersPromise);
|
||||
}
|
||||
serverStreaming(method, input, options) {
|
||||
var _a;
|
||||
const requestHeaders = (_a = options.meta) !== null && _a !== void 0 ? _a : {}, headersPromise = this.promiseHeaders()
|
||||
.then(delay(this.headerDelay, options.abort)), outputStream = new rpc_output_stream_1.RpcOutputStreamController(), responseStreamClosedPromise = headersPromise
|
||||
.then(delay(this.responseDelay, options.abort))
|
||||
.catch(() => {
|
||||
})
|
||||
.then(() => this.streamResponses(method, outputStream, options.abort))
|
||||
.then(delay(this.afterResponseDelay, options.abort)), statusPromise = responseStreamClosedPromise
|
||||
.then(() => this.promiseStatus()), trailersPromise = responseStreamClosedPromise
|
||||
.then(() => this.promiseTrailers());
|
||||
this.maybeSuppressUncaught(statusPromise, trailersPromise);
|
||||
this.lastInput = { single: input };
|
||||
return new server_streaming_call_1.ServerStreamingCall(method, requestHeaders, input, headersPromise, outputStream, statusPromise, trailersPromise);
|
||||
}
|
||||
clientStreaming(method, options) {
|
||||
var _a;
|
||||
const requestHeaders = (_a = options.meta) !== null && _a !== void 0 ? _a : {}, headersPromise = this.promiseHeaders()
|
||||
.then(delay(this.headerDelay, options.abort)), responsePromise = headersPromise
|
||||
.catch(_ => {
|
||||
})
|
||||
.then(delay(this.responseDelay, options.abort))
|
||||
.then(_ => this.promiseSingleResponse(method)), statusPromise = responsePromise
|
||||
.catch(_ => {
|
||||
})
|
||||
.then(delay(this.afterResponseDelay, options.abort))
|
||||
.then(_ => this.promiseStatus()), trailersPromise = responsePromise
|
||||
.catch(_ => {
|
||||
})
|
||||
.then(delay(this.afterResponseDelay, options.abort))
|
||||
.then(_ => this.promiseTrailers());
|
||||
this.maybeSuppressUncaught(statusPromise, trailersPromise);
|
||||
this.lastInput = new TestInputStream(this.data, options.abort);
|
||||
return new client_streaming_call_1.ClientStreamingCall(method, requestHeaders, this.lastInput, headersPromise, responsePromise, statusPromise, trailersPromise);
|
||||
}
|
||||
duplex(method, options) {
|
||||
var _a;
|
||||
const requestHeaders = (_a = options.meta) !== null && _a !== void 0 ? _a : {}, headersPromise = this.promiseHeaders()
|
||||
.then(delay(this.headerDelay, options.abort)), outputStream = new rpc_output_stream_1.RpcOutputStreamController(), responseStreamClosedPromise = headersPromise
|
||||
.then(delay(this.responseDelay, options.abort))
|
||||
.catch(() => {
|
||||
})
|
||||
.then(() => this.streamResponses(method, outputStream, options.abort))
|
||||
.then(delay(this.afterResponseDelay, options.abort)), statusPromise = responseStreamClosedPromise
|
||||
.then(() => this.promiseStatus()), trailersPromise = responseStreamClosedPromise
|
||||
.then(() => this.promiseTrailers());
|
||||
this.maybeSuppressUncaught(statusPromise, trailersPromise);
|
||||
this.lastInput = new TestInputStream(this.data, options.abort);
|
||||
return new duplex_streaming_call_1.DuplexStreamingCall(method, requestHeaders, this.lastInput, headersPromise, outputStream, statusPromise, trailersPromise);
|
||||
}
|
||||
}
|
||||
exports.TestTransport = TestTransport;
|
||||
TestTransport.defaultHeaders = {
|
||||
responseHeader: "test"
|
||||
};
|
||||
TestTransport.defaultStatus = {
|
||||
code: "OK", detail: "all good"
|
||||
};
|
||||
TestTransport.defaultTrailers = {
|
||||
responseTrailer: "test"
|
||||
};
|
||||
function delay(ms, abort) {
|
||||
return (v) => new Promise((resolve, reject) => {
|
||||
if (abort === null || abort === void 0 ? void 0 : abort.aborted) {
|
||||
reject(new rpc_error_1.RpcError("user cancel", "CANCELLED"));
|
||||
}
|
||||
else {
|
||||
const id = setTimeout(() => resolve(v), ms);
|
||||
if (abort) {
|
||||
abort.addEventListener("abort", ev => {
|
||||
clearTimeout(id);
|
||||
reject(new rpc_error_1.RpcError("user cancel", "CANCELLED"));
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
class TestInputStream {
|
||||
constructor(data, abort) {
|
||||
this._completed = false;
|
||||
this._sent = [];
|
||||
this.data = data;
|
||||
this.abort = abort;
|
||||
}
|
||||
get sent() {
|
||||
return this._sent;
|
||||
}
|
||||
get completed() {
|
||||
return this._completed;
|
||||
}
|
||||
send(message) {
|
||||
if (this.data.inputMessage instanceof rpc_error_1.RpcError) {
|
||||
return Promise.reject(this.data.inputMessage);
|
||||
}
|
||||
const delayMs = this.data.inputMessage === undefined
|
||||
? 10
|
||||
: this.data.inputMessage;
|
||||
return Promise.resolve(undefined)
|
||||
.then(() => {
|
||||
this._sent.push(message);
|
||||
})
|
||||
.then(delay(delayMs, this.abort));
|
||||
}
|
||||
complete() {
|
||||
if (this.data.inputComplete instanceof rpc_error_1.RpcError) {
|
||||
return Promise.reject(this.data.inputComplete);
|
||||
}
|
||||
const delayMs = this.data.inputComplete === undefined
|
||||
? 10
|
||||
: this.data.inputComplete;
|
||||
return Promise.resolve(undefined)
|
||||
.then(() => {
|
||||
this._completed = true;
|
||||
})
|
||||
.then(delay(delayMs, this.abort));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 9288:
|
||||
/***/ (function(__unused_webpack_module, exports) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.UnaryCall = void 0;
|
||||
/**
|
||||
* A unary RPC call. Unary means there is exactly one input message and
|
||||
* exactly one output message unless an error occurred.
|
||||
*/
|
||||
class UnaryCall {
|
||||
constructor(method, requestHeaders, request, headers, response, status, trailers) {
|
||||
this.method = method;
|
||||
this.requestHeaders = requestHeaders;
|
||||
this.request = request;
|
||||
this.headers = headers;
|
||||
this.response = response;
|
||||
this.status = status;
|
||||
this.trailers = trailers;
|
||||
}
|
||||
/**
|
||||
* If you are only interested in the final outcome of this call,
|
||||
* you can await it to receive a `FinishedUnaryCall`.
|
||||
*/
|
||||
then(onfulfilled, onrejected) {
|
||||
return this.promiseFinished().then(value => onfulfilled ? Promise.resolve(onfulfilled(value)) : value, reason => onrejected ? Promise.resolve(onrejected(reason)) : Promise.reject(reason));
|
||||
}
|
||||
promiseFinished() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let [headers, response, status, trailers] = yield Promise.all([this.headers, this.response, this.status, this.trailers]);
|
||||
return {
|
||||
method: this.method,
|
||||
requestHeaders: this.requestHeaders,
|
||||
request: this.request,
|
||||
headers,
|
||||
response,
|
||||
status,
|
||||
trailers
|
||||
};
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.UnaryCall = UnaryCall;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 8602:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.assertFloat32 = exports.assertUInt32 = exports.assertInt32 = exports.assertNever = exports.assert = void 0;
|
||||
/**
|
||||
* assert that condition is true or throw error (with message)
|
||||
*/
|
||||
function assert(condition, msg) {
|
||||
if (!condition) {
|
||||
throw new Error(msg);
|
||||
}
|
||||
}
|
||||
exports.assert = assert;
|
||||
/**
|
||||
* assert that value cannot exist = type `never`. throw runtime error if it does.
|
||||
*/
|
||||
function assertNever(value, msg) {
|
||||
throw new Error(msg !== null && msg !== void 0 ? msg : 'Unexpected object: ' + value);
|
||||
}
|
||||
exports.assertNever = assertNever;
|
||||
const FLOAT32_MAX = 3.4028234663852886e+38, FLOAT32_MIN = -3.4028234663852886e+38, UINT32_MAX = 0xFFFFFFFF, INT32_MAX = 0X7FFFFFFF, INT32_MIN = -0X80000000;
|
||||
function assertInt32(arg) {
|
||||
if (typeof arg !== "number")
|
||||
throw new Error('invalid int 32: ' + typeof arg);
|
||||
if (!Number.isInteger(arg) || arg > INT32_MAX || arg < INT32_MIN)
|
||||
throw new Error('invalid int 32: ' + arg);
|
||||
}
|
||||
exports.assertInt32 = assertInt32;
|
||||
function assertUInt32(arg) {
|
||||
if (typeof arg !== "number")
|
||||
throw new Error('invalid uint 32: ' + typeof arg);
|
||||
if (!Number.isInteger(arg) || arg > UINT32_MAX || arg < 0)
|
||||
throw new Error('invalid uint 32: ' + arg);
|
||||
}
|
||||
exports.assertUInt32 = assertUInt32;
|
||||
function assertFloat32(arg) {
|
||||
if (typeof arg !== "number")
|
||||
throw new Error('invalid float 32: ' + typeof arg);
|
||||
if (!Number.isFinite(arg))
|
||||
return;
|
||||
if (arg > FLOAT32_MAX || arg < FLOAT32_MIN)
|
||||
throw new Error('invalid float 32: ' + arg);
|
||||
}
|
||||
exports.assertFloat32 = assertFloat32;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 6335:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.base64encode = exports.base64decode = void 0;
|
||||
// lookup table from base64 character to byte
|
||||
let encTable = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
|
||||
// lookup table from base64 character *code* to byte because lookup by number is fast
|
||||
let decTable = [];
|
||||
for (let i = 0; i < encTable.length; i++)
|
||||
decTable[encTable[i].charCodeAt(0)] = i;
|
||||
// support base64url variants
|
||||
decTable["-".charCodeAt(0)] = encTable.indexOf("+");
|
||||
decTable["_".charCodeAt(0)] = encTable.indexOf("/");
|
||||
/**
|
||||
* Decodes a base64 string to a byte array.
|
||||
*
|
||||
* - ignores white-space, including line breaks and tabs
|
||||
* - allows inner padding (can decode concatenated base64 strings)
|
||||
* - does not require padding
|
||||
* - understands base64url encoding:
|
||||
* "-" instead of "+",
|
||||
* "_" instead of "/",
|
||||
* no padding
|
||||
*/
|
||||
function base64decode(base64Str) {
|
||||
// estimate byte size, not accounting for inner padding and whitespace
|
||||
let es = base64Str.length * 3 / 4;
|
||||
// if (es % 3 !== 0)
|
||||
// throw new Error('invalid base64 string');
|
||||
if (base64Str[base64Str.length - 2] == '=')
|
||||
es -= 2;
|
||||
else if (base64Str[base64Str.length - 1] == '=')
|
||||
es -= 1;
|
||||
let bytes = new Uint8Array(es), bytePos = 0, // position in byte array
|
||||
groupPos = 0, // position in base64 group
|
||||
b, // current byte
|
||||
p = 0 // previous byte
|
||||
;
|
||||
for (let i = 0; i < base64Str.length; i++) {
|
||||
b = decTable[base64Str.charCodeAt(i)];
|
||||
if (b === undefined) {
|
||||
// noinspection FallThroughInSwitchStatementJS
|
||||
switch (base64Str[i]) {
|
||||
case '=':
|
||||
groupPos = 0; // reset state when padding found
|
||||
case '\n':
|
||||
case '\r':
|
||||
case '\t':
|
||||
case ' ':
|
||||
continue; // skip white-space, and padding
|
||||
default:
|
||||
throw Error(`invalid base64 string.`);
|
||||
}
|
||||
}
|
||||
switch (groupPos) {
|
||||
case 0:
|
||||
p = b;
|
||||
groupPos = 1;
|
||||
break;
|
||||
case 1:
|
||||
bytes[bytePos++] = p << 2 | (b & 48) >> 4;
|
||||
p = b;
|
||||
groupPos = 2;
|
||||
break;
|
||||
case 2:
|
||||
bytes[bytePos++] = (p & 15) << 4 | (b & 60) >> 2;
|
||||
p = b;
|
||||
groupPos = 3;
|
||||
break;
|
||||
case 3:
|
||||
bytes[bytePos++] = (p & 3) << 6 | b;
|
||||
groupPos = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (groupPos == 1)
|
||||
throw Error(`invalid base64 string.`);
|
||||
return bytes.subarray(0, bytePos);
|
||||
}
|
||||
exports.base64decode = base64decode;
|
||||
/**
|
||||
* Encodes a byte array to a base64 string.
|
||||
* Adds padding at the end.
|
||||
* Does not insert newlines.
|
||||
*/
|
||||
function base64encode(bytes) {
|
||||
let base64 = '', groupPos = 0, // position in base64 group
|
||||
b, // current byte
|
||||
p = 0; // carry over from previous byte
|
||||
for (let i = 0; i < bytes.length; i++) {
|
||||
b = bytes[i];
|
||||
switch (groupPos) {
|
||||
case 0:
|
||||
base64 += encTable[b >> 2];
|
||||
p = (b & 3) << 4;
|
||||
groupPos = 1;
|
||||
break;
|
||||
case 1:
|
||||
base64 += encTable[p | b >> 4];
|
||||
p = (b & 15) << 2;
|
||||
groupPos = 2;
|
||||
break;
|
||||
case 2:
|
||||
base64 += encTable[p | b >> 6];
|
||||
base64 += encTable[b & 63];
|
||||
groupPos = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// padding required?
|
||||
if (groupPos) {
|
||||
base64 += encTable[p];
|
||||
base64 += '=';
|
||||
if (groupPos == 1)
|
||||
base64 += '=';
|
||||
}
|
||||
return base64;
|
||||
}
|
||||
exports.base64encode = base64encode;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 4816:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.WireType = exports.mergeBinaryOptions = exports.UnknownFieldHandler = void 0;
|
||||
/**
|
||||
* This handler implements the default behaviour for unknown fields.
|
||||
* When reading data, unknown fields are stored on the message, in a
|
||||
* symbol property.
|
||||
* When writing data, the symbol property is queried and unknown fields
|
||||
* are serialized into the output again.
|
||||
*/
|
||||
var UnknownFieldHandler;
|
||||
(function (UnknownFieldHandler) {
|
||||
/**
|
||||
* The symbol used to store unknown fields for a message.
|
||||
* The property must conform to `UnknownFieldContainer`.
|
||||
*/
|
||||
UnknownFieldHandler.symbol = Symbol.for("protobuf-ts/unknown");
|
||||
/**
|
||||
* Store an unknown field during binary read directly on the message.
|
||||
* This method is compatible with `BinaryReadOptions.readUnknownField`.
|
||||
*/
|
||||
UnknownFieldHandler.onRead = (typeName, message, fieldNo, wireType, data) => {
|
||||
let container = is(message) ? message[UnknownFieldHandler.symbol] : message[UnknownFieldHandler.symbol] = [];
|
||||
container.push({ no: fieldNo, wireType, data });
|
||||
};
|
||||
/**
|
||||
* Write unknown fields stored for the message to the writer.
|
||||
* This method is compatible with `BinaryWriteOptions.writeUnknownFields`.
|
||||
*/
|
||||
UnknownFieldHandler.onWrite = (typeName, message, writer) => {
|
||||
for (let { no, wireType, data } of UnknownFieldHandler.list(message))
|
||||
writer.tag(no, wireType).raw(data);
|
||||
};
|
||||
/**
|
||||
* List unknown fields stored for the message.
|
||||
* Note that there may be multiples fields with the same number.
|
||||
*/
|
||||
UnknownFieldHandler.list = (message, fieldNo) => {
|
||||
if (is(message)) {
|
||||
let all = message[UnknownFieldHandler.symbol];
|
||||
return fieldNo ? all.filter(uf => uf.no == fieldNo) : all;
|
||||
}
|
||||
return [];
|
||||
};
|
||||
/**
|
||||
* Returns the last unknown field by field number.
|
||||
*/
|
||||
UnknownFieldHandler.last = (message, fieldNo) => UnknownFieldHandler.list(message, fieldNo).slice(-1)[0];
|
||||
const is = (message) => message && Array.isArray(message[UnknownFieldHandler.symbol]);
|
||||
})(UnknownFieldHandler = exports.UnknownFieldHandler || (exports.UnknownFieldHandler = {}));
|
||||
/**
|
||||
* Merges binary write or read options. Later values override earlier values.
|
||||
*/
|
||||
function mergeBinaryOptions(a, b) {
|
||||
return Object.assign(Object.assign({}, a), b);
|
||||
}
|
||||
exports.mergeBinaryOptions = mergeBinaryOptions;
|
||||
/**
|
||||
* Protobuf binary format wire types.
|
||||
*
|
||||
* A wire type provides just enough information to find the length of the
|
||||
* following value.
|
||||
*
|
||||
* See https://developers.google.com/protocol-buffers/docs/encoding#structure
|
||||
*/
|
||||
var WireType;
|
||||
(function (WireType) {
|
||||
/**
|
||||
* Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum
|
||||
*/
|
||||
WireType[WireType["Varint"] = 0] = "Varint";
|
||||
/**
|
||||
* Used for fixed64, sfixed64, double.
|
||||
* Always 8 bytes with little-endian byte order.
|
||||
*/
|
||||
WireType[WireType["Bit64"] = 1] = "Bit64";
|
||||
/**
|
||||
* Used for string, bytes, embedded messages, packed repeated fields
|
||||
*
|
||||
* Only repeated numeric types (types which use the varint, 32-bit,
|
||||
* or 64-bit wire types) can be packed. In proto3, such fields are
|
||||
* packed by default.
|
||||
*/
|
||||
WireType[WireType["LengthDelimited"] = 2] = "LengthDelimited";
|
||||
/**
|
||||
* Used for groups
|
||||
* @deprecated
|
||||
*/
|
||||
WireType[WireType["StartGroup"] = 3] = "StartGroup";
|
||||
/**
|
||||
* Used for groups
|
||||
* @deprecated
|
||||
*/
|
||||
WireType[WireType["EndGroup"] = 4] = "EndGroup";
|
||||
/**
|
||||
* Used for fixed32, sfixed32, float.
|
||||
* Always 4 bytes with little-endian byte order.
|
||||
*/
|
||||
WireType[WireType["Bit32"] = 5] = "Bit32";
|
||||
})(WireType = exports.WireType || (exports.WireType = {}));
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 2889:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.BinaryReader = exports.binaryReadOptions = void 0;
|
||||
const binary_format_contract_1 = __nccwpck_require__(4816);
|
||||
const pb_long_1 = __nccwpck_require__(1753);
|
||||
const goog_varint_1 = __nccwpck_require__(3223);
|
||||
const defaultsRead = {
|
||||
readUnknownField: true,
|
||||
readerFactory: bytes => new BinaryReader(bytes),
|
||||
};
|
||||
/**
|
||||
* Make options for reading binary data form partial options.
|
||||
*/
|
||||
function binaryReadOptions(options) {
|
||||
return options ? Object.assign(Object.assign({}, defaultsRead), options) : defaultsRead;
|
||||
}
|
||||
exports.binaryReadOptions = binaryReadOptions;
|
||||
class BinaryReader {
|
||||
constructor(buf, textDecoder) {
|
||||
this.varint64 = goog_varint_1.varint64read; // dirty cast for `this`
|
||||
/**
|
||||
* Read a `uint32` field, an unsigned 32 bit varint.
|
||||
*/
|
||||
this.uint32 = goog_varint_1.varint32read; // dirty cast for `this` and access to protected `buf`
|
||||
this.buf = buf;
|
||||
this.len = buf.length;
|
||||
this.pos = 0;
|
||||
this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
||||
this.textDecoder = textDecoder !== null && textDecoder !== void 0 ? textDecoder : new TextDecoder("utf-8", {
|
||||
fatal: true,
|
||||
ignoreBOM: true,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Reads a tag - field number and wire type.
|
||||
*/
|
||||
tag() {
|
||||
let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;
|
||||
if (fieldNo <= 0 || wireType < 0 || wireType > 5)
|
||||
throw new Error("illegal tag: field no " + fieldNo + " wire type " + wireType);
|
||||
return [fieldNo, wireType];
|
||||
}
|
||||
/**
|
||||
* Skip one element on the wire and return the skipped data.
|
||||
* Supports WireType.StartGroup since v2.0.0-alpha.23.
|
||||
*/
|
||||
skip(wireType) {
|
||||
let start = this.pos;
|
||||
// noinspection FallThroughInSwitchStatementJS
|
||||
switch (wireType) {
|
||||
case binary_format_contract_1.WireType.Varint:
|
||||
while (this.buf[this.pos++] & 0x80) {
|
||||
// ignore
|
||||
}
|
||||
break;
|
||||
case binary_format_contract_1.WireType.Bit64:
|
||||
this.pos += 4;
|
||||
case binary_format_contract_1.WireType.Bit32:
|
||||
this.pos += 4;
|
||||
break;
|
||||
case binary_format_contract_1.WireType.LengthDelimited:
|
||||
let len = this.uint32();
|
||||
this.pos += len;
|
||||
break;
|
||||
case binary_format_contract_1.WireType.StartGroup:
|
||||
// From descriptor.proto: Group type is deprecated, not supported in proto3.
|
||||
// But we must still be able to parse and treat as unknown.
|
||||
let t;
|
||||
while ((t = this.tag()[1]) !== binary_format_contract_1.WireType.EndGroup) {
|
||||
this.skip(t);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new Error("cant skip wire type " + wireType);
|
||||
}
|
||||
this.assertBounds();
|
||||
return this.buf.subarray(start, this.pos);
|
||||
}
|
||||
/**
|
||||
* Throws error if position in byte array is out of range.
|
||||
*/
|
||||
assertBounds() {
|
||||
if (this.pos > this.len)
|
||||
throw new RangeError("premature EOF");
|
||||
}
|
||||
/**
|
||||
* Read a `int32` field, a signed 32 bit varint.
|
||||
*/
|
||||
int32() {
|
||||
return this.uint32() | 0;
|
||||
}
|
||||
/**
|
||||
* Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.
|
||||
*/
|
||||
sint32() {
|
||||
let zze = this.uint32();
|
||||
// decode zigzag
|
||||
return (zze >>> 1) ^ -(zze & 1);
|
||||
}
|
||||
/**
|
||||
* Read a `int64` field, a signed 64-bit varint.
|
||||
*/
|
||||
int64() {
|
||||
return new pb_long_1.PbLong(...this.varint64());
|
||||
}
|
||||
/**
|
||||
* Read a `uint64` field, an unsigned 64-bit varint.
|
||||
*/
|
||||
uint64() {
|
||||
return new pb_long_1.PbULong(...this.varint64());
|
||||
}
|
||||
/**
|
||||
* Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.
|
||||
*/
|
||||
sint64() {
|
||||
let [lo, hi] = this.varint64();
|
||||
// decode zig zag
|
||||
let s = -(lo & 1);
|
||||
lo = ((lo >>> 1 | (hi & 1) << 31) ^ s);
|
||||
hi = (hi >>> 1 ^ s);
|
||||
return new pb_long_1.PbLong(lo, hi);
|
||||
}
|
||||
/**
|
||||
* Read a `bool` field, a variant.
|
||||
*/
|
||||
bool() {
|
||||
let [lo, hi] = this.varint64();
|
||||
return lo !== 0 || hi !== 0;
|
||||
}
|
||||
/**
|
||||
* Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.
|
||||
*/
|
||||
fixed32() {
|
||||
return this.view.getUint32((this.pos += 4) - 4, true);
|
||||
}
|
||||
/**
|
||||
* Read a `sfixed32` field, a signed, fixed-length 32-bit integer.
|
||||
*/
|
||||
sfixed32() {
|
||||
return this.view.getInt32((this.pos += 4) - 4, true);
|
||||
}
|
||||
/**
|
||||
* Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.
|
||||
*/
|
||||
fixed64() {
|
||||
return new pb_long_1.PbULong(this.sfixed32(), this.sfixed32());
|
||||
}
|
||||
/**
|
||||
* Read a `fixed64` field, a signed, fixed-length 64-bit integer.
|
||||
*/
|
||||
sfixed64() {
|
||||
return new pb_long_1.PbLong(this.sfixed32(), this.sfixed32());
|
||||
}
|
||||
/**
|
||||
* Read a `float` field, 32-bit floating point number.
|
||||
*/
|
||||
float() {
|
||||
return this.view.getFloat32((this.pos += 4) - 4, true);
|
||||
}
|
||||
/**
|
||||
* Read a `double` field, a 64-bit floating point number.
|
||||
*/
|
||||
double() {
|
||||
return this.view.getFloat64((this.pos += 8) - 8, true);
|
||||
}
|
||||
/**
|
||||
* Read a `bytes` field, length-delimited arbitrary data.
|
||||
*/
|
||||
bytes() {
|
||||
let len = this.uint32();
|
||||
let start = this.pos;
|
||||
this.pos += len;
|
||||
this.assertBounds();
|
||||
return this.buf.subarray(start, start + len);
|
||||
}
|
||||
/**
|
||||
* Read a `string` field, length-delimited data converted to UTF-8 text.
|
||||
*/
|
||||
string() {
|
||||
return this.textDecoder.decode(this.bytes());
|
||||
}
|
||||
}
|
||||
exports.BinaryReader = BinaryReader;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 3957:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.BinaryWriter = exports.binaryWriteOptions = void 0;
|
||||
const pb_long_1 = __nccwpck_require__(1753);
|
||||
const goog_varint_1 = __nccwpck_require__(3223);
|
||||
const assert_1 = __nccwpck_require__(8602);
|
||||
const defaultsWrite = {
|
||||
writeUnknownFields: true,
|
||||
writerFactory: () => new BinaryWriter(),
|
||||
};
|
||||
/**
|
||||
* Make options for writing binary data form partial options.
|
||||
*/
|
||||
function binaryWriteOptions(options) {
|
||||
return options ? Object.assign(Object.assign({}, defaultsWrite), options) : defaultsWrite;
|
||||
}
|
||||
exports.binaryWriteOptions = binaryWriteOptions;
|
||||
class BinaryWriter {
|
||||
constructor(textEncoder) {
|
||||
/**
|
||||
* Previous fork states.
|
||||
*/
|
||||
this.stack = [];
|
||||
this.textEncoder = textEncoder !== null && textEncoder !== void 0 ? textEncoder : new TextEncoder();
|
||||
this.chunks = [];
|
||||
this.buf = [];
|
||||
}
|
||||
/**
|
||||
* Return all bytes written and reset this writer.
|
||||
*/
|
||||
finish() {
|
||||
this.chunks.push(new Uint8Array(this.buf)); // flush the buffer
|
||||
let len = 0;
|
||||
for (let i = 0; i < this.chunks.length; i++)
|
||||
len += this.chunks[i].length;
|
||||
let bytes = new Uint8Array(len);
|
||||
let offset = 0;
|
||||
for (let i = 0; i < this.chunks.length; i++) {
|
||||
bytes.set(this.chunks[i], offset);
|
||||
offset += this.chunks[i].length;
|
||||
}
|
||||
this.chunks = [];
|
||||
return bytes;
|
||||
}
|
||||
/**
|
||||
* Start a new fork for length-delimited data like a message
|
||||
* or a packed repeated field.
|
||||
*
|
||||
* Must be joined later with `join()`.
|
||||
*/
|
||||
fork() {
|
||||
this.stack.push({ chunks: this.chunks, buf: this.buf });
|
||||
this.chunks = [];
|
||||
this.buf = [];
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Join the last fork. Write its length and bytes, then
|
||||
* return to the previous state.
|
||||
*/
|
||||
join() {
|
||||
// get chunk of fork
|
||||
let chunk = this.finish();
|
||||
// restore previous state
|
||||
let prev = this.stack.pop();
|
||||
if (!prev)
|
||||
throw new Error('invalid state, fork stack empty');
|
||||
this.chunks = prev.chunks;
|
||||
this.buf = prev.buf;
|
||||
// write length of chunk as varint
|
||||
this.uint32(chunk.byteLength);
|
||||
return this.raw(chunk);
|
||||
}
|
||||
/**
|
||||
* Writes a tag (field number and wire type).
|
||||
*
|
||||
* Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.
|
||||
*
|
||||
* Generated code should compute the tag ahead of time and call `uint32()`.
|
||||
*/
|
||||
tag(fieldNo, type) {
|
||||
return this.uint32((fieldNo << 3 | type) >>> 0);
|
||||
}
|
||||
/**
|
||||
* Write a chunk of raw bytes.
|
||||
*/
|
||||
raw(chunk) {
|
||||
if (this.buf.length) {
|
||||
this.chunks.push(new Uint8Array(this.buf));
|
||||
this.buf = [];
|
||||
}
|
||||
this.chunks.push(chunk);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Write a `uint32` value, an unsigned 32 bit varint.
|
||||
*/
|
||||
uint32(value) {
|
||||
assert_1.assertUInt32(value);
|
||||
// write value as varint 32, inlined for speed
|
||||
while (value > 0x7f) {
|
||||
this.buf.push((value & 0x7f) | 0x80);
|
||||
value = value >>> 7;
|
||||
}
|
||||
this.buf.push(value);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Write a `int32` value, a signed 32 bit varint.
|
||||
*/
|
||||
int32(value) {
|
||||
assert_1.assertInt32(value);
|
||||
goog_varint_1.varint32write(value, this.buf);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Write a `bool` value, a variant.
|
||||
*/
|
||||
bool(value) {
|
||||
this.buf.push(value ? 1 : 0);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Write a `bytes` value, length-delimited arbitrary data.
|
||||
*/
|
||||
bytes(value) {
|
||||
this.uint32(value.byteLength); // write length of chunk as varint
|
||||
return this.raw(value);
|
||||
}
|
||||
/**
|
||||
* Write a `string` value, length-delimited data converted to UTF-8 text.
|
||||
*/
|
||||
string(value) {
|
||||
let chunk = this.textEncoder.encode(value);
|
||||
this.uint32(chunk.byteLength); // write length of chunk as varint
|
||||
return this.raw(chunk);
|
||||
}
|
||||
/**
|
||||
* Write a `float` value, 32-bit floating point number.
|
||||
*/
|
||||
float(value) {
|
||||
assert_1.assertFloat32(value);
|
||||
let chunk = new Uint8Array(4);
|
||||
new DataView(chunk.buffer).setFloat32(0, value, true);
|
||||
return this.raw(chunk);
|
||||
}
|
||||
/**
|
||||
* Write a `double` value, a 64-bit floating point number.
|
||||
*/
|
||||
double(value) {
|
||||
let chunk = new Uint8Array(8);
|
||||
new DataView(chunk.buffer).setFloat64(0, value, true);
|
||||
return this.raw(chunk);
|
||||
}
|
||||
/**
|
||||
* Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.
|
||||
*/
|
||||
fixed32(value) {
|
||||
assert_1.assertUInt32(value);
|
||||
let chunk = new Uint8Array(4);
|
||||
new DataView(chunk.buffer).setUint32(0, value, true);
|
||||
return this.raw(chunk);
|
||||
}
|
||||
/**
|
||||
* Write a `sfixed32` value, a signed, fixed-length 32-bit integer.
|
||||
*/
|
||||
sfixed32(value) {
|
||||
assert_1.assertInt32(value);
|
||||
let chunk = new Uint8Array(4);
|
||||
new DataView(chunk.buffer).setInt32(0, value, true);
|
||||
return this.raw(chunk);
|
||||
}
|
||||
/**
|
||||
* Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.
|
||||
*/
|
||||
sint32(value) {
|
||||
assert_1.assertInt32(value);
|
||||
// zigzag encode
|
||||
value = ((value << 1) ^ (value >> 31)) >>> 0;
|
||||
goog_varint_1.varint32write(value, this.buf);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Write a `fixed64` value, a signed, fixed-length 64-bit integer.
|
||||
*/
|
||||
sfixed64(value) {
|
||||
let chunk = new Uint8Array(8);
|
||||
let view = new DataView(chunk.buffer);
|
||||
let long = pb_long_1.PbLong.from(value);
|
||||
view.setInt32(0, long.lo, true);
|
||||
view.setInt32(4, long.hi, true);
|
||||
return this.raw(chunk);
|
||||
}
|
||||
/**
|
||||
* Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.
|
||||
*/
|
||||
fixed64(value) {
|
||||
let chunk = new Uint8Array(8);
|
||||
let view = new DataView(chunk.buffer);
|
||||
let long = pb_long_1.PbULong.from(value);
|
||||
view.setInt32(0, long.lo, true);
|
||||
view.setInt32(4, long.hi, true);
|
||||
return this.raw(chunk);
|
||||
}
|
||||
/**
|
||||
* Write a `int64` value, a signed 64-bit varint.
|
||||
*/
|
||||
int64(value) {
|
||||
let long = pb_long_1.PbLong.from(value);
|
||||
goog_varint_1.varint64write(long.lo, long.hi, this.buf);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.
|
||||
*/
|
||||
sint64(value) {
|
||||
let long = pb_long_1.PbLong.from(value),
|
||||
// zigzag encode
|
||||
sign = long.hi >> 31, lo = (long.lo << 1) ^ sign, hi = ((long.hi << 1) | (long.lo >>> 31)) ^ sign;
|
||||
goog_varint_1.varint64write(lo, hi, this.buf);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Write a `uint64` value, an unsigned 64-bit varint.
|
||||
*/
|
||||
uint64(value) {
|
||||
let long = pb_long_1.PbULong.from(value);
|
||||
goog_varint_1.varint64write(long.lo, long.hi, this.buf);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
exports.BinaryWriter = BinaryWriter;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 257:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.listEnumNumbers = exports.listEnumNames = exports.listEnumValues = exports.isEnumObject = void 0;
|
||||
/**
|
||||
* Is this a lookup object generated by Typescript, for a Typescript enum
|
||||
* generated by protobuf-ts?
|
||||
*
|
||||
* - No `const enum` (enum must not be inlined, we need reverse mapping).
|
||||
* - No string enum (we need int32 for protobuf).
|
||||
* - Must have a value for 0 (otherwise, we would need to support custom default values).
|
||||
*/
|
||||
function isEnumObject(arg) {
|
||||
if (typeof arg != 'object' || arg === null) {
|
||||
return false;
|
||||
}
|
||||
if (!arg.hasOwnProperty(0)) {
|
||||
return false;
|
||||
}
|
||||
for (let k of Object.keys(arg)) {
|
||||
let num = parseInt(k);
|
||||
if (!Number.isNaN(num)) {
|
||||
// is there a name for the number?
|
||||
let nam = arg[num];
|
||||
if (nam === undefined)
|
||||
return false;
|
||||
// does the name resolve back to the number?
|
||||
if (arg[nam] !== num)
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
// is there a number for the name?
|
||||
let num = arg[k];
|
||||
if (num === undefined)
|
||||
return false;
|
||||
// is it a string enum?
|
||||
if (typeof num !== 'number')
|
||||
return false;
|
||||
// do we know the number?
|
||||
if (arg[num] === undefined)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
exports.isEnumObject = isEnumObject;
|
||||
/**
|
||||
* Lists all values of a Typescript enum, as an array of objects with a "name"
|
||||
* property and a "number" property.
|
||||
*
|
||||
* Note that it is possible that a number appears more than once, because it is
|
||||
* possible to have aliases in an enum.
|
||||
*
|
||||
* Throws if the enum does not adhere to the rules of enums generated by
|
||||
* protobuf-ts. See `isEnumObject()`.
|
||||
*/
|
||||
function listEnumValues(enumObject) {
|
||||
if (!isEnumObject(enumObject))
|
||||
throw new Error("not a typescript enum object");
|
||||
let values = [];
|
||||
for (let [name, number] of Object.entries(enumObject))
|
||||
if (typeof number == "number")
|
||||
values.push({ name, number });
|
||||
return values;
|
||||
}
|
||||
exports.listEnumValues = listEnumValues;
|
||||
/**
|
||||
* Lists the names of a Typescript enum.
|
||||
*
|
||||
* Throws if the enum does not adhere to the rules of enums generated by
|
||||
* protobuf-ts. See `isEnumObject()`.
|
||||
*/
|
||||
function listEnumNames(enumObject) {
|
||||
return listEnumValues(enumObject).map(val => val.name);
|
||||
}
|
||||
exports.listEnumNames = listEnumNames;
|
||||
/**
|
||||
* Lists the numbers of a Typescript enum.
|
||||
*
|
||||
* Throws if the enum does not adhere to the rules of enums generated by
|
||||
* protobuf-ts. See `isEnumObject()`.
|
||||
*/
|
||||
function listEnumNumbers(enumObject) {
|
||||
return listEnumValues(enumObject)
|
||||
.map(val => val.number)
|
||||
.filter((num, index, arr) => arr.indexOf(num) == index);
|
||||
}
|
||||
exports.listEnumNumbers = listEnumNumbers;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 3223:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
// Code generated by the Protocol Buffer compiler is owned by the owner
|
||||
// of the input file used when generating it. This code is not
|
||||
// standalone and requires a support library to be linked with it. This
|
||||
// support library is itself covered by the above license.
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.varint32read = exports.varint32write = exports.int64toString = exports.int64fromString = exports.varint64write = exports.varint64read = void 0;
|
||||
/**
|
||||
* Read a 64 bit varint as two JS numbers.
|
||||
*
|
||||
* Returns tuple:
|
||||
* [0]: low bits
|
||||
* [0]: high bits
|
||||
*
|
||||
* Copyright 2008 Google Inc. All rights reserved.
|
||||
*
|
||||
* See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175
|
||||
*/
|
||||
function varint64read() {
|
||||
let lowBits = 0;
|
||||
let highBits = 0;
|
||||
for (let shift = 0; shift < 28; shift += 7) {
|
||||
let b = this.buf[this.pos++];
|
||||
lowBits |= (b & 0x7F) << shift;
|
||||
if ((b & 0x80) == 0) {
|
||||
this.assertBounds();
|
||||
return [lowBits, highBits];
|
||||
}
|
||||
}
|
||||
let middleByte = this.buf[this.pos++];
|
||||
// last four bits of the first 32 bit number
|
||||
lowBits |= (middleByte & 0x0F) << 28;
|
||||
// 3 upper bits are part of the next 32 bit number
|
||||
highBits = (middleByte & 0x70) >> 4;
|
||||
if ((middleByte & 0x80) == 0) {
|
||||
this.assertBounds();
|
||||
return [lowBits, highBits];
|
||||
}
|
||||
for (let shift = 3; shift <= 31; shift += 7) {
|
||||
let b = this.buf[this.pos++];
|
||||
highBits |= (b & 0x7F) << shift;
|
||||
if ((b & 0x80) == 0) {
|
||||
this.assertBounds();
|
||||
return [lowBits, highBits];
|
||||
}
|
||||
}
|
||||
throw new Error('invalid varint');
|
||||
}
|
||||
exports.varint64read = varint64read;
|
||||
/**
|
||||
* Write a 64 bit varint, given as two JS numbers, to the given bytes array.
|
||||
*
|
||||
* Copyright 2008 Google Inc. All rights reserved.
|
||||
*
|
||||
* See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344
|
||||
*/
|
||||
function varint64write(lo, hi, bytes) {
|
||||
for (let i = 0; i < 28; i = i + 7) {
|
||||
const shift = lo >>> i;
|
||||
const hasNext = !((shift >>> 7) == 0 && hi == 0);
|
||||
const byte = (hasNext ? shift | 0x80 : shift) & 0xFF;
|
||||
bytes.push(byte);
|
||||
if (!hasNext) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
const splitBits = ((lo >>> 28) & 0x0F) | ((hi & 0x07) << 4);
|
||||
const hasMoreBits = !((hi >> 3) == 0);
|
||||
bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xFF);
|
||||
if (!hasMoreBits) {
|
||||
return;
|
||||
}
|
||||
for (let i = 3; i < 31; i = i + 7) {
|
||||
const shift = hi >>> i;
|
||||
const hasNext = !((shift >>> 7) == 0);
|
||||
const byte = (hasNext ? shift | 0x80 : shift) & 0xFF;
|
||||
bytes.push(byte);
|
||||
if (!hasNext) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
bytes.push((hi >>> 31) & 0x01);
|
||||
}
|
||||
exports.varint64write = varint64write;
|
||||
// constants for binary math
|
||||
const TWO_PWR_32_DBL = (1 << 16) * (1 << 16);
|
||||
/**
|
||||
* Parse decimal string of 64 bit integer value as two JS numbers.
|
||||
*
|
||||
* Returns tuple:
|
||||
* [0]: minus sign?
|
||||
* [1]: low bits
|
||||
* [2]: high bits
|
||||
*
|
||||
* Copyright 2008 Google Inc.
|
||||
*/
|
||||
function int64fromString(dec) {
|
||||
// Check for minus sign.
|
||||
let minus = dec[0] == '-';
|
||||
if (minus)
|
||||
dec = dec.slice(1);
|
||||
// Work 6 decimal digits at a time, acting like we're converting base 1e6
|
||||
// digits to binary. This is safe to do with floating point math because
|
||||
// Number.isSafeInteger(ALL_32_BITS * 1e6) == true.
|
||||
const base = 1e6;
|
||||
let lowBits = 0;
|
||||
let highBits = 0;
|
||||
function add1e6digit(begin, end) {
|
||||
// Note: Number('') is 0.
|
||||
const digit1e6 = Number(dec.slice(begin, end));
|
||||
highBits *= base;
|
||||
lowBits = lowBits * base + digit1e6;
|
||||
// Carry bits from lowBits to highBits
|
||||
if (lowBits >= TWO_PWR_32_DBL) {
|
||||
highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);
|
||||
lowBits = lowBits % TWO_PWR_32_DBL;
|
||||
}
|
||||
}
|
||||
add1e6digit(-24, -18);
|
||||
add1e6digit(-18, -12);
|
||||
add1e6digit(-12, -6);
|
||||
add1e6digit(-6);
|
||||
return [minus, lowBits, highBits];
|
||||
}
|
||||
exports.int64fromString = int64fromString;
|
||||
/**
|
||||
* Format 64 bit integer value (as two JS numbers) to decimal string.
|
||||
*
|
||||
* Copyright 2008 Google Inc.
|
||||
*/
|
||||
function int64toString(bitsLow, bitsHigh) {
|
||||
// Skip the expensive conversion if the number is small enough to use the
|
||||
// built-in conversions.
|
||||
if ((bitsHigh >>> 0) <= 0x1FFFFF) {
|
||||
return '' + (TWO_PWR_32_DBL * bitsHigh + (bitsLow >>> 0));
|
||||
}
|
||||
// What this code is doing is essentially converting the input number from
|
||||
// base-2 to base-1e7, which allows us to represent the 64-bit range with
|
||||
// only 3 (very large) digits. Those digits are then trivial to convert to
|
||||
// a base-10 string.
|
||||
// The magic numbers used here are -
|
||||
// 2^24 = 16777216 = (1,6777216) in base-1e7.
|
||||
// 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.
|
||||
// Split 32:32 representation into 16:24:24 representation so our
|
||||
// intermediate digits don't overflow.
|
||||
let low = bitsLow & 0xFFFFFF;
|
||||
let mid = (((bitsLow >>> 24) | (bitsHigh << 8)) >>> 0) & 0xFFFFFF;
|
||||
let high = (bitsHigh >> 16) & 0xFFFF;
|
||||
// Assemble our three base-1e7 digits, ignoring carries. The maximum
|
||||
// value in a digit at this step is representable as a 48-bit integer, which
|
||||
// can be stored in a 64-bit floating point number.
|
||||
let digitA = low + (mid * 6777216) + (high * 6710656);
|
||||
let digitB = mid + (high * 8147497);
|
||||
let digitC = (high * 2);
|
||||
// Apply carries from A to B and from B to C.
|
||||
let base = 10000000;
|
||||
if (digitA >= base) {
|
||||
digitB += Math.floor(digitA / base);
|
||||
digitA %= base;
|
||||
}
|
||||
if (digitB >= base) {
|
||||
digitC += Math.floor(digitB / base);
|
||||
digitB %= base;
|
||||
}
|
||||
// Convert base-1e7 digits to base-10, with optional leading zeroes.
|
||||
function decimalFrom1e7(digit1e7, needLeadingZeros) {
|
||||
let partial = digit1e7 ? String(digit1e7) : '';
|
||||
if (needLeadingZeros) {
|
||||
return '0000000'.slice(partial.length) + partial;
|
||||
}
|
||||
return partial;
|
||||
}
|
||||
return decimalFrom1e7(digitC, /*needLeadingZeros=*/ 0) +
|
||||
decimalFrom1e7(digitB, /*needLeadingZeros=*/ digitC) +
|
||||
// If the final 1e7 digit didn't need leading zeros, we would have
|
||||
// returned via the trivial code path at the top.
|
||||
decimalFrom1e7(digitA, /*needLeadingZeros=*/ 1);
|
||||
}
|
||||
exports.int64toString = int64toString;
|
||||
/**
|
||||
* Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`
|
||||
*
|
||||
* Copyright 2008 Google Inc. All rights reserved.
|
||||
*
|
||||
* See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144
|
||||
*/
|
||||
function varint32write(value, bytes) {
|
||||
if (value >= 0) {
|
||||
// write value as varint 32
|
||||
while (value > 0x7f) {
|
||||
bytes.push((value & 0x7f) | 0x80);
|
||||
value = value >>> 7;
|
||||
}
|
||||
bytes.push(value);
|
||||
}
|
||||
else {
|
||||
for (let i = 0; i < 9; i++) {
|
||||
bytes.push(value & 127 | 128);
|
||||
value = value >> 7;
|
||||
}
|
||||
bytes.push(1);
|
||||
}
|
||||
}
|
||||
exports.varint32write = varint32write;
|
||||
/**
|
||||
* Read an unsigned 32 bit varint.
|
||||
*
|
||||
* See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220
|
||||
*/
|
||||
function varint32read() {
|
||||
let b = this.buf[this.pos++];
|
||||
let result = b & 0x7F;
|
||||
if ((b & 0x80) == 0) {
|
||||
this.assertBounds();
|
||||
return result;
|
||||
}
|
||||
b = this.buf[this.pos++];
|
||||
result |= (b & 0x7F) << 7;
|
||||
if ((b & 0x80) == 0) {
|
||||
this.assertBounds();
|
||||
return result;
|
||||
}
|
||||
b = this.buf[this.pos++];
|
||||
result |= (b & 0x7F) << 14;
|
||||
if ((b & 0x80) == 0) {
|
||||
this.assertBounds();
|
||||
return result;
|
||||
}
|
||||
b = this.buf[this.pos++];
|
||||
result |= (b & 0x7F) << 21;
|
||||
if ((b & 0x80) == 0) {
|
||||
this.assertBounds();
|
||||
return result;
|
||||
}
|
||||
// Extract only last 4 bits
|
||||
b = this.buf[this.pos++];
|
||||
result |= (b & 0x0F) << 28;
|
||||
for (let readBytes = 5; ((b & 0x80) !== 0) && readBytes < 10; readBytes++)
|
||||
b = this.buf[this.pos++];
|
||||
if ((b & 0x80) != 0)
|
||||
throw new Error('invalid varint');
|
||||
this.assertBounds();
|
||||
// Result can have 32 bits, convert it to unsigned
|
||||
return result >>> 0;
|
||||
}
|
||||
exports.varint32read = varint32read;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 8886:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
// Public API of the protobuf-ts runtime.
|
||||
// Note: we do not use `export * from ...` to help tree shakers,
|
||||
// webpack verbose output hints that this should be useful
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
// Convenience JSON typings and corresponding type guards
|
||||
var json_typings_1 = __nccwpck_require__(9999);
|
||||
Object.defineProperty(exports, "typeofJsonValue", ({ enumerable: true, get: function () { return json_typings_1.typeofJsonValue; } }));
|
||||
Object.defineProperty(exports, "isJsonObject", ({ enumerable: true, get: function () { return json_typings_1.isJsonObject; } }));
|
||||
// Base 64 encoding
|
||||
var base64_1 = __nccwpck_require__(6335);
|
||||
Object.defineProperty(exports, "base64decode", ({ enumerable: true, get: function () { return base64_1.base64decode; } }));
|
||||
Object.defineProperty(exports, "base64encode", ({ enumerable: true, get: function () { return base64_1.base64encode; } }));
|
||||
// UTF8 encoding
|
||||
var protobufjs_utf8_1 = __nccwpck_require__(8950);
|
||||
Object.defineProperty(exports, "utf8read", ({ enumerable: true, get: function () { return protobufjs_utf8_1.utf8read; } }));
|
||||
// Binary format contracts, options for reading and writing, for example
|
||||
var binary_format_contract_1 = __nccwpck_require__(4816);
|
||||
Object.defineProperty(exports, "WireType", ({ enumerable: true, get: function () { return binary_format_contract_1.WireType; } }));
|
||||
Object.defineProperty(exports, "mergeBinaryOptions", ({ enumerable: true, get: function () { return binary_format_contract_1.mergeBinaryOptions; } }));
|
||||
Object.defineProperty(exports, "UnknownFieldHandler", ({ enumerable: true, get: function () { return binary_format_contract_1.UnknownFieldHandler; } }));
|
||||
// Standard IBinaryReader implementation
|
||||
var binary_reader_1 = __nccwpck_require__(2889);
|
||||
Object.defineProperty(exports, "BinaryReader", ({ enumerable: true, get: function () { return binary_reader_1.BinaryReader; } }));
|
||||
Object.defineProperty(exports, "binaryReadOptions", ({ enumerable: true, get: function () { return binary_reader_1.binaryReadOptions; } }));
|
||||
// Standard IBinaryWriter implementation
|
||||
var binary_writer_1 = __nccwpck_require__(3957);
|
||||
Object.defineProperty(exports, "BinaryWriter", ({ enumerable: true, get: function () { return binary_writer_1.BinaryWriter; } }));
|
||||
Object.defineProperty(exports, "binaryWriteOptions", ({ enumerable: true, get: function () { return binary_writer_1.binaryWriteOptions; } }));
|
||||
// Int64 and UInt64 implementations required for the binary format
|
||||
var pb_long_1 = __nccwpck_require__(1753);
|
||||
Object.defineProperty(exports, "PbLong", ({ enumerable: true, get: function () { return pb_long_1.PbLong; } }));
|
||||
Object.defineProperty(exports, "PbULong", ({ enumerable: true, get: function () { return pb_long_1.PbULong; } }));
|
||||
// JSON format contracts, options for reading and writing, for example
|
||||
var json_format_contract_1 = __nccwpck_require__(9367);
|
||||
Object.defineProperty(exports, "jsonReadOptions", ({ enumerable: true, get: function () { return json_format_contract_1.jsonReadOptions; } }));
|
||||
Object.defineProperty(exports, "jsonWriteOptions", ({ enumerable: true, get: function () { return json_format_contract_1.jsonWriteOptions; } }));
|
||||
Object.defineProperty(exports, "mergeJsonOptions", ({ enumerable: true, get: function () { return json_format_contract_1.mergeJsonOptions; } }));
|
||||
// Message type contract
|
||||
var message_type_contract_1 = __nccwpck_require__(3785);
|
||||
Object.defineProperty(exports, "MESSAGE_TYPE", ({ enumerable: true, get: function () { return message_type_contract_1.MESSAGE_TYPE; } }));
|
||||
// Message type implementation via reflection
|
||||
var message_type_1 = __nccwpck_require__(5106);
|
||||
Object.defineProperty(exports, "MessageType", ({ enumerable: true, get: function () { return message_type_1.MessageType; } }));
|
||||
// Reflection info, generated by the plugin, exposed to the user, used by reflection ops
|
||||
var reflection_info_1 = __nccwpck_require__(7910);
|
||||
Object.defineProperty(exports, "ScalarType", ({ enumerable: true, get: function () { return reflection_info_1.ScalarType; } }));
|
||||
Object.defineProperty(exports, "LongType", ({ enumerable: true, get: function () { return reflection_info_1.LongType; } }));
|
||||
Object.defineProperty(exports, "RepeatType", ({ enumerable: true, get: function () { return reflection_info_1.RepeatType; } }));
|
||||
Object.defineProperty(exports, "normalizeFieldInfo", ({ enumerable: true, get: function () { return reflection_info_1.normalizeFieldInfo; } }));
|
||||
Object.defineProperty(exports, "readFieldOptions", ({ enumerable: true, get: function () { return reflection_info_1.readFieldOptions; } }));
|
||||
Object.defineProperty(exports, "readFieldOption", ({ enumerable: true, get: function () { return reflection_info_1.readFieldOption; } }));
|
||||
Object.defineProperty(exports, "readMessageOption", ({ enumerable: true, get: function () { return reflection_info_1.readMessageOption; } }));
|
||||
// Message operations via reflection
|
||||
var reflection_type_check_1 = __nccwpck_require__(5167);
|
||||
Object.defineProperty(exports, "ReflectionTypeCheck", ({ enumerable: true, get: function () { return reflection_type_check_1.ReflectionTypeCheck; } }));
|
||||
var reflection_create_1 = __nccwpck_require__(5726);
|
||||
Object.defineProperty(exports, "reflectionCreate", ({ enumerable: true, get: function () { return reflection_create_1.reflectionCreate; } }));
|
||||
var reflection_scalar_default_1 = __nccwpck_require__(9526);
|
||||
Object.defineProperty(exports, "reflectionScalarDefault", ({ enumerable: true, get: function () { return reflection_scalar_default_1.reflectionScalarDefault; } }));
|
||||
var reflection_merge_partial_1 = __nccwpck_require__(8044);
|
||||
Object.defineProperty(exports, "reflectionMergePartial", ({ enumerable: true, get: function () { return reflection_merge_partial_1.reflectionMergePartial; } }));
|
||||
var reflection_equals_1 = __nccwpck_require__(4827);
|
||||
Object.defineProperty(exports, "reflectionEquals", ({ enumerable: true, get: function () { return reflection_equals_1.reflectionEquals; } }));
|
||||
var reflection_binary_reader_1 = __nccwpck_require__(9611);
|
||||
Object.defineProperty(exports, "ReflectionBinaryReader", ({ enumerable: true, get: function () { return reflection_binary_reader_1.ReflectionBinaryReader; } }));
|
||||
var reflection_binary_writer_1 = __nccwpck_require__(6907);
|
||||
Object.defineProperty(exports, "ReflectionBinaryWriter", ({ enumerable: true, get: function () { return reflection_binary_writer_1.ReflectionBinaryWriter; } }));
|
||||
var reflection_json_reader_1 = __nccwpck_require__(6790);
|
||||
Object.defineProperty(exports, "ReflectionJsonReader", ({ enumerable: true, get: function () { return reflection_json_reader_1.ReflectionJsonReader; } }));
|
||||
var reflection_json_writer_1 = __nccwpck_require__(1094);
|
||||
Object.defineProperty(exports, "ReflectionJsonWriter", ({ enumerable: true, get: function () { return reflection_json_writer_1.ReflectionJsonWriter; } }));
|
||||
var reflection_contains_message_type_1 = __nccwpck_require__(7565);
|
||||
Object.defineProperty(exports, "containsMessageType", ({ enumerable: true, get: function () { return reflection_contains_message_type_1.containsMessageType; } }));
|
||||
// Oneof helpers
|
||||
var oneof_1 = __nccwpck_require__(8063);
|
||||
Object.defineProperty(exports, "isOneofGroup", ({ enumerable: true, get: function () { return oneof_1.isOneofGroup; } }));
|
||||
Object.defineProperty(exports, "setOneofValue", ({ enumerable: true, get: function () { return oneof_1.setOneofValue; } }));
|
||||
Object.defineProperty(exports, "getOneofValue", ({ enumerable: true, get: function () { return oneof_1.getOneofValue; } }));
|
||||
Object.defineProperty(exports, "clearOneofValue", ({ enumerable: true, get: function () { return oneof_1.clearOneofValue; } }));
|
||||
Object.defineProperty(exports, "getSelectedOneofValue", ({ enumerable: true, get: function () { return oneof_1.getSelectedOneofValue; } }));
|
||||
// Enum object type guard and reflection util, may be interesting to the user.
|
||||
var enum_object_1 = __nccwpck_require__(257);
|
||||
Object.defineProperty(exports, "listEnumValues", ({ enumerable: true, get: function () { return enum_object_1.listEnumValues; } }));
|
||||
Object.defineProperty(exports, "listEnumNames", ({ enumerable: true, get: function () { return enum_object_1.listEnumNames; } }));
|
||||
Object.defineProperty(exports, "listEnumNumbers", ({ enumerable: true, get: function () { return enum_object_1.listEnumNumbers; } }));
|
||||
Object.defineProperty(exports, "isEnumObject", ({ enumerable: true, get: function () { return enum_object_1.isEnumObject; } }));
|
||||
// lowerCamelCase() is exported for plugin, rpc-runtime and other rpc packages
|
||||
var lower_camel_case_1 = __nccwpck_require__(4073);
|
||||
Object.defineProperty(exports, "lowerCamelCase", ({ enumerable: true, get: function () { return lower_camel_case_1.lowerCamelCase; } }));
|
||||
// assertion functions are exported for plugin, may also be useful to user
|
||||
var assert_1 = __nccwpck_require__(8602);
|
||||
Object.defineProperty(exports, "assert", ({ enumerable: true, get: function () { return assert_1.assert; } }));
|
||||
Object.defineProperty(exports, "assertNever", ({ enumerable: true, get: function () { return assert_1.assertNever; } }));
|
||||
Object.defineProperty(exports, "assertInt32", ({ enumerable: true, get: function () { return assert_1.assertInt32; } }));
|
||||
Object.defineProperty(exports, "assertUInt32", ({ enumerable: true, get: function () { return assert_1.assertUInt32; } }));
|
||||
Object.defineProperty(exports, "assertFloat32", ({ enumerable: true, get: function () { return assert_1.assertFloat32; } }));
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 9367:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.mergeJsonOptions = exports.jsonWriteOptions = exports.jsonReadOptions = void 0;
|
||||
const defaultsWrite = {
|
||||
emitDefaultValues: false,
|
||||
enumAsInteger: false,
|
||||
useProtoFieldName: false,
|
||||
prettySpaces: 0,
|
||||
}, defaultsRead = {
|
||||
ignoreUnknownFields: false,
|
||||
};
|
||||
/**
|
||||
* Make options for reading JSON data from partial options.
|
||||
*/
|
||||
function jsonReadOptions(options) {
|
||||
return options ? Object.assign(Object.assign({}, defaultsRead), options) : defaultsRead;
|
||||
}
|
||||
exports.jsonReadOptions = jsonReadOptions;
|
||||
/**
|
||||
* Make options for writing JSON data from partial options.
|
||||
*/
|
||||
function jsonWriteOptions(options) {
|
||||
return options ? Object.assign(Object.assign({}, defaultsWrite), options) : defaultsWrite;
|
||||
}
|
||||
exports.jsonWriteOptions = jsonWriteOptions;
|
||||
/**
|
||||
* Merges JSON write or read options. Later values override earlier values. Type registries are merged.
|
||||
*/
|
||||
function mergeJsonOptions(a, b) {
|
||||
var _a, _b;
|
||||
let c = Object.assign(Object.assign({}, a), b);
|
||||
c.typeRegistry = [...((_a = a === null || a === void 0 ? void 0 : a.typeRegistry) !== null && _a !== void 0 ? _a : []), ...((_b = b === null || b === void 0 ? void 0 : b.typeRegistry) !== null && _b !== void 0 ? _b : [])];
|
||||
return c;
|
||||
}
|
||||
exports.mergeJsonOptions = mergeJsonOptions;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 9999:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.isJsonObject = exports.typeofJsonValue = void 0;
|
||||
/**
|
||||
* Get the type of a JSON value.
|
||||
* Distinguishes between array, null and object.
|
||||
*/
|
||||
function typeofJsonValue(value) {
|
||||
let t = typeof value;
|
||||
if (t == "object") {
|
||||
if (Array.isArray(value))
|
||||
return "array";
|
||||
if (value === null)
|
||||
return "null";
|
||||
}
|
||||
return t;
|
||||
}
|
||||
exports.typeofJsonValue = typeofJsonValue;
|
||||
/**
|
||||
* Is this a JSON object (instead of an array or null)?
|
||||
*/
|
||||
function isJsonObject(value) {
|
||||
return value !== null && typeof value == "object" && !Array.isArray(value);
|
||||
}
|
||||
exports.isJsonObject = isJsonObject;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 4073:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.lowerCamelCase = void 0;
|
||||
/**
|
||||
* Converts snake_case to lowerCamelCase.
|
||||
*
|
||||
* Should behave like protoc:
|
||||
* https://github.com/protocolbuffers/protobuf/blob/e8ae137c96444ea313485ed1118c5e43b2099cf1/src/google/protobuf/compiler/java/java_helpers.cc#L118
|
||||
*/
|
||||
function lowerCamelCase(snakeCase) {
|
||||
let capNext = false;
|
||||
const sb = [];
|
||||
for (let i = 0; i < snakeCase.length; i++) {
|
||||
let next = snakeCase.charAt(i);
|
||||
if (next == '_') {
|
||||
capNext = true;
|
||||
}
|
||||
else if (/\d/.test(next)) {
|
||||
sb.push(next);
|
||||
capNext = true;
|
||||
}
|
||||
else if (capNext) {
|
||||
sb.push(next.toUpperCase());
|
||||
capNext = false;
|
||||
}
|
||||
else if (i == 0) {
|
||||
sb.push(next.toLowerCase());
|
||||
}
|
||||
else {
|
||||
sb.push(next);
|
||||
}
|
||||
}
|
||||
return sb.join('');
|
||||
}
|
||||
exports.lowerCamelCase = lowerCamelCase;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 3785:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.MESSAGE_TYPE = void 0;
|
||||
/**
|
||||
* The symbol used as a key on message objects to store the message type.
|
||||
*
|
||||
* Note that this is an experimental feature - it is here to stay, but
|
||||
* implementation details may change without notice.
|
||||
*/
|
||||
exports.MESSAGE_TYPE = Symbol.for("protobuf-ts/message-type");
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 5106:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.MessageType = void 0;
|
||||
const message_type_contract_1 = __nccwpck_require__(3785);
|
||||
const reflection_info_1 = __nccwpck_require__(7910);
|
||||
const reflection_type_check_1 = __nccwpck_require__(5167);
|
||||
const reflection_json_reader_1 = __nccwpck_require__(6790);
|
||||
const reflection_json_writer_1 = __nccwpck_require__(1094);
|
||||
const reflection_binary_reader_1 = __nccwpck_require__(9611);
|
||||
const reflection_binary_writer_1 = __nccwpck_require__(6907);
|
||||
const reflection_create_1 = __nccwpck_require__(5726);
|
||||
const reflection_merge_partial_1 = __nccwpck_require__(8044);
|
||||
const json_typings_1 = __nccwpck_require__(9999);
|
||||
const json_format_contract_1 = __nccwpck_require__(9367);
|
||||
const reflection_equals_1 = __nccwpck_require__(4827);
|
||||
const binary_writer_1 = __nccwpck_require__(3957);
|
||||
const binary_reader_1 = __nccwpck_require__(2889);
|
||||
const baseDescriptors = Object.getOwnPropertyDescriptors(Object.getPrototypeOf({}));
|
||||
/**
|
||||
* This standard message type provides reflection-based
|
||||
* operations to work with a message.
|
||||
*/
|
||||
class MessageType {
|
||||
constructor(name, fields, options) {
|
||||
this.defaultCheckDepth = 16;
|
||||
this.typeName = name;
|
||||
this.fields = fields.map(reflection_info_1.normalizeFieldInfo);
|
||||
this.options = options !== null && options !== void 0 ? options : {};
|
||||
this.messagePrototype = Object.create(null, Object.assign(Object.assign({}, baseDescriptors), { [message_type_contract_1.MESSAGE_TYPE]: { value: this } }));
|
||||
this.refTypeCheck = new reflection_type_check_1.ReflectionTypeCheck(this);
|
||||
this.refJsonReader = new reflection_json_reader_1.ReflectionJsonReader(this);
|
||||
this.refJsonWriter = new reflection_json_writer_1.ReflectionJsonWriter(this);
|
||||
this.refBinReader = new reflection_binary_reader_1.ReflectionBinaryReader(this);
|
||||
this.refBinWriter = new reflection_binary_writer_1.ReflectionBinaryWriter(this);
|
||||
}
|
||||
create(value) {
|
||||
let message = reflection_create_1.reflectionCreate(this);
|
||||
if (value !== undefined) {
|
||||
reflection_merge_partial_1.reflectionMergePartial(this, message, value);
|
||||
}
|
||||
return message;
|
||||
}
|
||||
/**
|
||||
* Clone the message.
|
||||
*
|
||||
* Unknown fields are discarded.
|
||||
*/
|
||||
clone(message) {
|
||||
let copy = this.create();
|
||||
reflection_merge_partial_1.reflectionMergePartial(this, copy, message);
|
||||
return copy;
|
||||
}
|
||||
/**
|
||||
* Determines whether two message of the same type have the same field values.
|
||||
* Checks for deep equality, traversing repeated fields, oneof groups, maps
|
||||
* and messages recursively.
|
||||
* Will also return true if both messages are `undefined`.
|
||||
*/
|
||||
equals(a, b) {
|
||||
return reflection_equals_1.reflectionEquals(this, a, b);
|
||||
}
|
||||
/**
|
||||
* Is the given value assignable to our message type
|
||||
* and contains no [excess properties](https://www.typescriptlang.org/docs/handbook/interfaces.html#excess-property-checks)?
|
||||
*/
|
||||
is(arg, depth = this.defaultCheckDepth) {
|
||||
return this.refTypeCheck.is(arg, depth, false);
|
||||
}
|
||||
/**
|
||||
* Is the given value assignable to our message type,
|
||||
* regardless of [excess properties](https://www.typescriptlang.org/docs/handbook/interfaces.html#excess-property-checks)?
|
||||
*/
|
||||
isAssignable(arg, depth = this.defaultCheckDepth) {
|
||||
return this.refTypeCheck.is(arg, depth, true);
|
||||
}
|
||||
/**
|
||||
* Copy partial data into the target message.
|
||||
*/
|
||||
mergePartial(target, source) {
|
||||
reflection_merge_partial_1.reflectionMergePartial(this, target, source);
|
||||
}
|
||||
/**
|
||||
* Create a new message from binary format.
|
||||
*/
|
||||
fromBinary(data, options) {
|
||||
let opt = binary_reader_1.binaryReadOptions(options);
|
||||
return this.internalBinaryRead(opt.readerFactory(data), data.byteLength, opt);
|
||||
}
|
||||
/**
|
||||
* Read a new message from a JSON value.
|
||||
*/
|
||||
fromJson(json, options) {
|
||||
return this.internalJsonRead(json, json_format_contract_1.jsonReadOptions(options));
|
||||
}
|
||||
/**
|
||||
* Read a new message from a JSON string.
|
||||
* This is equivalent to `T.fromJson(JSON.parse(json))`.
|
||||
*/
|
||||
fromJsonString(json, options) {
|
||||
let value = JSON.parse(json);
|
||||
return this.fromJson(value, options);
|
||||
}
|
||||
/**
|
||||
* Write the message to canonical JSON value.
|
||||
*/
|
||||
toJson(message, options) {
|
||||
return this.internalJsonWrite(message, json_format_contract_1.jsonWriteOptions(options));
|
||||
}
|
||||
/**
|
||||
* Convert the message to canonical JSON string.
|
||||
* This is equivalent to `JSON.stringify(T.toJson(t))`
|
||||
*/
|
||||
toJsonString(message, options) {
|
||||
var _a;
|
||||
let value = this.toJson(message, options);
|
||||
return JSON.stringify(value, null, (_a = options === null || options === void 0 ? void 0 : options.prettySpaces) !== null && _a !== void 0 ? _a : 0);
|
||||
}
|
||||
/**
|
||||
* Write the message to binary format.
|
||||
*/
|
||||
toBinary(message, options) {
|
||||
let opt = binary_writer_1.binaryWriteOptions(options);
|
||||
return this.internalBinaryWrite(message, opt.writerFactory(), opt).finish();
|
||||
}
|
||||
/**
|
||||
* This is an internal method. If you just want to read a message from
|
||||
* JSON, use `fromJson()` or `fromJsonString()`.
|
||||
*
|
||||
* Reads JSON value and merges the fields into the target
|
||||
* according to protobuf rules. If the target is omitted,
|
||||
* a new instance is created first.
|
||||
*/
|
||||
internalJsonRead(json, options, target) {
|
||||
if (json !== null && typeof json == "object" && !Array.isArray(json)) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create();
|
||||
this.refJsonReader.read(json, message, options);
|
||||
return message;
|
||||
}
|
||||
throw new Error(`Unable to parse message ${this.typeName} from JSON ${json_typings_1.typeofJsonValue(json)}.`);
|
||||
}
|
||||
/**
|
||||
* This is an internal method. If you just want to write a message
|
||||
* to JSON, use `toJson()` or `toJsonString().
|
||||
*
|
||||
* Writes JSON value and returns it.
|
||||
*/
|
||||
internalJsonWrite(message, options) {
|
||||
return this.refJsonWriter.write(message, options);
|
||||
}
|
||||
/**
|
||||
* This is an internal method. If you just want to write a message
|
||||
* in binary format, use `toBinary()`.
|
||||
*
|
||||
* Serializes the message in binary format and appends it to the given
|
||||
* writer. Returns passed writer.
|
||||
*/
|
||||
internalBinaryWrite(message, writer, options) {
|
||||
this.refBinWriter.write(message, writer, options);
|
||||
return writer;
|
||||
}
|
||||
/**
|
||||
* This is an internal method. If you just want to read a message from
|
||||
* binary data, use `fromBinary()`.
|
||||
*
|
||||
* Reads data from binary format and merges the fields into
|
||||
* the target according to protobuf rules. If the target is
|
||||
* omitted, a new instance is created first.
|
||||
*/
|
||||
internalBinaryRead(reader, length, options, target) {
|
||||
let message = target !== null && target !== void 0 ? target : this.create();
|
||||
this.refBinReader.read(reader, message, options, length);
|
||||
return message;
|
||||
}
|
||||
}
|
||||
exports.MessageType = MessageType;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 8063:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.getSelectedOneofValue = exports.clearOneofValue = exports.setUnknownOneofValue = exports.setOneofValue = exports.getOneofValue = exports.isOneofGroup = void 0;
|
||||
/**
|
||||
* Is the given value a valid oneof group?
|
||||
*
|
||||
* We represent protobuf `oneof` as algebraic data types (ADT) in generated
|
||||
* code. But when working with messages of unknown type, the ADT does not
|
||||
* help us.
|
||||
*
|
||||
* This type guard checks if the given object adheres to the ADT rules, which
|
||||
* are as follows:
|
||||
*
|
||||
* 1) Must be an object.
|
||||
*
|
||||
* 2) Must have a "oneofKind" discriminator property.
|
||||
*
|
||||
* 3) If "oneofKind" is `undefined`, no member field is selected. The object
|
||||
* must not have any other properties.
|
||||
*
|
||||
* 4) If "oneofKind" is a `string`, the member field with this name is
|
||||
* selected.
|
||||
*
|
||||
* 5) If a member field is selected, the object must have a second property
|
||||
* with this name. The property must not be `undefined`.
|
||||
*
|
||||
* 6) No extra properties are allowed. The object has either one property
|
||||
* (no selection) or two properties (selection).
|
||||
*
|
||||
*/
|
||||
function isOneofGroup(any) {
|
||||
if (typeof any != 'object' || any === null || !any.hasOwnProperty('oneofKind')) {
|
||||
return false;
|
||||
}
|
||||
switch (typeof any.oneofKind) {
|
||||
case "string":
|
||||
if (any[any.oneofKind] === undefined)
|
||||
return false;
|
||||
return Object.keys(any).length == 2;
|
||||
case "undefined":
|
||||
return Object.keys(any).length == 1;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
exports.isOneofGroup = isOneofGroup;
|
||||
/**
|
||||
* Returns the value of the given field in a oneof group.
|
||||
*/
|
||||
function getOneofValue(oneof, kind) {
|
||||
return oneof[kind];
|
||||
}
|
||||
exports.getOneofValue = getOneofValue;
|
||||
function setOneofValue(oneof, kind, value) {
|
||||
if (oneof.oneofKind !== undefined) {
|
||||
delete oneof[oneof.oneofKind];
|
||||
}
|
||||
oneof.oneofKind = kind;
|
||||
if (value !== undefined) {
|
||||
oneof[kind] = value;
|
||||
}
|
||||
}
|
||||
exports.setOneofValue = setOneofValue;
|
||||
function setUnknownOneofValue(oneof, kind, value) {
|
||||
if (oneof.oneofKind !== undefined) {
|
||||
delete oneof[oneof.oneofKind];
|
||||
}
|
||||
oneof.oneofKind = kind;
|
||||
if (value !== undefined && kind !== undefined) {
|
||||
oneof[kind] = value;
|
||||
}
|
||||
}
|
||||
exports.setUnknownOneofValue = setUnknownOneofValue;
|
||||
/**
|
||||
* Removes the selected field in a oneof group.
|
||||
*
|
||||
* Note that the recommended way to modify a oneof group is to set
|
||||
* a new object:
|
||||
*
|
||||
* ```ts
|
||||
* message.result = { oneofKind: undefined };
|
||||
* ```
|
||||
*/
|
||||
function clearOneofValue(oneof) {
|
||||
if (oneof.oneofKind !== undefined) {
|
||||
delete oneof[oneof.oneofKind];
|
||||
}
|
||||
oneof.oneofKind = undefined;
|
||||
}
|
||||
exports.clearOneofValue = clearOneofValue;
|
||||
/**
|
||||
* Returns the selected value of the given oneof group.
|
||||
*
|
||||
* Not that the recommended way to access a oneof group is to check
|
||||
* the "oneofKind" property and let TypeScript narrow down the union
|
||||
* type for you:
|
||||
*
|
||||
* ```ts
|
||||
* if (message.result.oneofKind === "error") {
|
||||
* message.result.error; // string
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* In the rare case you just need the value, and do not care about
|
||||
* which protobuf field is selected, you can use this function
|
||||
* for convenience.
|
||||
*/
|
||||
function getSelectedOneofValue(oneof) {
|
||||
if (oneof.oneofKind === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
return oneof[oneof.oneofKind];
|
||||
}
|
||||
exports.getSelectedOneofValue = getSelectedOneofValue;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 1753:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.PbLong = exports.PbULong = exports.detectBi = void 0;
|
||||
const goog_varint_1 = __nccwpck_require__(3223);
|
||||
let BI;
|
||||
function detectBi() {
|
||||
const dv = new DataView(new ArrayBuffer(8));
|
||||
const ok = globalThis.BigInt !== undefined
|
||||
&& typeof dv.getBigInt64 === "function"
|
||||
&& typeof dv.getBigUint64 === "function"
|
||||
&& typeof dv.setBigInt64 === "function"
|
||||
&& typeof dv.setBigUint64 === "function";
|
||||
BI = ok ? {
|
||||
MIN: BigInt("-9223372036854775808"),
|
||||
MAX: BigInt("9223372036854775807"),
|
||||
UMIN: BigInt("0"),
|
||||
UMAX: BigInt("18446744073709551615"),
|
||||
C: BigInt,
|
||||
V: dv,
|
||||
} : undefined;
|
||||
}
|
||||
exports.detectBi = detectBi;
|
||||
detectBi();
|
||||
function assertBi(bi) {
|
||||
if (!bi)
|
||||
throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support");
|
||||
}
|
||||
// used to validate from(string) input (when bigint is unavailable)
|
||||
const RE_DECIMAL_STR = /^-?[0-9]+$/;
|
||||
// constants for binary math
|
||||
const TWO_PWR_32_DBL = 0x100000000;
|
||||
const HALF_2_PWR_32 = 0x080000000;
|
||||
// base class for PbLong and PbULong provides shared code
|
||||
class SharedPbLong {
|
||||
/**
|
||||
* Create a new instance with the given bits.
|
||||
*/
|
||||
constructor(lo, hi) {
|
||||
this.lo = lo | 0;
|
||||
this.hi = hi | 0;
|
||||
}
|
||||
/**
|
||||
* Is this instance equal to 0?
|
||||
*/
|
||||
isZero() {
|
||||
return this.lo == 0 && this.hi == 0;
|
||||
}
|
||||
/**
|
||||
* Convert to a native number.
|
||||
*/
|
||||
toNumber() {
|
||||
let result = this.hi * TWO_PWR_32_DBL + (this.lo >>> 0);
|
||||
if (!Number.isSafeInteger(result))
|
||||
throw new Error("cannot convert to safe number");
|
||||
return result;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 64-bit unsigned integer as two 32-bit values.
|
||||
* Converts between `string`, `number` and `bigint` representations.
|
||||
*/
|
||||
class PbULong extends SharedPbLong {
|
||||
/**
|
||||
* Create instance from a `string`, `number` or `bigint`.
|
||||
*/
|
||||
static from(value) {
|
||||
if (BI)
|
||||
// noinspection FallThroughInSwitchStatementJS
|
||||
switch (typeof value) {
|
||||
case "string":
|
||||
if (value == "0")
|
||||
return this.ZERO;
|
||||
if (value == "")
|
||||
throw new Error('string is no integer');
|
||||
value = BI.C(value);
|
||||
case "number":
|
||||
if (value === 0)
|
||||
return this.ZERO;
|
||||
value = BI.C(value);
|
||||
case "bigint":
|
||||
if (!value)
|
||||
return this.ZERO;
|
||||
if (value < BI.UMIN)
|
||||
throw new Error('signed value for ulong');
|
||||
if (value > BI.UMAX)
|
||||
throw new Error('ulong too large');
|
||||
BI.V.setBigUint64(0, value, true);
|
||||
return new PbULong(BI.V.getInt32(0, true), BI.V.getInt32(4, true));
|
||||
}
|
||||
else
|
||||
switch (typeof value) {
|
||||
case "string":
|
||||
if (value == "0")
|
||||
return this.ZERO;
|
||||
value = value.trim();
|
||||
if (!RE_DECIMAL_STR.test(value))
|
||||
throw new Error('string is no integer');
|
||||
let [minus, lo, hi] = goog_varint_1.int64fromString(value);
|
||||
if (minus)
|
||||
throw new Error('signed value for ulong');
|
||||
return new PbULong(lo, hi);
|
||||
case "number":
|
||||
if (value == 0)
|
||||
return this.ZERO;
|
||||
if (!Number.isSafeInteger(value))
|
||||
throw new Error('number is no integer');
|
||||
if (value < 0)
|
||||
throw new Error('signed value for ulong');
|
||||
return new PbULong(value, value / TWO_PWR_32_DBL);
|
||||
}
|
||||
throw new Error('unknown value ' + typeof value);
|
||||
}
|
||||
/**
|
||||
* Convert to decimal string.
|
||||
*/
|
||||
toString() {
|
||||
return BI ? this.toBigInt().toString() : goog_varint_1.int64toString(this.lo, this.hi);
|
||||
}
|
||||
/**
|
||||
* Convert to native bigint.
|
||||
*/
|
||||
toBigInt() {
|
||||
assertBi(BI);
|
||||
BI.V.setInt32(0, this.lo, true);
|
||||
BI.V.setInt32(4, this.hi, true);
|
||||
return BI.V.getBigUint64(0, true);
|
||||
}
|
||||
}
|
||||
exports.PbULong = PbULong;
|
||||
/**
|
||||
* ulong 0 singleton.
|
||||
*/
|
||||
PbULong.ZERO = new PbULong(0, 0);
|
||||
/**
|
||||
* 64-bit signed integer as two 32-bit values.
|
||||
* Converts between `string`, `number` and `bigint` representations.
|
||||
*/
|
||||
class PbLong extends SharedPbLong {
|
||||
/**
|
||||
* Create instance from a `string`, `number` or `bigint`.
|
||||
*/
|
||||
static from(value) {
|
||||
if (BI)
|
||||
// noinspection FallThroughInSwitchStatementJS
|
||||
switch (typeof value) {
|
||||
case "string":
|
||||
if (value == "0")
|
||||
return this.ZERO;
|
||||
if (value == "")
|
||||
throw new Error('string is no integer');
|
||||
value = BI.C(value);
|
||||
case "number":
|
||||
if (value === 0)
|
||||
return this.ZERO;
|
||||
value = BI.C(value);
|
||||
case "bigint":
|
||||
if (!value)
|
||||
return this.ZERO;
|
||||
if (value < BI.MIN)
|
||||
throw new Error('signed long too small');
|
||||
if (value > BI.MAX)
|
||||
throw new Error('signed long too large');
|
||||
BI.V.setBigInt64(0, value, true);
|
||||
return new PbLong(BI.V.getInt32(0, true), BI.V.getInt32(4, true));
|
||||
}
|
||||
else
|
||||
switch (typeof value) {
|
||||
case "string":
|
||||
if (value == "0")
|
||||
return this.ZERO;
|
||||
value = value.trim();
|
||||
if (!RE_DECIMAL_STR.test(value))
|
||||
throw new Error('string is no integer');
|
||||
let [minus, lo, hi] = goog_varint_1.int64fromString(value);
|
||||
if (minus) {
|
||||
if (hi > HALF_2_PWR_32 || (hi == HALF_2_PWR_32 && lo != 0))
|
||||
throw new Error('signed long too small');
|
||||
}
|
||||
else if (hi >= HALF_2_PWR_32)
|
||||
throw new Error('signed long too large');
|
||||
let pbl = new PbLong(lo, hi);
|
||||
return minus ? pbl.negate() : pbl;
|
||||
case "number":
|
||||
if (value == 0)
|
||||
return this.ZERO;
|
||||
if (!Number.isSafeInteger(value))
|
||||
throw new Error('number is no integer');
|
||||
return value > 0
|
||||
? new PbLong(value, value / TWO_PWR_32_DBL)
|
||||
: new PbLong(-value, -value / TWO_PWR_32_DBL).negate();
|
||||
}
|
||||
throw new Error('unknown value ' + typeof value);
|
||||
}
|
||||
/**
|
||||
* Do we have a minus sign?
|
||||
*/
|
||||
isNegative() {
|
||||
return (this.hi & HALF_2_PWR_32) !== 0;
|
||||
}
|
||||
/**
|
||||
* Negate two's complement.
|
||||
* Invert all the bits and add one to the result.
|
||||
*/
|
||||
negate() {
|
||||
let hi = ~this.hi, lo = this.lo;
|
||||
if (lo)
|
||||
lo = ~lo + 1;
|
||||
else
|
||||
hi += 1;
|
||||
return new PbLong(lo, hi);
|
||||
}
|
||||
/**
|
||||
* Convert to decimal string.
|
||||
*/
|
||||
toString() {
|
||||
if (BI)
|
||||
return this.toBigInt().toString();
|
||||
if (this.isNegative()) {
|
||||
let n = this.negate();
|
||||
return '-' + goog_varint_1.int64toString(n.lo, n.hi);
|
||||
}
|
||||
return goog_varint_1.int64toString(this.lo, this.hi);
|
||||
}
|
||||
/**
|
||||
* Convert to native bigint.
|
||||
*/
|
||||
toBigInt() {
|
||||
assertBi(BI);
|
||||
BI.V.setInt32(0, this.lo, true);
|
||||
BI.V.setInt32(4, this.hi, true);
|
||||
return BI.V.getBigInt64(0, true);
|
||||
}
|
||||
}
|
||||
exports.PbLong = PbLong;
|
||||
/**
|
||||
* long 0 singleton.
|
||||
*/
|
||||
PbLong.ZERO = new PbLong(0, 0);
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 8950:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
// Copyright (c) 2016, Daniel Wirtz All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above copyright
|
||||
// notice, this list of conditions and the following disclaimer in the
|
||||
// documentation and/or other materials provided with the distribution.
|
||||
// * Neither the name of its author, nor the names of its contributors
|
||||
// may be used to endorse or promote products derived from this software
|
||||
// without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.utf8read = void 0;
|
||||
const fromCharCodes = (chunk) => String.fromCharCode.apply(String, chunk);
|
||||
/**
|
||||
* @deprecated This function will no longer be exported with the next major
|
||||
* release, since protobuf-ts has switch to TextDecoder API. If you need this
|
||||
* function, please migrate to @protobufjs/utf8. For context, see
|
||||
* https://github.com/timostamm/protobuf-ts/issues/184
|
||||
*
|
||||
* Reads UTF8 bytes as a string.
|
||||
*
|
||||
* See [protobufjs / utf8](https://github.com/protobufjs/protobuf.js/blob/9893e35b854621cce64af4bf6be2cff4fb892796/lib/utf8/index.js#L40)
|
||||
*
|
||||
* Copyright (c) 2016, Daniel Wirtz
|
||||
*/
|
||||
function utf8read(bytes) {
|
||||
if (bytes.length < 1)
|
||||
return "";
|
||||
let pos = 0, // position in bytes
|
||||
parts = [], chunk = [], i = 0, // char offset
|
||||
t; // temporary
|
||||
let len = bytes.length;
|
||||
while (pos < len) {
|
||||
t = bytes[pos++];
|
||||
if (t < 128)
|
||||
chunk[i++] = t;
|
||||
else if (t > 191 && t < 224)
|
||||
chunk[i++] = (t & 31) << 6 | bytes[pos++] & 63;
|
||||
else if (t > 239 && t < 365) {
|
||||
t = ((t & 7) << 18 | (bytes[pos++] & 63) << 12 | (bytes[pos++] & 63) << 6 | bytes[pos++] & 63) - 0x10000;
|
||||
chunk[i++] = 0xD800 + (t >> 10);
|
||||
chunk[i++] = 0xDC00 + (t & 1023);
|
||||
}
|
||||
else
|
||||
chunk[i++] = (t & 15) << 12 | (bytes[pos++] & 63) << 6 | bytes[pos++] & 63;
|
||||
if (i > 8191) {
|
||||
parts.push(fromCharCodes(chunk));
|
||||
i = 0;
|
||||
}
|
||||
}
|
||||
if (parts.length) {
|
||||
if (i)
|
||||
parts.push(fromCharCodes(chunk.slice(0, i)));
|
||||
return parts.join("");
|
||||
}
|
||||
return fromCharCodes(chunk.slice(0, i));
|
||||
}
|
||||
exports.utf8read = utf8read;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 9611:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.ReflectionBinaryReader = void 0;
|
||||
const binary_format_contract_1 = __nccwpck_require__(4816);
|
||||
const reflection_info_1 = __nccwpck_require__(7910);
|
||||
const reflection_long_convert_1 = __nccwpck_require__(3402);
|
||||
const reflection_scalar_default_1 = __nccwpck_require__(9526);
|
||||
/**
|
||||
* Reads proto3 messages in binary format using reflection information.
|
||||
*
|
||||
* https://developers.google.com/protocol-buffers/docs/encoding
|
||||
*/
|
||||
class ReflectionBinaryReader {
|
||||
constructor(info) {
|
||||
this.info = info;
|
||||
}
|
||||
prepare() {
|
||||
var _a;
|
||||
if (!this.fieldNoToField) {
|
||||
const fieldsInput = (_a = this.info.fields) !== null && _a !== void 0 ? _a : [];
|
||||
this.fieldNoToField = new Map(fieldsInput.map(field => [field.no, field]));
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Reads a message from binary format into the target message.
|
||||
*
|
||||
* Repeated fields are appended. Map entries are added, overwriting
|
||||
* existing keys.
|
||||
*
|
||||
* If a message field is already present, it will be merged with the
|
||||
* new data.
|
||||
*/
|
||||
read(reader, message, options, length) {
|
||||
this.prepare();
|
||||
const end = length === undefined ? reader.len : reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
// read the tag and find the field
|
||||
const [fieldNo, wireType] = reader.tag(), field = this.fieldNoToField.get(fieldNo);
|
||||
if (!field) {
|
||||
let u = options.readUnknownField;
|
||||
if (u == "throw")
|
||||
throw new Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.info.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? binary_format_contract_1.UnknownFieldHandler.onRead : u)(this.info.typeName, message, fieldNo, wireType, d);
|
||||
continue;
|
||||
}
|
||||
// target object for the field we are reading
|
||||
let target = message, repeated = field.repeat, localName = field.localName;
|
||||
// if field is member of oneof ADT, use ADT as target
|
||||
if (field.oneof) {
|
||||
target = target[field.oneof];
|
||||
// if other oneof member selected, set new ADT
|
||||
if (target.oneofKind !== localName)
|
||||
target = message[field.oneof] = {
|
||||
oneofKind: localName
|
||||
};
|
||||
}
|
||||
// we have handled oneof above, we just have read the value into `target[localName]`
|
||||
switch (field.kind) {
|
||||
case "scalar":
|
||||
case "enum":
|
||||
let T = field.kind == "enum" ? reflection_info_1.ScalarType.INT32 : field.T;
|
||||
let L = field.kind == "scalar" ? field.L : undefined;
|
||||
if (repeated) {
|
||||
let arr = target[localName]; // safe to assume presence of array, oneof cannot contain repeated values
|
||||
if (wireType == binary_format_contract_1.WireType.LengthDelimited && T != reflection_info_1.ScalarType.STRING && T != reflection_info_1.ScalarType.BYTES) {
|
||||
let e = reader.uint32() + reader.pos;
|
||||
while (reader.pos < e)
|
||||
arr.push(this.scalar(reader, T, L));
|
||||
}
|
||||
else
|
||||
arr.push(this.scalar(reader, T, L));
|
||||
}
|
||||
else
|
||||
target[localName] = this.scalar(reader, T, L);
|
||||
break;
|
||||
case "message":
|
||||
if (repeated) {
|
||||
let arr = target[localName]; // safe to assume presence of array, oneof cannot contain repeated values
|
||||
let msg = field.T().internalBinaryRead(reader, reader.uint32(), options);
|
||||
arr.push(msg);
|
||||
}
|
||||
else
|
||||
target[localName] = field.T().internalBinaryRead(reader, reader.uint32(), options, target[localName]);
|
||||
break;
|
||||
case "map":
|
||||
let [mapKey, mapVal] = this.mapEntry(field, reader, options);
|
||||
// safe to assume presence of map object, oneof cannot contain repeated values
|
||||
target[localName][mapKey] = mapVal;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Read a map field, expecting key field = 1, value field = 2
|
||||
*/
|
||||
mapEntry(field, reader, options) {
|
||||
let length = reader.uint32();
|
||||
let end = reader.pos + length;
|
||||
let key = undefined; // javascript only allows number or string for object properties
|
||||
let val = undefined;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case 1:
|
||||
if (field.K == reflection_info_1.ScalarType.BOOL)
|
||||
key = reader.bool().toString();
|
||||
else
|
||||
// long types are read as string, number types are okay as number
|
||||
key = this.scalar(reader, field.K, reflection_info_1.LongType.STRING);
|
||||
break;
|
||||
case 2:
|
||||
switch (field.V.kind) {
|
||||
case "scalar":
|
||||
val = this.scalar(reader, field.V.T, field.V.L);
|
||||
break;
|
||||
case "enum":
|
||||
val = reader.int32();
|
||||
break;
|
||||
case "message":
|
||||
val = field.V.T().internalBinaryRead(reader, reader.uint32(), options);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new Error(`Unknown field ${fieldNo} (wire type ${wireType}) in map entry for ${this.info.typeName}#${field.name}`);
|
||||
}
|
||||
}
|
||||
if (key === undefined) {
|
||||
let keyRaw = reflection_scalar_default_1.reflectionScalarDefault(field.K);
|
||||
key = field.K == reflection_info_1.ScalarType.BOOL ? keyRaw.toString() : keyRaw;
|
||||
}
|
||||
if (val === undefined)
|
||||
switch (field.V.kind) {
|
||||
case "scalar":
|
||||
val = reflection_scalar_default_1.reflectionScalarDefault(field.V.T, field.V.L);
|
||||
break;
|
||||
case "enum":
|
||||
val = 0;
|
||||
break;
|
||||
case "message":
|
||||
val = field.V.T().create();
|
||||
break;
|
||||
}
|
||||
return [key, val];
|
||||
}
|
||||
scalar(reader, type, longType) {
|
||||
switch (type) {
|
||||
case reflection_info_1.ScalarType.INT32:
|
||||
return reader.int32();
|
||||
case reflection_info_1.ScalarType.STRING:
|
||||
return reader.string();
|
||||
case reflection_info_1.ScalarType.BOOL:
|
||||
return reader.bool();
|
||||
case reflection_info_1.ScalarType.DOUBLE:
|
||||
return reader.double();
|
||||
case reflection_info_1.ScalarType.FLOAT:
|
||||
return reader.float();
|
||||
case reflection_info_1.ScalarType.INT64:
|
||||
return reflection_long_convert_1.reflectionLongConvert(reader.int64(), longType);
|
||||
case reflection_info_1.ScalarType.UINT64:
|
||||
return reflection_long_convert_1.reflectionLongConvert(reader.uint64(), longType);
|
||||
case reflection_info_1.ScalarType.FIXED64:
|
||||
return reflection_long_convert_1.reflectionLongConvert(reader.fixed64(), longType);
|
||||
case reflection_info_1.ScalarType.FIXED32:
|
||||
return reader.fixed32();
|
||||
case reflection_info_1.ScalarType.BYTES:
|
||||
return reader.bytes();
|
||||
case reflection_info_1.ScalarType.UINT32:
|
||||
return reader.uint32();
|
||||
case reflection_info_1.ScalarType.SFIXED32:
|
||||
return reader.sfixed32();
|
||||
case reflection_info_1.ScalarType.SFIXED64:
|
||||
return reflection_long_convert_1.reflectionLongConvert(reader.sfixed64(), longType);
|
||||
case reflection_info_1.ScalarType.SINT32:
|
||||
return reader.sint32();
|
||||
case reflection_info_1.ScalarType.SINT64:
|
||||
return reflection_long_convert_1.reflectionLongConvert(reader.sint64(), longType);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.ReflectionBinaryReader = ReflectionBinaryReader;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 6907:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.ReflectionBinaryWriter = void 0;
|
||||
const binary_format_contract_1 = __nccwpck_require__(4816);
|
||||
const reflection_info_1 = __nccwpck_require__(7910);
|
||||
const assert_1 = __nccwpck_require__(8602);
|
||||
const pb_long_1 = __nccwpck_require__(1753);
|
||||
/**
|
||||
* Writes proto3 messages in binary format using reflection information.
|
||||
*
|
||||
* https://developers.google.com/protocol-buffers/docs/encoding
|
||||
*/
|
||||
class ReflectionBinaryWriter {
|
||||
constructor(info) {
|
||||
this.info = info;
|
||||
}
|
||||
prepare() {
|
||||
if (!this.fields) {
|
||||
const fieldsInput = this.info.fields ? this.info.fields.concat() : [];
|
||||
this.fields = fieldsInput.sort((a, b) => a.no - b.no);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Writes the message to binary format.
|
||||
*/
|
||||
write(message, writer, options) {
|
||||
this.prepare();
|
||||
for (const field of this.fields) {
|
||||
let value, // this will be our field value, whether it is member of a oneof or not
|
||||
emitDefault, // whether we emit the default value (only true for oneof members)
|
||||
repeated = field.repeat, localName = field.localName;
|
||||
// handle oneof ADT
|
||||
if (field.oneof) {
|
||||
const group = message[field.oneof];
|
||||
if (group.oneofKind !== localName)
|
||||
continue; // if field is not selected, skip
|
||||
value = group[localName];
|
||||
emitDefault = true;
|
||||
}
|
||||
else {
|
||||
value = message[localName];
|
||||
emitDefault = false;
|
||||
}
|
||||
// we have handled oneof above. we just have to honor `emitDefault`.
|
||||
switch (field.kind) {
|
||||
case "scalar":
|
||||
case "enum":
|
||||
let T = field.kind == "enum" ? reflection_info_1.ScalarType.INT32 : field.T;
|
||||
if (repeated) {
|
||||
assert_1.assert(Array.isArray(value));
|
||||
if (repeated == reflection_info_1.RepeatType.PACKED)
|
||||
this.packed(writer, T, field.no, value);
|
||||
else
|
||||
for (const item of value)
|
||||
this.scalar(writer, T, field.no, item, true);
|
||||
}
|
||||
else if (value === undefined)
|
||||
assert_1.assert(field.opt);
|
||||
else
|
||||
this.scalar(writer, T, field.no, value, emitDefault || field.opt);
|
||||
break;
|
||||
case "message":
|
||||
if (repeated) {
|
||||
assert_1.assert(Array.isArray(value));
|
||||
for (const item of value)
|
||||
this.message(writer, options, field.T(), field.no, item);
|
||||
}
|
||||
else {
|
||||
this.message(writer, options, field.T(), field.no, value);
|
||||
}
|
||||
break;
|
||||
case "map":
|
||||
assert_1.assert(typeof value == 'object' && value !== null);
|
||||
for (const [key, val] of Object.entries(value))
|
||||
this.mapEntry(writer, options, field, key, val);
|
||||
break;
|
||||
}
|
||||
}
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u === true ? binary_format_contract_1.UnknownFieldHandler.onWrite : u)(this.info.typeName, message, writer);
|
||||
}
|
||||
mapEntry(writer, options, field, key, value) {
|
||||
writer.tag(field.no, binary_format_contract_1.WireType.LengthDelimited);
|
||||
writer.fork();
|
||||
// javascript only allows number or string for object properties
|
||||
// we convert from our representation to the protobuf type
|
||||
let keyValue = key;
|
||||
switch (field.K) {
|
||||
case reflection_info_1.ScalarType.INT32:
|
||||
case reflection_info_1.ScalarType.FIXED32:
|
||||
case reflection_info_1.ScalarType.UINT32:
|
||||
case reflection_info_1.ScalarType.SFIXED32:
|
||||
case reflection_info_1.ScalarType.SINT32:
|
||||
keyValue = Number.parseInt(key);
|
||||
break;
|
||||
case reflection_info_1.ScalarType.BOOL:
|
||||
assert_1.assert(key == 'true' || key == 'false');
|
||||
keyValue = key == 'true';
|
||||
break;
|
||||
}
|
||||
// write key, expecting key field number = 1
|
||||
this.scalar(writer, field.K, 1, keyValue, true);
|
||||
// write value, expecting value field number = 2
|
||||
switch (field.V.kind) {
|
||||
case 'scalar':
|
||||
this.scalar(writer, field.V.T, 2, value, true);
|
||||
break;
|
||||
case 'enum':
|
||||
this.scalar(writer, reflection_info_1.ScalarType.INT32, 2, value, true);
|
||||
break;
|
||||
case 'message':
|
||||
this.message(writer, options, field.V.T(), 2, value);
|
||||
break;
|
||||
}
|
||||
writer.join();
|
||||
}
|
||||
message(writer, options, handler, fieldNo, value) {
|
||||
if (value === undefined)
|
||||
return;
|
||||
handler.internalBinaryWrite(value, writer.tag(fieldNo, binary_format_contract_1.WireType.LengthDelimited).fork(), options);
|
||||
writer.join();
|
||||
}
|
||||
/**
|
||||
* Write a single scalar value.
|
||||
*/
|
||||
scalar(writer, type, fieldNo, value, emitDefault) {
|
||||
let [wireType, method, isDefault] = this.scalarInfo(type, value);
|
||||
if (!isDefault || emitDefault) {
|
||||
writer.tag(fieldNo, wireType);
|
||||
writer[method](value);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Write an array of scalar values in packed format.
|
||||
*/
|
||||
packed(writer, type, fieldNo, value) {
|
||||
if (!value.length)
|
||||
return;
|
||||
assert_1.assert(type !== reflection_info_1.ScalarType.BYTES && type !== reflection_info_1.ScalarType.STRING);
|
||||
// write tag
|
||||
writer.tag(fieldNo, binary_format_contract_1.WireType.LengthDelimited);
|
||||
// begin length-delimited
|
||||
writer.fork();
|
||||
// write values without tags
|
||||
let [, method,] = this.scalarInfo(type);
|
||||
for (let i = 0; i < value.length; i++)
|
||||
writer[method](value[i]);
|
||||
// end length delimited
|
||||
writer.join();
|
||||
}
|
||||
/**
|
||||
* Get information for writing a scalar value.
|
||||
*
|
||||
* Returns tuple:
|
||||
* [0]: appropriate WireType
|
||||
* [1]: name of the appropriate method of IBinaryWriter
|
||||
* [2]: whether the given value is a default value
|
||||
*
|
||||
* If argument `value` is omitted, [2] is always false.
|
||||
*/
|
||||
scalarInfo(type, value) {
|
||||
let t = binary_format_contract_1.WireType.Varint;
|
||||
let m;
|
||||
let i = value === undefined;
|
||||
let d = value === 0;
|
||||
switch (type) {
|
||||
case reflection_info_1.ScalarType.INT32:
|
||||
m = "int32";
|
||||
break;
|
||||
case reflection_info_1.ScalarType.STRING:
|
||||
d = i || !value.length;
|
||||
t = binary_format_contract_1.WireType.LengthDelimited;
|
||||
m = "string";
|
||||
break;
|
||||
case reflection_info_1.ScalarType.BOOL:
|
||||
d = value === false;
|
||||
m = "bool";
|
||||
break;
|
||||
case reflection_info_1.ScalarType.UINT32:
|
||||
m = "uint32";
|
||||
break;
|
||||
case reflection_info_1.ScalarType.DOUBLE:
|
||||
t = binary_format_contract_1.WireType.Bit64;
|
||||
m = "double";
|
||||
break;
|
||||
case reflection_info_1.ScalarType.FLOAT:
|
||||
t = binary_format_contract_1.WireType.Bit32;
|
||||
m = "float";
|
||||
break;
|
||||
case reflection_info_1.ScalarType.INT64:
|
||||
d = i || pb_long_1.PbLong.from(value).isZero();
|
||||
m = "int64";
|
||||
break;
|
||||
case reflection_info_1.ScalarType.UINT64:
|
||||
d = i || pb_long_1.PbULong.from(value).isZero();
|
||||
m = "uint64";
|
||||
break;
|
||||
case reflection_info_1.ScalarType.FIXED64:
|
||||
d = i || pb_long_1.PbULong.from(value).isZero();
|
||||
t = binary_format_contract_1.WireType.Bit64;
|
||||
m = "fixed64";
|
||||
break;
|
||||
case reflection_info_1.ScalarType.BYTES:
|
||||
d = i || !value.byteLength;
|
||||
t = binary_format_contract_1.WireType.LengthDelimited;
|
||||
m = "bytes";
|
||||
break;
|
||||
case reflection_info_1.ScalarType.FIXED32:
|
||||
t = binary_format_contract_1.WireType.Bit32;
|
||||
m = "fixed32";
|
||||
break;
|
||||
case reflection_info_1.ScalarType.SFIXED32:
|
||||
t = binary_format_contract_1.WireType.Bit32;
|
||||
m = "sfixed32";
|
||||
break;
|
||||
case reflection_info_1.ScalarType.SFIXED64:
|
||||
d = i || pb_long_1.PbLong.from(value).isZero();
|
||||
t = binary_format_contract_1.WireType.Bit64;
|
||||
m = "sfixed64";
|
||||
break;
|
||||
case reflection_info_1.ScalarType.SINT32:
|
||||
m = "sint32";
|
||||
break;
|
||||
case reflection_info_1.ScalarType.SINT64:
|
||||
d = i || pb_long_1.PbLong.from(value).isZero();
|
||||
m = "sint64";
|
||||
break;
|
||||
}
|
||||
return [t, m, i || d];
|
||||
}
|
||||
}
|
||||
exports.ReflectionBinaryWriter = ReflectionBinaryWriter;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 7565:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.containsMessageType = void 0;
|
||||
const message_type_contract_1 = __nccwpck_require__(3785);
|
||||
/**
|
||||
* Check if the provided object is a proto message.
|
||||
*
|
||||
* Note that this is an experimental feature - it is here to stay, but
|
||||
* implementation details may change without notice.
|
||||
*/
|
||||
function containsMessageType(msg) {
|
||||
return msg[message_type_contract_1.MESSAGE_TYPE] != null;
|
||||
}
|
||||
exports.containsMessageType = containsMessageType;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 5726:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.reflectionCreate = void 0;
|
||||
const reflection_scalar_default_1 = __nccwpck_require__(9526);
|
||||
const message_type_contract_1 = __nccwpck_require__(3785);
|
||||
/**
|
||||
* Creates an instance of the generic message, using the field
|
||||
* information.
|
||||
*/
|
||||
function reflectionCreate(type) {
|
||||
/**
|
||||
* This ternary can be removed in the next major version.
|
||||
* The `Object.create()` code path utilizes a new `messagePrototype`
|
||||
* property on the `IMessageType` which has this same `MESSAGE_TYPE`
|
||||
* non-enumerable property on it. Doing it this way means that we only
|
||||
* pay the cost of `Object.defineProperty()` once per `IMessageType`
|
||||
* class of once per "instance". The falsy code path is only provided
|
||||
* for backwards compatibility in cases where the runtime library is
|
||||
* updated without also updating the generated code.
|
||||
*/
|
||||
const msg = type.messagePrototype
|
||||
? Object.create(type.messagePrototype)
|
||||
: Object.defineProperty({}, message_type_contract_1.MESSAGE_TYPE, { value: type });
|
||||
for (let field of type.fields) {
|
||||
let name = field.localName;
|
||||
if (field.opt)
|
||||
continue;
|
||||
if (field.oneof)
|
||||
msg[field.oneof] = { oneofKind: undefined };
|
||||
else if (field.repeat)
|
||||
msg[name] = [];
|
||||
else
|
||||
switch (field.kind) {
|
||||
case "scalar":
|
||||
msg[name] = reflection_scalar_default_1.reflectionScalarDefault(field.T, field.L);
|
||||
break;
|
||||
case "enum":
|
||||
// we require 0 to be default value for all enums
|
||||
msg[name] = 0;
|
||||
break;
|
||||
case "map":
|
||||
msg[name] = {};
|
||||
break;
|
||||
}
|
||||
}
|
||||
return msg;
|
||||
}
|
||||
exports.reflectionCreate = reflectionCreate;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 4827:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.reflectionEquals = void 0;
|
||||
const reflection_info_1 = __nccwpck_require__(7910);
|
||||
/**
|
||||
* Determines whether two message of the same type have the same field values.
|
||||
* Checks for deep equality, traversing repeated fields, oneof groups, maps
|
||||
* and messages recursively.
|
||||
* Will also return true if both messages are `undefined`.
|
||||
*/
|
||||
function reflectionEquals(info, a, b) {
|
||||
if (a === b)
|
||||
return true;
|
||||
if (!a || !b)
|
||||
return false;
|
||||
for (let field of info.fields) {
|
||||
let localName = field.localName;
|
||||
let val_a = field.oneof ? a[field.oneof][localName] : a[localName];
|
||||
let val_b = field.oneof ? b[field.oneof][localName] : b[localName];
|
||||
switch (field.kind) {
|
||||
case "enum":
|
||||
case "scalar":
|
||||
let t = field.kind == "enum" ? reflection_info_1.ScalarType.INT32 : field.T;
|
||||
if (!(field.repeat
|
||||
? repeatedPrimitiveEq(t, val_a, val_b)
|
||||
: primitiveEq(t, val_a, val_b)))
|
||||
return false;
|
||||
break;
|
||||
case "map":
|
||||
if (!(field.V.kind == "message"
|
||||
? repeatedMsgEq(field.V.T(), objectValues(val_a), objectValues(val_b))
|
||||
: repeatedPrimitiveEq(field.V.kind == "enum" ? reflection_info_1.ScalarType.INT32 : field.V.T, objectValues(val_a), objectValues(val_b))))
|
||||
return false;
|
||||
break;
|
||||
case "message":
|
||||
let T = field.T();
|
||||
if (!(field.repeat
|
||||
? repeatedMsgEq(T, val_a, val_b)
|
||||
: T.equals(val_a, val_b)))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
exports.reflectionEquals = reflectionEquals;
|
||||
const objectValues = Object.values;
|
||||
function primitiveEq(type, a, b) {
|
||||
if (a === b)
|
||||
return true;
|
||||
if (type !== reflection_info_1.ScalarType.BYTES)
|
||||
return false;
|
||||
let ba = a;
|
||||
let bb = b;
|
||||
if (ba.length !== bb.length)
|
||||
return false;
|
||||
for (let i = 0; i < ba.length; i++)
|
||||
if (ba[i] != bb[i])
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
function repeatedPrimitiveEq(type, a, b) {
|
||||
if (a.length !== b.length)
|
||||
return false;
|
||||
for (let i = 0; i < a.length; i++)
|
||||
if (!primitiveEq(type, a[i], b[i]))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
function repeatedMsgEq(type, a, b) {
|
||||
if (a.length !== b.length)
|
||||
return false;
|
||||
for (let i = 0; i < a.length; i++)
|
||||
if (!type.equals(a[i], b[i]))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 7910:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.readMessageOption = exports.readFieldOption = exports.readFieldOptions = exports.normalizeFieldInfo = exports.RepeatType = exports.LongType = exports.ScalarType = void 0;
|
||||
const lower_camel_case_1 = __nccwpck_require__(4073);
|
||||
/**
|
||||
* Scalar value types. This is a subset of field types declared by protobuf
|
||||
* enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE
|
||||
* are omitted, but the numerical values are identical.
|
||||
*/
|
||||
var ScalarType;
|
||||
(function (ScalarType) {
|
||||
// 0 is reserved for errors.
|
||||
// Order is weird for historical reasons.
|
||||
ScalarType[ScalarType["DOUBLE"] = 1] = "DOUBLE";
|
||||
ScalarType[ScalarType["FLOAT"] = 2] = "FLOAT";
|
||||
// Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
|
||||
// negative values are likely.
|
||||
ScalarType[ScalarType["INT64"] = 3] = "INT64";
|
||||
ScalarType[ScalarType["UINT64"] = 4] = "UINT64";
|
||||
// Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
|
||||
// negative values are likely.
|
||||
ScalarType[ScalarType["INT32"] = 5] = "INT32";
|
||||
ScalarType[ScalarType["FIXED64"] = 6] = "FIXED64";
|
||||
ScalarType[ScalarType["FIXED32"] = 7] = "FIXED32";
|
||||
ScalarType[ScalarType["BOOL"] = 8] = "BOOL";
|
||||
ScalarType[ScalarType["STRING"] = 9] = "STRING";
|
||||
// Tag-delimited aggregate.
|
||||
// Group type is deprecated and not supported in proto3. However, Proto3
|
||||
// implementations should still be able to parse the group wire format and
|
||||
// treat group fields as unknown fields.
|
||||
// TYPE_GROUP = 10,
|
||||
// TYPE_MESSAGE = 11, // Length-delimited aggregate.
|
||||
// New in version 2.
|
||||
ScalarType[ScalarType["BYTES"] = 12] = "BYTES";
|
||||
ScalarType[ScalarType["UINT32"] = 13] = "UINT32";
|
||||
// TYPE_ENUM = 14,
|
||||
ScalarType[ScalarType["SFIXED32"] = 15] = "SFIXED32";
|
||||
ScalarType[ScalarType["SFIXED64"] = 16] = "SFIXED64";
|
||||
ScalarType[ScalarType["SINT32"] = 17] = "SINT32";
|
||||
ScalarType[ScalarType["SINT64"] = 18] = "SINT64";
|
||||
})(ScalarType = exports.ScalarType || (exports.ScalarType = {}));
|
||||
/**
|
||||
* JavaScript representation of 64 bit integral types. Equivalent to the
|
||||
* field option "jstype".
|
||||
*
|
||||
* By default, protobuf-ts represents 64 bit types as `bigint`.
|
||||
*
|
||||
* You can change the default behaviour by enabling the plugin parameter
|
||||
* `long_type_string`, which will represent 64 bit types as `string`.
|
||||
*
|
||||
* Alternatively, you can change the behaviour for individual fields
|
||||
* with the field option "jstype":
|
||||
*
|
||||
* ```protobuf
|
||||
* uint64 my_field = 1 [jstype = JS_STRING];
|
||||
* uint64 other_field = 2 [jstype = JS_NUMBER];
|
||||
* ```
|
||||
*/
|
||||
var LongType;
|
||||
(function (LongType) {
|
||||
/**
|
||||
* Use JavaScript `bigint`.
|
||||
*
|
||||
* Field option `[jstype = JS_NORMAL]`.
|
||||
*/
|
||||
LongType[LongType["BIGINT"] = 0] = "BIGINT";
|
||||
/**
|
||||
* Use JavaScript `string`.
|
||||
*
|
||||
* Field option `[jstype = JS_STRING]`.
|
||||
*/
|
||||
LongType[LongType["STRING"] = 1] = "STRING";
|
||||
/**
|
||||
* Use JavaScript `number`.
|
||||
*
|
||||
* Large values will loose precision.
|
||||
*
|
||||
* Field option `[jstype = JS_NUMBER]`.
|
||||
*/
|
||||
LongType[LongType["NUMBER"] = 2] = "NUMBER";
|
||||
})(LongType = exports.LongType || (exports.LongType = {}));
|
||||
/**
|
||||
* Protobuf 2.1.0 introduced packed repeated fields.
|
||||
* Setting the field option `[packed = true]` enables packing.
|
||||
*
|
||||
* In proto3, all repeated fields are packed by default.
|
||||
* Setting the field option `[packed = false]` disables packing.
|
||||
*
|
||||
* Packed repeated fields are encoded with a single tag,
|
||||
* then a length-delimiter, then the element values.
|
||||
*
|
||||
* Unpacked repeated fields are encoded with a tag and
|
||||
* value for each element.
|
||||
*
|
||||
* `bytes` and `string` cannot be packed.
|
||||
*/
|
||||
var RepeatType;
|
||||
(function (RepeatType) {
|
||||
/**
|
||||
* The field is not repeated.
|
||||
*/
|
||||
RepeatType[RepeatType["NO"] = 0] = "NO";
|
||||
/**
|
||||
* The field is repeated and should be packed.
|
||||
* Invalid for `bytes` and `string`, they cannot be packed.
|
||||
*/
|
||||
RepeatType[RepeatType["PACKED"] = 1] = "PACKED";
|
||||
/**
|
||||
* The field is repeated but should not be packed.
|
||||
* The only valid repeat type for repeated `bytes` and `string`.
|
||||
*/
|
||||
RepeatType[RepeatType["UNPACKED"] = 2] = "UNPACKED";
|
||||
})(RepeatType = exports.RepeatType || (exports.RepeatType = {}));
|
||||
/**
|
||||
* Turns PartialFieldInfo into FieldInfo.
|
||||
*/
|
||||
function normalizeFieldInfo(field) {
|
||||
var _a, _b, _c, _d;
|
||||
field.localName = (_a = field.localName) !== null && _a !== void 0 ? _a : lower_camel_case_1.lowerCamelCase(field.name);
|
||||
field.jsonName = (_b = field.jsonName) !== null && _b !== void 0 ? _b : lower_camel_case_1.lowerCamelCase(field.name);
|
||||
field.repeat = (_c = field.repeat) !== null && _c !== void 0 ? _c : RepeatType.NO;
|
||||
field.opt = (_d = field.opt) !== null && _d !== void 0 ? _d : (field.repeat ? false : field.oneof ? false : field.kind == "message");
|
||||
return field;
|
||||
}
|
||||
exports.normalizeFieldInfo = normalizeFieldInfo;
|
||||
/**
|
||||
* Read custom field options from a generated message type.
|
||||
*
|
||||
* @deprecated use readFieldOption()
|
||||
*/
|
||||
function readFieldOptions(messageType, fieldName, extensionName, extensionType) {
|
||||
var _a;
|
||||
const options = (_a = messageType.fields.find((m, i) => m.localName == fieldName || i == fieldName)) === null || _a === void 0 ? void 0 : _a.options;
|
||||
return options && options[extensionName] ? extensionType.fromJson(options[extensionName]) : undefined;
|
||||
}
|
||||
exports.readFieldOptions = readFieldOptions;
|
||||
function readFieldOption(messageType, fieldName, extensionName, extensionType) {
|
||||
var _a;
|
||||
const options = (_a = messageType.fields.find((m, i) => m.localName == fieldName || i == fieldName)) === null || _a === void 0 ? void 0 : _a.options;
|
||||
if (!options) {
|
||||
return undefined;
|
||||
}
|
||||
const optionVal = options[extensionName];
|
||||
if (optionVal === undefined) {
|
||||
return optionVal;
|
||||
}
|
||||
return extensionType ? extensionType.fromJson(optionVal) : optionVal;
|
||||
}
|
||||
exports.readFieldOption = readFieldOption;
|
||||
function readMessageOption(messageType, extensionName, extensionType) {
|
||||
const options = messageType.options;
|
||||
const optionVal = options[extensionName];
|
||||
if (optionVal === undefined) {
|
||||
return optionVal;
|
||||
}
|
||||
return extensionType ? extensionType.fromJson(optionVal) : optionVal;
|
||||
}
|
||||
exports.readMessageOption = readMessageOption;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 6790:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.ReflectionJsonReader = void 0;
|
||||
const json_typings_1 = __nccwpck_require__(9999);
|
||||
const base64_1 = __nccwpck_require__(6335);
|
||||
const reflection_info_1 = __nccwpck_require__(7910);
|
||||
const pb_long_1 = __nccwpck_require__(1753);
|
||||
const assert_1 = __nccwpck_require__(8602);
|
||||
const reflection_long_convert_1 = __nccwpck_require__(3402);
|
||||
/**
|
||||
* Reads proto3 messages in canonical JSON format using reflection information.
|
||||
*
|
||||
* https://developers.google.com/protocol-buffers/docs/proto3#json
|
||||
*/
|
||||
class ReflectionJsonReader {
|
||||
constructor(info) {
|
||||
this.info = info;
|
||||
}
|
||||
prepare() {
|
||||
var _a;
|
||||
if (this.fMap === undefined) {
|
||||
this.fMap = {};
|
||||
const fieldsInput = (_a = this.info.fields) !== null && _a !== void 0 ? _a : [];
|
||||
for (const field of fieldsInput) {
|
||||
this.fMap[field.name] = field;
|
||||
this.fMap[field.jsonName] = field;
|
||||
this.fMap[field.localName] = field;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Cannot parse JSON <type of jsonValue> for <type name>#<fieldName>.
|
||||
assert(condition, fieldName, jsonValue) {
|
||||
if (!condition) {
|
||||
let what = json_typings_1.typeofJsonValue(jsonValue);
|
||||
if (what == "number" || what == "boolean")
|
||||
what = jsonValue.toString();
|
||||
throw new Error(`Cannot parse JSON ${what} for ${this.info.typeName}#${fieldName}`);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Reads a message from canonical JSON format into the target message.
|
||||
*
|
||||
* Repeated fields are appended. Map entries are added, overwriting
|
||||
* existing keys.
|
||||
*
|
||||
* If a message field is already present, it will be merged with the
|
||||
* new data.
|
||||
*/
|
||||
read(input, message, options) {
|
||||
this.prepare();
|
||||
const oneofsHandled = [];
|
||||
for (const [jsonKey, jsonValue] of Object.entries(input)) {
|
||||
const field = this.fMap[jsonKey];
|
||||
if (!field) {
|
||||
if (!options.ignoreUnknownFields)
|
||||
throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${jsonKey}`);
|
||||
continue;
|
||||
}
|
||||
const localName = field.localName;
|
||||
// handle oneof ADT
|
||||
let target; // this will be the target for the field value, whether it is member of a oneof or not
|
||||
if (field.oneof) {
|
||||
if (jsonValue === null && (field.kind !== 'enum' || field.T()[0] !== 'google.protobuf.NullValue')) {
|
||||
continue;
|
||||
}
|
||||
// since json objects are unordered by specification, it is not possible to take the last of multiple oneofs
|
||||
if (oneofsHandled.includes(field.oneof))
|
||||
throw new Error(`Multiple members of the oneof group "${field.oneof}" of ${this.info.typeName} are present in JSON.`);
|
||||
oneofsHandled.push(field.oneof);
|
||||
target = message[field.oneof] = {
|
||||
oneofKind: localName
|
||||
};
|
||||
}
|
||||
else {
|
||||
target = message;
|
||||
}
|
||||
// we have handled oneof above. we just have read the value into `target`.
|
||||
if (field.kind == 'map') {
|
||||
if (jsonValue === null) {
|
||||
continue;
|
||||
}
|
||||
// check input
|
||||
this.assert(json_typings_1.isJsonObject(jsonValue), field.name, jsonValue);
|
||||
// our target to put map entries into
|
||||
const fieldObj = target[localName];
|
||||
// read entries
|
||||
for (const [jsonObjKey, jsonObjValue] of Object.entries(jsonValue)) {
|
||||
this.assert(jsonObjValue !== null, field.name + " map value", null);
|
||||
// read value
|
||||
let val;
|
||||
switch (field.V.kind) {
|
||||
case "message":
|
||||
val = field.V.T().internalJsonRead(jsonObjValue, options);
|
||||
break;
|
||||
case "enum":
|
||||
val = this.enum(field.V.T(), jsonObjValue, field.name, options.ignoreUnknownFields);
|
||||
if (val === false)
|
||||
continue;
|
||||
break;
|
||||
case "scalar":
|
||||
val = this.scalar(jsonObjValue, field.V.T, field.V.L, field.name);
|
||||
break;
|
||||
}
|
||||
this.assert(val !== undefined, field.name + " map value", jsonObjValue);
|
||||
// read key
|
||||
let key = jsonObjKey;
|
||||
if (field.K == reflection_info_1.ScalarType.BOOL)
|
||||
key = key == "true" ? true : key == "false" ? false : key;
|
||||
key = this.scalar(key, field.K, reflection_info_1.LongType.STRING, field.name).toString();
|
||||
fieldObj[key] = val;
|
||||
}
|
||||
}
|
||||
else if (field.repeat) {
|
||||
if (jsonValue === null)
|
||||
continue;
|
||||
// check input
|
||||
this.assert(Array.isArray(jsonValue), field.name, jsonValue);
|
||||
// our target to put array entries into
|
||||
const fieldArr = target[localName];
|
||||
// read array entries
|
||||
for (const jsonItem of jsonValue) {
|
||||
this.assert(jsonItem !== null, field.name, null);
|
||||
let val;
|
||||
switch (field.kind) {
|
||||
case "message":
|
||||
val = field.T().internalJsonRead(jsonItem, options);
|
||||
break;
|
||||
case "enum":
|
||||
val = this.enum(field.T(), jsonItem, field.name, options.ignoreUnknownFields);
|
||||
if (val === false)
|
||||
continue;
|
||||
break;
|
||||
case "scalar":
|
||||
val = this.scalar(jsonItem, field.T, field.L, field.name);
|
||||
break;
|
||||
}
|
||||
this.assert(val !== undefined, field.name, jsonValue);
|
||||
fieldArr.push(val);
|
||||
}
|
||||
}
|
||||
else {
|
||||
switch (field.kind) {
|
||||
case "message":
|
||||
if (jsonValue === null && field.T().typeName != 'google.protobuf.Value') {
|
||||
this.assert(field.oneof === undefined, field.name + " (oneof member)", null);
|
||||
continue;
|
||||
}
|
||||
target[localName] = field.T().internalJsonRead(jsonValue, options, target[localName]);
|
||||
break;
|
||||
case "enum":
|
||||
let val = this.enum(field.T(), jsonValue, field.name, options.ignoreUnknownFields);
|
||||
if (val === false)
|
||||
continue;
|
||||
target[localName] = val;
|
||||
break;
|
||||
case "scalar":
|
||||
target[localName] = this.scalar(jsonValue, field.T, field.L, field.name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Returns `false` for unrecognized string representations.
|
||||
*
|
||||
* google.protobuf.NullValue accepts only JSON `null` (or the old `"NULL_VALUE"`).
|
||||
*/
|
||||
enum(type, json, fieldName, ignoreUnknownFields) {
|
||||
if (type[0] == 'google.protobuf.NullValue')
|
||||
assert_1.assert(json === null || json === "NULL_VALUE", `Unable to parse field ${this.info.typeName}#${fieldName}, enum ${type[0]} only accepts null.`);
|
||||
if (json === null)
|
||||
// we require 0 to be default value for all enums
|
||||
return 0;
|
||||
switch (typeof json) {
|
||||
case "number":
|
||||
assert_1.assert(Number.isInteger(json), `Unable to parse field ${this.info.typeName}#${fieldName}, enum can only be integral number, got ${json}.`);
|
||||
return json;
|
||||
case "string":
|
||||
let localEnumName = json;
|
||||
if (type[2] && json.substring(0, type[2].length) === type[2])
|
||||
// lookup without the shared prefix
|
||||
localEnumName = json.substring(type[2].length);
|
||||
let enumNumber = type[1][localEnumName];
|
||||
if (typeof enumNumber === 'undefined' && ignoreUnknownFields) {
|
||||
return false;
|
||||
}
|
||||
assert_1.assert(typeof enumNumber == "number", `Unable to parse field ${this.info.typeName}#${fieldName}, enum ${type[0]} has no value for "${json}".`);
|
||||
return enumNumber;
|
||||
}
|
||||
assert_1.assert(false, `Unable to parse field ${this.info.typeName}#${fieldName}, cannot parse enum value from ${typeof json}".`);
|
||||
}
|
||||
scalar(json, type, longType, fieldName) {
|
||||
let e;
|
||||
try {
|
||||
switch (type) {
|
||||
// float, double: JSON value will be a number or one of the special string values "NaN", "Infinity", and "-Infinity".
|
||||
// Either numbers or strings are accepted. Exponent notation is also accepted.
|
||||
case reflection_info_1.ScalarType.DOUBLE:
|
||||
case reflection_info_1.ScalarType.FLOAT:
|
||||
if (json === null)
|
||||
return .0;
|
||||
if (json === "NaN")
|
||||
return Number.NaN;
|
||||
if (json === "Infinity")
|
||||
return Number.POSITIVE_INFINITY;
|
||||
if (json === "-Infinity")
|
||||
return Number.NEGATIVE_INFINITY;
|
||||
if (json === "") {
|
||||
e = "empty string";
|
||||
break;
|
||||
}
|
||||
if (typeof json == "string" && json.trim().length !== json.length) {
|
||||
e = "extra whitespace";
|
||||
break;
|
||||
}
|
||||
if (typeof json != "string" && typeof json != "number") {
|
||||
break;
|
||||
}
|
||||
let float = Number(json);
|
||||
if (Number.isNaN(float)) {
|
||||
e = "not a number";
|
||||
break;
|
||||
}
|
||||
if (!Number.isFinite(float)) {
|
||||
// infinity and -infinity are handled by string representation above, so this is an error
|
||||
e = "too large or small";
|
||||
break;
|
||||
}
|
||||
if (type == reflection_info_1.ScalarType.FLOAT)
|
||||
assert_1.assertFloat32(float);
|
||||
return float;
|
||||
// int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.
|
||||
case reflection_info_1.ScalarType.INT32:
|
||||
case reflection_info_1.ScalarType.FIXED32:
|
||||
case reflection_info_1.ScalarType.SFIXED32:
|
||||
case reflection_info_1.ScalarType.SINT32:
|
||||
case reflection_info_1.ScalarType.UINT32:
|
||||
if (json === null)
|
||||
return 0;
|
||||
let int32;
|
||||
if (typeof json == "number")
|
||||
int32 = json;
|
||||
else if (json === "")
|
||||
e = "empty string";
|
||||
else if (typeof json == "string") {
|
||||
if (json.trim().length !== json.length)
|
||||
e = "extra whitespace";
|
||||
else
|
||||
int32 = Number(json);
|
||||
}
|
||||
if (int32 === undefined)
|
||||
break;
|
||||
if (type == reflection_info_1.ScalarType.UINT32)
|
||||
assert_1.assertUInt32(int32);
|
||||
else
|
||||
assert_1.assertInt32(int32);
|
||||
return int32;
|
||||
// int64, fixed64, uint64: JSON value will be a decimal string. Either numbers or strings are accepted.
|
||||
case reflection_info_1.ScalarType.INT64:
|
||||
case reflection_info_1.ScalarType.SFIXED64:
|
||||
case reflection_info_1.ScalarType.SINT64:
|
||||
if (json === null)
|
||||
return reflection_long_convert_1.reflectionLongConvert(pb_long_1.PbLong.ZERO, longType);
|
||||
if (typeof json != "number" && typeof json != "string")
|
||||
break;
|
||||
return reflection_long_convert_1.reflectionLongConvert(pb_long_1.PbLong.from(json), longType);
|
||||
case reflection_info_1.ScalarType.FIXED64:
|
||||
case reflection_info_1.ScalarType.UINT64:
|
||||
if (json === null)
|
||||
return reflection_long_convert_1.reflectionLongConvert(pb_long_1.PbULong.ZERO, longType);
|
||||
if (typeof json != "number" && typeof json != "string")
|
||||
break;
|
||||
return reflection_long_convert_1.reflectionLongConvert(pb_long_1.PbULong.from(json), longType);
|
||||
// bool:
|
||||
case reflection_info_1.ScalarType.BOOL:
|
||||
if (json === null)
|
||||
return false;
|
||||
if (typeof json !== "boolean")
|
||||
break;
|
||||
return json;
|
||||
// string:
|
||||
case reflection_info_1.ScalarType.STRING:
|
||||
if (json === null)
|
||||
return "";
|
||||
if (typeof json !== "string") {
|
||||
e = "extra whitespace";
|
||||
break;
|
||||
}
|
||||
try {
|
||||
encodeURIComponent(json);
|
||||
}
|
||||
catch (e) {
|
||||
e = "invalid UTF8";
|
||||
break;
|
||||
}
|
||||
return json;
|
||||
// bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.
|
||||
// Either standard or URL-safe base64 encoding with/without paddings are accepted.
|
||||
case reflection_info_1.ScalarType.BYTES:
|
||||
if (json === null || json === "")
|
||||
return new Uint8Array(0);
|
||||
if (typeof json !== 'string')
|
||||
break;
|
||||
return base64_1.base64decode(json);
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
e = error.message;
|
||||
}
|
||||
this.assert(false, fieldName + (e ? " - " + e : ""), json);
|
||||
}
|
||||
}
|
||||
exports.ReflectionJsonReader = ReflectionJsonReader;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 1094:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.ReflectionJsonWriter = void 0;
|
||||
const base64_1 = __nccwpck_require__(6335);
|
||||
const pb_long_1 = __nccwpck_require__(1753);
|
||||
const reflection_info_1 = __nccwpck_require__(7910);
|
||||
const assert_1 = __nccwpck_require__(8602);
|
||||
/**
|
||||
* Writes proto3 messages in canonical JSON format using reflection
|
||||
* information.
|
||||
*
|
||||
* https://developers.google.com/protocol-buffers/docs/proto3#json
|
||||
*/
|
||||
class ReflectionJsonWriter {
|
||||
constructor(info) {
|
||||
var _a;
|
||||
this.fields = (_a = info.fields) !== null && _a !== void 0 ? _a : [];
|
||||
}
|
||||
/**
|
||||
* Converts the message to a JSON object, based on the field descriptors.
|
||||
*/
|
||||
write(message, options) {
|
||||
const json = {}, source = message;
|
||||
for (const field of this.fields) {
|
||||
// field is not part of a oneof, simply write as is
|
||||
if (!field.oneof) {
|
||||
let jsonValue = this.field(field, source[field.localName], options);
|
||||
if (jsonValue !== undefined)
|
||||
json[options.useProtoFieldName ? field.name : field.jsonName] = jsonValue;
|
||||
continue;
|
||||
}
|
||||
// field is part of a oneof
|
||||
const group = source[field.oneof];
|
||||
if (group.oneofKind !== field.localName)
|
||||
continue; // not selected, skip
|
||||
const opt = field.kind == 'scalar' || field.kind == 'enum'
|
||||
? Object.assign(Object.assign({}, options), { emitDefaultValues: true }) : options;
|
||||
let jsonValue = this.field(field, group[field.localName], opt);
|
||||
assert_1.assert(jsonValue !== undefined);
|
||||
json[options.useProtoFieldName ? field.name : field.jsonName] = jsonValue;
|
||||
}
|
||||
return json;
|
||||
}
|
||||
field(field, value, options) {
|
||||
let jsonValue = undefined;
|
||||
if (field.kind == 'map') {
|
||||
assert_1.assert(typeof value == "object" && value !== null);
|
||||
const jsonObj = {};
|
||||
switch (field.V.kind) {
|
||||
case "scalar":
|
||||
for (const [entryKey, entryValue] of Object.entries(value)) {
|
||||
const val = this.scalar(field.V.T, entryValue, field.name, false, true);
|
||||
assert_1.assert(val !== undefined);
|
||||
jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key
|
||||
}
|
||||
break;
|
||||
case "message":
|
||||
const messageType = field.V.T();
|
||||
for (const [entryKey, entryValue] of Object.entries(value)) {
|
||||
const val = this.message(messageType, entryValue, field.name, options);
|
||||
assert_1.assert(val !== undefined);
|
||||
jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key
|
||||
}
|
||||
break;
|
||||
case "enum":
|
||||
const enumInfo = field.V.T();
|
||||
for (const [entryKey, entryValue] of Object.entries(value)) {
|
||||
assert_1.assert(entryValue === undefined || typeof entryValue == 'number');
|
||||
const val = this.enum(enumInfo, entryValue, field.name, false, true, options.enumAsInteger);
|
||||
assert_1.assert(val !== undefined);
|
||||
jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (options.emitDefaultValues || Object.keys(jsonObj).length > 0)
|
||||
jsonValue = jsonObj;
|
||||
}
|
||||
else if (field.repeat) {
|
||||
assert_1.assert(Array.isArray(value));
|
||||
const jsonArr = [];
|
||||
switch (field.kind) {
|
||||
case "scalar":
|
||||
for (let i = 0; i < value.length; i++) {
|
||||
const val = this.scalar(field.T, value[i], field.name, field.opt, true);
|
||||
assert_1.assert(val !== undefined);
|
||||
jsonArr.push(val);
|
||||
}
|
||||
break;
|
||||
case "enum":
|
||||
const enumInfo = field.T();
|
||||
for (let i = 0; i < value.length; i++) {
|
||||
assert_1.assert(value[i] === undefined || typeof value[i] == 'number');
|
||||
const val = this.enum(enumInfo, value[i], field.name, field.opt, true, options.enumAsInteger);
|
||||
assert_1.assert(val !== undefined);
|
||||
jsonArr.push(val);
|
||||
}
|
||||
break;
|
||||
case "message":
|
||||
const messageType = field.T();
|
||||
for (let i = 0; i < value.length; i++) {
|
||||
const val = this.message(messageType, value[i], field.name, options);
|
||||
assert_1.assert(val !== undefined);
|
||||
jsonArr.push(val);
|
||||
}
|
||||
break;
|
||||
}
|
||||
// add converted array to json output
|
||||
if (options.emitDefaultValues || jsonArr.length > 0 || options.emitDefaultValues)
|
||||
jsonValue = jsonArr;
|
||||
}
|
||||
else {
|
||||
switch (field.kind) {
|
||||
case "scalar":
|
||||
jsonValue = this.scalar(field.T, value, field.name, field.opt, options.emitDefaultValues);
|
||||
break;
|
||||
case "enum":
|
||||
jsonValue = this.enum(field.T(), value, field.name, field.opt, options.emitDefaultValues, options.enumAsInteger);
|
||||
break;
|
||||
case "message":
|
||||
jsonValue = this.message(field.T(), value, field.name, options);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return jsonValue;
|
||||
}
|
||||
/**
|
||||
* Returns `null` as the default for google.protobuf.NullValue.
|
||||
*/
|
||||
enum(type, value, fieldName, optional, emitDefaultValues, enumAsInteger) {
|
||||
if (type[0] == 'google.protobuf.NullValue')
|
||||
return !emitDefaultValues && !optional ? undefined : null;
|
||||
if (value === undefined) {
|
||||
assert_1.assert(optional);
|
||||
return undefined;
|
||||
}
|
||||
if (value === 0 && !emitDefaultValues && !optional)
|
||||
// we require 0 to be default value for all enums
|
||||
return undefined;
|
||||
assert_1.assert(typeof value == 'number');
|
||||
assert_1.assert(Number.isInteger(value));
|
||||
if (enumAsInteger || !type[1].hasOwnProperty(value))
|
||||
// if we don't now the enum value, just return the number
|
||||
return value;
|
||||
if (type[2])
|
||||
// restore the dropped prefix
|
||||
return type[2] + type[1][value];
|
||||
return type[1][value];
|
||||
}
|
||||
message(type, value, fieldName, options) {
|
||||
if (value === undefined)
|
||||
return options.emitDefaultValues ? null : undefined;
|
||||
return type.internalJsonWrite(value, options);
|
||||
}
|
||||
scalar(type, value, fieldName, optional, emitDefaultValues) {
|
||||
if (value === undefined) {
|
||||
assert_1.assert(optional);
|
||||
return undefined;
|
||||
}
|
||||
const ed = emitDefaultValues || optional;
|
||||
// noinspection FallThroughInSwitchStatementJS
|
||||
switch (type) {
|
||||
// int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.
|
||||
case reflection_info_1.ScalarType.INT32:
|
||||
case reflection_info_1.ScalarType.SFIXED32:
|
||||
case reflection_info_1.ScalarType.SINT32:
|
||||
if (value === 0)
|
||||
return ed ? 0 : undefined;
|
||||
assert_1.assertInt32(value);
|
||||
return value;
|
||||
case reflection_info_1.ScalarType.FIXED32:
|
||||
case reflection_info_1.ScalarType.UINT32:
|
||||
if (value === 0)
|
||||
return ed ? 0 : undefined;
|
||||
assert_1.assertUInt32(value);
|
||||
return value;
|
||||
// float, double: JSON value will be a number or one of the special string values "NaN", "Infinity", and "-Infinity".
|
||||
// Either numbers or strings are accepted. Exponent notation is also accepted.
|
||||
case reflection_info_1.ScalarType.FLOAT:
|
||||
assert_1.assertFloat32(value);
|
||||
case reflection_info_1.ScalarType.DOUBLE:
|
||||
if (value === 0)
|
||||
return ed ? 0 : undefined;
|
||||
assert_1.assert(typeof value == 'number');
|
||||
if (Number.isNaN(value))
|
||||
return 'NaN';
|
||||
if (value === Number.POSITIVE_INFINITY)
|
||||
return 'Infinity';
|
||||
if (value === Number.NEGATIVE_INFINITY)
|
||||
return '-Infinity';
|
||||
return value;
|
||||
// string:
|
||||
case reflection_info_1.ScalarType.STRING:
|
||||
if (value === "")
|
||||
return ed ? '' : undefined;
|
||||
assert_1.assert(typeof value == 'string');
|
||||
return value;
|
||||
// bool:
|
||||
case reflection_info_1.ScalarType.BOOL:
|
||||
if (value === false)
|
||||
return ed ? false : undefined;
|
||||
assert_1.assert(typeof value == 'boolean');
|
||||
return value;
|
||||
// JSON value will be a decimal string. Either numbers or strings are accepted.
|
||||
case reflection_info_1.ScalarType.UINT64:
|
||||
case reflection_info_1.ScalarType.FIXED64:
|
||||
assert_1.assert(typeof value == 'number' || typeof value == 'string' || typeof value == 'bigint');
|
||||
let ulong = pb_long_1.PbULong.from(value);
|
||||
if (ulong.isZero() && !ed)
|
||||
return undefined;
|
||||
return ulong.toString();
|
||||
// JSON value will be a decimal string. Either numbers or strings are accepted.
|
||||
case reflection_info_1.ScalarType.INT64:
|
||||
case reflection_info_1.ScalarType.SFIXED64:
|
||||
case reflection_info_1.ScalarType.SINT64:
|
||||
assert_1.assert(typeof value == 'number' || typeof value == 'string' || typeof value == 'bigint');
|
||||
let long = pb_long_1.PbLong.from(value);
|
||||
if (long.isZero() && !ed)
|
||||
return undefined;
|
||||
return long.toString();
|
||||
// bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.
|
||||
// Either standard or URL-safe base64 encoding with/without paddings are accepted.
|
||||
case reflection_info_1.ScalarType.BYTES:
|
||||
assert_1.assert(value instanceof Uint8Array);
|
||||
if (!value.byteLength)
|
||||
return ed ? "" : undefined;
|
||||
return base64_1.base64encode(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.ReflectionJsonWriter = ReflectionJsonWriter;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 3402:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.reflectionLongConvert = void 0;
|
||||
const reflection_info_1 = __nccwpck_require__(7910);
|
||||
/**
|
||||
* Utility method to convert a PbLong or PbUlong to a JavaScript
|
||||
* representation during runtime.
|
||||
*
|
||||
* Works with generated field information, `undefined` is equivalent
|
||||
* to `STRING`.
|
||||
*/
|
||||
function reflectionLongConvert(long, type) {
|
||||
switch (type) {
|
||||
case reflection_info_1.LongType.BIGINT:
|
||||
return long.toBigInt();
|
||||
case reflection_info_1.LongType.NUMBER:
|
||||
return long.toNumber();
|
||||
default:
|
||||
// case undefined:
|
||||
// case LongType.STRING:
|
||||
return long.toString();
|
||||
}
|
||||
}
|
||||
exports.reflectionLongConvert = reflectionLongConvert;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 8044:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.reflectionMergePartial = void 0;
|
||||
/**
|
||||
* Copy partial data into the target message.
|
||||
*
|
||||
* If a singular scalar or enum field is present in the source, it
|
||||
* replaces the field in the target.
|
||||
*
|
||||
* If a singular message field is present in the source, it is merged
|
||||
* with the target field by calling mergePartial() of the responsible
|
||||
* message type.
|
||||
*
|
||||
* If a repeated field is present in the source, its values replace
|
||||
* all values in the target array, removing extraneous values.
|
||||
* Repeated message fields are copied, not merged.
|
||||
*
|
||||
* If a map field is present in the source, entries are added to the
|
||||
* target map, replacing entries with the same key. Entries that only
|
||||
* exist in the target remain. Entries with message values are copied,
|
||||
* not merged.
|
||||
*
|
||||
* Note that this function differs from protobuf merge semantics,
|
||||
* which appends repeated fields.
|
||||
*/
|
||||
function reflectionMergePartial(info, target, source) {
|
||||
let fieldValue, // the field value we are working with
|
||||
input = source, output; // where we want our field value to go
|
||||
for (let field of info.fields) {
|
||||
let name = field.localName;
|
||||
if (field.oneof) {
|
||||
const group = input[field.oneof]; // this is the oneof`s group in the source
|
||||
if ((group === null || group === void 0 ? void 0 : group.oneofKind) == undefined) { // the user is free to omit
|
||||
continue; // we skip this field, and all other members too
|
||||
}
|
||||
fieldValue = group[name]; // our value comes from the the oneof group of the source
|
||||
output = target[field.oneof]; // and our output is the oneof group of the target
|
||||
output.oneofKind = group.oneofKind; // always update discriminator
|
||||
if (fieldValue == undefined) {
|
||||
delete output[name]; // remove any existing value
|
||||
continue; // skip further work on field
|
||||
}
|
||||
}
|
||||
else {
|
||||
fieldValue = input[name]; // we are using the source directly
|
||||
output = target; // we want our field value to go directly into the target
|
||||
if (fieldValue == undefined) {
|
||||
continue; // skip further work on field, existing value is used as is
|
||||
}
|
||||
}
|
||||
if (field.repeat)
|
||||
output[name].length = fieldValue.length; // resize target array to match source array
|
||||
// now we just work with `fieldValue` and `output` to merge the value
|
||||
switch (field.kind) {
|
||||
case "scalar":
|
||||
case "enum":
|
||||
if (field.repeat)
|
||||
for (let i = 0; i < fieldValue.length; i++)
|
||||
output[name][i] = fieldValue[i]; // not a reference type
|
||||
else
|
||||
output[name] = fieldValue; // not a reference type
|
||||
break;
|
||||
case "message":
|
||||
let T = field.T();
|
||||
if (field.repeat)
|
||||
for (let i = 0; i < fieldValue.length; i++)
|
||||
output[name][i] = T.create(fieldValue[i]);
|
||||
else if (output[name] === undefined)
|
||||
output[name] = T.create(fieldValue); // nothing to merge with
|
||||
else
|
||||
T.mergePartial(output[name], fieldValue);
|
||||
break;
|
||||
case "map":
|
||||
// Map and repeated fields are simply overwritten, not appended or merged
|
||||
switch (field.V.kind) {
|
||||
case "scalar":
|
||||
case "enum":
|
||||
Object.assign(output[name], fieldValue); // elements are not reference types
|
||||
break;
|
||||
case "message":
|
||||
let T = field.V.T();
|
||||
for (let k of Object.keys(fieldValue))
|
||||
output[name][k] = T.create(fieldValue[k]);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.reflectionMergePartial = reflectionMergePartial;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 9526:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.reflectionScalarDefault = void 0;
|
||||
const reflection_info_1 = __nccwpck_require__(7910);
|
||||
const reflection_long_convert_1 = __nccwpck_require__(3402);
|
||||
const pb_long_1 = __nccwpck_require__(1753);
|
||||
/**
|
||||
* Creates the default value for a scalar type.
|
||||
*/
|
||||
function reflectionScalarDefault(type, longType = reflection_info_1.LongType.STRING) {
|
||||
switch (type) {
|
||||
case reflection_info_1.ScalarType.BOOL:
|
||||
return false;
|
||||
case reflection_info_1.ScalarType.UINT64:
|
||||
case reflection_info_1.ScalarType.FIXED64:
|
||||
return reflection_long_convert_1.reflectionLongConvert(pb_long_1.PbULong.ZERO, longType);
|
||||
case reflection_info_1.ScalarType.INT64:
|
||||
case reflection_info_1.ScalarType.SFIXED64:
|
||||
case reflection_info_1.ScalarType.SINT64:
|
||||
return reflection_long_convert_1.reflectionLongConvert(pb_long_1.PbLong.ZERO, longType);
|
||||
case reflection_info_1.ScalarType.DOUBLE:
|
||||
case reflection_info_1.ScalarType.FLOAT:
|
||||
return 0.0;
|
||||
case reflection_info_1.ScalarType.BYTES:
|
||||
return new Uint8Array(0);
|
||||
case reflection_info_1.ScalarType.STRING:
|
||||
return "";
|
||||
default:
|
||||
// case ScalarType.INT32:
|
||||
// case ScalarType.UINT32:
|
||||
// case ScalarType.SINT32:
|
||||
// case ScalarType.FIXED32:
|
||||
// case ScalarType.SFIXED32:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
exports.reflectionScalarDefault = reflectionScalarDefault;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 5167:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.ReflectionTypeCheck = void 0;
|
||||
const reflection_info_1 = __nccwpck_require__(7910);
|
||||
const oneof_1 = __nccwpck_require__(8063);
|
||||
// noinspection JSMethodCanBeStatic
|
||||
class ReflectionTypeCheck {
|
||||
constructor(info) {
|
||||
var _a;
|
||||
this.fields = (_a = info.fields) !== null && _a !== void 0 ? _a : [];
|
||||
}
|
||||
prepare() {
|
||||
if (this.data)
|
||||
return;
|
||||
const req = [], known = [], oneofs = [];
|
||||
for (let field of this.fields) {
|
||||
if (field.oneof) {
|
||||
if (!oneofs.includes(field.oneof)) {
|
||||
oneofs.push(field.oneof);
|
||||
req.push(field.oneof);
|
||||
known.push(field.oneof);
|
||||
}
|
||||
}
|
||||
else {
|
||||
known.push(field.localName);
|
||||
switch (field.kind) {
|
||||
case "scalar":
|
||||
case "enum":
|
||||
if (!field.opt || field.repeat)
|
||||
req.push(field.localName);
|
||||
break;
|
||||
case "message":
|
||||
if (field.repeat)
|
||||
req.push(field.localName);
|
||||
break;
|
||||
case "map":
|
||||
req.push(field.localName);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
this.data = { req, known, oneofs: Object.values(oneofs) };
|
||||
}
|
||||
/**
|
||||
* Is the argument a valid message as specified by the
|
||||
* reflection information?
|
||||
*
|
||||
* Checks all field types recursively. The `depth`
|
||||
* specifies how deep into the structure the check will be.
|
||||
*
|
||||
* With a depth of 0, only the presence of fields
|
||||
* is checked.
|
||||
*
|
||||
* With a depth of 1 or more, the field types are checked.
|
||||
*
|
||||
* With a depth of 2 or more, the members of map, repeated
|
||||
* and message fields are checked.
|
||||
*
|
||||
* Message fields will be checked recursively with depth - 1.
|
||||
*
|
||||
* The number of map entries / repeated values being checked
|
||||
* is < depth.
|
||||
*/
|
||||
is(message, depth, allowExcessProperties = false) {
|
||||
if (depth < 0)
|
||||
return true;
|
||||
if (message === null || message === undefined || typeof message != 'object')
|
||||
return false;
|
||||
this.prepare();
|
||||
let keys = Object.keys(message), data = this.data;
|
||||
// if a required field is missing in arg, this cannot be a T
|
||||
if (keys.length < data.req.length || data.req.some(n => !keys.includes(n)))
|
||||
return false;
|
||||
if (!allowExcessProperties) {
|
||||
// if the arg contains a key we dont know, this is not a literal T
|
||||
if (keys.some(k => !data.known.includes(k)))
|
||||
return false;
|
||||
}
|
||||
// "With a depth of 0, only the presence and absence of fields is checked."
|
||||
// "With a depth of 1 or more, the field types are checked."
|
||||
if (depth < 1) {
|
||||
return true;
|
||||
}
|
||||
// check oneof group
|
||||
for (const name of data.oneofs) {
|
||||
const group = message[name];
|
||||
if (!oneof_1.isOneofGroup(group))
|
||||
return false;
|
||||
if (group.oneofKind === undefined)
|
||||
continue;
|
||||
const field = this.fields.find(f => f.localName === group.oneofKind);
|
||||
if (!field)
|
||||
return false; // we found no field, but have a kind, something is wrong
|
||||
if (!this.field(group[group.oneofKind], field, allowExcessProperties, depth))
|
||||
return false;
|
||||
}
|
||||
// check types
|
||||
for (const field of this.fields) {
|
||||
if (field.oneof !== undefined)
|
||||
continue;
|
||||
if (!this.field(message[field.localName], field, allowExcessProperties, depth))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
field(arg, field, allowExcessProperties, depth) {
|
||||
let repeated = field.repeat;
|
||||
switch (field.kind) {
|
||||
case "scalar":
|
||||
if (arg === undefined)
|
||||
return field.opt;
|
||||
if (repeated)
|
||||
return this.scalars(arg, field.T, depth, field.L);
|
||||
return this.scalar(arg, field.T, field.L);
|
||||
case "enum":
|
||||
if (arg === undefined)
|
||||
return field.opt;
|
||||
if (repeated)
|
||||
return this.scalars(arg, reflection_info_1.ScalarType.INT32, depth);
|
||||
return this.scalar(arg, reflection_info_1.ScalarType.INT32);
|
||||
case "message":
|
||||
if (arg === undefined)
|
||||
return true;
|
||||
if (repeated)
|
||||
return this.messages(arg, field.T(), allowExcessProperties, depth);
|
||||
return this.message(arg, field.T(), allowExcessProperties, depth);
|
||||
case "map":
|
||||
if (typeof arg != 'object' || arg === null)
|
||||
return false;
|
||||
if (depth < 2)
|
||||
return true;
|
||||
if (!this.mapKeys(arg, field.K, depth))
|
||||
return false;
|
||||
switch (field.V.kind) {
|
||||
case "scalar":
|
||||
return this.scalars(Object.values(arg), field.V.T, depth, field.V.L);
|
||||
case "enum":
|
||||
return this.scalars(Object.values(arg), reflection_info_1.ScalarType.INT32, depth);
|
||||
case "message":
|
||||
return this.messages(Object.values(arg), field.V.T(), allowExcessProperties, depth);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
message(arg, type, allowExcessProperties, depth) {
|
||||
if (allowExcessProperties) {
|
||||
return type.isAssignable(arg, depth);
|
||||
}
|
||||
return type.is(arg, depth);
|
||||
}
|
||||
messages(arg, type, allowExcessProperties, depth) {
|
||||
if (!Array.isArray(arg))
|
||||
return false;
|
||||
if (depth < 2)
|
||||
return true;
|
||||
if (allowExcessProperties) {
|
||||
for (let i = 0; i < arg.length && i < depth; i++)
|
||||
if (!type.isAssignable(arg[i], depth - 1))
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
for (let i = 0; i < arg.length && i < depth; i++)
|
||||
if (!type.is(arg[i], depth - 1))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
scalar(arg, type, longType) {
|
||||
let argType = typeof arg;
|
||||
switch (type) {
|
||||
case reflection_info_1.ScalarType.UINT64:
|
||||
case reflection_info_1.ScalarType.FIXED64:
|
||||
case reflection_info_1.ScalarType.INT64:
|
||||
case reflection_info_1.ScalarType.SFIXED64:
|
||||
case reflection_info_1.ScalarType.SINT64:
|
||||
switch (longType) {
|
||||
case reflection_info_1.LongType.BIGINT:
|
||||
return argType == "bigint";
|
||||
case reflection_info_1.LongType.NUMBER:
|
||||
return argType == "number" && !isNaN(arg);
|
||||
default:
|
||||
return argType == "string";
|
||||
}
|
||||
case reflection_info_1.ScalarType.BOOL:
|
||||
return argType == 'boolean';
|
||||
case reflection_info_1.ScalarType.STRING:
|
||||
return argType == 'string';
|
||||
case reflection_info_1.ScalarType.BYTES:
|
||||
return arg instanceof Uint8Array;
|
||||
case reflection_info_1.ScalarType.DOUBLE:
|
||||
case reflection_info_1.ScalarType.FLOAT:
|
||||
return argType == 'number' && !isNaN(arg);
|
||||
default:
|
||||
// case ScalarType.UINT32:
|
||||
// case ScalarType.FIXED32:
|
||||
// case ScalarType.INT32:
|
||||
// case ScalarType.SINT32:
|
||||
// case ScalarType.SFIXED32:
|
||||
return argType == 'number' && Number.isInteger(arg);
|
||||
}
|
||||
}
|
||||
scalars(arg, type, depth, longType) {
|
||||
if (!Array.isArray(arg))
|
||||
return false;
|
||||
if (depth < 2)
|
||||
return true;
|
||||
if (Array.isArray(arg))
|
||||
for (let i = 0; i < arg.length && i < depth; i++)
|
||||
if (!this.scalar(arg[i], type, longType))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
mapKeys(map, type, depth) {
|
||||
let keys = Object.keys(map);
|
||||
switch (type) {
|
||||
case reflection_info_1.ScalarType.INT32:
|
||||
case reflection_info_1.ScalarType.FIXED32:
|
||||
case reflection_info_1.ScalarType.SFIXED32:
|
||||
case reflection_info_1.ScalarType.SINT32:
|
||||
case reflection_info_1.ScalarType.UINT32:
|
||||
return this.scalars(keys.slice(0, depth).map(k => parseInt(k)), type, depth);
|
||||
case reflection_info_1.ScalarType.BOOL:
|
||||
return this.scalars(keys.slice(0, depth).map(k => k == 'true' ? true : k == 'false' ? false : k), type, depth);
|
||||
default:
|
||||
return this.scalars(keys, type, depth, reflection_info_1.LongType.STRING);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.ReflectionTypeCheck = ReflectionTypeCheck;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 1324:
|
||||
@@ -48261,6 +55665,599 @@ DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {
|
||||
};
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 5129:
|
||||
/***/ ((module) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
|
||||
function _process (v, mod) {
|
||||
var i
|
||||
var r
|
||||
|
||||
if (typeof mod === 'function') {
|
||||
r = mod(v)
|
||||
if (r !== undefined) {
|
||||
v = r
|
||||
}
|
||||
} else if (Array.isArray(mod)) {
|
||||
for (i = 0; i < mod.length; i++) {
|
||||
r = mod[i](v)
|
||||
if (r !== undefined) {
|
||||
v = r
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return v
|
||||
}
|
||||
|
||||
function parseKey (key, val) {
|
||||
// detect negative index notation
|
||||
if (key[0] === '-' && Array.isArray(val) && /^-\d+$/.test(key)) {
|
||||
return val.length + parseInt(key, 10)
|
||||
}
|
||||
return key
|
||||
}
|
||||
|
||||
function isIndex (k) {
|
||||
return /^\d+$/.test(k)
|
||||
}
|
||||
|
||||
function isObject (val) {
|
||||
return Object.prototype.toString.call(val) === '[object Object]'
|
||||
}
|
||||
|
||||
function isArrayOrObject (val) {
|
||||
return Object(val) === val
|
||||
}
|
||||
|
||||
function isEmptyObject (val) {
|
||||
return Object.keys(val).length === 0
|
||||
}
|
||||
|
||||
var blacklist = ['__proto__', 'prototype', 'constructor']
|
||||
var blacklistFilter = function (part) { return blacklist.indexOf(part) === -1 }
|
||||
|
||||
function parsePath (path, sep) {
|
||||
if (path.indexOf('[') >= 0) {
|
||||
path = path.replace(/\[/g, sep).replace(/]/g, '')
|
||||
}
|
||||
|
||||
var parts = path.split(sep)
|
||||
|
||||
var check = parts.filter(blacklistFilter)
|
||||
|
||||
if (check.length !== parts.length) {
|
||||
throw Error('Refusing to update blacklisted property ' + path)
|
||||
}
|
||||
|
||||
return parts
|
||||
}
|
||||
|
||||
var hasOwnProperty = Object.prototype.hasOwnProperty
|
||||
|
||||
function DotObject (separator, override, useArray, useBrackets) {
|
||||
if (!(this instanceof DotObject)) {
|
||||
return new DotObject(separator, override, useArray, useBrackets)
|
||||
}
|
||||
|
||||
if (typeof override === 'undefined') override = false
|
||||
if (typeof useArray === 'undefined') useArray = true
|
||||
if (typeof useBrackets === 'undefined') useBrackets = true
|
||||
this.separator = separator || '.'
|
||||
this.override = override
|
||||
this.useArray = useArray
|
||||
this.useBrackets = useBrackets
|
||||
this.keepArray = false
|
||||
|
||||
// contains touched arrays
|
||||
this.cleanup = []
|
||||
}
|
||||
|
||||
var dotDefault = new DotObject('.', false, true, true)
|
||||
function wrap (method) {
|
||||
return function () {
|
||||
return dotDefault[method].apply(dotDefault, arguments)
|
||||
}
|
||||
}
|
||||
|
||||
DotObject.prototype._fill = function (a, obj, v, mod) {
|
||||
var k = a.shift()
|
||||
|
||||
if (a.length > 0) {
|
||||
obj[k] = obj[k] || (this.useArray && isIndex(a[0]) ? [] : {})
|
||||
|
||||
if (!isArrayOrObject(obj[k])) {
|
||||
if (this.override) {
|
||||
obj[k] = {}
|
||||
} else {
|
||||
if (!(isArrayOrObject(v) && isEmptyObject(v))) {
|
||||
throw new Error(
|
||||
'Trying to redefine `' + k + '` which is a ' + typeof obj[k]
|
||||
)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
this._fill(a, obj[k], v, mod)
|
||||
} else {
|
||||
if (!this.override && isArrayOrObject(obj[k]) && !isEmptyObject(obj[k])) {
|
||||
if (!(isArrayOrObject(v) && isEmptyObject(v))) {
|
||||
throw new Error("Trying to redefine non-empty obj['" + k + "']")
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
obj[k] = _process(v, mod)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Converts an object with dotted-key/value pairs to it's expanded version
|
||||
*
|
||||
* Optionally transformed by a set of modifiers.
|
||||
*
|
||||
* Usage:
|
||||
*
|
||||
* var row = {
|
||||
* 'nr': 200,
|
||||
* 'doc.name': ' My Document '
|
||||
* }
|
||||
*
|
||||
* var mods = {
|
||||
* 'doc.name': [_s.trim, _s.underscored]
|
||||
* }
|
||||
*
|
||||
* dot.object(row, mods)
|
||||
*
|
||||
* @param {Object} obj
|
||||
* @param {Object} mods
|
||||
*/
|
||||
DotObject.prototype.object = function (obj, mods) {
|
||||
var self = this
|
||||
|
||||
Object.keys(obj).forEach(function (k) {
|
||||
var mod = mods === undefined ? null : mods[k]
|
||||
// normalize array notation.
|
||||
var ok = parsePath(k, self.separator).join(self.separator)
|
||||
|
||||
if (ok.indexOf(self.separator) !== -1) {
|
||||
self._fill(ok.split(self.separator), obj, obj[k], mod)
|
||||
delete obj[k]
|
||||
} else {
|
||||
obj[k] = _process(obj[k], mod)
|
||||
}
|
||||
})
|
||||
|
||||
return obj
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {String} path dotted path
|
||||
* @param {String} v value to be set
|
||||
* @param {Object} obj object to be modified
|
||||
* @param {Function|Array} mod optional modifier
|
||||
*/
|
||||
DotObject.prototype.str = function (path, v, obj, mod) {
|
||||
var ok = parsePath(path, this.separator).join(this.separator)
|
||||
|
||||
if (path.indexOf(this.separator) !== -1) {
|
||||
this._fill(ok.split(this.separator), obj, v, mod)
|
||||
} else {
|
||||
obj[path] = _process(v, mod)
|
||||
}
|
||||
|
||||
return obj
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Pick a value from an object using dot notation.
|
||||
*
|
||||
* Optionally remove the value
|
||||
*
|
||||
* @param {String} path
|
||||
* @param {Object} obj
|
||||
* @param {Boolean} remove
|
||||
*/
|
||||
DotObject.prototype.pick = function (path, obj, remove, reindexArray) {
|
||||
var i
|
||||
var keys
|
||||
var val
|
||||
var key
|
||||
var cp
|
||||
|
||||
keys = parsePath(path, this.separator)
|
||||
for (i = 0; i < keys.length; i++) {
|
||||
key = parseKey(keys[i], obj)
|
||||
if (obj && typeof obj === 'object' && key in obj) {
|
||||
if (i === keys.length - 1) {
|
||||
if (remove) {
|
||||
val = obj[key]
|
||||
if (reindexArray && Array.isArray(obj)) {
|
||||
obj.splice(key, 1)
|
||||
} else {
|
||||
delete obj[key]
|
||||
}
|
||||
if (Array.isArray(obj)) {
|
||||
cp = keys.slice(0, -1).join('.')
|
||||
if (this.cleanup.indexOf(cp) === -1) {
|
||||
this.cleanup.push(cp)
|
||||
}
|
||||
}
|
||||
return val
|
||||
} else {
|
||||
return obj[key]
|
||||
}
|
||||
} else {
|
||||
obj = obj[key]
|
||||
}
|
||||
} else {
|
||||
return undefined
|
||||
}
|
||||
}
|
||||
if (remove && Array.isArray(obj)) {
|
||||
obj = obj.filter(function (n) {
|
||||
return n !== undefined
|
||||
})
|
||||
}
|
||||
return obj
|
||||
}
|
||||
/**
|
||||
*
|
||||
* Delete value from an object using dot notation.
|
||||
*
|
||||
* @param {String} path
|
||||
* @param {Object} obj
|
||||
* @return {any} The removed value
|
||||
*/
|
||||
DotObject.prototype.delete = function (path, obj) {
|
||||
return this.remove(path, obj, true)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Remove value from an object using dot notation.
|
||||
*
|
||||
* Will remove multiple items if path is an array.
|
||||
* In this case array indexes will be retained until all
|
||||
* removals have been processed.
|
||||
*
|
||||
* Use dot.delete() to automatically re-index arrays.
|
||||
*
|
||||
* @param {String|Array<String>} path
|
||||
* @param {Object} obj
|
||||
* @param {Boolean} reindexArray
|
||||
* @return {any} The removed value
|
||||
*/
|
||||
DotObject.prototype.remove = function (path, obj, reindexArray) {
|
||||
var i
|
||||
|
||||
this.cleanup = []
|
||||
if (Array.isArray(path)) {
|
||||
for (i = 0; i < path.length; i++) {
|
||||
this.pick(path[i], obj, true, reindexArray)
|
||||
}
|
||||
if (!reindexArray) {
|
||||
this._cleanup(obj)
|
||||
}
|
||||
return obj
|
||||
} else {
|
||||
return this.pick(path, obj, true, reindexArray)
|
||||
}
|
||||
}
|
||||
|
||||
DotObject.prototype._cleanup = function (obj) {
|
||||
var ret
|
||||
var i
|
||||
var keys
|
||||
var root
|
||||
if (this.cleanup.length) {
|
||||
for (i = 0; i < this.cleanup.length; i++) {
|
||||
keys = this.cleanup[i].split('.')
|
||||
root = keys.splice(0, -1).join('.')
|
||||
ret = root ? this.pick(root, obj) : obj
|
||||
ret = ret[keys[0]].filter(function (v) {
|
||||
return v !== undefined
|
||||
})
|
||||
this.set(this.cleanup[i], ret, obj)
|
||||
}
|
||||
this.cleanup = []
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Alias method for `dot.remove`
|
||||
*
|
||||
* Note: this is not an alias for dot.delete()
|
||||
*
|
||||
* @param {String|Array<String>} path
|
||||
* @param {Object} obj
|
||||
* @param {Boolean} reindexArray
|
||||
* @return {any} The removed value
|
||||
*/
|
||||
DotObject.prototype.del = DotObject.prototype.remove
|
||||
|
||||
/**
|
||||
*
|
||||
* Move a property from one place to the other.
|
||||
*
|
||||
* If the source path does not exist (undefined)
|
||||
* the target property will not be set.
|
||||
*
|
||||
* @param {String} source
|
||||
* @param {String} target
|
||||
* @param {Object} obj
|
||||
* @param {Function|Array} mods
|
||||
* @param {Boolean} merge
|
||||
*/
|
||||
DotObject.prototype.move = function (source, target, obj, mods, merge) {
|
||||
if (typeof mods === 'function' || Array.isArray(mods)) {
|
||||
this.set(target, _process(this.pick(source, obj, true), mods), obj, merge)
|
||||
} else {
|
||||
merge = mods
|
||||
this.set(target, this.pick(source, obj, true), obj, merge)
|
||||
}
|
||||
|
||||
return obj
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Transfer a property from one object to another object.
|
||||
*
|
||||
* If the source path does not exist (undefined)
|
||||
* the property on the other object will not be set.
|
||||
*
|
||||
* @param {String} source
|
||||
* @param {String} target
|
||||
* @param {Object} obj1
|
||||
* @param {Object} obj2
|
||||
* @param {Function|Array} mods
|
||||
* @param {Boolean} merge
|
||||
*/
|
||||
DotObject.prototype.transfer = function (
|
||||
source,
|
||||
target,
|
||||
obj1,
|
||||
obj2,
|
||||
mods,
|
||||
merge
|
||||
) {
|
||||
if (typeof mods === 'function' || Array.isArray(mods)) {
|
||||
this.set(
|
||||
target,
|
||||
_process(this.pick(source, obj1, true), mods),
|
||||
obj2,
|
||||
merge
|
||||
)
|
||||
} else {
|
||||
merge = mods
|
||||
this.set(target, this.pick(source, obj1, true), obj2, merge)
|
||||
}
|
||||
|
||||
return obj2
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Copy a property from one object to another object.
|
||||
*
|
||||
* If the source path does not exist (undefined)
|
||||
* the property on the other object will not be set.
|
||||
*
|
||||
* @param {String} source
|
||||
* @param {String} target
|
||||
* @param {Object} obj1
|
||||
* @param {Object} obj2
|
||||
* @param {Function|Array} mods
|
||||
* @param {Boolean} merge
|
||||
*/
|
||||
DotObject.prototype.copy = function (source, target, obj1, obj2, mods, merge) {
|
||||
if (typeof mods === 'function' || Array.isArray(mods)) {
|
||||
this.set(
|
||||
target,
|
||||
_process(
|
||||
// clone what is picked
|
||||
JSON.parse(JSON.stringify(this.pick(source, obj1, false))),
|
||||
mods
|
||||
),
|
||||
obj2,
|
||||
merge
|
||||
)
|
||||
} else {
|
||||
merge = mods
|
||||
this.set(target, this.pick(source, obj1, false), obj2, merge)
|
||||
}
|
||||
|
||||
return obj2
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Set a property on an object using dot notation.
|
||||
*
|
||||
* @param {String} path
|
||||
* @param {any} val
|
||||
* @param {Object} obj
|
||||
* @param {Boolean} merge
|
||||
*/
|
||||
DotObject.prototype.set = function (path, val, obj, merge) {
|
||||
var i
|
||||
var k
|
||||
var keys
|
||||
var key
|
||||
|
||||
// Do not operate if the value is undefined.
|
||||
if (typeof val === 'undefined') {
|
||||
return obj
|
||||
}
|
||||
keys = parsePath(path, this.separator)
|
||||
|
||||
for (i = 0; i < keys.length; i++) {
|
||||
key = keys[i]
|
||||
if (i === keys.length - 1) {
|
||||
if (merge && isObject(val) && isObject(obj[key])) {
|
||||
for (k in val) {
|
||||
if (hasOwnProperty.call(val, k)) {
|
||||
obj[key][k] = val[k]
|
||||
}
|
||||
}
|
||||
} else if (merge && Array.isArray(obj[key]) && Array.isArray(val)) {
|
||||
for (var j = 0; j < val.length; j++) {
|
||||
obj[keys[i]].push(val[j])
|
||||
}
|
||||
} else {
|
||||
obj[key] = val
|
||||
}
|
||||
} else if (
|
||||
// force the value to be an object
|
||||
!hasOwnProperty.call(obj, key) ||
|
||||
(!isObject(obj[key]) && !Array.isArray(obj[key]))
|
||||
) {
|
||||
// initialize as array if next key is numeric
|
||||
if (/^\d+$/.test(keys[i + 1])) {
|
||||
obj[key] = []
|
||||
} else {
|
||||
obj[key] = {}
|
||||
}
|
||||
}
|
||||
obj = obj[key]
|
||||
}
|
||||
return obj
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Transform an object
|
||||
*
|
||||
* Usage:
|
||||
*
|
||||
* var obj = {
|
||||
* "id": 1,
|
||||
* "some": {
|
||||
* "thing": "else"
|
||||
* }
|
||||
* }
|
||||
*
|
||||
* var transform = {
|
||||
* "id": "nr",
|
||||
* "some.thing": "name"
|
||||
* }
|
||||
*
|
||||
* var tgt = dot.transform(transform, obj)
|
||||
*
|
||||
* @param {Object} recipe Transform recipe
|
||||
* @param {Object} obj Object to be transformed
|
||||
* @param {Array} mods modifiers for the target
|
||||
*/
|
||||
DotObject.prototype.transform = function (recipe, obj, tgt) {
|
||||
obj = obj || {}
|
||||
tgt = tgt || {}
|
||||
Object.keys(recipe).forEach(
|
||||
function (key) {
|
||||
this.set(recipe[key], this.pick(key, obj), tgt)
|
||||
}.bind(this)
|
||||
)
|
||||
return tgt
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Convert object to dotted-key/value pair
|
||||
*
|
||||
* Usage:
|
||||
*
|
||||
* var tgt = dot.dot(obj)
|
||||
*
|
||||
* or
|
||||
*
|
||||
* var tgt = {}
|
||||
* dot.dot(obj, tgt)
|
||||
*
|
||||
* @param {Object} obj source object
|
||||
* @param {Object} tgt target object
|
||||
* @param {Array} path path array (internal)
|
||||
*/
|
||||
DotObject.prototype.dot = function (obj, tgt, path) {
|
||||
tgt = tgt || {}
|
||||
path = path || []
|
||||
var isArray = Array.isArray(obj)
|
||||
|
||||
Object.keys(obj).forEach(
|
||||
function (key) {
|
||||
var index = isArray && this.useBrackets ? '[' + key + ']' : key
|
||||
if (
|
||||
isArrayOrObject(obj[key]) &&
|
||||
((isObject(obj[key]) && !isEmptyObject(obj[key])) ||
|
||||
(Array.isArray(obj[key]) && !this.keepArray && obj[key].length !== 0))
|
||||
) {
|
||||
if (isArray && this.useBrackets) {
|
||||
var previousKey = path[path.length - 1] || ''
|
||||
return this.dot(
|
||||
obj[key],
|
||||
tgt,
|
||||
path.slice(0, -1).concat(previousKey + index)
|
||||
)
|
||||
} else {
|
||||
return this.dot(obj[key], tgt, path.concat(index))
|
||||
}
|
||||
} else {
|
||||
if (isArray && this.useBrackets) {
|
||||
tgt[path.join(this.separator).concat('[' + key + ']')] = obj[key]
|
||||
} else {
|
||||
tgt[path.concat(index).join(this.separator)] = obj[key]
|
||||
}
|
||||
}
|
||||
}.bind(this)
|
||||
)
|
||||
return tgt
|
||||
}
|
||||
|
||||
DotObject.pick = wrap('pick')
|
||||
DotObject.move = wrap('move')
|
||||
DotObject.transfer = wrap('transfer')
|
||||
DotObject.transform = wrap('transform')
|
||||
DotObject.copy = wrap('copy')
|
||||
DotObject.object = wrap('object')
|
||||
DotObject.str = wrap('str')
|
||||
DotObject.set = wrap('set')
|
||||
DotObject.delete = wrap('delete')
|
||||
DotObject.del = DotObject.remove = wrap('remove')
|
||||
DotObject.dot = wrap('dot');
|
||||
['override', 'overwrite'].forEach(function (prop) {
|
||||
Object.defineProperty(DotObject, prop, {
|
||||
get: function () {
|
||||
return dotDefault.override
|
||||
},
|
||||
set: function (val) {
|
||||
dotDefault.override = !!val
|
||||
}
|
||||
})
|
||||
});
|
||||
['useArray', 'keepArray', 'useBrackets'].forEach(function (prop) {
|
||||
Object.defineProperty(DotObject, prop, {
|
||||
get: function () {
|
||||
return dotDefault[prop]
|
||||
},
|
||||
set: function (val) {
|
||||
dotDefault[prop] = val
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
DotObject._process = _process
|
||||
|
||||
module.exports = DotObject
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 9829:
|
||||
@@ -53133,6 +61130,1152 @@ if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) {
|
||||
exports.debug = debug; // for test
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 5497:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 3315:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.isValidErrorCode = exports.httpStatusFromErrorCode = exports.TwirpErrorCode = exports.BadRouteError = exports.InternalServerErrorWith = exports.InternalServerError = exports.RequiredArgumentError = exports.InvalidArgumentError = exports.NotFoundError = exports.TwirpError = void 0;
|
||||
/**
|
||||
* Represents a twirp error
|
||||
*/
|
||||
class TwirpError extends Error {
|
||||
constructor(code, msg) {
|
||||
super(msg);
|
||||
this.code = TwirpErrorCode.Internal;
|
||||
this.meta = {};
|
||||
this.code = code;
|
||||
this.msg = msg;
|
||||
Object.setPrototypeOf(this, TwirpError.prototype);
|
||||
}
|
||||
/**
|
||||
* Adds a metadata kv to the error
|
||||
* @param key
|
||||
* @param value
|
||||
*/
|
||||
withMeta(key, value) {
|
||||
this.meta[key] = value;
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Returns a single metadata value
|
||||
* return "" if not found
|
||||
* @param key
|
||||
*/
|
||||
getMeta(key) {
|
||||
return this.meta[key] || "";
|
||||
}
|
||||
/**
|
||||
* Add the original error cause
|
||||
* @param err
|
||||
* @param addMeta
|
||||
*/
|
||||
withCause(err, addMeta = false) {
|
||||
this._originalCause = err;
|
||||
if (addMeta) {
|
||||
this.withMeta("cause", err.message);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
cause() {
|
||||
return this._originalCause;
|
||||
}
|
||||
/**
|
||||
* Returns the error representation to JSON
|
||||
*/
|
||||
toJSON() {
|
||||
try {
|
||||
return JSON.stringify({
|
||||
code: this.code,
|
||||
msg: this.msg,
|
||||
meta: this.meta,
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
return `{"code": "internal", "msg": "There was an error but it could not be serialized into JSON"}`;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Create a twirp error from an object
|
||||
* @param obj
|
||||
*/
|
||||
static fromObject(obj) {
|
||||
const code = obj["code"] || TwirpErrorCode.Unknown;
|
||||
const msg = obj["msg"] || "unknown";
|
||||
const error = new TwirpError(code, msg);
|
||||
if (obj["meta"]) {
|
||||
Object.keys(obj["meta"]).forEach((key) => {
|
||||
error.withMeta(key, obj["meta"][key]);
|
||||
});
|
||||
}
|
||||
return error;
|
||||
}
|
||||
}
|
||||
exports.TwirpError = TwirpError;
|
||||
/**
|
||||
* NotFoundError constructor for the common NotFound error.
|
||||
*/
|
||||
class NotFoundError extends TwirpError {
|
||||
constructor(msg) {
|
||||
super(TwirpErrorCode.NotFound, msg);
|
||||
}
|
||||
}
|
||||
exports.NotFoundError = NotFoundError;
|
||||
/**
|
||||
* InvalidArgumentError constructor for the common InvalidArgument error. Can be
|
||||
* used when an argument has invalid format, is a number out of range, is a bad
|
||||
* option, etc).
|
||||
*/
|
||||
class InvalidArgumentError extends TwirpError {
|
||||
constructor(argument, validationMsg) {
|
||||
super(TwirpErrorCode.InvalidArgument, argument + " " + validationMsg);
|
||||
this.withMeta("argument", argument);
|
||||
}
|
||||
}
|
||||
exports.InvalidArgumentError = InvalidArgumentError;
|
||||
/**
|
||||
* RequiredArgumentError is a more specific constructor for InvalidArgument
|
||||
* error. Should be used when the argument is required (expected to have a
|
||||
* non-zero value).
|
||||
*/
|
||||
class RequiredArgumentError extends InvalidArgumentError {
|
||||
constructor(argument) {
|
||||
super(argument, "is required");
|
||||
}
|
||||
}
|
||||
exports.RequiredArgumentError = RequiredArgumentError;
|
||||
/**
|
||||
* InternalError constructor for the common Internal error. Should be used to
|
||||
* specify that something bad or unexpected happened.
|
||||
*/
|
||||
class InternalServerError extends TwirpError {
|
||||
constructor(msg) {
|
||||
super(TwirpErrorCode.Internal, msg);
|
||||
}
|
||||
}
|
||||
exports.InternalServerError = InternalServerError;
|
||||
/**
|
||||
* InternalErrorWith makes an internal error, wrapping the original error and using it
|
||||
* for the error message, and with metadata "cause" with the original error type.
|
||||
* This function is used by Twirp services to wrap non-Twirp errors as internal errors.
|
||||
* The wrapped error can be extracted later with err.cause()
|
||||
*/
|
||||
class InternalServerErrorWith extends InternalServerError {
|
||||
constructor(err) {
|
||||
super(err.message);
|
||||
this.withMeta("cause", err.name);
|
||||
this.withCause(err);
|
||||
}
|
||||
}
|
||||
exports.InternalServerErrorWith = InternalServerErrorWith;
|
||||
/**
|
||||
* A standard BadRoute Error
|
||||
*/
|
||||
class BadRouteError extends TwirpError {
|
||||
constructor(msg, method, url) {
|
||||
super(TwirpErrorCode.BadRoute, msg);
|
||||
this.withMeta("twirp_invalid_route", method + " " + url);
|
||||
}
|
||||
}
|
||||
exports.BadRouteError = BadRouteError;
|
||||
var TwirpErrorCode;
|
||||
(function (TwirpErrorCode) {
|
||||
// Canceled indicates the operation was cancelled (typically by the caller).
|
||||
TwirpErrorCode["Canceled"] = "canceled";
|
||||
// Unknown error. For example when handling errors raised by APIs that do not
|
||||
// return enough error information.
|
||||
TwirpErrorCode["Unknown"] = "unknown";
|
||||
// InvalidArgument indicates client specified an invalid argument. It
|
||||
// indicates arguments that are problematic regardless of the state of the
|
||||
// system (i.e. a malformed file name, required argument, number out of range,
|
||||
// etc.).
|
||||
TwirpErrorCode["InvalidArgument"] = "invalid_argument";
|
||||
// Malformed indicates an error occurred while decoding the client's request.
|
||||
// This may mean that the message was encoded improperly, or that there is a
|
||||
// disagreement in message format between the client and server.
|
||||
TwirpErrorCode["Malformed"] = "malformed";
|
||||
// DeadlineExceeded means operation expired before completion. For operations
|
||||
// that change the state of the system, this error may be returned even if the
|
||||
// operation has completed successfully (timeout).
|
||||
TwirpErrorCode["DeadlineExceeded"] = "deadline_exceeded";
|
||||
// NotFound means some requested entity was not found.
|
||||
TwirpErrorCode["NotFound"] = "not_found";
|
||||
// BadRoute means that the requested URL path wasn't routable to a Twirp
|
||||
// service and method. This is returned by the generated server, and usually
|
||||
// shouldn't be returned by applications. Instead, applications should use
|
||||
// NotFound or Unimplemented.
|
||||
TwirpErrorCode["BadRoute"] = "bad_route";
|
||||
// AlreadyExists means an attempt to create an entity failed because one
|
||||
// already exists.
|
||||
TwirpErrorCode["AlreadyExists"] = "already_exists";
|
||||
// PermissionDenied indicates the caller does not have permission to execute
|
||||
// the specified operation. It must not be used if the caller cannot be
|
||||
// identified (Unauthenticated).
|
||||
TwirpErrorCode["PermissionDenied"] = "permission_denied";
|
||||
// Unauthenticated indicates the request does not have valid authentication
|
||||
// credentials for the operation.
|
||||
TwirpErrorCode["Unauthenticated"] = "unauthenticated";
|
||||
// ResourceExhausted indicates some resource has been exhausted, perhaps a
|
||||
// per-user quota, or perhaps the entire file system is out of space.
|
||||
TwirpErrorCode["ResourceExhausted"] = "resource_exhausted";
|
||||
// FailedPrecondition indicates operation was rejected because the system is
|
||||
// not in a state required for the operation's execution. For example, doing
|
||||
// an rmdir operation on a directory that is non-empty, or on a non-directory
|
||||
// object, or when having conflicting read-modify-write on the same resource.
|
||||
TwirpErrorCode["FailedPrecondition"] = "failed_precondition";
|
||||
// Aborted indicates the operation was aborted, typically due to a concurrency
|
||||
// issue like sequencer check failures, transaction aborts, etc.
|
||||
TwirpErrorCode["Aborted"] = "aborted";
|
||||
// OutOfRange means operation was attempted past the valid range. For example,
|
||||
// seeking or reading past end of a paginated collection.
|
||||
//
|
||||
// Unlike InvalidArgument, this error indicates a problem that may be fixed if
|
||||
// the system state changes (i.e. adding more items to the collection).
|
||||
//
|
||||
// There is a fair bit of overlap between FailedPrecondition and OutOfRange.
|
||||
// We recommend using OutOfRange (the more specific error) when it applies so
|
||||
// that callers who are iterating through a space can easily look for an
|
||||
// OutOfRange error to detect when they are done.
|
||||
TwirpErrorCode["OutOfRange"] = "out_of_range";
|
||||
// Unimplemented indicates operation is not implemented or not
|
||||
// supported/enabled in this service.
|
||||
TwirpErrorCode["Unimplemented"] = "unimplemented";
|
||||
// Internal errors. When some invariants expected by the underlying system
|
||||
// have been broken. In other words, something bad happened in the library or
|
||||
// backend service. Do not confuse with HTTP Internal Server Error; an
|
||||
// Internal error could also happen on the client code, i.e. when parsing a
|
||||
// server response.
|
||||
TwirpErrorCode["Internal"] = "internal";
|
||||
// Unavailable indicates the service is currently unavailable. This is a most
|
||||
// likely a transient condition and may be corrected by retrying with a
|
||||
// backoff.
|
||||
TwirpErrorCode["Unavailable"] = "unavailable";
|
||||
// DataLoss indicates unrecoverable data loss or corruption.
|
||||
TwirpErrorCode["DataLoss"] = "data_loss";
|
||||
})(TwirpErrorCode = exports.TwirpErrorCode || (exports.TwirpErrorCode = {}));
|
||||
// ServerHTTPStatusFromErrorCode maps a Twirp error type into a similar HTTP
|
||||
// response status. It is used by the Twirp server handler to set the HTTP
|
||||
// response status code. Returns 0 if the ErrorCode is invalid.
|
||||
function httpStatusFromErrorCode(code) {
|
||||
switch (code) {
|
||||
case TwirpErrorCode.Canceled:
|
||||
return 408; // RequestTimeout
|
||||
case TwirpErrorCode.Unknown:
|
||||
return 500; // Internal Server Error
|
||||
case TwirpErrorCode.InvalidArgument:
|
||||
return 400; // BadRequest
|
||||
case TwirpErrorCode.Malformed:
|
||||
return 400; // BadRequest
|
||||
case TwirpErrorCode.DeadlineExceeded:
|
||||
return 408; // RequestTimeout
|
||||
case TwirpErrorCode.NotFound:
|
||||
return 404; // Not Found
|
||||
case TwirpErrorCode.BadRoute:
|
||||
return 404; // Not Found
|
||||
case TwirpErrorCode.AlreadyExists:
|
||||
return 409; // Conflict
|
||||
case TwirpErrorCode.PermissionDenied:
|
||||
return 403; // Forbidden
|
||||
case TwirpErrorCode.Unauthenticated:
|
||||
return 401; // Unauthorized
|
||||
case TwirpErrorCode.ResourceExhausted:
|
||||
return 429; // Too Many Requests
|
||||
case TwirpErrorCode.FailedPrecondition:
|
||||
return 412; // Precondition Failed
|
||||
case TwirpErrorCode.Aborted:
|
||||
return 409; // Conflict
|
||||
case TwirpErrorCode.OutOfRange:
|
||||
return 400; // Bad Request
|
||||
case TwirpErrorCode.Unimplemented:
|
||||
return 501; // Not Implemented
|
||||
case TwirpErrorCode.Internal:
|
||||
return 500; // Internal Server Error
|
||||
case TwirpErrorCode.Unavailable:
|
||||
return 503; // Service Unavailable
|
||||
case TwirpErrorCode.DataLoss:
|
||||
return 500; // Internal Server Error
|
||||
default:
|
||||
return 0; // Invalid!
|
||||
}
|
||||
}
|
||||
exports.httpStatusFromErrorCode = httpStatusFromErrorCode;
|
||||
// IsValidErrorCode returns true if is one of the valid predefined constants.
|
||||
function isValidErrorCode(code) {
|
||||
return httpStatusFromErrorCode(code) != 0;
|
||||
}
|
||||
exports.isValidErrorCode = isValidErrorCode;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 9636:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __rest = (this && this.__rest) || function (s, e) {
|
||||
var t = {};
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
||||
t[p] = s[p];
|
||||
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
||||
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]))
|
||||
t[p[i]] = s[p[i]];
|
||||
}
|
||||
return t;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.Gateway = exports.Pattern = void 0;
|
||||
const querystring_1 = __nccwpck_require__(3480);
|
||||
const dotObject = __importStar(__nccwpck_require__(5129));
|
||||
const request_1 = __nccwpck_require__(9647);
|
||||
const errors_1 = __nccwpck_require__(3315);
|
||||
const http_client_1 = __nccwpck_require__(5683);
|
||||
const server_1 = __nccwpck_require__(1035);
|
||||
var Pattern;
|
||||
(function (Pattern) {
|
||||
Pattern["POST"] = "post";
|
||||
Pattern["GET"] = "get";
|
||||
Pattern["PATCH"] = "patch";
|
||||
Pattern["PUT"] = "put";
|
||||
Pattern["DELETE"] = "delete";
|
||||
})(Pattern = exports.Pattern || (exports.Pattern = {}));
|
||||
/**
|
||||
* The Gateway proxies http requests to Twirp Compliant
|
||||
* handlers
|
||||
*/
|
||||
class Gateway {
|
||||
constructor(routes) {
|
||||
this.routes = routes;
|
||||
}
|
||||
/**
|
||||
* Middleware that rewrite the current request
|
||||
* to a Twirp compliant request
|
||||
*/
|
||||
twirpRewrite(prefix = "/twirp") {
|
||||
return (req, resp, next) => {
|
||||
this.rewrite(req, resp, prefix)
|
||||
.then(() => next())
|
||||
.catch((e) => {
|
||||
if (e instanceof errors_1.TwirpError) {
|
||||
if (e.code !== errors_1.TwirpErrorCode.NotFound) {
|
||||
server_1.writeError(resp, e);
|
||||
}
|
||||
else {
|
||||
next();
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Rewrite an incoming request to a Twirp compliant request
|
||||
* @param req
|
||||
* @param resp
|
||||
* @param prefix
|
||||
*/
|
||||
rewrite(req, resp, prefix = "/twirp") {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const [match, route] = this.matchRoute(req);
|
||||
const body = yield this.prepareTwirpBody(req, match, route);
|
||||
const twirpUrl = `${prefix}/${route.packageName}.${route.serviceName}/${route.methodName}`;
|
||||
req.url = twirpUrl;
|
||||
req.originalUrl = twirpUrl;
|
||||
req.method = "POST";
|
||||
req.headers["content-type"] = "application/json";
|
||||
req.rawBody = Buffer.from(JSON.stringify(body));
|
||||
if (route.responseBodyKey) {
|
||||
const endFn = resp.end.bind(resp);
|
||||
resp.end = function (chunk) {
|
||||
if (resp.statusCode === 200) {
|
||||
endFn(`{ "${route.responseBodyKey}": ${chunk} }`);
|
||||
}
|
||||
else {
|
||||
endFn(chunk);
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Create a reverse proxy handler to
|
||||
* proxy http requests to Twirp Compliant handlers
|
||||
* @param httpClientOption
|
||||
*/
|
||||
reverseProxy(httpClientOption) {
|
||||
const client = http_client_1.NodeHttpRPC(httpClientOption);
|
||||
return (req, res) => __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
const [match, route] = this.matchRoute(req);
|
||||
const body = yield this.prepareTwirpBody(req, match, route);
|
||||
const response = yield client.request(`${route.packageName}.${route.serviceName}`, route.methodName, "application/json", body);
|
||||
res.statusCode = 200;
|
||||
res.setHeader("content-type", "application/json");
|
||||
let jsonResponse;
|
||||
if (route.responseBodyKey) {
|
||||
jsonResponse = JSON.stringify({ [route.responseBodyKey]: response });
|
||||
}
|
||||
else {
|
||||
jsonResponse = JSON.stringify(response);
|
||||
}
|
||||
res.end(jsonResponse);
|
||||
}
|
||||
catch (e) {
|
||||
server_1.writeError(res, e);
|
||||
}
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Prepares twirp body requests using http.google.annotions
|
||||
* compliant spec
|
||||
*
|
||||
* @param req
|
||||
* @param match
|
||||
* @param route
|
||||
* @protected
|
||||
*/
|
||||
prepareTwirpBody(req, match, route) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const _a = match.params, { query_string } = _a, params = __rest(_a, ["query_string"]);
|
||||
let requestBody = Object.assign({}, params);
|
||||
if (query_string && route.bodyKey !== "*") {
|
||||
const queryParams = this.parseQueryString(query_string);
|
||||
requestBody = Object.assign(Object.assign({}, queryParams), requestBody);
|
||||
}
|
||||
let body = {};
|
||||
if (route.bodyKey) {
|
||||
const data = yield request_1.getRequestData(req);
|
||||
try {
|
||||
const jsonBody = JSON.parse(data.toString() || "{}");
|
||||
if (route.bodyKey === "*") {
|
||||
body = jsonBody;
|
||||
}
|
||||
else {
|
||||
body[route.bodyKey] = jsonBody;
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
const msg = "the json request could not be decoded";
|
||||
throw new errors_1.TwirpError(errors_1.TwirpErrorCode.Malformed, msg).withCause(e, true);
|
||||
}
|
||||
}
|
||||
return Object.assign(Object.assign({}, body), requestBody);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Matches a route
|
||||
* @param req
|
||||
*/
|
||||
matchRoute(req) {
|
||||
var _a;
|
||||
const httpMethod = (_a = req.method) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
||||
if (!httpMethod) {
|
||||
throw new errors_1.BadRouteError(`method not allowed`, req.method || "", req.url || "");
|
||||
}
|
||||
const routes = this.routes[httpMethod];
|
||||
for (const route of routes) {
|
||||
const match = route.matcher(req.url || "/");
|
||||
if (match) {
|
||||
return [match, route];
|
||||
}
|
||||
}
|
||||
throw new errors_1.NotFoundError(`url ${req.url} not found`);
|
||||
}
|
||||
/**
|
||||
* Parse query string
|
||||
* @param queryString
|
||||
*/
|
||||
parseQueryString(queryString) {
|
||||
const queryParams = querystring_1.parse(queryString.replace("?", ""));
|
||||
return dotObject.object(queryParams);
|
||||
}
|
||||
}
|
||||
exports.Gateway = Gateway;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 3898:
|
||||
/***/ (function(__unused_webpack_module, exports) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.isHook = exports.chainHooks = void 0;
|
||||
// ChainHooks creates a new ServerHook which chains the callbacks in
|
||||
// each of the constituent hooks passed in. Each hook function will be
|
||||
// called in the order of the ServerHooks values passed in.
|
||||
//
|
||||
// For the erroring hooks, RequestReceived and RequestRouted, any returned
|
||||
// errors prevent processing by later hooks.
|
||||
function chainHooks(...hooks) {
|
||||
if (hooks.length === 0) {
|
||||
return null;
|
||||
}
|
||||
if (hooks.length === 1) {
|
||||
return hooks[0];
|
||||
}
|
||||
const serverHook = {
|
||||
requestReceived(ctx) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
for (const hook of hooks) {
|
||||
if (!hook.requestReceived) {
|
||||
continue;
|
||||
}
|
||||
yield hook.requestReceived(ctx);
|
||||
}
|
||||
});
|
||||
},
|
||||
requestPrepared(ctx) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
for (const hook of hooks) {
|
||||
if (!hook.requestPrepared) {
|
||||
continue;
|
||||
}
|
||||
console.warn("hook requestPrepared is deprecated and will be removed in the next release. " +
|
||||
"Please use responsePrepared instead.");
|
||||
yield hook.requestPrepared(ctx);
|
||||
}
|
||||
});
|
||||
},
|
||||
responsePrepared(ctx) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
for (const hook of hooks) {
|
||||
if (!hook.responsePrepared) {
|
||||
continue;
|
||||
}
|
||||
yield hook.responsePrepared(ctx);
|
||||
}
|
||||
});
|
||||
},
|
||||
requestSent(ctx) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
for (const hook of hooks) {
|
||||
if (!hook.requestSent) {
|
||||
continue;
|
||||
}
|
||||
console.warn("hook requestSent is deprecated and will be removed in the next release. " +
|
||||
"Please use responseSent instead.");
|
||||
yield hook.requestSent(ctx);
|
||||
}
|
||||
});
|
||||
},
|
||||
responseSent(ctx) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
for (const hook of hooks) {
|
||||
if (!hook.responseSent) {
|
||||
continue;
|
||||
}
|
||||
yield hook.responseSent(ctx);
|
||||
}
|
||||
});
|
||||
},
|
||||
requestRouted(ctx) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
for (const hook of hooks) {
|
||||
if (!hook.requestRouted) {
|
||||
continue;
|
||||
}
|
||||
yield hook.requestRouted(ctx);
|
||||
}
|
||||
});
|
||||
},
|
||||
error(ctx, err) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
for (const hook of hooks) {
|
||||
if (!hook.error) {
|
||||
continue;
|
||||
}
|
||||
yield hook.error(ctx, err);
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
return serverHook;
|
||||
}
|
||||
exports.chainHooks = chainHooks;
|
||||
function isHook(object) {
|
||||
return ("requestReceived" in object ||
|
||||
"requestPrepared" in object ||
|
||||
"requestSent" in object ||
|
||||
"requestRouted" in object ||
|
||||
"responsePrepared" in object ||
|
||||
"responseSent" in object ||
|
||||
"error" in object);
|
||||
}
|
||||
exports.isHook = isHook;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 5683:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.FetchRPC = exports.wrapErrorResponseToTwirpError = exports.NodeHttpRPC = void 0;
|
||||
const http = __importStar(__nccwpck_require__(8611));
|
||||
const https = __importStar(__nccwpck_require__(5692));
|
||||
const url_1 = __nccwpck_require__(7016);
|
||||
const errors_1 = __nccwpck_require__(3315);
|
||||
/**
|
||||
* a node HTTP RPC implementation
|
||||
* @param options
|
||||
* @constructor
|
||||
*/
|
||||
const NodeHttpRPC = (options) => ({
|
||||
request(service, method, contentType, data) {
|
||||
let client;
|
||||
return new Promise((resolve, rejected) => {
|
||||
const responseChunks = [];
|
||||
const requestData = contentType === "application/protobuf"
|
||||
? Buffer.from(data)
|
||||
: JSON.stringify(data);
|
||||
const url = new url_1.URL(options.baseUrl);
|
||||
const isHttps = url.protocol === "https:";
|
||||
if (isHttps) {
|
||||
client = https;
|
||||
}
|
||||
else {
|
||||
client = http;
|
||||
}
|
||||
const prefix = url.pathname !== "/" ? url.pathname : "";
|
||||
const req = client
|
||||
.request(Object.assign(Object.assign({}, (options ? options : {})), { method: "POST", protocol: url.protocol, host: url.hostname, port: url.port ? url.port : isHttps ? 443 : 80, path: `${prefix}/${service}/${method}`, headers: Object.assign(Object.assign({}, (options.headers ? options.headers : {})), { "Content-Type": contentType, "Content-Length": contentType === "application/protobuf"
|
||||
? Buffer.byteLength(requestData)
|
||||
: Buffer.from(requestData).byteLength }) }), (res) => {
|
||||
res.on("data", (chunk) => responseChunks.push(chunk));
|
||||
res.on("end", () => {
|
||||
const data = Buffer.concat(responseChunks);
|
||||
if (res.statusCode != 200) {
|
||||
rejected(wrapErrorResponseToTwirpError(data.toString()));
|
||||
}
|
||||
else {
|
||||
if (contentType === "application/json") {
|
||||
resolve(JSON.parse(data.toString()));
|
||||
}
|
||||
else {
|
||||
resolve(data);
|
||||
}
|
||||
}
|
||||
});
|
||||
res.on("error", (err) => {
|
||||
rejected(err);
|
||||
});
|
||||
})
|
||||
.on("error", (err) => {
|
||||
rejected(err);
|
||||
});
|
||||
req.end(requestData);
|
||||
});
|
||||
},
|
||||
});
|
||||
exports.NodeHttpRPC = NodeHttpRPC;
|
||||
function wrapErrorResponseToTwirpError(errorResponse) {
|
||||
return errors_1.TwirpError.fromObject(JSON.parse(errorResponse));
|
||||
}
|
||||
exports.wrapErrorResponseToTwirpError = wrapErrorResponseToTwirpError;
|
||||
/**
|
||||
* a browser fetch RPC implementation
|
||||
*/
|
||||
const FetchRPC = (options) => ({
|
||||
request(service, method, contentType, data) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const headers = new Headers(options.headers);
|
||||
headers.set("content-type", contentType);
|
||||
const response = yield fetch(`${options.baseUrl}/${service}/${method}`, Object.assign(Object.assign({}, options), { method: "POST", headers, body: data instanceof Uint8Array ? data : JSON.stringify(data) }));
|
||||
if (response.status === 200) {
|
||||
if (contentType === "application/json") {
|
||||
return yield response.json();
|
||||
}
|
||||
return new Uint8Array(yield response.arrayBuffer());
|
||||
}
|
||||
throw errors_1.TwirpError.fromObject(yield response.json());
|
||||
});
|
||||
},
|
||||
});
|
||||
exports.FetchRPC = FetchRPC;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 430:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
||||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.TwirpContentType = void 0;
|
||||
__exportStar(__nccwpck_require__(5497), exports);
|
||||
__exportStar(__nccwpck_require__(1035), exports);
|
||||
__exportStar(__nccwpck_require__(4036), exports);
|
||||
__exportStar(__nccwpck_require__(3898), exports);
|
||||
__exportStar(__nccwpck_require__(3315), exports);
|
||||
__exportStar(__nccwpck_require__(9636), exports);
|
||||
__exportStar(__nccwpck_require__(5683), exports);
|
||||
var request_1 = __nccwpck_require__(9647);
|
||||
Object.defineProperty(exports, "TwirpContentType", ({ enumerable: true, get: function () { return request_1.TwirpContentType; } }));
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 4036:
|
||||
/***/ (function(__unused_webpack_module, exports) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.chainInterceptors = void 0;
|
||||
// chains multiple Interceptors into a single Interceptor.
|
||||
// The first interceptor wraps the second one, and so on.
|
||||
// Returns null if interceptors is empty.
|
||||
function chainInterceptors(...interceptors) {
|
||||
if (interceptors.length === 0) {
|
||||
return;
|
||||
}
|
||||
if (interceptors.length === 1) {
|
||||
return interceptors[0];
|
||||
}
|
||||
const first = interceptors[0];
|
||||
return (ctx, request, handler) => __awaiter(this, void 0, void 0, function* () {
|
||||
let next = handler;
|
||||
for (let i = interceptors.length - 1; i > 0; i--) {
|
||||
next = ((next) => (ctx, typedRequest) => {
|
||||
return interceptors[i](ctx, typedRequest, next);
|
||||
})(next);
|
||||
}
|
||||
return first(ctx, request, next);
|
||||
});
|
||||
}
|
||||
exports.chainInterceptors = chainInterceptors;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 9647:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.parseTwirpPath = exports.getRequestData = exports.validateRequest = exports.getContentType = exports.TwirpContentType = void 0;
|
||||
const errors_1 = __nccwpck_require__(3315);
|
||||
/**
|
||||
* Supported Twirp Content-Type
|
||||
*/
|
||||
var TwirpContentType;
|
||||
(function (TwirpContentType) {
|
||||
TwirpContentType[TwirpContentType["Protobuf"] = 0] = "Protobuf";
|
||||
TwirpContentType[TwirpContentType["JSON"] = 1] = "JSON";
|
||||
TwirpContentType[TwirpContentType["Unknown"] = 2] = "Unknown";
|
||||
})(TwirpContentType = exports.TwirpContentType || (exports.TwirpContentType = {}));
|
||||
/**
|
||||
* Get supported content-type
|
||||
* @param mimeType
|
||||
*/
|
||||
function getContentType(mimeType) {
|
||||
switch (mimeType) {
|
||||
case "application/protobuf":
|
||||
return TwirpContentType.Protobuf;
|
||||
case "application/json":
|
||||
return TwirpContentType.JSON;
|
||||
default:
|
||||
return TwirpContentType.Unknown;
|
||||
}
|
||||
}
|
||||
exports.getContentType = getContentType;
|
||||
/**
|
||||
* Validate a twirp request
|
||||
* @param ctx
|
||||
* @param request
|
||||
* @param pathPrefix
|
||||
*/
|
||||
function validateRequest(ctx, request, pathPrefix) {
|
||||
if (request.method !== "POST") {
|
||||
const msg = `unsupported method ${request.method} (only POST is allowed)`;
|
||||
throw new errors_1.BadRouteError(msg, request.method || "", request.url || "");
|
||||
}
|
||||
const path = parseTwirpPath(request.url || "");
|
||||
if (path.pkgService !==
|
||||
(ctx.packageName ? ctx.packageName + "." : "") + ctx.serviceName) {
|
||||
const msg = `no handler for path ${request.url}`;
|
||||
throw new errors_1.BadRouteError(msg, request.method || "", request.url || "");
|
||||
}
|
||||
if (path.prefix !== pathPrefix) {
|
||||
const msg = `invalid path prefix ${path.prefix}, expected ${pathPrefix}, on path ${request.url}`;
|
||||
throw new errors_1.BadRouteError(msg, request.method || "", request.url || "");
|
||||
}
|
||||
const mimeContentType = request.headers["content-type"] || "";
|
||||
if (ctx.contentType === TwirpContentType.Unknown) {
|
||||
const msg = `unexpected Content-Type: ${request.headers["content-type"]}`;
|
||||
throw new errors_1.BadRouteError(msg, request.method || "", request.url || "");
|
||||
}
|
||||
return Object.assign(Object.assign({}, path), { mimeContentType, contentType: ctx.contentType });
|
||||
}
|
||||
exports.validateRequest = validateRequest;
|
||||
/**
|
||||
* Get request data from the body
|
||||
* @param req
|
||||
*/
|
||||
function getRequestData(req) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const reqWithRawBody = req;
|
||||
if (reqWithRawBody.rawBody instanceof Buffer) {
|
||||
resolve(reqWithRawBody.rawBody);
|
||||
return;
|
||||
}
|
||||
const chunks = [];
|
||||
req.on("data", (chunk) => chunks.push(chunk));
|
||||
req.on("end", () => __awaiter(this, void 0, void 0, function* () {
|
||||
const data = Buffer.concat(chunks);
|
||||
resolve(data);
|
||||
}));
|
||||
req.on("error", (err) => {
|
||||
if (req.aborted) {
|
||||
reject(new errors_1.TwirpError(errors_1.TwirpErrorCode.DeadlineExceeded, "failed to read request: deadline exceeded"));
|
||||
}
|
||||
else {
|
||||
reject(new errors_1.TwirpError(errors_1.TwirpErrorCode.Malformed, err.message).withCause(err));
|
||||
}
|
||||
});
|
||||
req.on("close", () => {
|
||||
reject(new errors_1.TwirpError(errors_1.TwirpErrorCode.Canceled, "failed to read request: context canceled"));
|
||||
});
|
||||
});
|
||||
}
|
||||
exports.getRequestData = getRequestData;
|
||||
/**
|
||||
* Parses twirp url path
|
||||
* @param path
|
||||
*/
|
||||
function parseTwirpPath(path) {
|
||||
const parts = path.split("/");
|
||||
if (parts.length < 2) {
|
||||
return {
|
||||
pkgService: "",
|
||||
method: "",
|
||||
prefix: "",
|
||||
};
|
||||
}
|
||||
return {
|
||||
method: parts[parts.length - 1],
|
||||
pkgService: parts[parts.length - 2],
|
||||
prefix: parts.slice(0, parts.length - 2).join("/"),
|
||||
};
|
||||
}
|
||||
exports.parseTwirpPath = parseTwirpPath;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 1035:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.writeError = exports.TwirpServer = void 0;
|
||||
const hooks_1 = __nccwpck_require__(3898);
|
||||
const request_1 = __nccwpck_require__(9647);
|
||||
const errors_1 = __nccwpck_require__(3315);
|
||||
/**
|
||||
* Runtime server implementation of a TwirpServer
|
||||
*/
|
||||
class TwirpServer {
|
||||
constructor(options) {
|
||||
this.pathPrefix = "/twirp";
|
||||
this.hooks = [];
|
||||
this.interceptors = [];
|
||||
this.packageName = options.packageName;
|
||||
this.serviceName = options.serviceName;
|
||||
this.methodList = options.methodList;
|
||||
this.matchRoute = options.matchRoute;
|
||||
this.service = options.service;
|
||||
}
|
||||
/**
|
||||
* Returns the prefix for this server
|
||||
*/
|
||||
get prefix() {
|
||||
return this.pathPrefix;
|
||||
}
|
||||
/**
|
||||
* The http handler for twirp complaint endpoints
|
||||
* @param options
|
||||
*/
|
||||
httpHandler(options) {
|
||||
return (req, resp) => {
|
||||
// setup prefix
|
||||
if ((options === null || options === void 0 ? void 0 : options.prefix) !== undefined) {
|
||||
this.withPrefix(options.prefix);
|
||||
}
|
||||
return this._httpHandler(req, resp);
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Adds interceptors or hooks to the request stack
|
||||
* @param middlewares
|
||||
*/
|
||||
use(...middlewares) {
|
||||
middlewares.forEach((middleware) => {
|
||||
if (hooks_1.isHook(middleware)) {
|
||||
this.hooks.push(middleware);
|
||||
return this;
|
||||
}
|
||||
this.interceptors.push(middleware);
|
||||
});
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Adds a prefix to the service url path
|
||||
* @param prefix
|
||||
*/
|
||||
withPrefix(prefix) {
|
||||
if (prefix === false) {
|
||||
this.pathPrefix = "";
|
||||
}
|
||||
else {
|
||||
this.pathPrefix = prefix;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Returns the regex matching path for this twirp server
|
||||
*/
|
||||
matchingPath() {
|
||||
const baseRegex = this.baseURI().replace(/\./g, "\\.");
|
||||
return new RegExp(`${baseRegex}\/(${this.methodList.join("|")})`);
|
||||
}
|
||||
/**
|
||||
* Returns the base URI for this twirp server
|
||||
*/
|
||||
baseURI() {
|
||||
return `${this.pathPrefix}/${this.packageName ? this.packageName + "." : ""}${this.serviceName}`;
|
||||
}
|
||||
/**
|
||||
* Create a twirp context
|
||||
* @param req
|
||||
* @param res
|
||||
* @private
|
||||
*/
|
||||
createContext(req, res) {
|
||||
return {
|
||||
packageName: this.packageName,
|
||||
serviceName: this.serviceName,
|
||||
methodName: "",
|
||||
contentType: request_1.getContentType(req.headers["content-type"]),
|
||||
req: req,
|
||||
res: res,
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Twrip server http handler implementation
|
||||
* @param req
|
||||
* @param resp
|
||||
* @private
|
||||
*/
|
||||
_httpHandler(req, resp) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const ctx = this.createContext(req, resp);
|
||||
try {
|
||||
yield this.invokeHook("requestReceived", ctx);
|
||||
const { method, mimeContentType } = request_1.validateRequest(ctx, req, this.pathPrefix || "");
|
||||
const handler = this.matchRoute(method, {
|
||||
onMatch: (ctx) => {
|
||||
return this.invokeHook("requestRouted", ctx);
|
||||
},
|
||||
onNotFound: () => {
|
||||
const msg = `no handler for path ${req.url}`;
|
||||
throw new errors_1.BadRouteError(msg, req.method || "", req.url || "");
|
||||
},
|
||||
});
|
||||
const body = yield request_1.getRequestData(req);
|
||||
const response = yield handler(ctx, this.service, body, this.interceptors);
|
||||
yield Promise.all([
|
||||
this.invokeHook("responsePrepared", ctx),
|
||||
// keep backwards compatibility till next release
|
||||
this.invokeHook("requestPrepared", ctx),
|
||||
]);
|
||||
resp.statusCode = 200;
|
||||
resp.setHeader("Content-Type", mimeContentType);
|
||||
resp.end(response);
|
||||
}
|
||||
catch (e) {
|
||||
yield this.invokeHook("error", ctx, mustBeTwirpError(e));
|
||||
if (!resp.headersSent) {
|
||||
writeError(resp, e);
|
||||
}
|
||||
}
|
||||
finally {
|
||||
yield Promise.all([
|
||||
this.invokeHook("responseSent", ctx),
|
||||
// keep backwards compatibility till next release
|
||||
this.invokeHook("requestSent", ctx),
|
||||
]);
|
||||
}
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Invoke a hook
|
||||
* @param hookName
|
||||
* @param ctx
|
||||
* @param err
|
||||
* @protected
|
||||
*/
|
||||
invokeHook(hookName, ctx, err) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
if (this.hooks.length === 0) {
|
||||
return;
|
||||
}
|
||||
const chainedHooks = hooks_1.chainHooks(...this.hooks);
|
||||
const hook = chainedHooks === null || chainedHooks === void 0 ? void 0 : chainedHooks[hookName];
|
||||
if (hook) {
|
||||
yield hook(ctx, err || new errors_1.InternalServerError("internal server error"));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.TwirpServer = TwirpServer;
|
||||
/**
|
||||
* Write http error response
|
||||
* @param res
|
||||
* @param error
|
||||
*/
|
||||
function writeError(res, error) {
|
||||
const twirpError = mustBeTwirpError(error);
|
||||
res.setHeader("Content-Type", "application/json");
|
||||
res.statusCode = errors_1.httpStatusFromErrorCode(twirpError.code);
|
||||
res.end(twirpError.toJSON());
|
||||
}
|
||||
exports.writeError = writeError;
|
||||
/**
|
||||
* Make sure that the error passed is a TwirpError
|
||||
* otherwise it will wrap it into an InternalError
|
||||
* @param err
|
||||
*/
|
||||
function mustBeTwirpError(err) {
|
||||
if (err instanceof errors_1.TwirpError) {
|
||||
return err;
|
||||
}
|
||||
return new errors_1.InternalServerErrorWith(err);
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 6752:
|
||||
@@ -61195,6 +70338,14 @@ const { isUint8Array, isArrayBuffer } = __nccwpck_require__(8253)
|
||||
const { File: UndiciFile } = __nccwpck_require__(3041)
|
||||
const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(4322)
|
||||
|
||||
let random
|
||||
try {
|
||||
const crypto = __nccwpck_require__(7598)
|
||||
random = (max) => crypto.randomInt(0, max)
|
||||
} catch {
|
||||
random = (max) => Math.floor(Math.random(max))
|
||||
}
|
||||
|
||||
let ReadableStream = globalThis.ReadableStream
|
||||
|
||||
/** @type {globalThis['File']} */
|
||||
@@ -61280,7 +70431,7 @@ function extractBody (object, keepalive = false) {
|
||||
// Set source to a copy of the bytes held by object.
|
||||
source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))
|
||||
} else if (util.isFormDataLike(object)) {
|
||||
const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}`
|
||||
const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, '0')}`
|
||||
const prefix = `--${boundary}\r\nContent-Disposition: form-data`
|
||||
|
||||
/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */
|
||||
@@ -82284,22 +91435,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.STATE_CACHE_MATCHED_KEY = exports.STATE_CACHE_KEY = void 0;
|
||||
exports.restoreCache = restoreCache;
|
||||
@@ -82308,43 +91460,69 @@ const core = __importStar(__nccwpck_require__(7484));
|
||||
const inputs_1 = __nccwpck_require__(9612);
|
||||
const platforms_1 = __nccwpck_require__(8361);
|
||||
const hash_files_1 = __nccwpck_require__(9660);
|
||||
const exec = __importStar(__nccwpck_require__(5236));
|
||||
exports.STATE_CACHE_KEY = "cache-key";
|
||||
exports.STATE_CACHE_MATCHED_KEY = "cache-matched-key";
|
||||
const CACHE_VERSION = "1";
|
||||
function restoreCache(version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const cacheKey = yield computeKeys(version);
|
||||
let matchedKey;
|
||||
core.info(`Trying to restore uv cache from GitHub Actions cache with key: ${cacheKey}`);
|
||||
try {
|
||||
matchedKey = yield cache.restoreCache([inputs_1.cacheLocalPath], cacheKey);
|
||||
}
|
||||
catch (err) {
|
||||
const message = err.message;
|
||||
core.warning(message);
|
||||
core.setOutput("cache-hit", false);
|
||||
return;
|
||||
}
|
||||
core.saveState(exports.STATE_CACHE_KEY, cacheKey);
|
||||
handleMatchResult(matchedKey, cacheKey);
|
||||
});
|
||||
async function restoreCache() {
|
||||
const cacheKey = await computeKeys();
|
||||
let matchedKey;
|
||||
core.info(`Trying to restore uv cache from GitHub Actions cache with key: ${cacheKey}`);
|
||||
try {
|
||||
matchedKey = await cache.restoreCache([inputs_1.cacheLocalPath], cacheKey);
|
||||
}
|
||||
catch (err) {
|
||||
const message = err.message;
|
||||
core.warning(message);
|
||||
core.setOutput("cache-hit", false);
|
||||
return;
|
||||
}
|
||||
core.saveState(exports.STATE_CACHE_KEY, cacheKey);
|
||||
handleMatchResult(matchedKey, cacheKey);
|
||||
}
|
||||
function computeKeys(version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let cacheDependencyPathHash = "-";
|
||||
if (inputs_1.cacheDependencyGlob !== "") {
|
||||
core.info(`Searching files using cache dependency glob: ${inputs_1.cacheDependencyGlob.split("\n").join(",")}`);
|
||||
cacheDependencyPathHash += yield (0, hash_files_1.hashFiles)(inputs_1.cacheDependencyGlob, true);
|
||||
if (cacheDependencyPathHash === "-") {
|
||||
throw new Error(`No file in ${process.cwd()} matched to [${inputs_1.cacheDependencyGlob.split("\n").join(",")}], make sure you have checked out the target repository`);
|
||||
}
|
||||
async function computeKeys() {
|
||||
let cacheDependencyPathHash = "-";
|
||||
if (inputs_1.cacheDependencyGlob !== "") {
|
||||
core.info(`Searching files using cache dependency glob: ${inputs_1.cacheDependencyGlob.split("\n").join(",")}`);
|
||||
cacheDependencyPathHash += await (0, hash_files_1.hashFiles)(inputs_1.cacheDependencyGlob, true);
|
||||
if (cacheDependencyPathHash === "-") {
|
||||
core.warning(`No file matched to [${inputs_1.cacheDependencyGlob.split("\n").join(",")}]. The cache will never get invalidated. Make sure you have checked out the target repository and configured the cache-dependency-glob input correctly.`);
|
||||
}
|
||||
else {
|
||||
cacheDependencyPathHash += "no-dependency-glob";
|
||||
}
|
||||
const suffix = inputs_1.cacheSuffix ? `-${inputs_1.cacheSuffix}` : "";
|
||||
return `setup-uv-${CACHE_VERSION}-${(0, platforms_1.getArch)()}-${(0, platforms_1.getPlatform)()}-${version}${cacheDependencyPathHash}${suffix}`;
|
||||
});
|
||||
}
|
||||
if (cacheDependencyPathHash === "-") {
|
||||
cacheDependencyPathHash = "-no-dependency-glob";
|
||||
}
|
||||
const suffix = inputs_1.cacheSuffix ? `-${inputs_1.cacheSuffix}` : "";
|
||||
const pythonVersion = await getPythonVersion();
|
||||
return `setup-uv-${CACHE_VERSION}-${(0, platforms_1.getArch)()}-${(0, platforms_1.getPlatform)()}-${pythonVersion}${cacheDependencyPathHash}${suffix}`;
|
||||
}
|
||||
async function getPythonVersion() {
|
||||
if (inputs_1.pythonVersion !== "") {
|
||||
return inputs_1.pythonVersion;
|
||||
}
|
||||
let output = "";
|
||||
const options = {
|
||||
silent: !core.isDebug(),
|
||||
listeners: {
|
||||
stdout: (data) => {
|
||||
output += data.toString();
|
||||
},
|
||||
},
|
||||
};
|
||||
try {
|
||||
const execArgs = ["python", "find"];
|
||||
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) {
|
||||
@@ -82381,29 +91559,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
||||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
||||
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);
|
||||
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); }
|
||||
};
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.hashFiles = hashFiles;
|
||||
const crypto = __importStar(__nccwpck_require__(7598));
|
||||
@@ -82420,49 +91592,34 @@ const glob_1 = __nccwpck_require__(7206);
|
||||
* @param pattern The glob pattern to match files.
|
||||
* @param verbose Whether to log the files being hashed.
|
||||
*/
|
||||
function hashFiles(pattern_1) {
|
||||
return __awaiter(this, arguments, void 0, function* (pattern, verbose = false) {
|
||||
var _a, e_1, _b, _c;
|
||||
const globber = yield (0, glob_1.create)(pattern);
|
||||
let hasMatch = false;
|
||||
const writeDelegate = verbose ? core.info : core.debug;
|
||||
const result = crypto.createHash("sha256");
|
||||
let count = 0;
|
||||
try {
|
||||
for (var _d = true, _e = __asyncValues(globber.globGenerator()), _f; _f = yield _e.next(), _a = _f.done, !_a; _d = true) {
|
||||
_c = _f.value;
|
||||
_d = false;
|
||||
const file = _c;
|
||||
writeDelegate(file);
|
||||
if (fs.statSync(file).isDirectory()) {
|
||||
writeDelegate(`Skip directory '${file}'.`);
|
||||
continue;
|
||||
}
|
||||
const hash = crypto.createHash("sha256");
|
||||
const pipeline = util.promisify(stream.pipeline);
|
||||
yield pipeline(fs.createReadStream(file), hash);
|
||||
result.write(hash.digest());
|
||||
count++;
|
||||
if (!hasMatch) {
|
||||
hasMatch = true;
|
||||
}
|
||||
}
|
||||
async function hashFiles(pattern, verbose = false) {
|
||||
const globber = await (0, glob_1.create)(pattern);
|
||||
let hasMatch = false;
|
||||
const writeDelegate = verbose ? core.info : core.debug;
|
||||
const result = crypto.createHash("sha256");
|
||||
let count = 0;
|
||||
for await (const file of globber.globGenerator()) {
|
||||
writeDelegate(file);
|
||||
if (fs.statSync(file).isDirectory()) {
|
||||
writeDelegate(`Skip directory '${file}'.`);
|
||||
continue;
|
||||
}
|
||||
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
||||
finally {
|
||||
try {
|
||||
if (!_d && !_a && (_b = _e.return)) yield _b.call(_e);
|
||||
}
|
||||
finally { if (e_1) throw e_1.error; }
|
||||
const hash = crypto.createHash("sha256");
|
||||
const pipeline = util.promisify(stream.pipeline);
|
||||
await pipeline(fs.createReadStream(file), hash);
|
||||
result.write(hash.digest());
|
||||
count++;
|
||||
if (!hasMatch) {
|
||||
hasMatch = true;
|
||||
}
|
||||
result.end();
|
||||
if (hasMatch) {
|
||||
writeDelegate(`Found ${count} files to hash.`);
|
||||
return result.digest("hex");
|
||||
}
|
||||
writeDelegate("No matches found for glob");
|
||||
return "";
|
||||
});
|
||||
}
|
||||
result.end();
|
||||
if (hasMatch) {
|
||||
writeDelegate(`Found ${count} files to hash.`);
|
||||
return result.digest("hex");
|
||||
}
|
||||
writeDelegate("No matches found for glob");
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
@@ -82489,76 +91646,110 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
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 step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.run = run;
|
||||
const cache = __importStar(__nccwpck_require__(5116));
|
||||
const core = __importStar(__nccwpck_require__(7484));
|
||||
const exec = __importStar(__nccwpck_require__(5236));
|
||||
const fs = __importStar(__nccwpck_require__(3024));
|
||||
const restore_cache_1 = __nccwpck_require__(5391);
|
||||
const inputs_1 = __nccwpck_require__(9612);
|
||||
function run() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
if (inputs_1.enableCache) {
|
||||
yield saveCache();
|
||||
}
|
||||
const constants_1 = __nccwpck_require__(6156);
|
||||
async function run() {
|
||||
try {
|
||||
if (inputs_1.enableCache) {
|
||||
await saveCache();
|
||||
// node will stay alive if any promises are not resolved,
|
||||
// which is a possibility if HTTP requests are dangling
|
||||
// due to retries or timeouts. We know that if we got here
|
||||
// that all promises that we care about have successfully
|
||||
// resolved, so simply exit with success.
|
||||
process.exit(0);
|
||||
}
|
||||
catch (error) {
|
||||
const err = error;
|
||||
core.setFailed(err.message);
|
||||
}
|
||||
process.exit(0);
|
||||
});
|
||||
}
|
||||
catch (error) {
|
||||
const err = error;
|
||||
core.setFailed(err.message);
|
||||
}
|
||||
}
|
||||
function saveCache() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const cacheKey = core.getState(restore_cache_1.STATE_CACHE_KEY);
|
||||
const matchedKey = core.getState(restore_cache_1.STATE_CACHE_MATCHED_KEY);
|
||||
if (!cacheKey) {
|
||||
core.warning("Error retrieving cache key from state.");
|
||||
return;
|
||||
}
|
||||
if (matchedKey === cacheKey) {
|
||||
core.info(`Cache hit occurred on key ${cacheKey}, not saving cache.`);
|
||||
return;
|
||||
}
|
||||
if (inputs_1.pruneCache) {
|
||||
yield pruneCache();
|
||||
}
|
||||
core.info(`Saving cache path: ${inputs_1.cacheLocalPath}`);
|
||||
yield cache.saveCache([inputs_1.cacheLocalPath], cacheKey);
|
||||
async function saveCache() {
|
||||
const cacheKey = core.getState(restore_cache_1.STATE_CACHE_KEY);
|
||||
const matchedKey = core.getState(restore_cache_1.STATE_CACHE_MATCHED_KEY);
|
||||
if (!cacheKey) {
|
||||
core.warning("Error retrieving cache key from state.");
|
||||
return;
|
||||
}
|
||||
if (matchedKey === cacheKey) {
|
||||
core.info(`Cache hit occurred on key ${cacheKey}, not saving cache.`);
|
||||
return;
|
||||
}
|
||||
if (inputs_1.pruneCache) {
|
||||
await pruneCache();
|
||||
}
|
||||
core.info(`Saving cache path: ${inputs_1.cacheLocalPath}`);
|
||||
if (!fs.existsSync(inputs_1.cacheLocalPath) && !inputs_1.ignoreNothingToCache) {
|
||||
throw new Error(`Cache path ${inputs_1.cacheLocalPath} 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.`);
|
||||
}
|
||||
try {
|
||||
await cache.saveCache([inputs_1.cacheLocalPath], 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
function pruneCache() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const options = {
|
||||
silent: !core.isDebug(),
|
||||
};
|
||||
const execArgs = ["cache", "prune", "--ci"];
|
||||
core.info("Pruning cache...");
|
||||
yield exec.exec("uv", execArgs, options);
|
||||
});
|
||||
async function pruneCache() {
|
||||
const uvDir = core.getState(constants_1.STATE_CACHED_UV_DIR);
|
||||
const options = {
|
||||
silent: false,
|
||||
env: { PATH: uvDir },
|
||||
};
|
||||
const execArgs = ["cache", "prune", "--ci"];
|
||||
core.info("Pruning cache...");
|
||||
await exec.exec("uv", execArgs, options);
|
||||
}
|
||||
run();
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 6156:
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.STATE_CACHED_UV_DIR = exports.TOOL_CACHE_NAME = exports.OWNER = exports.REPO = void 0;
|
||||
exports.REPO = "uv";
|
||||
exports.OWNER = "astral-sh";
|
||||
exports.TOOL_CACHE_NAME = "uv";
|
||||
exports.STATE_CACHED_UV_DIR = "cached-uv-dir";
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 9612:
|
||||
@@ -82582,30 +91773,51 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.githubToken = exports.toolDir = exports.toolBinDir = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.enableCache = exports.checkSum = exports.version = void 0;
|
||||
exports.githubToken = exports.toolDir = exports.toolBinDir = exports.ignoreNothingToCache = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.enableCache = exports.checkSum = exports.pythonVersion = exports.uvFile = exports.pyProjectFile = exports.version = void 0;
|
||||
const core = __importStar(__nccwpck_require__(7484));
|
||||
const node_path_1 = __importDefault(__nccwpck_require__(6760));
|
||||
exports.version = core.getInput("version");
|
||||
exports.pyProjectFile = core.getInput("pyproject-file");
|
||||
exports.uvFile = core.getInput("uv-file");
|
||||
exports.pythonVersion = core.getInput("python-version");
|
||||
exports.checkSum = core.getInput("checksum");
|
||||
exports.enableCache = core.getInput("enable-cache") === "true";
|
||||
exports.enableCache = getEnableCache();
|
||||
exports.cacheSuffix = core.getInput("cache-suffix") || "";
|
||||
exports.cacheLocalPath = getCacheLocalPath();
|
||||
exports.cacheDependencyGlob = core.getInput("cache-dependency-glob");
|
||||
exports.pruneCache = core.getInput("prune-cache") === "true";
|
||||
exports.ignoreNothingToCache = core.getInput("ignore-nothing-to-cache") === "true";
|
||||
exports.toolBinDir = getToolBinDir();
|
||||
exports.toolDir = getToolDir();
|
||||
exports.githubToken = core.getInput("github-token");
|
||||
function getEnableCache() {
|
||||
const enableCacheInput = core.getInput("enable-cache");
|
||||
if (enableCacheInput === "auto") {
|
||||
return process.env.RUNNER_ENVIRONMENT === "github-hosted";
|
||||
}
|
||||
return enableCacheInput === "true";
|
||||
}
|
||||
function getToolBinDir() {
|
||||
const toolBinDirInput = core.getInput("tool-bin-dir");
|
||||
if (toolBinDirInput !== "") {
|
||||
@@ -84583,6 +93795,14 @@ function parseParams (str) {
|
||||
module.exports = parseParams
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 4012:
|
||||
/***/ ((module) => {
|
||||
|
||||
"use strict";
|
||||
module.exports = /*#__PURE__*/JSON.parse('{"name":"@actions/cache","version":"4.0.0","preview":true,"description":"Actions cache lib","keywords":["github","actions","cache"],"homepage":"https://github.com/actions/toolkit/tree/main/packages/cache","license":"MIT","main":"lib/cache.js","types":"lib/cache.d.ts","directories":{"lib":"lib","test":"__tests__"},"files":["lib","!.DS_Store"],"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/actions/toolkit.git","directory":"packages/cache"},"scripts":{"audit-moderate":"npm install && npm audit --json --audit-level=moderate > audit.json","test":"echo \\"Error: run tests from root\\" && exit 1","tsc":"tsc"},"bugs":{"url":"https://github.com/actions/toolkit/issues"},"dependencies":{"@actions/core":"^1.11.1","@actions/exec":"^1.0.1","@actions/glob":"^0.1.0","@actions/http-client":"^2.1.1","@actions/io":"^1.0.1","@azure/abort-controller":"^1.1.0","@azure/ms-rest-js":"^2.6.0","@azure/storage-blob":"^12.13.0","@protobuf-ts/plugin":"^2.9.4","semver":"^6.3.1","twirp-ts":"^2.5.0"},"devDependencies":{"@types/semver":"^6.0.0","typescript":"^5.2.2"}}');
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 1813:
|
||||
|
||||
19731
dist/setup/index.js
generated
vendored
19731
dist/setup/index.js
generated
vendored
File diff suppressed because it is too large
Load Diff
10844
dist/update-known-checksums/index.js
generated
vendored
10844
dist/update-known-checksums/index.js
generated
vendored
File diff suppressed because it is too large
Load Diff
1245
package-lock.json
generated
1245
package-lock.json
generated
@@ -9,30 +9,32 @@
|
||||
"version": "1.0.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/cache": "^3.3.0",
|
||||
"@actions/cache": "^4.0.0",
|
||||
"@actions/core": "^1.11.1",
|
||||
"@actions/exec": "^1.1.1",
|
||||
"@actions/github": "^6.0.0",
|
||||
"@actions/glob": "^0.5.0",
|
||||
"@actions/io": "^1.1.3",
|
||||
"@actions/tool-cache": "^2.0.1",
|
||||
"@octokit/rest": "^21.0.2"
|
||||
"@actions/tool-cache": "^2.0.2",
|
||||
"@octokit/core": "^6.1.3",
|
||||
"@octokit/plugin-paginate-rest": "^11.4.0",
|
||||
"@octokit/plugin-rest-endpoint-methods": "^13.3.0",
|
||||
"smol-toml": "^1.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "1.9.4",
|
||||
"@types/node": "^22.9.1",
|
||||
"@types/node": "^22.12.0",
|
||||
"@types/semver": "^7.5.8",
|
||||
"@vercel/ncc": "^0.38.3",
|
||||
"jest": "^29.7.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"ts-jest": "^29.2.5",
|
||||
"typescript": "^5.6.3"
|
||||
"typescript": "^5.7.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@actions/cache": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.3.0.tgz",
|
||||
"integrity": "sha512-+eCsMTIZUEm+QA9GqjollOhCdvRrZ1JV8d9Rp34zVNizBkYITO8dhKczP5Xps1dFzc5n59p7vYVtZrGt18bb5Q==",
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/cache/-/cache-4.0.0.tgz",
|
||||
"integrity": "sha512-WIuxjnZ44lNYtIS4fqSaYvF00hORdy3cSin+jx8xNgBVGWnNIAiCBHjlwusVQlcgExoQC9pHXGrDsZyZr7rCDQ==",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.11.1",
|
||||
"@actions/exec": "^1.0.1",
|
||||
@@ -42,7 +44,9 @@
|
||||
"@azure/abort-controller": "^1.1.0",
|
||||
"@azure/ms-rest-js": "^2.6.0",
|
||||
"@azure/storage-blob": "^12.13.0",
|
||||
"semver": "^6.3.1"
|
||||
"@protobuf-ts/plugin": "^2.9.4",
|
||||
"semver": "^6.3.1",
|
||||
"twirp-ts": "^2.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@actions/cache/node_modules/@actions/glob": {
|
||||
@@ -71,17 +75,6 @@
|
||||
"@actions/io": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@actions/github": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.0.tgz",
|
||||
"integrity": "sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==",
|
||||
"dependencies": {
|
||||
"@actions/http-client": "^2.2.0",
|
||||
"@octokit/core": "^5.0.1",
|
||||
"@octokit/plugin-paginate-rest": "^9.0.0",
|
||||
"@octokit/plugin-rest-endpoint-methods": "^10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@actions/glob": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.5.0.tgz",
|
||||
@@ -106,16 +99,15 @@
|
||||
"integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q=="
|
||||
},
|
||||
"node_modules/@actions/tool-cache": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.1.tgz",
|
||||
"integrity": "sha512-iPU+mNwrbA8jodY8eyo/0S/QqCKDajiR8OxWTnSk/SnYg0sj8Hp4QcUEVC1YFpHWXtrfbQrE13Jz4k4HXJQKcA==",
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.2.tgz",
|
||||
"integrity": "sha512-fBhNNOWxuoLxztQebpOaWu6WeVmuwa77Z+DxIZ1B+OYvGkGQon6kTVg6Z32Cb13WCuw0szqonK+hh03mJV7Z6w==",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.2.6",
|
||||
"@actions/core": "^1.11.1",
|
||||
"@actions/exec": "^1.0.0",
|
||||
"@actions/http-client": "^2.0.1",
|
||||
"@actions/io": "^1.1.1",
|
||||
"semver": "^6.1.0",
|
||||
"uuid": "^3.3.2"
|
||||
"semver": "^6.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@ampproject/remapping": {
|
||||
@@ -1585,212 +1577,23 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/auth-token": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
|
||||
"integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.2.tgz",
|
||||
"integrity": "sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw==",
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/core": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz",
|
||||
"integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==",
|
||||
"dependencies": {
|
||||
"@octokit/auth-token": "^4.0.0",
|
||||
"@octokit/graphql": "^7.1.0",
|
||||
"@octokit/request": "^8.3.1",
|
||||
"@octokit/request-error": "^5.1.0",
|
||||
"@octokit/types": "^13.0.0",
|
||||
"before-after-hook": "^2.2.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/core/node_modules/@octokit/openapi-types": {
|
||||
"version": "22.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
|
||||
"integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
|
||||
},
|
||||
"node_modules/@octokit/core/node_modules/@octokit/types": {
|
||||
"version": "13.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
|
||||
"integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
|
||||
"dependencies": {
|
||||
"@octokit/openapi-types": "^22.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/endpoint": {
|
||||
"version": "9.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz",
|
||||
"integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==",
|
||||
"dependencies": {
|
||||
"@octokit/types": "^13.1.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/endpoint/node_modules/@octokit/openapi-types": {
|
||||
"version": "22.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
|
||||
"integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
|
||||
},
|
||||
"node_modules/@octokit/endpoint/node_modules/@octokit/types": {
|
||||
"version": "13.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
|
||||
"integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
|
||||
"dependencies": {
|
||||
"@octokit/openapi-types": "^22.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/graphql": {
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz",
|
||||
"integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==",
|
||||
"dependencies": {
|
||||
"@octokit/request": "^8.3.0",
|
||||
"@octokit/types": "^13.0.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/graphql/node_modules/@octokit/openapi-types": {
|
||||
"version": "22.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
|
||||
"integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
|
||||
},
|
||||
"node_modules/@octokit/graphql/node_modules/@octokit/types": {
|
||||
"version": "13.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
|
||||
"integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
|
||||
"dependencies": {
|
||||
"@octokit/openapi-types": "^22.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/openapi-types": {
|
||||
"version": "19.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.0.0.tgz",
|
||||
"integrity": "sha512-PclQ6JGMTE9iUStpzMkwLCISFn/wDeRjkZFIKALpvJQNBGwDoYYi2fFvuHwssoQ1rXI5mfh6jgTgWuddeUzfWw=="
|
||||
},
|
||||
"node_modules/@octokit/plugin-paginate-rest": {
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.0.0.tgz",
|
||||
"integrity": "sha512-oIJzCpttmBTlEhBmRvb+b9rlnGpmFgDtZ0bB6nq39qIod6A5DP+7RkVLMOixIgRCYSHDTeayWqmiJ2SZ6xgfdw==",
|
||||
"dependencies": {
|
||||
"@octokit/types": "^12.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@octokit/core": ">=5"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/plugin-rest-endpoint-methods": {
|
||||
"version": "10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.0.0.tgz",
|
||||
"integrity": "sha512-16VkwE2v6rXU+/gBsYC62M8lKWOphY5Lg4wpjYnVE9Zbu0J6IwiT5kILoj1YOB53XLmcJR+Nqp8DmifOPY4H3g==",
|
||||
"dependencies": {
|
||||
"@octokit/types": "^12.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@octokit/core": ">=5"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/request": {
|
||||
"version": "8.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz",
|
||||
"integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==",
|
||||
"dependencies": {
|
||||
"@octokit/endpoint": "^9.0.1",
|
||||
"@octokit/request-error": "^5.1.0",
|
||||
"@octokit/types": "^13.1.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/request-error": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz",
|
||||
"integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==",
|
||||
"dependencies": {
|
||||
"@octokit/types": "^13.1.0",
|
||||
"deprecation": "^2.0.0",
|
||||
"once": "^1.4.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": {
|
||||
"version": "22.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
|
||||
"integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
|
||||
},
|
||||
"node_modules/@octokit/request-error/node_modules/@octokit/types": {
|
||||
"version": "13.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
|
||||
"integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
|
||||
"dependencies": {
|
||||
"@octokit/openapi-types": "^22.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/request/node_modules/@octokit/openapi-types": {
|
||||
"version": "22.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
|
||||
"integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
|
||||
},
|
||||
"node_modules/@octokit/request/node_modules/@octokit/types": {
|
||||
"version": "13.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
|
||||
"integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
|
||||
"dependencies": {
|
||||
"@octokit/openapi-types": "^22.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/rest": {
|
||||
"version": "21.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-21.0.2.tgz",
|
||||
"integrity": "sha512-+CiLisCoyWmYicH25y1cDfCrv41kRSvTq6pPWtRroRJzhsCZWZyCqGyI8foJT5LmScADSwRAnr/xo+eewL04wQ==",
|
||||
"dependencies": {
|
||||
"@octokit/core": "^6.1.2",
|
||||
"@octokit/plugin-paginate-rest": "^11.0.0",
|
||||
"@octokit/plugin-request-log": "^5.3.1",
|
||||
"@octokit/plugin-rest-endpoint-methods": "^13.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/rest/node_modules/@octokit/auth-token": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz",
|
||||
"integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==",
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/rest/node_modules/@octokit/core": {
|
||||
"version": "6.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.2.tgz",
|
||||
"integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==",
|
||||
"version": "6.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.3.tgz",
|
||||
"integrity": "sha512-z+j7DixNnfpdToYsOutStDgeRzJSMnbj8T1C/oQjB6Aa+kRfNjs/Fn7W6c8bmlt6mfy3FkgeKBRnDjxQow5dow==",
|
||||
"dependencies": {
|
||||
"@octokit/auth-token": "^5.0.0",
|
||||
"@octokit/graphql": "^8.0.0",
|
||||
"@octokit/request": "^9.0.0",
|
||||
"@octokit/request-error": "^6.0.1",
|
||||
"@octokit/types": "^13.0.0",
|
||||
"@octokit/graphql": "^8.1.2",
|
||||
"@octokit/request": "^9.1.4",
|
||||
"@octokit/request-error": "^6.1.6",
|
||||
"@octokit/types": "^13.6.2",
|
||||
"before-after-hook": "^3.0.2",
|
||||
"universal-user-agent": "^7.0.0"
|
||||
},
|
||||
@@ -1798,124 +1601,96 @@
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/rest/node_modules/@octokit/endpoint": {
|
||||
"version": "10.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz",
|
||||
"integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==",
|
||||
"node_modules/@octokit/endpoint": {
|
||||
"version": "10.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.2.tgz",
|
||||
"integrity": "sha512-XybpFv9Ms4hX5OCHMZqyODYqGTZ3H6K6Vva+M9LR7ib/xr1y1ZnlChYv9H680y77Vd/i/k+thXApeRASBQkzhA==",
|
||||
"dependencies": {
|
||||
"@octokit/types": "^13.0.0",
|
||||
"@octokit/types": "^13.6.2",
|
||||
"universal-user-agent": "^7.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/rest/node_modules/@octokit/graphql": {
|
||||
"version": "8.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz",
|
||||
"integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==",
|
||||
"node_modules/@octokit/graphql": {
|
||||
"version": "8.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.2.tgz",
|
||||
"integrity": "sha512-bdlj/CJVjpaz06NBpfHhp4kGJaRZfz7AzC+6EwUImRtrwIw8dIgJ63Xg0OzV9pRn3rIzrt5c2sa++BL0JJ8GLw==",
|
||||
"dependencies": {
|
||||
"@octokit/request": "^9.0.0",
|
||||
"@octokit/types": "^13.0.0",
|
||||
"@octokit/request": "^9.1.4",
|
||||
"@octokit/types": "^13.6.2",
|
||||
"universal-user-agent": "^7.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/rest/node_modules/@octokit/openapi-types": {
|
||||
"version": "22.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
|
||||
"integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
|
||||
"node_modules/@octokit/openapi-types": {
|
||||
"version": "23.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz",
|
||||
"integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g=="
|
||||
},
|
||||
"node_modules/@octokit/rest/node_modules/@octokit/plugin-paginate-rest": {
|
||||
"version": "11.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.1.tgz",
|
||||
"integrity": "sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g==",
|
||||
"node_modules/@octokit/plugin-paginate-rest": {
|
||||
"version": "11.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.0.tgz",
|
||||
"integrity": "sha512-ttpGck5AYWkwMkMazNCZMqxKqIq1fJBNxBfsFwwfyYKTf914jKkLF0POMS3YkPBwp5g1c2Y4L79gDz01GhSr1g==",
|
||||
"dependencies": {
|
||||
"@octokit/types": "^13.5.0"
|
||||
"@octokit/types": "^13.7.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@octokit/core": "5"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/rest/node_modules/@octokit/plugin-request-log": {
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-5.3.1.tgz",
|
||||
"integrity": "sha512-n/lNeCtq+9ofhC15xzmJCNKP2BWTv8Ih2TTy+jatNCCq/gQP/V7rK3fjIfuz0pDWDALO/o/4QY4hyOF6TQQFUw==",
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@octokit/core": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/rest/node_modules/@octokit/plugin-rest-endpoint-methods": {
|
||||
"version": "13.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.2.tgz",
|
||||
"integrity": "sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA==",
|
||||
"node_modules/@octokit/plugin-rest-endpoint-methods": {
|
||||
"version": "13.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.0.tgz",
|
||||
"integrity": "sha512-LUm44shlmkp/6VC+qQgHl3W5vzUP99ZM54zH6BuqkJK4DqfFLhegANd+fM4YRLapTvPm4049iG7F3haANKMYvQ==",
|
||||
"dependencies": {
|
||||
"@octokit/types": "^13.5.0"
|
||||
"@octokit/types": "^13.7.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@octokit/core": "^5"
|
||||
"@octokit/core": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/rest/node_modules/@octokit/request": {
|
||||
"version": "9.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.3.tgz",
|
||||
"integrity": "sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==",
|
||||
"node_modules/@octokit/request": {
|
||||
"version": "9.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.0.tgz",
|
||||
"integrity": "sha512-kXLfcxhC4ozCnAXy2ff+cSxpcF0A1UqxjvYMqNuPIeOAzJbVWQ+dy5G2fTylofB/gTbObT8O6JORab+5XtA1Kw==",
|
||||
"dependencies": {
|
||||
"@octokit/endpoint": "^10.0.0",
|
||||
"@octokit/request-error": "^6.0.1",
|
||||
"@octokit/types": "^13.1.0",
|
||||
"@octokit/types": "^13.6.2",
|
||||
"fast-content-type-parse": "^2.0.0",
|
||||
"universal-user-agent": "^7.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/rest/node_modules/@octokit/request-error": {
|
||||
"version": "6.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.4.tgz",
|
||||
"integrity": "sha512-VpAhIUxwhWZQImo/dWAN/NpPqqojR6PSLgLYAituLM6U+ddx9hCioFGwBr5Mi+oi5CLeJkcAs3gJ0PYYzU6wUg==",
|
||||
"node_modules/@octokit/request-error": {
|
||||
"version": "6.1.6",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.6.tgz",
|
||||
"integrity": "sha512-pqnVKYo/at0NuOjinrgcQYpEbv4snvP3bKMRqHaD9kIsk9u1LCpb2smHZi8/qJfgeNqLo5hNW4Z7FezNdEo0xg==",
|
||||
"dependencies": {
|
||||
"@octokit/types": "^13.0.0"
|
||||
"@octokit/types": "^13.6.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/rest/node_modules/@octokit/types": {
|
||||
"version": "13.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
|
||||
"integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
|
||||
"dependencies": {
|
||||
"@octokit/openapi-types": "^22.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/rest/node_modules/before-after-hook": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz",
|
||||
"integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A=="
|
||||
},
|
||||
"node_modules/@octokit/rest/node_modules/universal-user-agent": {
|
||||
"version": "7.0.2",
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
|
||||
"integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q=="
|
||||
},
|
||||
"node_modules/@octokit/types": {
|
||||
"version": "12.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.0.0.tgz",
|
||||
"integrity": "sha512-EzD434aHTFifGudYAygnFlS1Tl6KhbTynEWELQXIbTY8Msvb5nEqTZIm7sbPEt4mQYLZwu3zPKVdeIrw0g7ovg==",
|
||||
"version": "13.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.7.0.tgz",
|
||||
"integrity": "sha512-BXfRP+3P3IN6fd4uF3SniaHKOO4UXWBfkdR3vA8mIvaoO/wLjGN5qivUtW0QRitBHHMcfC41SLhNVYIZZE+wkA==",
|
||||
"dependencies": {
|
||||
"@octokit/openapi-types": "^19.0.0"
|
||||
"@octokit/openapi-types": "^23.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@opentelemetry/api": {
|
||||
@@ -1926,6 +1701,76 @@
|
||||
"node": ">=8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@protobuf-ts/plugin": {
|
||||
"version": "2.9.4",
|
||||
"resolved": "https://registry.npmjs.org/@protobuf-ts/plugin/-/plugin-2.9.4.tgz",
|
||||
"integrity": "sha512-Db5Laq5T3mc6ERZvhIhkj1rn57/p8gbWiCKxQWbZBBl20wMuqKoHbRw4tuD7FyXi+IkwTToaNVXymv5CY3E8Rw==",
|
||||
"dependencies": {
|
||||
"@protobuf-ts/plugin-framework": "^2.9.4",
|
||||
"@protobuf-ts/protoc": "^2.9.4",
|
||||
"@protobuf-ts/runtime": "^2.9.4",
|
||||
"@protobuf-ts/runtime-rpc": "^2.9.4",
|
||||
"typescript": "^3.9"
|
||||
},
|
||||
"bin": {
|
||||
"protoc-gen-dump": "bin/protoc-gen-dump",
|
||||
"protoc-gen-ts": "bin/protoc-gen-ts"
|
||||
}
|
||||
},
|
||||
"node_modules/@protobuf-ts/plugin-framework": {
|
||||
"version": "2.9.4",
|
||||
"resolved": "https://registry.npmjs.org/@protobuf-ts/plugin-framework/-/plugin-framework-2.9.4.tgz",
|
||||
"integrity": "sha512-9nuX1kjdMliv+Pes8dQCKyVhjKgNNfwxVHg+tx3fLXSfZZRcUHMc1PMwB9/vTvc6gBKt9QGz5ERqSqZc0++E9A==",
|
||||
"dependencies": {
|
||||
"@protobuf-ts/runtime": "^2.9.4",
|
||||
"typescript": "^3.9"
|
||||
}
|
||||
},
|
||||
"node_modules/@protobuf-ts/plugin-framework/node_modules/typescript": {
|
||||
"version": "3.9.10",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz",
|
||||
"integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==",
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@protobuf-ts/plugin/node_modules/typescript": {
|
||||
"version": "3.9.10",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz",
|
||||
"integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==",
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@protobuf-ts/protoc": {
|
||||
"version": "2.9.4",
|
||||
"resolved": "https://registry.npmjs.org/@protobuf-ts/protoc/-/protoc-2.9.4.tgz",
|
||||
"integrity": "sha512-hQX+nOhFtrA+YdAXsXEDrLoGJqXHpgv4+BueYF0S9hy/Jq0VRTVlJS1Etmf4qlMt/WdigEes5LOd/LDzui4GIQ==",
|
||||
"bin": {
|
||||
"protoc": "protoc.js"
|
||||
}
|
||||
},
|
||||
"node_modules/@protobuf-ts/runtime": {
|
||||
"version": "2.9.4",
|
||||
"resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.9.4.tgz",
|
||||
"integrity": "sha512-vHRFWtJJB/SiogWDF0ypoKfRIZ41Kq+G9cEFj6Qm1eQaAhJ1LDFvgZ7Ja4tb3iLOQhz0PaoPnnOijF1qmEqTxg=="
|
||||
},
|
||||
"node_modules/@protobuf-ts/runtime-rpc": {
|
||||
"version": "2.9.4",
|
||||
"resolved": "https://registry.npmjs.org/@protobuf-ts/runtime-rpc/-/runtime-rpc-2.9.4.tgz",
|
||||
"integrity": "sha512-y9L9JgnZxXFqH5vD4d7j9duWvIJ7AShyBRoNKJGhu9Q27qIbchfzli66H9RvrQNIFk5ER7z1Twe059WZGqERcA==",
|
||||
"dependencies": {
|
||||
"@protobuf-ts/runtime": "^2.9.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@sinclair/typebox": {
|
||||
"version": "0.27.8",
|
||||
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
|
||||
@@ -2025,11 +1870,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "22.9.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.1.tgz",
|
||||
"integrity": "sha512-p8Yy/8sw1caA8CdRIQBG5tiLHmxtQKObCijiAa9Ez+d4+PRffM4054xbju0msf+cvhJpnFEeNjxmVT/0ipktrg==",
|
||||
"version": "22.12.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz",
|
||||
"integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"undici-types": "~6.19.8"
|
||||
"undici-types": "~6.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node-fetch": {
|
||||
@@ -2287,9 +2133,9 @@
|
||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
||||
},
|
||||
"node_modules/before-after-hook": {
|
||||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
|
||||
"integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ=="
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz",
|
||||
"integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A=="
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
@@ -2376,6 +2222,20 @@
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/camel-case": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
|
||||
"integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
|
||||
"dependencies": {
|
||||
"pascal-case": "^3.1.2",
|
||||
"tslib": "^2.0.3"
|
||||
}
|
||||
},
|
||||
"node_modules/camel-case/node_modules/tslib": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
|
||||
},
|
||||
"node_modules/camelcase": {
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
||||
@@ -2510,6 +2370,14 @@
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/commander": {
|
||||
"version": "6.2.1",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
|
||||
"integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
@@ -2543,9 +2411,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
|
||||
"version": "7.0.6",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
||||
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"path-key": "^3.1.0",
|
||||
@@ -2604,11 +2472,6 @@
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/deprecation": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
|
||||
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
|
||||
},
|
||||
"node_modules/detect-newline": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
|
||||
@@ -2627,6 +2490,18 @@
|
||||
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/dot-object": {
|
||||
"version": "2.1.5",
|
||||
"resolved": "https://registry.npmjs.org/dot-object/-/dot-object-2.1.5.tgz",
|
||||
"integrity": "sha512-xHF8EP4XH/Ba9fvAF2LDd5O3IITVolerVV6xvkxoM8zlGEiCUrggpAnHyOoKJKCrhvPcGATFAUwIujj7bRG5UA==",
|
||||
"dependencies": {
|
||||
"commander": "^6.1.0",
|
||||
"glob": "^7.1.6"
|
||||
},
|
||||
"bin": {
|
||||
"dot-object": "bin/dot-object"
|
||||
}
|
||||
},
|
||||
"node_modules/ejs": {
|
||||
"version": "3.1.10",
|
||||
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
|
||||
@@ -2770,6 +2645,21 @@
|
||||
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fast-content-type-parse": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz",
|
||||
"integrity": "sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/fastify"
|
||||
},
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/fastify"
|
||||
}
|
||||
]
|
||||
},
|
||||
"node_modules/fast-json-stable-stringify": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
||||
@@ -2843,8 +2733,7 @@
|
||||
"node_modules/fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
||||
"dev": true
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
"version": "2.3.3",
|
||||
@@ -2912,7 +2801,6 @@
|
||||
"version": "7.1.6",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
@@ -3093,7 +2981,6 @@
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"once": "^1.3.0",
|
||||
"wrappy": "1"
|
||||
@@ -3102,8 +2989,7 @@
|
||||
"node_modules/inherits": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||
},
|
||||
"node_modules/is-arrayish": {
|
||||
"version": "0.2.1",
|
||||
@@ -3951,12 +3837,30 @@
|
||||
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||
},
|
||||
"node_modules/lodash.memoize": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
|
||||
"integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/lower-case": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
|
||||
"integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
|
||||
"dependencies": {
|
||||
"tslib": "^2.0.3"
|
||||
}
|
||||
},
|
||||
"node_modules/lower-case/node_modules/tslib": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
|
||||
},
|
||||
"node_modules/lru-cache": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||
@@ -4084,6 +3988,20 @@
|
||||
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/no-case": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
|
||||
"integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
|
||||
"dependencies": {
|
||||
"lower-case": "^2.0.2",
|
||||
"tslib": "^2.0.3"
|
||||
}
|
||||
},
|
||||
"node_modules/no-case/node_modules/tslib": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
|
||||
},
|
||||
"node_modules/node-int64": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
|
||||
@@ -4158,11 +4076,24 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/pascal-case": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
|
||||
"integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
|
||||
"dependencies": {
|
||||
"no-case": "^3.0.4",
|
||||
"tslib": "^2.0.3"
|
||||
}
|
||||
},
|
||||
"node_modules/pascal-case/node_modules/tslib": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
|
||||
},
|
||||
"node_modules/path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
@@ -4182,6 +4113,11 @@
|
||||
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/path-to-regexp": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
|
||||
"integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ=="
|
||||
},
|
||||
"node_modules/picocolors": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
||||
@@ -4209,6 +4145,20 @@
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "2.8.8",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
|
||||
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.13.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/pretty-format": {
|
||||
"version": "29.7.0",
|
||||
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
|
||||
@@ -4389,6 +4339,17 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/smol-toml": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.1.tgz",
|
||||
"integrity": "sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==",
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/cyyynthia"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
@@ -4625,6 +4586,15 @@
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/ts-poet": {
|
||||
"version": "4.15.0",
|
||||
"resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-4.15.0.tgz",
|
||||
"integrity": "sha512-sLLR8yQBvHzi9d4R1F4pd+AzQxBfzOSSjfxiJxQhkUoH5bL7RsAC6wgvtVUQdGqiCsyS9rT6/8X2FI7ipdir5g==",
|
||||
"dependencies": {
|
||||
"lodash": "^4.17.15",
|
||||
"prettier": "^2.5.1"
|
||||
}
|
||||
},
|
||||
"node_modules/tslib": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
|
||||
@@ -4638,6 +4608,34 @@
|
||||
"node": ">=0.6.11 <=0.7.0 || >=0.7.3"
|
||||
}
|
||||
},
|
||||
"node_modules/twirp-ts": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/twirp-ts/-/twirp-ts-2.5.0.tgz",
|
||||
"integrity": "sha512-JTKIK5Pf/+3qCrmYDFlqcPPUx+ohEWKBaZy8GL8TmvV2VvC0SXVyNYILO39+GCRbqnuP6hBIF+BVr8ZxRz+6fw==",
|
||||
"dependencies": {
|
||||
"@protobuf-ts/plugin-framework": "^2.0.7",
|
||||
"camel-case": "^4.1.2",
|
||||
"dot-object": "^2.1.4",
|
||||
"path-to-regexp": "^6.2.0",
|
||||
"ts-poet": "^4.5.0",
|
||||
"yaml": "^1.10.2"
|
||||
},
|
||||
"bin": {
|
||||
"protoc-gen-twirp_ts": "protoc-gen-twirp_ts"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@protobuf-ts/plugin": "^2.5.0",
|
||||
"ts-proto": "^1.81.3"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@protobuf-ts/plugin": {
|
||||
"optional": true
|
||||
},
|
||||
"ts-proto": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/type-detect": {
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
|
||||
@@ -4648,9 +4646,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "5.6.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
|
||||
"integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
|
||||
"version": "5.7.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
|
||||
"integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
@@ -4661,9 +4659,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/undici": {
|
||||
"version": "5.28.4",
|
||||
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz",
|
||||
"integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==",
|
||||
"version": "5.28.5",
|
||||
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.5.tgz",
|
||||
"integrity": "sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA==",
|
||||
"dependencies": {
|
||||
"@fastify/busboy": "^2.0.0"
|
||||
},
|
||||
@@ -4672,14 +4670,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/undici-types": {
|
||||
"version": "6.19.8",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
|
||||
"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
|
||||
"version": "6.20.0",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
|
||||
"integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="
|
||||
},
|
||||
"node_modules/universal-user-agent": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
|
||||
"integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ=="
|
||||
"version": "7.0.2",
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
|
||||
"integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q=="
|
||||
},
|
||||
"node_modules/update-browserslist-db": {
|
||||
"version": "1.0.10",
|
||||
@@ -4707,15 +4705,6 @@
|
||||
"browserslist": ">= 4.21.0"
|
||||
}
|
||||
},
|
||||
"node_modules/uuid": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
||||
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
|
||||
"deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
|
||||
"bin": {
|
||||
"uuid": "bin/uuid"
|
||||
}
|
||||
},
|
||||
"node_modules/v8-to-istanbul": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz",
|
||||
@@ -4844,6 +4833,14 @@
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/yaml": {
|
||||
"version": "1.10.2",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
|
||||
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/yargs": {
|
||||
"version": "17.7.2",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
|
||||
@@ -4886,9 +4883,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@actions/cache": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.3.0.tgz",
|
||||
"integrity": "sha512-+eCsMTIZUEm+QA9GqjollOhCdvRrZ1JV8d9Rp34zVNizBkYITO8dhKczP5Xps1dFzc5n59p7vYVtZrGt18bb5Q==",
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/cache/-/cache-4.0.0.tgz",
|
||||
"integrity": "sha512-WIuxjnZ44lNYtIS4fqSaYvF00hORdy3cSin+jx8xNgBVGWnNIAiCBHjlwusVQlcgExoQC9pHXGrDsZyZr7rCDQ==",
|
||||
"requires": {
|
||||
"@actions/core": "^1.11.1",
|
||||
"@actions/exec": "^1.0.1",
|
||||
@@ -4898,7 +4895,9 @@
|
||||
"@azure/abort-controller": "^1.1.0",
|
||||
"@azure/ms-rest-js": "^2.6.0",
|
||||
"@azure/storage-blob": "^12.13.0",
|
||||
"semver": "^6.3.1"
|
||||
"@protobuf-ts/plugin": "^2.9.4",
|
||||
"semver": "^6.3.1",
|
||||
"twirp-ts": "^2.5.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@actions/glob": {
|
||||
@@ -4929,17 +4928,6 @@
|
||||
"@actions/io": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"@actions/github": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.0.tgz",
|
||||
"integrity": "sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==",
|
||||
"requires": {
|
||||
"@actions/http-client": "^2.2.0",
|
||||
"@octokit/core": "^5.0.1",
|
||||
"@octokit/plugin-paginate-rest": "^9.0.0",
|
||||
"@octokit/plugin-rest-endpoint-methods": "^10.0.0"
|
||||
}
|
||||
},
|
||||
"@actions/glob": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.5.0.tgz",
|
||||
@@ -4964,16 +4952,15 @@
|
||||
"integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q=="
|
||||
},
|
||||
"@actions/tool-cache": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.1.tgz",
|
||||
"integrity": "sha512-iPU+mNwrbA8jodY8eyo/0S/QqCKDajiR8OxWTnSk/SnYg0sj8Hp4QcUEVC1YFpHWXtrfbQrE13Jz4k4HXJQKcA==",
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.2.tgz",
|
||||
"integrity": "sha512-fBhNNOWxuoLxztQebpOaWu6WeVmuwa77Z+DxIZ1B+OYvGkGQon6kTVg6Z32Cb13WCuw0szqonK+hh03mJV7Z6w==",
|
||||
"requires": {
|
||||
"@actions/core": "^1.2.6",
|
||||
"@actions/core": "^1.11.1",
|
||||
"@actions/exec": "^1.0.0",
|
||||
"@actions/http-client": "^2.0.1",
|
||||
"@actions/io": "^1.1.1",
|
||||
"semver": "^6.1.0",
|
||||
"uuid": "^3.3.2"
|
||||
"semver": "^6.1.0"
|
||||
}
|
||||
},
|
||||
"@ampproject/remapping": {
|
||||
@@ -6083,281 +6070,90 @@
|
||||
}
|
||||
},
|
||||
"@octokit/auth-token": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
|
||||
"integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA=="
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.2.tgz",
|
||||
"integrity": "sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw=="
|
||||
},
|
||||
"@octokit/core": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz",
|
||||
"integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==",
|
||||
"version": "6.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.3.tgz",
|
||||
"integrity": "sha512-z+j7DixNnfpdToYsOutStDgeRzJSMnbj8T1C/oQjB6Aa+kRfNjs/Fn7W6c8bmlt6mfy3FkgeKBRnDjxQow5dow==",
|
||||
"requires": {
|
||||
"@octokit/auth-token": "^4.0.0",
|
||||
"@octokit/graphql": "^7.1.0",
|
||||
"@octokit/request": "^8.3.1",
|
||||
"@octokit/request-error": "^5.1.0",
|
||||
"@octokit/types": "^13.0.0",
|
||||
"before-after-hook": "^2.2.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@octokit/openapi-types": {
|
||||
"version": "22.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
|
||||
"integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
|
||||
},
|
||||
"@octokit/types": {
|
||||
"version": "13.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
|
||||
"integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
|
||||
"requires": {
|
||||
"@octokit/openapi-types": "^22.2.0"
|
||||
}
|
||||
}
|
||||
"@octokit/auth-token": "^5.0.0",
|
||||
"@octokit/graphql": "^8.1.2",
|
||||
"@octokit/request": "^9.1.4",
|
||||
"@octokit/request-error": "^6.1.6",
|
||||
"@octokit/types": "^13.6.2",
|
||||
"before-after-hook": "^3.0.2",
|
||||
"universal-user-agent": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/endpoint": {
|
||||
"version": "9.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz",
|
||||
"integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==",
|
||||
"version": "10.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.2.tgz",
|
||||
"integrity": "sha512-XybpFv9Ms4hX5OCHMZqyODYqGTZ3H6K6Vva+M9LR7ib/xr1y1ZnlChYv9H680y77Vd/i/k+thXApeRASBQkzhA==",
|
||||
"requires": {
|
||||
"@octokit/types": "^13.1.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@octokit/openapi-types": {
|
||||
"version": "22.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
|
||||
"integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
|
||||
},
|
||||
"@octokit/types": {
|
||||
"version": "13.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
|
||||
"integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
|
||||
"requires": {
|
||||
"@octokit/openapi-types": "^22.2.0"
|
||||
}
|
||||
}
|
||||
"@octokit/types": "^13.6.2",
|
||||
"universal-user-agent": "^7.0.2"
|
||||
}
|
||||
},
|
||||
"@octokit/graphql": {
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz",
|
||||
"integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==",
|
||||
"version": "8.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.2.tgz",
|
||||
"integrity": "sha512-bdlj/CJVjpaz06NBpfHhp4kGJaRZfz7AzC+6EwUImRtrwIw8dIgJ63Xg0OzV9pRn3rIzrt5c2sa++BL0JJ8GLw==",
|
||||
"requires": {
|
||||
"@octokit/request": "^8.3.0",
|
||||
"@octokit/types": "^13.0.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@octokit/openapi-types": {
|
||||
"version": "22.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
|
||||
"integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
|
||||
},
|
||||
"@octokit/types": {
|
||||
"version": "13.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
|
||||
"integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
|
||||
"requires": {
|
||||
"@octokit/openapi-types": "^22.2.0"
|
||||
}
|
||||
}
|
||||
"@octokit/request": "^9.1.4",
|
||||
"@octokit/types": "^13.6.2",
|
||||
"universal-user-agent": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/openapi-types": {
|
||||
"version": "19.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.0.0.tgz",
|
||||
"integrity": "sha512-PclQ6JGMTE9iUStpzMkwLCISFn/wDeRjkZFIKALpvJQNBGwDoYYi2fFvuHwssoQ1rXI5mfh6jgTgWuddeUzfWw=="
|
||||
"version": "23.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz",
|
||||
"integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g=="
|
||||
},
|
||||
"@octokit/plugin-paginate-rest": {
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.0.0.tgz",
|
||||
"integrity": "sha512-oIJzCpttmBTlEhBmRvb+b9rlnGpmFgDtZ0bB6nq39qIod6A5DP+7RkVLMOixIgRCYSHDTeayWqmiJ2SZ6xgfdw==",
|
||||
"version": "11.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.0.tgz",
|
||||
"integrity": "sha512-ttpGck5AYWkwMkMazNCZMqxKqIq1fJBNxBfsFwwfyYKTf914jKkLF0POMS3YkPBwp5g1c2Y4L79gDz01GhSr1g==",
|
||||
"requires": {
|
||||
"@octokit/types": "^12.0.0"
|
||||
"@octokit/types": "^13.7.0"
|
||||
}
|
||||
},
|
||||
"@octokit/plugin-rest-endpoint-methods": {
|
||||
"version": "10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.0.0.tgz",
|
||||
"integrity": "sha512-16VkwE2v6rXU+/gBsYC62M8lKWOphY5Lg4wpjYnVE9Zbu0J6IwiT5kILoj1YOB53XLmcJR+Nqp8DmifOPY4H3g==",
|
||||
"version": "13.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.0.tgz",
|
||||
"integrity": "sha512-LUm44shlmkp/6VC+qQgHl3W5vzUP99ZM54zH6BuqkJK4DqfFLhegANd+fM4YRLapTvPm4049iG7F3haANKMYvQ==",
|
||||
"requires": {
|
||||
"@octokit/types": "^12.0.0"
|
||||
"@octokit/types": "^13.7.0"
|
||||
}
|
||||
},
|
||||
"@octokit/request": {
|
||||
"version": "8.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz",
|
||||
"integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==",
|
||||
"version": "9.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.0.tgz",
|
||||
"integrity": "sha512-kXLfcxhC4ozCnAXy2ff+cSxpcF0A1UqxjvYMqNuPIeOAzJbVWQ+dy5G2fTylofB/gTbObT8O6JORab+5XtA1Kw==",
|
||||
"requires": {
|
||||
"@octokit/endpoint": "^9.0.1",
|
||||
"@octokit/request-error": "^5.1.0",
|
||||
"@octokit/types": "^13.1.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@octokit/openapi-types": {
|
||||
"version": "22.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
|
||||
"integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
|
||||
},
|
||||
"@octokit/types": {
|
||||
"version": "13.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
|
||||
"integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
|
||||
"requires": {
|
||||
"@octokit/openapi-types": "^22.2.0"
|
||||
}
|
||||
}
|
||||
"@octokit/endpoint": "^10.0.0",
|
||||
"@octokit/request-error": "^6.0.1",
|
||||
"@octokit/types": "^13.6.2",
|
||||
"fast-content-type-parse": "^2.0.0",
|
||||
"universal-user-agent": "^7.0.2"
|
||||
}
|
||||
},
|
||||
"@octokit/request-error": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz",
|
||||
"integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==",
|
||||
"version": "6.1.6",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.6.tgz",
|
||||
"integrity": "sha512-pqnVKYo/at0NuOjinrgcQYpEbv4snvP3bKMRqHaD9kIsk9u1LCpb2smHZi8/qJfgeNqLo5hNW4Z7FezNdEo0xg==",
|
||||
"requires": {
|
||||
"@octokit/types": "^13.1.0",
|
||||
"deprecation": "^2.0.0",
|
||||
"once": "^1.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@octokit/openapi-types": {
|
||||
"version": "22.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
|
||||
"integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
|
||||
},
|
||||
"@octokit/types": {
|
||||
"version": "13.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
|
||||
"integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
|
||||
"requires": {
|
||||
"@octokit/openapi-types": "^22.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"@octokit/rest": {
|
||||
"version": "21.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-21.0.2.tgz",
|
||||
"integrity": "sha512-+CiLisCoyWmYicH25y1cDfCrv41kRSvTq6pPWtRroRJzhsCZWZyCqGyI8foJT5LmScADSwRAnr/xo+eewL04wQ==",
|
||||
"requires": {
|
||||
"@octokit/core": "^6.1.2",
|
||||
"@octokit/plugin-paginate-rest": "^11.0.0",
|
||||
"@octokit/plugin-request-log": "^5.3.1",
|
||||
"@octokit/plugin-rest-endpoint-methods": "^13.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@octokit/auth-token": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz",
|
||||
"integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA=="
|
||||
},
|
||||
"@octokit/core": {
|
||||
"version": "6.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.2.tgz",
|
||||
"integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==",
|
||||
"requires": {
|
||||
"@octokit/auth-token": "^5.0.0",
|
||||
"@octokit/graphql": "^8.0.0",
|
||||
"@octokit/request": "^9.0.0",
|
||||
"@octokit/request-error": "^6.0.1",
|
||||
"@octokit/types": "^13.0.0",
|
||||
"before-after-hook": "^3.0.2",
|
||||
"universal-user-agent": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/endpoint": {
|
||||
"version": "10.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz",
|
||||
"integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==",
|
||||
"requires": {
|
||||
"@octokit/types": "^13.0.0",
|
||||
"universal-user-agent": "^7.0.2"
|
||||
}
|
||||
},
|
||||
"@octokit/graphql": {
|
||||
"version": "8.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz",
|
||||
"integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==",
|
||||
"requires": {
|
||||
"@octokit/request": "^9.0.0",
|
||||
"@octokit/types": "^13.0.0",
|
||||
"universal-user-agent": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/openapi-types": {
|
||||
"version": "22.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
|
||||
"integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
|
||||
},
|
||||
"@octokit/plugin-paginate-rest": {
|
||||
"version": "11.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.1.tgz",
|
||||
"integrity": "sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g==",
|
||||
"requires": {
|
||||
"@octokit/types": "^13.5.0"
|
||||
}
|
||||
},
|
||||
"@octokit/plugin-request-log": {
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-5.3.1.tgz",
|
||||
"integrity": "sha512-n/lNeCtq+9ofhC15xzmJCNKP2BWTv8Ih2TTy+jatNCCq/gQP/V7rK3fjIfuz0pDWDALO/o/4QY4hyOF6TQQFUw==",
|
||||
"requires": {}
|
||||
},
|
||||
"@octokit/plugin-rest-endpoint-methods": {
|
||||
"version": "13.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.2.tgz",
|
||||
"integrity": "sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA==",
|
||||
"requires": {
|
||||
"@octokit/types": "^13.5.0"
|
||||
}
|
||||
},
|
||||
"@octokit/request": {
|
||||
"version": "9.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.3.tgz",
|
||||
"integrity": "sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==",
|
||||
"requires": {
|
||||
"@octokit/endpoint": "^10.0.0",
|
||||
"@octokit/request-error": "^6.0.1",
|
||||
"@octokit/types": "^13.1.0",
|
||||
"universal-user-agent": "^7.0.2"
|
||||
}
|
||||
},
|
||||
"@octokit/request-error": {
|
||||
"version": "6.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.4.tgz",
|
||||
"integrity": "sha512-VpAhIUxwhWZQImo/dWAN/NpPqqojR6PSLgLYAituLM6U+ddx9hCioFGwBr5Mi+oi5CLeJkcAs3gJ0PYYzU6wUg==",
|
||||
"requires": {
|
||||
"@octokit/types": "^13.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/types": {
|
||||
"version": "13.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
|
||||
"integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
|
||||
"requires": {
|
||||
"@octokit/openapi-types": "^22.2.0"
|
||||
}
|
||||
},
|
||||
"before-after-hook": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz",
|
||||
"integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A=="
|
||||
},
|
||||
"universal-user-agent": {
|
||||
"version": "7.0.2",
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
|
||||
"integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q=="
|
||||
}
|
||||
"@octokit/types": "^13.6.2"
|
||||
}
|
||||
},
|
||||
"@octokit/types": {
|
||||
"version": "12.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.0.0.tgz",
|
||||
"integrity": "sha512-EzD434aHTFifGudYAygnFlS1Tl6KhbTynEWELQXIbTY8Msvb5nEqTZIm7sbPEt4mQYLZwu3zPKVdeIrw0g7ovg==",
|
||||
"version": "13.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.7.0.tgz",
|
||||
"integrity": "sha512-BXfRP+3P3IN6fd4uF3SniaHKOO4UXWBfkdR3vA8mIvaoO/wLjGN5qivUtW0QRitBHHMcfC41SLhNVYIZZE+wkA==",
|
||||
"requires": {
|
||||
"@octokit/openapi-types": "^19.0.0"
|
||||
"@octokit/openapi-types": "^23.0.1"
|
||||
}
|
||||
},
|
||||
"@opentelemetry/api": {
|
||||
@@ -6365,6 +6161,59 @@
|
||||
"resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz",
|
||||
"integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA=="
|
||||
},
|
||||
"@protobuf-ts/plugin": {
|
||||
"version": "2.9.4",
|
||||
"resolved": "https://registry.npmjs.org/@protobuf-ts/plugin/-/plugin-2.9.4.tgz",
|
||||
"integrity": "sha512-Db5Laq5T3mc6ERZvhIhkj1rn57/p8gbWiCKxQWbZBBl20wMuqKoHbRw4tuD7FyXi+IkwTToaNVXymv5CY3E8Rw==",
|
||||
"requires": {
|
||||
"@protobuf-ts/plugin-framework": "^2.9.4",
|
||||
"@protobuf-ts/protoc": "^2.9.4",
|
||||
"@protobuf-ts/runtime": "^2.9.4",
|
||||
"@protobuf-ts/runtime-rpc": "^2.9.4",
|
||||
"typescript": "^3.9"
|
||||
},
|
||||
"dependencies": {
|
||||
"typescript": {
|
||||
"version": "3.9.10",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz",
|
||||
"integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@protobuf-ts/plugin-framework": {
|
||||
"version": "2.9.4",
|
||||
"resolved": "https://registry.npmjs.org/@protobuf-ts/plugin-framework/-/plugin-framework-2.9.4.tgz",
|
||||
"integrity": "sha512-9nuX1kjdMliv+Pes8dQCKyVhjKgNNfwxVHg+tx3fLXSfZZRcUHMc1PMwB9/vTvc6gBKt9QGz5ERqSqZc0++E9A==",
|
||||
"requires": {
|
||||
"@protobuf-ts/runtime": "^2.9.4",
|
||||
"typescript": "^3.9"
|
||||
},
|
||||
"dependencies": {
|
||||
"typescript": {
|
||||
"version": "3.9.10",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz",
|
||||
"integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@protobuf-ts/protoc": {
|
||||
"version": "2.9.4",
|
||||
"resolved": "https://registry.npmjs.org/@protobuf-ts/protoc/-/protoc-2.9.4.tgz",
|
||||
"integrity": "sha512-hQX+nOhFtrA+YdAXsXEDrLoGJqXHpgv4+BueYF0S9hy/Jq0VRTVlJS1Etmf4qlMt/WdigEes5LOd/LDzui4GIQ=="
|
||||
},
|
||||
"@protobuf-ts/runtime": {
|
||||
"version": "2.9.4",
|
||||
"resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.9.4.tgz",
|
||||
"integrity": "sha512-vHRFWtJJB/SiogWDF0ypoKfRIZ41Kq+G9cEFj6Qm1eQaAhJ1LDFvgZ7Ja4tb3iLOQhz0PaoPnnOijF1qmEqTxg=="
|
||||
},
|
||||
"@protobuf-ts/runtime-rpc": {
|
||||
"version": "2.9.4",
|
||||
"resolved": "https://registry.npmjs.org/@protobuf-ts/runtime-rpc/-/runtime-rpc-2.9.4.tgz",
|
||||
"integrity": "sha512-y9L9JgnZxXFqH5vD4d7j9duWvIJ7AShyBRoNKJGhu9Q27qIbchfzli66H9RvrQNIFk5ER7z1Twe059WZGqERcA==",
|
||||
"requires": {
|
||||
"@protobuf-ts/runtime": "^2.9.4"
|
||||
}
|
||||
},
|
||||
"@sinclair/typebox": {
|
||||
"version": "0.27.8",
|
||||
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
|
||||
@@ -6464,11 +6313,11 @@
|
||||
}
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "22.9.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.1.tgz",
|
||||
"integrity": "sha512-p8Yy/8sw1caA8CdRIQBG5tiLHmxtQKObCijiAa9Ez+d4+PRffM4054xbju0msf+cvhJpnFEeNjxmVT/0ipktrg==",
|
||||
"version": "22.12.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz",
|
||||
"integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==",
|
||||
"requires": {
|
||||
"undici-types": "~6.19.8"
|
||||
"undici-types": "~6.20.0"
|
||||
}
|
||||
},
|
||||
"@types/node-fetch": {
|
||||
@@ -6676,9 +6525,9 @@
|
||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
||||
},
|
||||
"before-after-hook": {
|
||||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
|
||||
"integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ=="
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz",
|
||||
"integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A=="
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
@@ -6740,6 +6589,22 @@
|
||||
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
|
||||
"dev": true
|
||||
},
|
||||
"camel-case": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
|
||||
"integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
|
||||
"requires": {
|
||||
"pascal-case": "^3.1.2",
|
||||
"tslib": "^2.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"camelcase": {
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
||||
@@ -6826,6 +6691,11 @@
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "6.2.1",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
|
||||
"integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA=="
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
@@ -6853,9 +6723,9 @@
|
||||
}
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
|
||||
"version": "7.0.6",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
||||
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"path-key": "^3.1.0",
|
||||
@@ -6890,11 +6760,6 @@
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
|
||||
},
|
||||
"deprecation": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
|
||||
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
|
||||
},
|
||||
"detect-newline": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
|
||||
@@ -6907,6 +6772,15 @@
|
||||
"integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
|
||||
"dev": true
|
||||
},
|
||||
"dot-object": {
|
||||
"version": "2.1.5",
|
||||
"resolved": "https://registry.npmjs.org/dot-object/-/dot-object-2.1.5.tgz",
|
||||
"integrity": "sha512-xHF8EP4XH/Ba9fvAF2LDd5O3IITVolerVV6xvkxoM8zlGEiCUrggpAnHyOoKJKCrhvPcGATFAUwIujj7bRG5UA==",
|
||||
"requires": {
|
||||
"commander": "^6.1.0",
|
||||
"glob": "^7.1.6"
|
||||
}
|
||||
},
|
||||
"ejs": {
|
||||
"version": "3.1.10",
|
||||
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
|
||||
@@ -7007,6 +6881,11 @@
|
||||
"jest-util": "^29.7.0"
|
||||
}
|
||||
},
|
||||
"fast-content-type-parse": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz",
|
||||
"integrity": "sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q=="
|
||||
},
|
||||
"fast-json-stable-stringify": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
||||
@@ -7073,8 +6952,7 @@
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
||||
"dev": true
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
|
||||
},
|
||||
"fsevents": {
|
||||
"version": "2.3.3",
|
||||
@@ -7117,7 +6995,6 @@
|
||||
"version": "7.1.6",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
@@ -7246,7 +7123,6 @@
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"once": "^1.3.0",
|
||||
"wrappy": "1"
|
||||
@@ -7255,8 +7131,7 @@
|
||||
"inherits": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||
},
|
||||
"is-arrayish": {
|
||||
"version": "0.2.1",
|
||||
@@ -7895,12 +7770,32 @@
|
||||
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
|
||||
"dev": true
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||
},
|
||||
"lodash.memoize": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
|
||||
"integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
|
||||
"dev": true
|
||||
},
|
||||
"lower-case": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
|
||||
"integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
|
||||
"requires": {
|
||||
"tslib": "^2.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||
@@ -8000,6 +7895,22 @@
|
||||
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
|
||||
"dev": true
|
||||
},
|
||||
"no-case": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
|
||||
"integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
|
||||
"requires": {
|
||||
"lower-case": "^2.0.2",
|
||||
"tslib": "^2.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"node-int64": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
|
||||
@@ -8056,11 +7967,26 @@
|
||||
"lines-and-columns": "^1.1.6"
|
||||
}
|
||||
},
|
||||
"pascal-case": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
|
||||
"integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
|
||||
"requires": {
|
||||
"no-case": "^3.0.4",
|
||||
"tslib": "^2.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||
"dev": true
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
|
||||
},
|
||||
"path-key": {
|
||||
"version": "3.1.1",
|
||||
@@ -8074,6 +8000,11 @@
|
||||
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
||||
"dev": true
|
||||
},
|
||||
"path-to-regexp": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
|
||||
"integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ=="
|
||||
},
|
||||
"picocolors": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
||||
@@ -8092,6 +8023,11 @@
|
||||
"integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
|
||||
"dev": true
|
||||
},
|
||||
"prettier": {
|
||||
"version": "2.8.8",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
|
||||
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="
|
||||
},
|
||||
"pretty-format": {
|
||||
"version": "29.7.0",
|
||||
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
|
||||
@@ -8221,6 +8157,11 @@
|
||||
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
|
||||
"dev": true
|
||||
},
|
||||
"smol-toml": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.1.tgz",
|
||||
"integrity": "sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ=="
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
@@ -8379,6 +8320,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ts-poet": {
|
||||
"version": "4.15.0",
|
||||
"resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-4.15.0.tgz",
|
||||
"integrity": "sha512-sLLR8yQBvHzi9d4R1F4pd+AzQxBfzOSSjfxiJxQhkUoH5bL7RsAC6wgvtVUQdGqiCsyS9rT6/8X2FI7ipdir5g==",
|
||||
"requires": {
|
||||
"lodash": "^4.17.15",
|
||||
"prettier": "^2.5.1"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
|
||||
@@ -8389,6 +8339,19 @@
|
||||
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
|
||||
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
|
||||
},
|
||||
"twirp-ts": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/twirp-ts/-/twirp-ts-2.5.0.tgz",
|
||||
"integrity": "sha512-JTKIK5Pf/+3qCrmYDFlqcPPUx+ohEWKBaZy8GL8TmvV2VvC0SXVyNYILO39+GCRbqnuP6hBIF+BVr8ZxRz+6fw==",
|
||||
"requires": {
|
||||
"@protobuf-ts/plugin-framework": "^2.0.7",
|
||||
"camel-case": "^4.1.2",
|
||||
"dot-object": "^2.1.4",
|
||||
"path-to-regexp": "^6.2.0",
|
||||
"ts-poet": "^4.5.0",
|
||||
"yaml": "^1.10.2"
|
||||
}
|
||||
},
|
||||
"type-detect": {
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
|
||||
@@ -8396,28 +8359,28 @@
|
||||
"dev": true
|
||||
},
|
||||
"typescript": {
|
||||
"version": "5.6.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
|
||||
"integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
|
||||
"version": "5.7.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
|
||||
"integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
|
||||
"dev": true
|
||||
},
|
||||
"undici": {
|
||||
"version": "5.28.4",
|
||||
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz",
|
||||
"integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==",
|
||||
"version": "5.28.5",
|
||||
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.5.tgz",
|
||||
"integrity": "sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA==",
|
||||
"requires": {
|
||||
"@fastify/busboy": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"undici-types": {
|
||||
"version": "6.19.8",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
|
||||
"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
|
||||
"version": "6.20.0",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
|
||||
"integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="
|
||||
},
|
||||
"universal-user-agent": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
|
||||
"integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ=="
|
||||
"version": "7.0.2",
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
|
||||
"integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q=="
|
||||
},
|
||||
"update-browserslist-db": {
|
||||
"version": "1.0.10",
|
||||
@@ -8429,11 +8392,6 @@
|
||||
"picocolors": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
||||
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
|
||||
},
|
||||
"v8-to-istanbul": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz",
|
||||
@@ -8537,6 +8495,11 @@
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
||||
"dev": true
|
||||
},
|
||||
"yaml": {
|
||||
"version": "1.10.2",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
|
||||
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
|
||||
},
|
||||
"yargs": {
|
||||
"version": "17.7.2",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
|
||||
|
||||
16
package.json
16
package.json
@@ -12,7 +12,7 @@
|
||||
"package": "ncc build -o dist/setup src/setup-uv.ts && ncc build -o dist/save-cache src/save-cache.ts && ncc build -o dist/update-known-checksums src/update-known-checksums.ts",
|
||||
"test": "jest",
|
||||
"act": "act pull_request -W .github/workflows/test.yml --container-architecture linux/amd64 -s GITHUB_TOKEN=\"$(gh auth token)\"",
|
||||
"update-known-checksums": "node dist/update-known-checksums/index.js src/download/checksum/known-checksums.ts \"$(gh auth token)\"",
|
||||
"update-known-checksums": "RUNNER_TEMP=known_checksums node dist/update-known-checksums/index.js src/download/checksum/known-checksums.ts \"$(gh auth token)\"",
|
||||
"all": "npm run build && npm run format && npm run lint && npm run package && npm test"
|
||||
},
|
||||
"repository": {
|
||||
@@ -23,23 +23,25 @@
|
||||
"author": "@eifinger",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/cache": "^3.3.0",
|
||||
"@actions/cache": "^4.0.0",
|
||||
"@actions/core": "^1.11.1",
|
||||
"@actions/exec": "^1.1.1",
|
||||
"@actions/github": "^6.0.0",
|
||||
"@actions/glob": "^0.5.0",
|
||||
"@actions/io": "^1.1.3",
|
||||
"@actions/tool-cache": "^2.0.1",
|
||||
"@octokit/rest": "^21.0.2"
|
||||
"@actions/tool-cache": "^2.0.2",
|
||||
"@octokit/core": "^6.1.3",
|
||||
"@octokit/plugin-paginate-rest": "^11.4.0",
|
||||
"@octokit/plugin-rest-endpoint-methods": "^13.3.0",
|
||||
"smol-toml": "^1.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "1.9.4",
|
||||
"@types/node": "^22.9.1",
|
||||
"@types/node": "^22.12.0",
|
||||
"@types/semver": "^7.5.8",
|
||||
"@vercel/ncc": "^0.38.3",
|
||||
"jest": "^29.7.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"ts-jest": "^29.2.5",
|
||||
"typescript": "^5.6.3"
|
||||
"typescript": "^5.7.3"
|
||||
}
|
||||
}
|
||||
|
||||
51
src/cache/restore-cache.ts
vendored
51
src/cache/restore-cache.ts
vendored
@@ -4,16 +4,18 @@ import {
|
||||
cacheDependencyGlob,
|
||||
cacheLocalPath,
|
||||
cacheSuffix,
|
||||
pythonVersion as pythonVersionInput,
|
||||
} from "../utils/inputs";
|
||||
import { getArch, getPlatform } from "../utils/platforms";
|
||||
import { hashFiles } from "../hash/hash-files";
|
||||
import * as exec from "@actions/exec";
|
||||
|
||||
export const STATE_CACHE_KEY = "cache-key";
|
||||
export const STATE_CACHE_MATCHED_KEY = "cache-matched-key";
|
||||
const CACHE_VERSION = "1";
|
||||
|
||||
export async function restoreCache(version: string): Promise<void> {
|
||||
const cacheKey = await computeKeys(version);
|
||||
export async function restoreCache(): Promise<void> {
|
||||
const cacheKey = await computeKeys();
|
||||
|
||||
let matchedKey: string | undefined;
|
||||
core.info(
|
||||
@@ -33,7 +35,7 @@ export async function restoreCache(version: string): Promise<void> {
|
||||
handleMatchResult(matchedKey, cacheKey);
|
||||
}
|
||||
|
||||
async function computeKeys(version: string): Promise<string> {
|
||||
async function computeKeys(): Promise<string> {
|
||||
let cacheDependencyPathHash = "-";
|
||||
if (cacheDependencyGlob !== "") {
|
||||
core.info(
|
||||
@@ -41,15 +43,48 @@ async function computeKeys(version: string): Promise<string> {
|
||||
);
|
||||
cacheDependencyPathHash += await hashFiles(cacheDependencyGlob, true);
|
||||
if (cacheDependencyPathHash === "-") {
|
||||
throw new Error(
|
||||
`No file in ${process.cwd()} matched to [${cacheDependencyGlob.split("\n").join(",")}], make sure you have checked out the target repository`,
|
||||
core.warning(
|
||||
`No file matched to [${cacheDependencyGlob.split("\n").join(",")}]. The cache will never get invalidated. Make sure you have checked out the target repository and configured the cache-dependency-glob input correctly.`,
|
||||
);
|
||||
}
|
||||
} else {
|
||||
cacheDependencyPathHash += "no-dependency-glob";
|
||||
}
|
||||
if (cacheDependencyPathHash === "-") {
|
||||
cacheDependencyPathHash = "-no-dependency-glob";
|
||||
}
|
||||
const suffix = cacheSuffix ? `-${cacheSuffix}` : "";
|
||||
return `setup-uv-${CACHE_VERSION}-${getArch()}-${getPlatform()}-${version}${cacheDependencyPathHash}${suffix}`;
|
||||
const pythonVersion = await getPythonVersion();
|
||||
return `setup-uv-${CACHE_VERSION}-${getArch()}-${getPlatform()}-${pythonVersion}${cacheDependencyPathHash}${suffix}`;
|
||||
}
|
||||
|
||||
async function getPythonVersion(): Promise<string> {
|
||||
if (pythonVersionInput !== "") {
|
||||
return pythonVersionInput;
|
||||
}
|
||||
|
||||
let output = "";
|
||||
const options: exec.ExecOptions = {
|
||||
silent: !core.isDebug(),
|
||||
listeners: {
|
||||
stdout: (data: Buffer) => {
|
||||
output += data.toString();
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
try {
|
||||
const execArgs = ["python", "find"];
|
||||
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(
|
||||
|
||||
@@ -1,7 +1,821 @@
|
||||
// AUTOGENERATED_DO_NOT_EDIT
|
||||
export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"undefined-0.5.4":
|
||||
"10c2c0f34d520fa39cde9e9941c23facc01682c44621b407c3bca0d685d1e0bf",
|
||||
"aarch64-apple-darwin-0.5.29":
|
||||
"c89e96bde40402cc4db2f59bcb886882ab69e557235279283a2db9dea61135c3",
|
||||
"aarch64-pc-windows-msvc-0.5.29":
|
||||
"172509e9824b925082612f19ab0e030e08108033d7e5c10e67ede69b3bf290d8",
|
||||
"aarch64-unknown-linux-gnu-0.5.29":
|
||||
"d1f716e8362d7da654a154b8331054a987c1fc16562bd719190a42458e945785",
|
||||
"aarch64-unknown-linux-musl-0.5.29":
|
||||
"3f2d03e62b951a3e46e9c1cfae3091235c05ff274c7163162b8726fb56133219",
|
||||
"arm-unknown-linux-musleabihf-0.5.29":
|
||||
"5ee7d5e95f93434845c1e14740c5e957f8747b751af054996f45a9095426a496",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.29":
|
||||
"98b88f2bc2905241ff460529a9d24cdaa70e8b31c573ba07240eb4a163e7fa3d",
|
||||
"armv7-unknown-linux-musleabihf-0.5.29":
|
||||
"95f148fb44c71f817d0f9c7e14591f1364c7da62a3cb9d353a0e45b4332031d3",
|
||||
"i686-pc-windows-msvc-0.5.29":
|
||||
"e35c4bba6af151e3a952629c7054b0f6d901c83aa7a3a21aedc3880424790294",
|
||||
"i686-unknown-linux-gnu-0.5.29":
|
||||
"9e81a4f621500d161ae810a7f68a25a8bfc141d172267a36c19cf491c5bf8fa7",
|
||||
"i686-unknown-linux-musl-0.5.29":
|
||||
"07b4f43a4c561120cd5951c5aa49ad0aa2a1c1ebce870f533f06fa0e0a8ece4f",
|
||||
"powerpc64-unknown-linux-gnu-0.5.29":
|
||||
"0eae3ece0811815cbed9619995486a2d4ba4df47abe3f7fcc27153eff9c5a655",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.29":
|
||||
"0e38436e4068eec23498f88a5c1b721411986e6a983f243680a60b716b7c301c",
|
||||
"s390x-unknown-linux-gnu-0.5.29":
|
||||
"6a42886dd10c6437a1a56982cd0c116d063f05483aa7db1cc0343f705ef96f91",
|
||||
"x86_64-apple-darwin-0.5.29":
|
||||
"2f13ef5a82b91ba137fd6441f478c406a0a8b0df41e9573d1e61551a1de5a3a2",
|
||||
"x86_64-pc-windows-msvc-0.5.29":
|
||||
"2453b17df889822a5b8dcd3467dd6b75a410d61f5e6504362e3852fb3175c19c",
|
||||
"x86_64-unknown-linux-gnu-0.5.29":
|
||||
"46d3fcf04d64be42bded914d648657cd62d968172604e3aaf8386142c09d2317",
|
||||
"x86_64-unknown-linux-musl-0.5.29":
|
||||
"bb06a385a918b7b8d927ef08e283843b66005dfccf0a940bfd0882f22cbc1a7f",
|
||||
"aarch64-apple-darwin-0.5.28":
|
||||
"57cbf655a5bc5c1ffa7315c0b25ff342f44a919fa099311c0d994914011b421e",
|
||||
"aarch64-pc-windows-msvc-0.5.28":
|
||||
"76bb4fe97c78f5de294614cb36294a3204e57117d8ce2f826bf1b8fd28d770ef",
|
||||
"aarch64-unknown-linux-gnu-0.5.28":
|
||||
"fe3c481940c5542d034a863239f23d64ee45abcd636c480c1ea0f34469a66c86",
|
||||
"aarch64-unknown-linux-musl-0.5.28":
|
||||
"d2f622ffbb129c9368a147672e79f9b7c8e33c4ac0bbba6510c7e92d699d7fb3",
|
||||
"arm-unknown-linux-musleabihf-0.5.28":
|
||||
"0bf8b33107e58d15065bce5fd29d24de7b4401ddcaf6791840568876f1247f46",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.28":
|
||||
"6a3ceb156b6ced721792ffa1d9d4fd35a28167960cd5b1847bfd39fd1d2d59bf",
|
||||
"armv7-unknown-linux-musleabihf-0.5.28":
|
||||
"29dec32b29a5f4736f0062ff47aade2c922e08922241783e7af4aba0639658cc",
|
||||
"i686-pc-windows-msvc-0.5.28":
|
||||
"7ff2b7bde705cdca7f6fe6aec9e7047b47e09bf97be9c5ff597ff6e19a369544",
|
||||
"i686-unknown-linux-gnu-0.5.28":
|
||||
"27ff0f4d1ce96b5abe5113e3033e48a16d588c2e855439f0d8fbc59b75c041de",
|
||||
"i686-unknown-linux-musl-0.5.28":
|
||||
"0f72a1c8321d05dbfc3382d28e7bb9f83079198fd5b16c25560b0f66b6a6a8c7",
|
||||
"powerpc64-unknown-linux-gnu-0.5.28":
|
||||
"caf37897a6a3734a706f2d5ffb2c7953f37e903b6a34d02300fbf96f77a44b82",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.28":
|
||||
"74bc6aacea26c67305910bcbe4b6178b96fefe643b2002567cc094ad2c209ef1",
|
||||
"s390x-unknown-linux-gnu-0.5.28":
|
||||
"b3f49b0268ab971ff7f39ca924fb8291ce3d8ffe8f6c0d7ff16bc12055cd1e85",
|
||||
"x86_64-apple-darwin-0.5.28":
|
||||
"36484907ec1988f1553bdc7de659d8bc0b46b8eaca09b0f67359b116caac170d",
|
||||
"x86_64-pc-windows-msvc-0.5.28":
|
||||
"31053741c49624726d5ce8cb1ab8f5fc267ed0333ab8257450bd71a7c2a68d05",
|
||||
"x86_64-unknown-linux-gnu-0.5.28":
|
||||
"1f2a654627e02fed5f8b883592439b842e74d98091bbafe9e71c7101f4f97d74",
|
||||
"x86_64-unknown-linux-musl-0.5.28":
|
||||
"9ca7e51c8ea414aa1a275d12956676da1064e0a1cbf8d5b39b15c45d923a09c3",
|
||||
"aarch64-apple-darwin-0.5.27":
|
||||
"efe367393fc02b8e8609c38bce78d743261d7fc885e5eabfbd08ce881816aea3",
|
||||
"aarch64-pc-windows-msvc-0.5.27":
|
||||
"5b652867d6dc42946953d786aa1e466e9fbcd877a48d4c18f56c26801abb486b",
|
||||
"aarch64-unknown-linux-gnu-0.5.27":
|
||||
"7b8175e7370056efa6e8f4c8fec854f3a026c0ecda628694f5200fdf666167fa",
|
||||
"aarch64-unknown-linux-musl-0.5.27":
|
||||
"5df998660ed17555679c7a6b43b25f1c4d76d76b6062d31491663960804060d5",
|
||||
"arm-unknown-linux-musleabihf-0.5.27":
|
||||
"d80200d7c0c3ef32b2e938872726de29128a3b9bc080038fb3fc6f2eedbf1f34",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.27":
|
||||
"3fa94262b12268c7b9b91ed0ea739752e0c63ef2105396122faa93cd5bbdae8c",
|
||||
"armv7-unknown-linux-musleabihf-0.5.27":
|
||||
"86e688ced31f6322d6b4dc544453ba02021685e553995c2c72eb41f82fd2662b",
|
||||
"i686-pc-windows-msvc-0.5.27":
|
||||
"0158534490ba4b4cf64716116d73220f019688a22a1eba78535d9d95e918ec71",
|
||||
"i686-unknown-linux-gnu-0.5.27":
|
||||
"66b6128cd9b745a312bc81d6d3fedf02850acdf96dfca53ab5a3d11ddb1fe083",
|
||||
"i686-unknown-linux-musl-0.5.27":
|
||||
"8e95b813f804e8670aed79608778582b3f64dcf468ec185e49f5188505c3edf6",
|
||||
"powerpc64-unknown-linux-gnu-0.5.27":
|
||||
"1a129dbc27566be04ce68f5bc10a626954abe7651b35ce73d8a24b2e7a89ffe1",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.27":
|
||||
"b63051bdd5392fa6a3d8d98c661b395c62a2a05a0e96ae877047c4c7be1b92ff",
|
||||
"s390x-unknown-linux-gnu-0.5.27":
|
||||
"07377ed611dbf1548f06b65ad6d2bb84f3ff1ccce936ba972d7b7f5492e47d30",
|
||||
"x86_64-apple-darwin-0.5.27":
|
||||
"a75c9d77c90c4ac367690134cd471108c09b95226c62cd6422ca0db8bbea2197",
|
||||
"x86_64-pc-windows-msvc-0.5.27":
|
||||
"195d43f6578c33838523bf4f3c80d690914496592b2946bda8598b8500e744f6",
|
||||
"x86_64-unknown-linux-gnu-0.5.27":
|
||||
"27261ddf7654d4f34ed4600348415e0c30de2a307cc6eff6a671a849263b2dcf",
|
||||
"x86_64-unknown-linux-musl-0.5.27":
|
||||
"94cb0a392e5cfb82068476462e6c06e19745ea9e74fc828187f6809d97b529b4",
|
||||
"aarch64-apple-darwin-0.5.26":
|
||||
"3b503c630dc65b991502e1d9fe0ffc410ae50c503e8df6d4900f23b9ad436366",
|
||||
"aarch64-pc-windows-msvc-0.5.26":
|
||||
"3319e6f4506fdb2e3d8791bae05995f0aeda947ee87e373c17a699fb39165e3d",
|
||||
"aarch64-unknown-linux-gnu-0.5.26":
|
||||
"6ce061c2f14bf2f0b12c2b7a0f80c65408bf2dcee9743c4fc4ec1f30b85ecb98",
|
||||
"aarch64-unknown-linux-musl-0.5.26":
|
||||
"42ce9a728ecd054268ba5a621002385e79ea10ba4546a8a6a695f430902029f5",
|
||||
"arm-unknown-linux-musleabihf-0.5.26":
|
||||
"87b8a2af3b9784a6b7ab5ddb2fff0c505bbccaae0a457f6b228257ed23adfed0",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.26":
|
||||
"c311f89e6d23a9bd7d2f62e225d6b54a8fc85889f3519219f3308ea7eb687871",
|
||||
"armv7-unknown-linux-musleabihf-0.5.26":
|
||||
"0e4d68538847637c376f51d962796e9336c9ccbcccdfad547e3458cd7cf1a70e",
|
||||
"i686-pc-windows-msvc-0.5.26":
|
||||
"ecf2858d13ba0cbe1b82cc10e9b0538309ee53a7c18f71e8afcc56b1e5e909e0",
|
||||
"i686-unknown-linux-gnu-0.5.26":
|
||||
"833199e00a8187468c49dd315e041dbaf30e6e6340e65dd3df0c5aec8605c3d8",
|
||||
"i686-unknown-linux-musl-0.5.26":
|
||||
"72d4ed889ceac3cf5f7233a7e38eb2dd70a95e36dab0ce9ebed1f6a9a68f19be",
|
||||
"powerpc64-unknown-linux-gnu-0.5.26":
|
||||
"7838adddce0d17aa933cbe843ca673e44eb89de508175cc707473540de6388cd",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.26":
|
||||
"fe1d770840110b59554228b12382881abefc1ab2d2ca009adc1502179422bc0d",
|
||||
"s390x-unknown-linux-gnu-0.5.26":
|
||||
"086c8d03ee4aff702a32d58086accf971ce58a2f000323414935e0f50e816c04",
|
||||
"x86_64-apple-darwin-0.5.26":
|
||||
"7cf20dd534545a74290a244d3e8244d1010ba38d2d5950f504b6c93fab169f57",
|
||||
"x86_64-pc-windows-msvc-0.5.26":
|
||||
"a938eebb7433eb7097ae1cf3d53f9bb083edd4c746045f284a1c8904af1a1a11",
|
||||
"x86_64-unknown-linux-gnu-0.5.26":
|
||||
"555f17717e7663109104b62976e9da6cfda1ad84213407b437fd9c8f573cc0ef",
|
||||
"x86_64-unknown-linux-musl-0.5.26":
|
||||
"6858d7951b9ae20c3955b2b0addbf2f184ab68175d1c659d11e0a14f1472fb81",
|
||||
"aarch64-apple-darwin-0.5.25":
|
||||
"3c29e941d691614bc4eba95629c8f8dee106e5d44d70a03efed66a544588caa1",
|
||||
"aarch64-pc-windows-msvc-0.5.25":
|
||||
"e3c4d014dc8aa14a36fab9316d9f435a93900893d7164472452c39037112b829",
|
||||
"aarch64-unknown-linux-gnu-0.5.25":
|
||||
"402342f9a5ff1544b41af368794ab436965a1a03109b43bd0dd552ce6af8256d",
|
||||
"aarch64-unknown-linux-musl-0.5.25":
|
||||
"6648d924f01ce01e4968e377c1f32a53592b55485a859f97421619d3a7dd7d86",
|
||||
"arm-unknown-linux-musleabihf-0.5.25":
|
||||
"45ed53c20c5852d9dba97deeceaa1cb8fdccdaec69952c0940329e27b3830e83",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.25":
|
||||
"54bd4af03e93acdc7ac6546f62923a782fc871a20850356fa8870dd256a6c2e8",
|
||||
"armv7-unknown-linux-musleabihf-0.5.25":
|
||||
"f2adbe37fbe57540c39396d6d47878c86027eae91b442d609c2e97da2398dff5",
|
||||
"i686-pc-windows-msvc-0.5.25":
|
||||
"7f55c0e6ab90218d2646c3915b111378fc0ffd61308893d495ddc8e49f16ed36",
|
||||
"i686-unknown-linux-gnu-0.5.25":
|
||||
"8d71e66e4efcc1097e2beedd3572867eb7ea9b5cdac286c115a5118fcf5d2219",
|
||||
"i686-unknown-linux-musl-0.5.25":
|
||||
"406630b6b20bcef76069e08c5eaaa5420e190ae0036f4a85e2a14f3d7c610be6",
|
||||
"powerpc64-unknown-linux-gnu-0.5.25":
|
||||
"202aa6bc9e541bc322ad743f6afe334ef31dcb5c568f24cd5c963fa535538f20",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.25":
|
||||
"7956759f6543ca7ed4e51ab7d68a2dca6d9e73d12a19afbe40d275f2384b8535",
|
||||
"s390x-unknown-linux-gnu-0.5.25":
|
||||
"b17eed40b701252cf6e02c64533bc741dfa6e05340da64cd9feef36afcfed897",
|
||||
"x86_64-apple-darwin-0.5.25":
|
||||
"f76e3fb259ec74b2e003ed7e47d1f06a431686381665fc03e2f35e2ee72e6a57",
|
||||
"x86_64-pc-windows-msvc-0.5.25":
|
||||
"51ea202a472e552c04e6a13ac7eece0d56748750b9726e4b94f4f3dc96b5f77f",
|
||||
"x86_64-unknown-linux-gnu-0.5.25":
|
||||
"fe04914881e2e01fe62001b223344a7c43af734faba447d4764fe92d3baf794e",
|
||||
"x86_64-unknown-linux-musl-0.5.25":
|
||||
"aeade1b8fa1fa3c021d30e8f1932fd2c24dca62217c7d6d9da740dde75b7e52f",
|
||||
"aarch64-apple-darwin-0.5.24":
|
||||
"8016d47f4cce265b3d122ad8cbbf701713caf803fa7d3ef69d8a1fd6793d939a",
|
||||
"aarch64-unknown-linux-gnu-0.5.24":
|
||||
"3cf910468c37c709580d83d19b7b55352cfe05d6e1cc038718698410b6b8c6f0",
|
||||
"aarch64-unknown-linux-musl-0.5.24":
|
||||
"aaae0b6fb17b3cafa9869292f4e03104b26fd0de4a36182a6edec44c1665f6a5",
|
||||
"arm-unknown-linux-musleabihf-0.5.24":
|
||||
"a11698237ff36b72d119467805c8630d5bfdf6132fe98d01f7c44451c783d450",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.24":
|
||||
"e44001c955b7a2c3e53006a262bf74189f75bc2e6d63ac2e71638fb8eee20501",
|
||||
"armv7-unknown-linux-musleabihf-0.5.24":
|
||||
"8ca5c602c5a31a6c497abf10dd96694fb2bb9df362fdc604d156fa5044786379",
|
||||
"i686-pc-windows-msvc-0.5.24":
|
||||
"d2550254b96753214f9098a03091fa398d948c971738d50ff36113a3b27e391e",
|
||||
"i686-unknown-linux-gnu-0.5.24":
|
||||
"7b335c5736fa50aa3092f4212201ea7a65a15c6f40282a315861ec36bf64a41e",
|
||||
"i686-unknown-linux-musl-0.5.24":
|
||||
"6b7a8df65d15ad782ca17d82f79b4d7a235e85bf50411e3f7549878909b2a0bb",
|
||||
"powerpc64-unknown-linux-gnu-0.5.24":
|
||||
"22c2fb1971cd4ea77d78fc2c7c5574f5e4646525473d08d1b16a4389cda560a8",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.24":
|
||||
"1e3cfaa0890d42f448bed7d6c7b66240abfe43130c6923b1d5fb7b0ebc302b94",
|
||||
"s390x-unknown-linux-gnu-0.5.24":
|
||||
"a3c8e92deb720dcbf7414d8d0bb91934016d0ace23c3dd452f49a1b92490e0bf",
|
||||
"x86_64-apple-darwin-0.5.24":
|
||||
"dcee10ef84309cf0de4153cb7913b0b506eae0a2e6407faa0f1717f015c35f0c",
|
||||
"x86_64-pc-windows-msvc-0.5.24":
|
||||
"bd3fedeee0da543d7ac0a530328b3880bc83c1b332b3996f0da691f83423e813",
|
||||
"x86_64-unknown-linux-gnu-0.5.24":
|
||||
"a0eb614f7fc38a6e14ef1c4819f1f187591db8e0d3c4218dae38b1bd663a00e2",
|
||||
"x86_64-unknown-linux-musl-0.5.24":
|
||||
"5a5a1231a3ecb4f01aab9c839a49764d9ea1ae8e5e467a0aa2a2754c94f9f81c",
|
||||
"aarch64-apple-darwin-0.5.23":
|
||||
"bedfc709b281ab4c6ff1c84c0ad7e4525bf2669f56f009f6fb308657bebe165b",
|
||||
"aarch64-unknown-linux-gnu-0.5.23":
|
||||
"0f864a958e88693b8102dd7bc0e543a6b6f56e514ba8798235e54fb95c4856a4",
|
||||
"aarch64-unknown-linux-musl-0.5.23":
|
||||
"bbfafc3623267d25f63713c934eb57bf521b8b14b94d18412c697d69dbd68251",
|
||||
"arm-unknown-linux-musleabihf-0.5.23":
|
||||
"3031d44ae02a6189182956de345c0e22c40b6a8f19bbe67ed7016df228da5cd6",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.23":
|
||||
"48429f7f01e9bd6bfb80c2e97db878c05d7d1be1d10de432a33650c65c9d6172",
|
||||
"armv7-unknown-linux-musleabihf-0.5.23":
|
||||
"baa22c4e66f80eb1a900437b58966f529af70c89739b690096fa665d6324f540",
|
||||
"i686-pc-windows-msvc-0.5.23":
|
||||
"c9d6f5806666921a31f0a3ac88f9848884c67cd7348b0c0dd420c92ae40371ff",
|
||||
"i686-unknown-linux-gnu-0.5.23":
|
||||
"91bf1765b77010318d9666601d6ec41108f561a8be5d8a3a0b41c4fbd38c4bb1",
|
||||
"i686-unknown-linux-musl-0.5.23":
|
||||
"79093074197e76be9c7699ad361cf6fccc95dd8cea2b10ac2875acc658be55b3",
|
||||
"powerpc64-unknown-linux-gnu-0.5.23":
|
||||
"acce824961d78934ec9735bd9dac2a8b7f16e9638c6d909671690c43283bd644",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.23":
|
||||
"678773a17cccfa5d8c8e7043e4ebbbaf48b3e1aa482dd334c36e06ba8ebe993e",
|
||||
"s390x-unknown-linux-gnu-0.5.23":
|
||||
"34700493c47fcf668ac175ab66c8fb6bdc058dfc56a3f868d34b6e5a586957dd",
|
||||
"x86_64-apple-darwin-0.5.23":
|
||||
"40525eceff3a95051e0139839140ec3597a45221cca5000b8290d20d771294f5",
|
||||
"x86_64-pc-windows-msvc-0.5.23":
|
||||
"140be2cf57e37c7c86be4840d17b71fbc7daa21e2f46ed60830b4a39ef527663",
|
||||
"x86_64-unknown-linux-gnu-0.5.23":
|
||||
"6c45b9a95328b5c250bab14a17af574f7fa284fac0830d6a827e5f6f0b0e6732",
|
||||
"x86_64-unknown-linux-musl-0.5.23":
|
||||
"d656e3c274b43e8d9253d79ce3bd20d6bf1bd3fdb13dfd13e5e07d7aa528906d",
|
||||
"aarch64-apple-darwin-0.5.22":
|
||||
"95496f513653e7246589b2334a04e2a001f6436919af30d68180ce480fd3971a",
|
||||
"aarch64-unknown-linux-gnu-0.5.22":
|
||||
"0ff503ff9d473d25d0460a375ff6ec3ed186ee6be2ffedc67642b3c7d77b6299",
|
||||
"aarch64-unknown-linux-musl-0.5.22":
|
||||
"43593ffde18d83f9453a69db70f5dbc61726beefc3bbdb80d1db61612eb26a41",
|
||||
"arm-unknown-linux-musleabihf-0.5.22":
|
||||
"78829476fad51a9361aefbb8ee5ed7aa19b981a7d6384e6033115277b761fe94",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.22":
|
||||
"2c6b4876c6aa6e642466fb389cc106f5f9cb4ebb9e389bf2c9e883012d3d127b",
|
||||
"armv7-unknown-linux-musleabihf-0.5.22":
|
||||
"fc62722c44cd4ccae7e713452bc5d81907852da6d50f3123c4878e510fba52f7",
|
||||
"i686-pc-windows-msvc-0.5.22":
|
||||
"4c4e029f05cd94b09cb3c3ac9d2dd4adeb2a1e54d13a09ba79c244d95d960ba7",
|
||||
"i686-unknown-linux-gnu-0.5.22":
|
||||
"d17ee5a2ea99875781c21ba2acc3785d86ebf27cc76011fa59ae52f21d349a49",
|
||||
"i686-unknown-linux-musl-0.5.22":
|
||||
"092387e1a32a40cee94165d96072e219b299b8d76a25a764659ccb178855c3d8",
|
||||
"powerpc64-unknown-linux-gnu-0.5.22":
|
||||
"bd8c2b70f461d6cc189abaaaa0d4e75f6b3044eddaef0f790920436f2d7cb772",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.22":
|
||||
"ecd4c18c0a889b7ceaca906340f89ef815b5a7e37fbfb318ec6131f23627b794",
|
||||
"s390x-unknown-linux-gnu-0.5.22":
|
||||
"5c092fb46def4c7a45094905990acfab34cf4ad3af60e6accddbfa81b1409c03",
|
||||
"x86_64-apple-darwin-0.5.22":
|
||||
"5f636c75a976389ec0a4b03b4a7a78b5634daf1915703079cbc514a26c691e18",
|
||||
"x86_64-pc-windows-msvc-0.5.22":
|
||||
"bbe5dc1b2777f170d53d3d7856376eda9229a2c4f74332336e0ef0603325cbe5",
|
||||
"x86_64-unknown-linux-gnu-0.5.22":
|
||||
"d15f8595f080817f55f207bf9a67cbce6423e5b1fbfeba58c7e67e86bcc7be41",
|
||||
"x86_64-unknown-linux-musl-0.5.22":
|
||||
"fba667f90b0b89b4171127ebe7b29961250ddbcd9f86116eb195c46afe0857c8",
|
||||
"aarch64-apple-darwin-0.5.21":
|
||||
"74f501d91b4db0b767d5d621086d3e2e8acc3f5356cf5527de80e97bb312a626",
|
||||
"aarch64-unknown-linux-gnu-0.5.21":
|
||||
"c4cc2ec78a294378b867ebd08c5842d3ce71074c2818dc7f641422fb3bf4b2d2",
|
||||
"aarch64-unknown-linux-musl-0.5.21":
|
||||
"26152b092f6ace9bec1fe91b39fe11f55428ce5fba87f5de0ec6b16e2c65928f",
|
||||
"arm-unknown-linux-musleabihf-0.5.21":
|
||||
"2a90a8976a7efbe5eef613b84285f2f6b0cda7e9547a2e548bf6f253cc06dbb1",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.21":
|
||||
"71b0e840af1e50368d60bdb6a4bb22483b0462e7238e7e08fb624466c4b22c65",
|
||||
"armv7-unknown-linux-musleabihf-0.5.21":
|
||||
"46a3be0330ebfbeb4c521a523545334ef3bd38ac0b4acab19734c0d50399ac6f",
|
||||
"i686-pc-windows-msvc-0.5.21":
|
||||
"a0583cd71a410ce8329cd0951a72966a1219c1a7c12c437c3072779ce7dfe893",
|
||||
"i686-unknown-linux-gnu-0.5.21":
|
||||
"5d46307d7883f5ec5416c589b65bfedd17544accbe54eabd13d27417bcdf435e",
|
||||
"i686-unknown-linux-musl-0.5.21":
|
||||
"27d220b8e8effd1dc566e6ae7f90e7a074af07f4e61a0406f2c8c9883ef82e33",
|
||||
"powerpc64-unknown-linux-gnu-0.5.21":
|
||||
"ca744fee2634dfe203683fa809e4b5998564ebf2b8e7f0c329c1229edbe1ea8a",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.21":
|
||||
"1c08d342b4644158eee7723a75f59b3f388ceb4a91106d284d343acfb906bb77",
|
||||
"s390x-unknown-linux-gnu-0.5.21":
|
||||
"892c78a989164f1e6e97a8e07d995bf1ab6c5374ee85d4b47c47c6706bb2e8fe",
|
||||
"x86_64-apple-darwin-0.5.21":
|
||||
"66a0f5ea3aee2d497450138ae1e99f734eed7457af5e839a41ef219d51e90e17",
|
||||
"x86_64-pc-windows-msvc-0.5.21":
|
||||
"9968e8ef4b567d5690ccb9ac6e8338eb56cb964c57430a2843dd21f88ec5b81a",
|
||||
"x86_64-unknown-linux-gnu-0.5.21":
|
||||
"e108c300eafae22ad8e6d94519605530f18f8762eb58d2b98a617edfb5d088fc",
|
||||
"x86_64-unknown-linux-musl-0.5.21":
|
||||
"71347d2fdda9e3e7105ecd3a8566e3b607da9fddf23ac83adafcf6451ea9139d",
|
||||
"aarch64-apple-darwin-0.5.20":
|
||||
"d7f0c219808073f8ae8c6a991e85e5c7539b4e539b014a4ca5b3286911f06fd5",
|
||||
"aarch64-unknown-linux-gnu-0.5.20":
|
||||
"3d2281312d047288ecb021f4c761cd351f993514e3ea7f369354701b3a44c756",
|
||||
"aarch64-unknown-linux-musl-0.5.20":
|
||||
"162b19dbe6d82fd7846dd6ff25a7a6250ce4ee5d0d55e2e245625382984072b0",
|
||||
"arm-unknown-linux-musleabihf-0.5.20":
|
||||
"19a06cf913bfb3d8ecb0e1c0368f98b03e9ec5a35ea3edc03a4e0af04f4f95ad",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.20":
|
||||
"769c07de286d607d0e13e9e83051a5ac0cfe1c34695ece976934345e09e97f4b",
|
||||
"armv7-unknown-linux-musleabihf-0.5.20":
|
||||
"1330f3e38f6bdae2d2e2d458957e5531cf729989db942832aede12c5e5d5a1ab",
|
||||
"i686-pc-windows-msvc-0.5.20":
|
||||
"389182a593b6f761dffb7c82c3eee3f8e4f4848fbf26fa1e6ab95ac3fcad687b",
|
||||
"i686-unknown-linux-gnu-0.5.20":
|
||||
"88a1e7b7c08682fb379f540cfab31c38c31d5a7a3f227e5446dd9000519c7195",
|
||||
"i686-unknown-linux-musl-0.5.20":
|
||||
"fb105fc9c3bbb4ad44ac5c0066cb9f48912f55a97f65dabaa48367198c0f87ea",
|
||||
"powerpc64-unknown-linux-gnu-0.5.20":
|
||||
"a42c4bf4e397ed0d85bc5ed8d589f1e3dbd6f24fdbb16469ffa20b63977894aa",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.20":
|
||||
"bf52e43047ad4e7f178b62d2a175f0ee272f014a520726fe293960d03bfa122d",
|
||||
"s390x-unknown-linux-gnu-0.5.20":
|
||||
"69c198eca4c81299a7a323df729e03ce6198d84fa26e9d98ea1e02436933469f",
|
||||
"x86_64-apple-darwin-0.5.20":
|
||||
"22bb373a2bb0f15e441819a054e68798534d536b1b1943fdb813d6b53ffe48a4",
|
||||
"x86_64-pc-windows-msvc-0.5.20":
|
||||
"dede2f71e7a15137ca17e3a1106e3797a650a2e2d607658f31ad4e986de3d67d",
|
||||
"x86_64-unknown-linux-gnu-0.5.20":
|
||||
"8fdbfca767917f957e4541747cbf7b23b45c211109dbba97b49962fa3547aab4",
|
||||
"x86_64-unknown-linux-musl-0.5.20":
|
||||
"5326a6d14d4668dafee4ecf36f7664103a25bf0918dfe162c8c49dab017b74ed",
|
||||
"aarch64-apple-darwin-0.5.19":
|
||||
"f223bb08d04257dbba421736f906d91b040f654ab49963afc2f30f7949ae7b79",
|
||||
"aarch64-unknown-linux-gnu-0.5.19":
|
||||
"2da1baa85958e5ee36f2ac85b0c56cb99c0c3140f6ff18c60825485b8193eedb",
|
||||
"aarch64-unknown-linux-musl-0.5.19":
|
||||
"ff5b42337bd94f41db157f73b39d41586be8c76d8824550b0f6d5e808e5f0356",
|
||||
"arm-unknown-linux-musleabihf-0.5.19":
|
||||
"84ae72130383340e14df47656f1974eb76a28ab7ed8b5c479bdbc8b907ad91e7",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.19":
|
||||
"bec22bc7e1d584749f26bc4d84116faf925f9db484fe0afb58f6a2aa0c04707c",
|
||||
"armv7-unknown-linux-musleabihf-0.5.19":
|
||||
"79c575e9dcd58cf88e8b2fd37242ac923d04c31a62bed54db78219e35257a262",
|
||||
"i686-pc-windows-msvc-0.5.19":
|
||||
"7f0439c0977baf5573d0c31820887fb0c478d2ef29fdad4256bf0a0b536a387f",
|
||||
"i686-unknown-linux-gnu-0.5.19":
|
||||
"0b9a88787f80bda623987a314875c7cccfed599b5d2803565734c292e2cd33ef",
|
||||
"i686-unknown-linux-musl-0.5.19":
|
||||
"e9a89334fadda0905da42017db76c63da9b1ef02ef9595acea322d1e73f1fea0",
|
||||
"powerpc64-unknown-linux-gnu-0.5.19":
|
||||
"d891e5a5849e0220a49a31396371303d7f9de6c86b34f306c129a87dc6debfac",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.19":
|
||||
"efeb6ce7adff1ef45ca2e3351011a9a423add39f08676f5f4b85fdf2244fb8cd",
|
||||
"s390x-unknown-linux-gnu-0.5.19":
|
||||
"a37620a3ce3d351adc57ce70249ee0bdce2fbd336886db6b4de4d31447644acb",
|
||||
"x86_64-apple-darwin-0.5.19":
|
||||
"9af5050495e9fc114cabcb4c2dbaded65569ccc0583ab3f62a6d9977984b65fa",
|
||||
"x86_64-pc-windows-msvc-0.5.19":
|
||||
"ada2b3d704a78e118f6c8e215468e8f50eef440211938970cdef79dfafe9ddc5",
|
||||
"x86_64-unknown-linux-gnu-0.5.19":
|
||||
"ace8c180865bb87fb3d7004a8cafde78270676d87ab5531615f136cc860db78d",
|
||||
"x86_64-unknown-linux-musl-0.5.19":
|
||||
"eb9d0e1db24c6abbfec3e589f55efd2ef9ce9313f89bf1dd934635d194762b57",
|
||||
"aarch64-apple-darwin-0.5.18":
|
||||
"13bcde0a15c50af976980b484f140e10969df67488542856a2152534f255c675",
|
||||
"aarch64-unknown-linux-gnu-0.5.18":
|
||||
"a511f609236b9bfc9dedfcb9867ef1d0f1dc23cc2012f9e4e38e0c184657fd31",
|
||||
"aarch64-unknown-linux-musl-0.5.18":
|
||||
"5b1bd1471f4d8298f11da5f025bdbcc4c8057a24c8b95573003c0320b6fa99a8",
|
||||
"arm-unknown-linux-musleabihf-0.5.18":
|
||||
"4262e0a6c14998c8637f1ba018980464a5e6aeb5f35aaa0149643c99a32631b3",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.18":
|
||||
"29d4f9b0c020f55de11c9bd24cf8360771c1893275dd9e3b978f0fe4421bfb4f",
|
||||
"armv7-unknown-linux-musleabihf-0.5.18":
|
||||
"95049e75c3da2113142da0b9e60451c43fac44702590f4e5abb6fc7cde744429",
|
||||
"i686-pc-windows-msvc-0.5.18":
|
||||
"06729cf6685f0271e91bcb5cf748d18a5c5d793fa9e0a611d0c7541a0aed574a",
|
||||
"i686-unknown-linux-gnu-0.5.18":
|
||||
"d92146688e5b1a7ddb79e8f91d91c8174d44a5945b06797cd17bbf187f13da64",
|
||||
"i686-unknown-linux-musl-0.5.18":
|
||||
"1ec37579d0dec4739c707cb5096c52dea9319196dfd63ea6e121e16074892cac",
|
||||
"powerpc64-unknown-linux-gnu-0.5.18":
|
||||
"e6cf16040aabb5b1940e88841dcc90967aa592c8c7492699449ca050713cb567",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.18":
|
||||
"3efccbb5820be67b270333f9ca87d2d598e38648a6ea7a3fb9970a5a424be11f",
|
||||
"s390x-unknown-linux-gnu-0.5.18":
|
||||
"f7903ade2a7747041d5d10f043e01e0a6c9c881b6fe7cb1bd54b9efac8ed7620",
|
||||
"x86_64-apple-darwin-0.5.18":
|
||||
"e77b6b35169d2e0a3b43d43690f813136c94e24e4eef72d560e7901e42621d18",
|
||||
"x86_64-pc-windows-msvc-0.5.18":
|
||||
"77f414173d0970c8977a614585fc013290659b0d74ae22be24559fde915832de",
|
||||
"x86_64-unknown-linux-gnu-0.5.18":
|
||||
"1dbaeffc5cfac769f99700c0fc8c4ef4494a339720c6bf8b79367b1acd701b46",
|
||||
"x86_64-unknown-linux-musl-0.5.18":
|
||||
"d4d3bf7dda0fd66a34ee99407506b753213bbe6e4076c0c38c4b645d00406979",
|
||||
"aarch64-apple-darwin-0.5.17":
|
||||
"9e041a7c0bbd8a653b2272e03ba5de5b726dcbbccc3ffcc526dc7de9f14ad334",
|
||||
"aarch64-unknown-linux-gnu-0.5.17":
|
||||
"22164a4a86272ab2a4af2b01773a7e636f643426831f4dd9c71b2760c592a57b",
|
||||
"aarch64-unknown-linux-musl-0.5.17":
|
||||
"86021b10ad06f97a82d605ae7b7e580cd17d29b2877b65e31ef63db50514d2b0",
|
||||
"arm-unknown-linux-musleabihf-0.5.17":
|
||||
"b68e96d7abb87180a44f9b315db2d3f88ad59325b10451b561e0620edd71d476",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.17":
|
||||
"125662419ae6b2332d2bab6764ba8ef9396fd0cc9487a5fbbcf41bdcf379e697",
|
||||
"armv7-unknown-linux-musleabihf-0.5.17":
|
||||
"f8d2dcee69ad15858a827265db527184bdbd07b60a24e04d2d9787abf781cc0b",
|
||||
"i686-pc-windows-msvc-0.5.17":
|
||||
"1aecdd843d15a0149cf83d07c3b36d184578a6a07fcf2730ef9986393259e960",
|
||||
"i686-unknown-linux-gnu-0.5.17":
|
||||
"4165443b8757cdcd615ccfe721aac5137c7d4165ae9dc2640975c1035018f09c",
|
||||
"i686-unknown-linux-musl-0.5.17":
|
||||
"0242308d2ffe1de6538d79a13aae4cee8a48bfc76e71d559836a2f43808393c0",
|
||||
"powerpc64-unknown-linux-gnu-0.5.17":
|
||||
"a79bfc1c004339c1da253421b35471af383e724eaffe8ab332685b253402a7c1",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.17":
|
||||
"db2f384a7b9605b9ae03ca493f0c35174577a3b53d238861b11b9dc1c404cb16",
|
||||
"s390x-unknown-linux-gnu-0.5.17":
|
||||
"4312abce9f52dca597c4b4896e8f2f7575d50b2183af4c74412bc26eb6278d3f",
|
||||
"x86_64-apple-darwin-0.5.17":
|
||||
"f66f961bf0c6e2bbc3e45de4692cdebb126edd5af4e920dea91a3fedabc502ee",
|
||||
"x86_64-pc-windows-msvc-0.5.17":
|
||||
"00aed721abc4bb125d92b45733aa65a2254344bffed984d85cf0de6b164f5011",
|
||||
"x86_64-unknown-linux-gnu-0.5.17":
|
||||
"6121d9693b2013e970e495872c5a750ff0e471c2618821c2d4314666c0bd9ee7",
|
||||
"x86_64-unknown-linux-musl-0.5.17":
|
||||
"0aa0d03f80422a066396a54c7d9f7f78576a22827860273fd635f97e04f3e1a7",
|
||||
"aarch64-apple-darwin-0.5.16":
|
||||
"0b16039f469df078c1445f5b7f84d3c0342580c4592b5a4b604db2c86dc37c3e",
|
||||
"aarch64-unknown-linux-gnu-0.5.16":
|
||||
"59d28abe79037f835020ba834f01ac5c1f96c8556c6ff9a06a8fd5701048731c",
|
||||
"aarch64-unknown-linux-musl-0.5.16":
|
||||
"8913580d960e1d5a24316506b9925cb6aa4ab6547d88d7cab1aa5049825e1d4a",
|
||||
"arm-unknown-linux-musleabihf-0.5.16":
|
||||
"e97d623d641a3c807bcafef222544786813ed5176d0dbea8d0f6adc2deea88b7",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.16":
|
||||
"fe814f38a72c7f264e4cd8fdcb84519bf92a88f0e67d7a0a6a38dc18e938c0fc",
|
||||
"armv7-unknown-linux-musleabihf-0.5.16":
|
||||
"f72c8302fa59190a90ccb743d90d3efae71e78ea7c6b52c68b3e23b6c6fb3276",
|
||||
"i686-pc-windows-msvc-0.5.16":
|
||||
"fe24a7b1438152d8dcc7acedaad3b15362ef2e58d496611819fd8b99942dc2ed",
|
||||
"i686-unknown-linux-gnu-0.5.16":
|
||||
"d2ddc285d3962b45e05a59e62fb188d7bad3f969b45ff5256db0226efe44208b",
|
||||
"i686-unknown-linux-musl-0.5.16":
|
||||
"ac6b59b6b383a852ba5c22df777f9c3f39a85364a485bcc4203ca427417cb25b",
|
||||
"powerpc64-unknown-linux-gnu-0.5.16":
|
||||
"1ff9c39c6660548aa69934a25c8d92ffb11a7c9c1f39db9795e9f061ff34a8bd",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.16":
|
||||
"87c568a126d59d66b99ec087182f4cd9de336678dfb60c51da35d678160875d6",
|
||||
"s390x-unknown-linux-gnu-0.5.16":
|
||||
"23c8331689d99c6fb70646a41a9d8ef5211d4eefe25baebb08b6b6c7f126af6e",
|
||||
"x86_64-apple-darwin-0.5.16":
|
||||
"72732a379d2aff6585c6bfd52593042a470e752d6af685cc01e1ee06d817cddb",
|
||||
"x86_64-pc-windows-msvc-0.5.16":
|
||||
"3fe298d7b10b63e9cec6711d03853874735f1dd33f655ad3ee6677965807883f",
|
||||
"x86_64-unknown-linux-gnu-0.5.16":
|
||||
"a320393232ac29acfe75cd0d3fb943ee2a5cc3727d2c9d1bb14bb9eea1fc60c9",
|
||||
"x86_64-unknown-linux-musl-0.5.16":
|
||||
"82962a1ef9ca888c32933fe9022c4b946e9bf047ffb0084a614b8cf7a5306dbf",
|
||||
"aarch64-apple-darwin-0.5.15":
|
||||
"bb7409c4d7d503e929bcd31bf179ae6f555f5092d0d5dc38df37be9f29832859",
|
||||
"aarch64-unknown-linux-gnu-0.5.15":
|
||||
"02f69686d0e1fe9673bb449fc45e53e6bfb0f48c5d371b35c145828c4239f123",
|
||||
"aarch64-unknown-linux-musl-0.5.15":
|
||||
"78ac5d4c7b9773bb3f6867f452ed83dd2f38f26116d2369ff5b4ea02eb7519bd",
|
||||
"arm-unknown-linux-musleabihf-0.5.15":
|
||||
"f416a9350161feacc48a96f90a1a38244d70f3ba07fbf96010ed477ff69814ed",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.15":
|
||||
"182c316f44df157979e7430fb952eced1ad8020d1d8d810e88ce6985c9428615",
|
||||
"armv7-unknown-linux-musleabihf-0.5.15":
|
||||
"0b4400e8c22921355d5e69cf17cb0a44da93af09125e1dc636a69d2175a23898",
|
||||
"i686-pc-windows-msvc-0.5.15":
|
||||
"9092e142ce3a35f8c9f36058c3278f6b99718c02d8b904001ccc1cd918a0c798",
|
||||
"i686-unknown-linux-gnu-0.5.15":
|
||||
"d945431e618c2688ac62e640c16022c587a6f80677c64346280143d83939f93f",
|
||||
"i686-unknown-linux-musl-0.5.15":
|
||||
"6e1a968662a0952083e9a297ec067606621f93b55ccfbdd8ca475fd13b328d90",
|
||||
"powerpc64-unknown-linux-gnu-0.5.15":
|
||||
"58a6663e477645194c34dfac96b4c42ba6e7c4b5aa851c1e52276769b279b605",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.15":
|
||||
"c7281fa8fedd6332c594faa7e1dc1555960c7fb60d3e1b013309651b8d53377d",
|
||||
"s390x-unknown-linux-gnu-0.5.15":
|
||||
"590751ffaf36f3f01b66afcb7de844ed0f69aeb2b54595cf191a4e60ddfab11c",
|
||||
"x86_64-apple-darwin-0.5.15":
|
||||
"6a729cb237d895eebeb65363419f41b217dbcd745819bcef61098a5ddd583f08",
|
||||
"x86_64-pc-windows-msvc-0.5.15":
|
||||
"2c49a892f793b957b0add32aa21a64940caf4bc03319cf0bb3b27caeebb985f7",
|
||||
"x86_64-unknown-linux-gnu-0.5.15":
|
||||
"6c650324daafc07331c00b458872d50f56f160544015c8a499fd2e160b404ebb",
|
||||
"x86_64-unknown-linux-musl-0.5.15":
|
||||
"40d8564e954bbd18f2c5ba80978491c3a25ab49e067664daf525e34c38a370b8",
|
||||
"aarch64-apple-darwin-0.5.14":
|
||||
"d548dffc256014c4c8c693e148140a3a21bcc2bf066a35e1d5f0d24c91d32112",
|
||||
"aarch64-unknown-linux-gnu-0.5.14":
|
||||
"1c9cdb265b0c24ce2e74b7795a00842dc6d487c11ba49aa6c9ca1c784b82755a",
|
||||
"aarch64-unknown-linux-musl-0.5.14":
|
||||
"64c5321f5141db39e04209d170db34fcef5c8de3f561346dc0c1d132801c4f88",
|
||||
"arm-unknown-linux-musleabihf-0.5.14":
|
||||
"903f87c609479099c87c229429f2a25f451689d862ee19170f6d87ab656815a0",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.14":
|
||||
"c33a4caa441c770ca720d301059eeb6af5473ceb22b69adf08b99043c3e4a854",
|
||||
"armv7-unknown-linux-musleabihf-0.5.14":
|
||||
"c3b1bbe0d70e916abdd557092bf94c4830f98c471fe7d45b23d4dec8546251f3",
|
||||
"i686-pc-windows-msvc-0.5.14":
|
||||
"2ea709cf816b70661c6aa43d6aff7526faebafc2d45f7167d3192c5b9bb0a28f",
|
||||
"i686-unknown-linux-gnu-0.5.14":
|
||||
"74fd05a1e04bb8c591cb4531d517848d1e2cdc05762ccd291429c165e2a19aa1",
|
||||
"i686-unknown-linux-musl-0.5.14":
|
||||
"a616553164336a57fc154a424d44cd75eb06104bc4e69f3d757e3da90a90d31f",
|
||||
"powerpc64-unknown-linux-gnu-0.5.14":
|
||||
"4b675ac963f4d90034f8b8de8b03e0691b7e48eb8ce7bf5449ea65774750dfd4",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.14":
|
||||
"2a7bb1d27a6a057cbd5f62a5bc2ec77175c71224de8fb1bb5107acb1a07cc02a",
|
||||
"s390x-unknown-linux-gnu-0.5.14":
|
||||
"68acbfadd9e100b69b31f4995265b716465df909a7d110bba76d93e8adc3a76b",
|
||||
"x86_64-apple-darwin-0.5.14":
|
||||
"8caf91b936ede1167abaebae07c2a1cbb22473355fa0ad7ebb2580307e84fb47",
|
||||
"x86_64-pc-windows-msvc-0.5.14":
|
||||
"ee2468e40320a0a2a36435e66bbd0d861228c4c06767f22d97876528138f4ba0",
|
||||
"x86_64-unknown-linux-gnu-0.5.14":
|
||||
"22034760075b92487b326da5aa1a2a3e1917e2e766c12c0fd466fccda77013c7",
|
||||
"x86_64-unknown-linux-musl-0.5.14":
|
||||
"e1ccdfe1691c1f791d84bb6e1697e49416ca4b62103dcdf3b63772f03834f113",
|
||||
"aarch64-apple-darwin-0.5.13":
|
||||
"8a1ddbe5131c50cbf5247f2f335252d14767a7ff74f08c8a1813f003bc86d37f",
|
||||
"aarch64-unknown-linux-gnu-0.5.13":
|
||||
"d0054db9ba0ec472ee6d28fa3eda94fb021b5e77c962f3bb1ff4b4fa7934e66d",
|
||||
"aarch64-unknown-linux-musl-0.5.13":
|
||||
"fcbc405bdf8f6edf25818b756af702e8161528f4317d65310d9a0d4e02d7f544",
|
||||
"arm-unknown-linux-musleabihf-0.5.13":
|
||||
"ba382034294dffcbe36d4a299a5c69c4f48caac9c4b78a1727c7fc9101175202",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.13":
|
||||
"cc28eeaa29b85f17c27cefe96497b3448024e14b5bc92921e1b7d157375d2334",
|
||||
"armv7-unknown-linux-musleabihf-0.5.13":
|
||||
"449b680c4a3d936e9005e39983208a183e0fffa62fe73e6daed85f51389fc40e",
|
||||
"i686-pc-windows-msvc-0.5.13":
|
||||
"c1531c2f1eb8c36b2947abf039caf1aeba4253c3c35716705ca339a0a3d96594",
|
||||
"i686-unknown-linux-gnu-0.5.13":
|
||||
"35b964c75699b6569d950fb39561146b830101403c9a937ace1fc64fc1967c1b",
|
||||
"i686-unknown-linux-musl-0.5.13":
|
||||
"a33007ed60d67fa4c5b7689c1adb33751a5c1a8732057ed84b9deddbb39cd3a6",
|
||||
"powerpc64-unknown-linux-gnu-0.5.13":
|
||||
"9e34fc400e51f3331452083dd5e54fadc0f3be81f7901772366faf4c75e2680b",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.13":
|
||||
"ee01812f102379bc9bb6ea991f81536c9546a5f0d4990b9ed1fbb1900cb5f647",
|
||||
"s390x-unknown-linux-gnu-0.5.13":
|
||||
"f43c42318411ff5f3e8ea4be2228e71fb28b01ffcc08259bb301877c7f7155e0",
|
||||
"x86_64-apple-darwin-0.5.13":
|
||||
"f871b2b002b750438e5e6df4b0809a9f7d089bc5d4d0466bc63577c9ecc59979",
|
||||
"x86_64-pc-windows-msvc-0.5.13":
|
||||
"c8a2e7e8bd87866fd1d52dbd4b4c0d85f328a6dcdeff17b85cc9c9af447ef3c3",
|
||||
"x86_64-unknown-linux-gnu-0.5.13":
|
||||
"0127da50d3c361d094545aab32921bbce856b3fcc24f1d10436a6426b3f16330",
|
||||
"x86_64-unknown-linux-musl-0.5.13":
|
||||
"1afaef0180a6b9fe43fa6658443796b8e235fc41382a451634515890cf3aca06",
|
||||
"aarch64-apple-darwin-0.5.12":
|
||||
"9eb8e0d3487f5389bec2c60cea37bb0a4d028513bffe854b9ece82d538c0f312",
|
||||
"aarch64-unknown-linux-gnu-0.5.12":
|
||||
"ed8b4928a148365a84133ce96344fc22ac62674db2c6bef88853d0e38791e8d8",
|
||||
"aarch64-unknown-linux-musl-0.5.12":
|
||||
"3ce19d81232cd2dcc2646060370a1583ca5558e7f61d934ae22798006719341d",
|
||||
"arm-unknown-linux-musleabihf-0.5.12":
|
||||
"744409cd0b7f6314b8ba140cb63f72e2576dfec5c83491d12455775d870d508d",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.12":
|
||||
"452f8b769818858c3343444396d270d34026f0f7649cc89c4076ecdc8eb6d391",
|
||||
"armv7-unknown-linux-musleabihf-0.5.12":
|
||||
"35abf5e98f2c9a8250045a58a568086f0e223be703c090134bedaf6279ebaac5",
|
||||
"i686-pc-windows-msvc-0.5.12":
|
||||
"04f91508e6aeb7a2054e98552ff537b9863afbcbd4f72ba8bf8d9e9e25b37808",
|
||||
"i686-unknown-linux-gnu-0.5.12":
|
||||
"38c8fbdb74ee9eb95ecdb4b843d9014d47214cdf5415520378161979d1b0cb34",
|
||||
"i686-unknown-linux-musl-0.5.12":
|
||||
"6a8bb35f83c2a66711da3cee8d939e8893b34b25ae6cb53590c111637a93d527",
|
||||
"powerpc64-unknown-linux-gnu-0.5.12":
|
||||
"d1477f41b919c60d10a191bd81aeec0185cec7efb0364d9689b202b3a6607912",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.12":
|
||||
"12629950b444487c66a3a99f0ff0f82f11a7b0a57e8305b2767eed5b85a4a3bb",
|
||||
"s390x-unknown-linux-gnu-0.5.12":
|
||||
"36fc6d9ee6294ce54a2e3e92f10df094bebdd2862c29223bde18361aad9a9f1d",
|
||||
"x86_64-apple-darwin-0.5.12":
|
||||
"78f38c88bf5e410600cd8f8ee4d5ba3ee781c94c091b1a57566256a2178ef4a3",
|
||||
"x86_64-pc-windows-msvc-0.5.12":
|
||||
"04b45a4af12c0bb7cc31004dfcfed2e722c4ca07e1ac58850f93a9343dd5d06f",
|
||||
"x86_64-unknown-linux-gnu-0.5.12":
|
||||
"65b8dcf3f3e592887fae0daf1b3a9e3aad1262f74bb21cf80d1700c7caba7f23",
|
||||
"x86_64-unknown-linux-musl-0.5.12":
|
||||
"bd517e6508feef0261289b16c844c377127f21377c18c4a564d0d09add556fca",
|
||||
"aarch64-apple-darwin-0.5.11":
|
||||
"695f3640d5b1a4e28de7e36e3a2e14072852dcc6c70bf9e4deec6ada00d516b4",
|
||||
"aarch64-unknown-linux-gnu-0.5.11":
|
||||
"055c329c38a93c01d378349d51cb4d521d1998c8a79355ddc00f863ce451942f",
|
||||
"aarch64-unknown-linux-musl-0.5.11":
|
||||
"d0bb82d8bceb561dc785f3811f5f5a427f1be47b654f0cc5d6c36d779e03a3ff",
|
||||
"arm-unknown-linux-musleabihf-0.5.11":
|
||||
"a889ef4a6bbb7d2c2e460544e8c949ca9d01e18c56af23b6bfb4d8b952319dc7",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.11":
|
||||
"e9f4ff168ecaf87fee4ba129c0de59f6bab96a249fa21ecafdd853d61f2ff929",
|
||||
"armv7-unknown-linux-musleabihf-0.5.11":
|
||||
"202b6437480af1e46a9722d20e179983951edee1d92c307ea457acfafbd378bf",
|
||||
"i686-pc-windows-msvc-0.5.11":
|
||||
"955dfba777851761b246bfa701a05fa809676493fa83ec29837f5315ada38b3f",
|
||||
"i686-unknown-linux-gnu-0.5.11":
|
||||
"916df079c0125c2a5d48e1f012064f24dc7ef2ab8c94bccc192cf9d96094db5a",
|
||||
"i686-unknown-linux-musl-0.5.11":
|
||||
"a06d22d1f9d0233941817fc263dd928913f20aaac940c336f995e3ad3592736d",
|
||||
"powerpc64-unknown-linux-gnu-0.5.11":
|
||||
"dc2e4ce36bf01c1fb1f1ff8506cc11f4fe607f077ab235ea660417fd4e1964df",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.11":
|
||||
"ca60d5f715f068647e487c003f1e55eea303abcec2ef8cb04c3d87c83bc580f7",
|
||||
"s390x-unknown-linux-gnu-0.5.11":
|
||||
"8b1b9d9c1dc2f195e4f490c1ea7c848e0eec025510dd576036df44dc78c27c28",
|
||||
"x86_64-apple-darwin-0.5.11":
|
||||
"7e23d1d892c23f9e74245c4fd3d3e246438ce9b34460f85eee61f784de137b0b",
|
||||
"x86_64-pc-windows-msvc-0.5.11":
|
||||
"3e8203e6434b45427f20824419f8d8d53f970a76d94ccdcad07f8498fa01a9d0",
|
||||
"x86_64-unknown-linux-gnu-0.5.11":
|
||||
"14411de26cdea5f5139fafaf2b675b1c633e744dd49c6d6a9fc8817ec065158b",
|
||||
"x86_64-unknown-linux-musl-0.5.11":
|
||||
"5b77978bc8ded7e1b6ddb6d6a3e52f684bcc07c6d9be11d7b4fc3c1c23f4458f",
|
||||
"aarch64-apple-darwin-0.5.10":
|
||||
"dd3fa053379017923a4692cabdebb96844f83c7a516d9e6cb30502574cbd322d",
|
||||
"aarch64-unknown-linux-gnu-0.5.10":
|
||||
"f4316a657c964994d7eb736ba875f3f685c4b61e961f514e98fb50ed181da72a",
|
||||
"aarch64-unknown-linux-musl-0.5.10":
|
||||
"82e0472b5b0e6c738db3abe454e39e4b25b3d02f84b34b41dc7abca01ade09b7",
|
||||
"arm-unknown-linux-musleabihf-0.5.10":
|
||||
"269001ff4b3cda3af685d78803ae25d96fe78282040c416875784cda37fa6c73",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.10":
|
||||
"e6c0d421a2c66e3938cc2d78138239a782561da3c595c2e37d4bde36883ede95",
|
||||
"armv7-unknown-linux-musleabihf-0.5.10":
|
||||
"ab50758c7e1f56e6ec1e8a66a9b727ad7f3db1a872dd56b2c2e7f9d71a06b39a",
|
||||
"i686-pc-windows-msvc-0.5.10":
|
||||
"676336743ca7f152a5f5186c49e8a171a9d49ad735c08e1bb5d85f6ed280d57b",
|
||||
"i686-unknown-linux-gnu-0.5.10":
|
||||
"1d8c84de2e995ee26dfc9cd0bfee6bf546b06995dcd13e255b005d5a59a8c349",
|
||||
"i686-unknown-linux-musl-0.5.10":
|
||||
"1867b910f331a56891bc0f287ae5fbf05cb09ded229d1d95a25a1e76e7b0a010",
|
||||
"powerpc64-unknown-linux-gnu-0.5.10":
|
||||
"b617172c145df05dcf28666570cb3a798d393cb7f48292686490cf7b0b8fb508",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.10":
|
||||
"95a0234191ba11109163cba2bf4c757d92bc98be0aa1349d7f32b5d85c8935b5",
|
||||
"s390x-unknown-linux-gnu-0.5.10":
|
||||
"a6943d479fca4fccab7af39bd47f097d67e64382665768600ab268cf167f1cee",
|
||||
"x86_64-apple-darwin-0.5.10":
|
||||
"f82ed219d9e4cc22ac24168450567351881930774197bf9ad4bb5fc50e1eaf0d",
|
||||
"x86_64-pc-windows-msvc-0.5.10":
|
||||
"d97566f535f07a9bbcaed90900a4a9e1b800076daa3193f23d17910879e7fbc5",
|
||||
"x86_64-unknown-linux-gnu-0.5.10":
|
||||
"13452b7a99d953e970ec52861de03f6f2e00bfee2c4357bc63c292a70472b386",
|
||||
"x86_64-unknown-linux-musl-0.5.10":
|
||||
"e94e9060ce51fabad2b62846df3963f908101ffebc02fec5e8c1baa373bd6edb",
|
||||
"aarch64-apple-darwin-0.5.9":
|
||||
"66d352728d0efe9ecc65f7e9ee419fce139e3ab99addc08527e8cebbb405d382",
|
||||
"aarch64-unknown-linux-gnu-0.5.9":
|
||||
"376d5d52a4b3a9875d66898261e2ce2d31d36c095a1d81cb88d953f5bf7273eb",
|
||||
"aarch64-unknown-linux-musl-0.5.9":
|
||||
"ec5598ae9daba48f7a12b2f12533c6aa683049e6a822835794cea136f63abd31",
|
||||
"arm-unknown-linux-musleabihf-0.5.9":
|
||||
"4ca86619f26c0879f81e26760b529a548ba96b33141d24075b71137cf9dfa639",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.9":
|
||||
"412d249f2c9a3dd7c070a219fc658fe9a36c6e9c50bef53b536efd54446eeae9",
|
||||
"armv7-unknown-linux-musleabihf-0.5.9":
|
||||
"4097f1b45627212aa8936c973d9c7dcfaf1512ed08cfe958cf9dc68d0cc5d02f",
|
||||
"i686-pc-windows-msvc-0.5.9":
|
||||
"73ac9d7aab6bafe1d8da36b7d4cb2bd969ca1d9c675b7a021afec3c913fe223f",
|
||||
"i686-unknown-linux-gnu-0.5.9":
|
||||
"7236440874031e47a2ff3b4df93c7c2833c0bbe428716e491b8e87c8539a6651",
|
||||
"i686-unknown-linux-musl-0.5.9":
|
||||
"64e588a32f12dac948733eb8ad57f7344bffd30023150a4b9b2b9b2a47ba2c9b",
|
||||
"powerpc64-unknown-linux-gnu-0.5.9":
|
||||
"56d62d87a42f05f49f29fda674ec2576b811838029c048ed776cdbbaa690da57",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.9":
|
||||
"15a6f24ad5b30b2ce71a9fcc31ecd88d658c8534fac58d2a9af33a3e7c48a99b",
|
||||
"s390x-unknown-linux-gnu-0.5.9":
|
||||
"e5a3ebc23c9acba4f8ae2a9f0a4344297e5a604cb24f63751193494f64e42822",
|
||||
"x86_64-apple-darwin-0.5.9":
|
||||
"f4b4311cd2c2928aadee6b4e85aec2c6db7d779d4f9009eb4733bc8b2f20dbb5",
|
||||
"x86_64-pc-windows-msvc-0.5.9":
|
||||
"8cb608cdf23b79f4f598969b72890db657c5addab312890c37ab20b9b57c501f",
|
||||
"x86_64-unknown-linux-gnu-0.5.9":
|
||||
"e9cca3fb618dbc056f770d3ac4d52af491b532e60c8b19b97b9ba24f42db2bc1",
|
||||
"x86_64-unknown-linux-musl-0.5.9":
|
||||
"f97ffe29c03f01bb19a948eb8eb1e27cefbbf83b8dd54057da0247a664a303ac",
|
||||
"aarch64-apple-darwin-0.5.8":
|
||||
"745b3b8c0c2ea5b3ae253bc4c01fa5026ef399f4836749bef468d44747f291b0",
|
||||
"aarch64-unknown-linux-gnu-0.5.8":
|
||||
"2eecc3b90d2316a85c9245107ddc6a5eecb9f481d97f4da94845972db0e93457",
|
||||
"aarch64-unknown-linux-musl-0.5.8":
|
||||
"f30278b8a479e5d5e55f69432e4fcfc2b7ef20fa6e7aebfe92c30fb6bcef93c7",
|
||||
"arm-unknown-linux-musleabihf-0.5.8":
|
||||
"59c1e1a3c2aa50ad06495655d3ae1f0a58d9ec3c6179aecd6f3a6b5a01a30fde",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.8":
|
||||
"a697d9cee4e1698a4e9634caa57fc3f0afca370014bb37cc8d13a339374bf1da",
|
||||
"armv7-unknown-linux-musleabihf-0.5.8":
|
||||
"596a103852edd5e09c8acd12206b123a1c1808c9161271c2819572477d4694f5",
|
||||
"i686-pc-windows-msvc-0.5.8":
|
||||
"2e1dc6042c1d419c296d4fa424218b24fb87a2fc6c8b61280f9d7df26a90e3f7",
|
||||
"i686-unknown-linux-gnu-0.5.8":
|
||||
"e4edad6a7a772ccf7695ece61698fa289cb9ef113fb3e3b5ce8739cfee7ab8d6",
|
||||
"i686-unknown-linux-musl-0.5.8":
|
||||
"878cd30bfbfbe53b721970d72961f1a1694afba3de6df96aa15d0f3782fa249b",
|
||||
"powerpc64-unknown-linux-gnu-0.5.8":
|
||||
"36735c72bb137cdd44f7d534da570d99354f08b1bf2e704616a946cf58f37c71",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.8":
|
||||
"a00e19ebf37b384abdb19968e65d38503880d5dc093f9795bc3d5d45ca9db6b3",
|
||||
"s390x-unknown-linux-gnu-0.5.8":
|
||||
"b8feaf065cad523651936acd62d90d4d37d4cb5b52703cf753f6cd1eb97cb6ea",
|
||||
"x86_64-apple-darwin-0.5.8":
|
||||
"c3da7bebc434c59264737ff2430d942cb1d8605f20a7f4093232b1715eaafdca",
|
||||
"x86_64-pc-windows-msvc-0.5.8":
|
||||
"9335f35ebfb29ad2cc8b65862f43d5f72ee50038a22b216e999342efb402e319",
|
||||
"x86_64-unknown-linux-gnu-0.5.8":
|
||||
"dd73615862bb9cfb1f31a491b486123eb7730f99a815ec38baf297a37c749a14",
|
||||
"x86_64-unknown-linux-musl-0.5.8":
|
||||
"b503c9e5a9aacba7f9283a1595931656cbac652c7fda1c486935af7d6e82b0c2",
|
||||
"aarch64-apple-darwin-0.5.7":
|
||||
"b8cab25ab2ec0714dbb34179f948c27aa4ab307be54e0628e9e1eef1d2264f9f",
|
||||
"aarch64-unknown-linux-gnu-0.5.7":
|
||||
"d4dd7a72689888c92b5191902fd4ec9d25b7eeba07be41ba4a8f89acbb403e2d",
|
||||
"aarch64-unknown-linux-musl-0.5.7":
|
||||
"2c0fdf774ebfabecadf403c2fb966cc1a023b3db3907041fae34c77464a38a2b",
|
||||
"arm-unknown-linux-musleabihf-0.5.7":
|
||||
"7d375c18cb8819f712072fa64cbfeede37bc246513d2bcdabb06e08999ac3908",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.7":
|
||||
"2495d0c98b18b0fb1e258bcefd05d9771720e769f642046e6943aa9c8dc3a006",
|
||||
"armv7-unknown-linux-musleabihf-0.5.7":
|
||||
"070f3c59782832f1befd054053ba9def92e94e265aea2c06078c127525d2b086",
|
||||
"i686-pc-windows-msvc-0.5.7":
|
||||
"d207a2791a513e3d645779e5d86cc88f7040426ec5e4a5521498b87558f93db6",
|
||||
"i686-unknown-linux-gnu-0.5.7":
|
||||
"01d7c0444812563712038f472fcac77981a5dac9c44d507ccbccd49ec1828a12",
|
||||
"i686-unknown-linux-musl-0.5.7":
|
||||
"ad934cb434d896637a4a9bf9defd309ebd71b46294aa6d878cf23d8377d3b2e1",
|
||||
"powerpc64-unknown-linux-gnu-0.5.7":
|
||||
"ff17ee98044a38d65f177d4534c10d7e971f7df13ee4b50710f7929cc6cb1342",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.7":
|
||||
"080de54bc6b2a2c56c3d39d3ae857bac322702fd5a53b7732260a04ea6f25f67",
|
||||
"powerpc64le-unknown-linux-musl-0.5.7":
|
||||
"326c1da6f0bbd16350a45243a4ebe4deab838c2af5662c20514ae878986689c2",
|
||||
"s390x-unknown-linux-gnu-0.5.7":
|
||||
"ad94c056abf9a5caf652136de3569b999a5e0cba0456e41459e5ee34215465b0",
|
||||
"x86_64-apple-darwin-0.5.7":
|
||||
"b0ff9937005e9dbc68798f587e72cedfe488f0866bb47532a8c3273e7222090a",
|
||||
"x86_64-pc-windows-msvc-0.5.7":
|
||||
"cb2aea0d8f85ffe1c4e2a431cbbd6e5c8faeb732e7cf8e4bee1c10b7779e7352",
|
||||
"x86_64-unknown-linux-gnu-0.5.7":
|
||||
"8a0a3e823684dec6e49ae17f31bf6483c778fd579671992d9156875210e5161e",
|
||||
"x86_64-unknown-linux-musl-0.5.7":
|
||||
"4433fddf179fb49c962d6b4f824602b81cc20228406382b6fd21da33f816f8db",
|
||||
"aarch64-apple-darwin-0.5.6":
|
||||
"dc122e0c41f7a3fbc8004802062785e6b5c8171bc2a2ca0adc5485165c92452d",
|
||||
"aarch64-unknown-linux-gnu-0.5.6":
|
||||
"e90777ae28652cc7c40084ca2156bd344b5f95ee2ea9792b6e0c3a15f527c778",
|
||||
"aarch64-unknown-linux-musl-0.5.6":
|
||||
"b7e346728daac9c0d0d2e5df333f19275c232373a9ad29255b7aab2d8972f7fe",
|
||||
"arm-unknown-linux-musleabihf-0.5.6":
|
||||
"89ab758f876a6724ad1667f9e267369892dc7c570c136e40651ecbfd3a78e0e5",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.6":
|
||||
"6e17c62e361400498f95d39c0565e1e71fd252c732485ff0bea7af68ea24739c",
|
||||
"armv7-unknown-linux-musleabihf-0.5.6":
|
||||
"c1806fb75ebc416e50e796ad3a61b82d096172d46fd4701c431cb54df4faf85a",
|
||||
"i686-pc-windows-msvc-0.5.6":
|
||||
"4e387415a2238a7e827cf653448c032aa7085ccb4e14c5376f022aa52a3b145d",
|
||||
"i686-unknown-linux-gnu-0.5.6":
|
||||
"d61e0b1aa8fa302f39604ba8080972fccd9e2b76b653c0ae4d9fffc0b91e193d",
|
||||
"i686-unknown-linux-musl-0.5.6":
|
||||
"3ca5626e6325a116aad2f44ba30bccc31a15b35ac2e67349982b9c717900004f",
|
||||
"powerpc64-unknown-linux-gnu-0.5.6":
|
||||
"112fd134f44c35800c1321bdd5ffc081d1d0bcd439e43fc3043829ed718fb7d5",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.6":
|
||||
"56fcf8a19260d25ebda937422382c701446ff7849d86fc0aba37d9b60e8dcca9",
|
||||
"powerpc64le-unknown-linux-musl-0.5.6":
|
||||
"86f0347ff9cdfa214192d0143e673c61aca0981ab330f9ecf967acce2002f0df",
|
||||
"s390x-unknown-linux-gnu-0.5.6":
|
||||
"170beaaa681acf3c7535dbca04808f1ad51689c86a3439f93eb6e0a4567ea24d",
|
||||
"x86_64-apple-darwin-0.5.6":
|
||||
"9c45d209e5abdcfa42aa44cf456df6c0952b9d719b01d9c9e787886b17a5080e",
|
||||
"x86_64-pc-windows-msvc-0.5.6":
|
||||
"46c21ac0449ae967d65518d8025f6ae4006387802373bce0e72ebd133d77e94f",
|
||||
"x86_64-unknown-linux-gnu-0.5.6":
|
||||
"83521a07922e4ddff61b9204890a974e56ad9333f295690d3ddae931243ec3db",
|
||||
"x86_64-unknown-linux-musl-0.5.6":
|
||||
"0578a350834a79f39dc2301b613e094597fc6b7937e5249519a7e1fd17f6184f",
|
||||
"aarch64-apple-darwin-0.5.5":
|
||||
"9368ad5eb6dfb414e88b1ab70ef03a15963569a2bba5b2ad79f8cd0cdde01646",
|
||||
"aarch64-unknown-linux-gnu-0.5.5":
|
||||
"aa3e8c6e095798c92e0b1bc7599af6313c10c0f35cd301221d230abb083cf6b0",
|
||||
"aarch64-unknown-linux-musl-0.5.5":
|
||||
"fb09752aa9459cefd98f3c390ba4a937c32c0079588cf79586069883df204423",
|
||||
"arm-unknown-linux-musleabihf-0.5.5":
|
||||
"5485e615f345643ea926ef8dce39c0c996b5b539a37755a4406142fed6b124c7",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.5":
|
||||
"42639efed5fe9b1102941c520fb3debc70149f18a1fa1befe541c90ae35423ab",
|
||||
"armv7-unknown-linux-musleabihf-0.5.5":
|
||||
"0720626dc41384eeceafb4c8820e941f81bfd035c045f5db093ebfe11a1f3181",
|
||||
"i686-pc-windows-msvc-0.5.5":
|
||||
"100b63404a3e6085b107effa70bb06b41f4409365cb139f0f424c1336bcd3dfc",
|
||||
"i686-unknown-linux-gnu-0.5.5":
|
||||
"5d7f545bfc9493e3f259a93b666dfba1a009da2446151efb6d40a8420156d3a8",
|
||||
"i686-unknown-linux-musl-0.5.5":
|
||||
"0128c3263b143ef084c59a178d2677e746942eb2f5d16db9a0afd303c10b4b8a",
|
||||
"powerpc64-unknown-linux-gnu-0.5.5":
|
||||
"bbbf810e9994c362e645f7bf1d93fcfdb7e0eb65665f7b87da7ab341607ec162",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.5":
|
||||
"d3ebdeb4aba8b9c8a00017cb99c7b4e57883b1bf0241668214de81b878866db2",
|
||||
"powerpc64le-unknown-linux-musl-0.5.5":
|
||||
"7c6539386d5a92297f6b84857bb6612897f3cc97d8e0cd30593c1598030464ac",
|
||||
"s390x-unknown-linux-gnu-0.5.5":
|
||||
"fce501e64047f2a54829b75fd27a65e4334116684db459d52e2628c5bef6a3d2",
|
||||
"x86_64-apple-darwin-0.5.5":
|
||||
"da8f40c1effe0e5d6ac0438a72ecb7671d67dcf8e3d53ff3d4e1b17140a1b5bc",
|
||||
"x86_64-pc-windows-msvc-0.5.5":
|
||||
"4a2d709b55a2267fcf4adf35f9c38e244c23b118d0992d52a897df8aa21961d2",
|
||||
"x86_64-unknown-linux-gnu-0.5.5":
|
||||
"3ef767034dec63a33d97424b0494be6afa7e61bcde36ab5aa38d690e89cac69c",
|
||||
"x86_64-unknown-linux-musl-0.5.5":
|
||||
"59c3d11f819deeec4fa01ce6d2bdc08b32ac72b8e3031ae5b2b0706d3e751dba",
|
||||
"aarch64-apple-darwin-0.5.4":
|
||||
"f924d82255a0b25fd04a78c7012f90300cdadfb72ca0af4508f3eeaf9509010f",
|
||||
"aarch64-unknown-linux-gnu-0.5.4":
|
||||
@@ -36,8 +850,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"c5b63d1cd0a894246195250c034f9d82d646dc8f718f1f424cec2bb1a42e7b17",
|
||||
"x86_64-unknown-linux-musl-0.5.4":
|
||||
"054016bcb6c7171feccd4234738d65727e67d39eddb500146edc779845b8846f",
|
||||
"undefined-0.5.3":
|
||||
"ee4a3027f0ddff52c89df8d37cba54b6c40cd320d6fdb6ef033c7f11a6918f56",
|
||||
"aarch64-apple-darwin-0.5.3":
|
||||
"634a7bd1250ab42a1b185789ceb733b7a186791eb78f995ecee283758abe44f6",
|
||||
"aarch64-unknown-linux-gnu-0.5.3":
|
||||
@@ -72,8 +884,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"ba8828266c79c299ca24a1d9f2f78172667254d0f8ff07e24e1735d50c03d9b7",
|
||||
"x86_64-unknown-linux-musl-0.5.3":
|
||||
"73b06fce21772d1c279d33bf53fa2f69c1ed9f929b5b06b14405bbf7244394fc",
|
||||
"undefined-0.5.2":
|
||||
"60465d87552cd6febfdee8c58176d699e00d5549f2d35db3261ec5a113996099",
|
||||
"aarch64-apple-darwin-0.5.2":
|
||||
"b4dc200d88ee9a8c9c3d5c755d9641fdf0e22b7d77239b4eeda08f204571f871",
|
||||
"aarch64-unknown-linux-gnu-0.5.2":
|
||||
@@ -108,8 +918,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"d2d9d4b9ce536ab7ebb09d33629694385a3ebb72d156ae0b4dd28c9b6f6cbd13",
|
||||
"x86_64-unknown-linux-musl-0.5.2":
|
||||
"61c386972ce13850cf20308de0be98a056d932e58d4154d1aec663714ac57067",
|
||||
"undefined-0.5.1":
|
||||
"bdb7aa8f79ea3af27b1c618901fda6a622ae67700195f4c351085fa868c0c3d5",
|
||||
"aarch64-apple-darwin-0.5.1":
|
||||
"240bc4dc0d424ce652746ea030e61798c07e3d22426c0e0fb46d1b408078df91",
|
||||
"aarch64-unknown-linux-gnu-0.5.1":
|
||||
@@ -144,8 +952,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"942e29ff6769b096c7c99e9c3b1c08276869667d0d5d6121852dd9b9d875b3f3",
|
||||
"x86_64-unknown-linux-musl-0.5.1":
|
||||
"c446a98876ed86c810a80621a43e2378c35f39794020f8de99da72b003b17dd5",
|
||||
"undefined-0.5.0":
|
||||
"2a5a63a6d7ddc2413c2f31e17d841b6d9b0815825f6e72789b7b9b405f5dacf5",
|
||||
"aarch64-apple-darwin-0.5.0":
|
||||
"400f1e87d211af5ba4c412984b6d0e1e885cae480ee37cab58b5fabe9f9539c5",
|
||||
"aarch64-unknown-linux-gnu-0.5.0":
|
||||
@@ -180,8 +986,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"e8f8c7e55ef2dfb0b57faba265faeb5049e30b9065a38e2a4fef89d6f6a492d0",
|
||||
"x86_64-unknown-linux-musl-0.5.0":
|
||||
"a82a2e9c0cf4af58aa1f8d4a6f910c2d36abd38dd6d3315a6e11e7176c872a8d",
|
||||
"undefined-0.4.30":
|
||||
"f077365676f0ed0e2275bd55015ad32f381a9d8684559ce9ee4d0e3c84906a0a",
|
||||
"aarch64-apple-darwin-0.4.30":
|
||||
"5fb068be1d0c77d0829a0a611a470f74318f114c4dc8671cfaf1e606ab81e40a",
|
||||
"aarch64-unknown-linux-gnu-0.4.30":
|
||||
@@ -216,8 +1020,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"5637be5d163ccdcb9f0fe625890d84bbc3596810320be1f56b53bb111edb5dd7",
|
||||
"x86_64-unknown-linux-musl-0.4.30":
|
||||
"f01c55c20eb356bfb7316020ec79d18ac2846ce2dd5bc68ef68858810ccac7c5",
|
||||
"undefined-0.4.29":
|
||||
"259a292505fe1dbb59de3018b44a0627880365d2076e53ab910536fe224dd7b7",
|
||||
"aarch64-apple-darwin-0.4.29":
|
||||
"0679dd093e97c1d8996caee91ce5aed76533f023fef639b281b2479574d22338",
|
||||
"aarch64-unknown-linux-gnu-0.4.29":
|
||||
@@ -252,8 +1054,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"c755b97c0c555eb449538b6d8c7cc5555a5668f08ff23a300eb874277fa58668",
|
||||
"x86_64-unknown-linux-musl-0.4.29":
|
||||
"3b4030b5f4c0a57c5f2691db47c29c8e14d3712ea81dae0c7fdae0034ae1f353",
|
||||
"undefined-0.4.28":
|
||||
"cf9d32e161ada0695823066037e3ec3eae49ace36ddcf38020be06891b6c714a",
|
||||
"aarch64-apple-darwin-0.4.28":
|
||||
"ac75193926e6295ee0b8715296054b48b758f63fcf3732d8538c69140b9793f4",
|
||||
"aarch64-unknown-linux-gnu-0.4.28":
|
||||
@@ -288,8 +1088,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"fa0183aa09a410bec74c70f4e750ab6f9e91c152a452da4a06692938a3d5556d",
|
||||
"x86_64-unknown-linux-musl-0.4.28":
|
||||
"6c0317109500cd38cb27dfe1e8d0fad032caaab1afaa1062a7a9480606da6cac",
|
||||
"undefined-0.4.27":
|
||||
"6ebf2732b3c4af6c0d433258cd938c40193602ddccf4996a757e2d5392a6b22b",
|
||||
"aarch64-apple-darwin-0.4.27":
|
||||
"f2424efb16c5e646901a8c09b604e3cec3adfa871481c401947a4ae8476ae02f",
|
||||
"aarch64-unknown-linux-gnu-0.4.27":
|
||||
@@ -324,8 +1122,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"5565ad9d050a08fef2951d28aef1372ccfe39ccd41dec6fea13167589baae087",
|
||||
"x86_64-unknown-linux-musl-0.4.27":
|
||||
"6b8233d4890b28575f3636f974d906089b9c4a6e9903ddfea257a2f16f3ca28a",
|
||||
"undefined-0.4.26":
|
||||
"5b36575a355193cb3dd3461e477ad7bfddf12d67d941f805caa4aaff52157491",
|
||||
"aarch64-apple-darwin-0.4.26":
|
||||
"42cdc5e7adad5348c8763ec3d57ef7972a25c034121d13424614b83849585303",
|
||||
"aarch64-unknown-linux-gnu-0.4.26":
|
||||
@@ -360,8 +1156,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"6fab73c9e2ea841852bc3c7157c1e49470ba62d1cde4af401436f13468b8d709",
|
||||
"x86_64-unknown-linux-musl-0.4.26":
|
||||
"c9dfe6a38354a85b3c4c4718703c23682c8cd7f5ad2e592458cb081b970f4c02",
|
||||
"undefined-0.4.25":
|
||||
"b3c707e3b7a21acb8e949dd7a0db524623df8beae7bca86708ecd5799f01a28c",
|
||||
"aarch64-apple-darwin-0.4.25":
|
||||
"bb2ff4348114ef220ca52e44d5086640c4a1a18f797a5f1ab6f8559fc37b1230",
|
||||
"aarch64-unknown-linux-gnu-0.4.25":
|
||||
@@ -396,8 +1190,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"6cb6eaf711cd7ce5fb1efaa539c5906374c762af547707a2041c9f6fd207769a",
|
||||
"x86_64-unknown-linux-musl-0.4.25":
|
||||
"2e19246cb4ac903b9bbe9b52b09de673885785dfe64e5faa818ac13c1e5dfa21",
|
||||
"undefined-0.4.24":
|
||||
"917be4e4e96ef555e2c739e3b91eac21b7df6f1b45d80e25fe4e50d1249d6846",
|
||||
"aarch64-apple-darwin-0.4.24":
|
||||
"69dbd88647d260dac051db11004f1e6438d1296da23cfec084a5ef9100e46c4b",
|
||||
"aarch64-unknown-linux-gnu-0.4.24":
|
||||
@@ -432,8 +1224,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"06bc8c7de34cedb1dcb6a32a2462b09f92984ceb9d6aec9035424c8fe30ca510",
|
||||
"x86_64-unknown-linux-musl-0.4.24":
|
||||
"1d06fbda8f87232acd7b315c1202925e44627821901c49d0920e9bbec34b09b8",
|
||||
"undefined-0.4.23":
|
||||
"f9ed8ea5f138e98a8c018112ca59ab82a2983a17738c9d3df577d975f22382a9",
|
||||
"aarch64-apple-darwin-0.4.23":
|
||||
"be5cdbdcba170a989f9be991d89277eb42eb3fdf9c020fa4d3ac4d3d292a74e8",
|
||||
"aarch64-unknown-linux-gnu-0.4.23":
|
||||
@@ -468,8 +1258,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"337d693e4700d7b963ee35ecf12572d2d7f97507bbc151a671eee12e91fcc994",
|
||||
"x86_64-unknown-linux-musl-0.4.23":
|
||||
"4545997b54bf405f5dcb2379b4b3c0e1d0bb930e198733f7b8325598a8e95cbf",
|
||||
"undefined-0.4.22":
|
||||
"1d72ea82b337c767e2ba5c3ffa11cfccdca99321ab1dca3d4c035f8d52d7ad47",
|
||||
"aarch64-apple-darwin-0.4.22":
|
||||
"a58779b2009926745cabbe075ab16824dec53e1ff635a47a43115f6b95fda607",
|
||||
"aarch64-unknown-linux-gnu-0.4.22":
|
||||
@@ -504,8 +1292,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"11c3b92be7b0a72d1b3fe0140485a55ab581ea11e5f61baf9975a89c6d70018f",
|
||||
"x86_64-unknown-linux-musl-0.4.22":
|
||||
"4e89a6a01caab6eec0490c8dc47079aaac086ad1723e00ba2b6f2536d8ffd561",
|
||||
"undefined-0.4.21":
|
||||
"045d90f82f97e136d29439b20cb0bc910e312e77a2e674350a321fe7a0474ccb",
|
||||
"aarch64-apple-darwin-0.4.21":
|
||||
"a7e40398954d45c58573bfd79eb2cb4c329552d50101b519c3477ef525ffa8bb",
|
||||
"aarch64-unknown-linux-gnu-0.4.21":
|
||||
@@ -540,8 +1326,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"2fb2fd070b27f2ea741fafde8a73ab7bf8e945c802bc92e07db01337d387c8e7",
|
||||
"x86_64-unknown-linux-musl-0.4.21":
|
||||
"32902e33b46ef011257d44af1f515eb824b1b17d7f24c139bcecc8eb1984762c",
|
||||
"undefined-0.4.20":
|
||||
"68d0b5dc0295baf93c2539a04f3aede44e4a7230d3c470430561ecb119ca5353",
|
||||
"aarch64-apple-darwin-0.4.20":
|
||||
"b4a8df5b37ccc80a08a6a39647aa1b329645e932fb770158aa1453ffde11e1ab",
|
||||
"aarch64-unknown-linux-gnu-0.4.20":
|
||||
@@ -576,8 +1360,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"2283626b627f33382338b7621e5b1c8df5432c5deff9e64e217ff33652beb7f0",
|
||||
"x86_64-unknown-linux-musl-0.4.20":
|
||||
"2b826106f075b11e195390385650f16df79b85ea6e51a7e1f3dbf5acd7457899",
|
||||
"undefined-0.4.19":
|
||||
"79adb36dc4233272f863d7cbc861907ee3b91685cde6c9cac3d40ec9307de202",
|
||||
"aarch64-apple-darwin-0.4.19":
|
||||
"6eba1317f46c1533ad3ea8098b732752d298a1b2726a87d96f146f0c45dae1cd",
|
||||
"aarch64-unknown-linux-gnu-0.4.19":
|
||||
@@ -612,8 +1394,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"72d33be21956a1bed0621cd94ef42a22456fc2731c376947b15f581bce3355a5",
|
||||
"x86_64-unknown-linux-musl-0.4.19":
|
||||
"34b780a752ceda46efbd5fe05ac1c058e75eb78eba5308c40c87ddf2547d0ef9",
|
||||
"undefined-0.4.18":
|
||||
"9b2ae8c5a8db7b0106f636510b76cf21273ead5cb1162c19c7b2a5d1b1b6782e",
|
||||
"aarch64-apple-darwin-0.4.18":
|
||||
"49929e29bad25dfdb2f4ec49973c2265fbb538ddef3b1fa46fdb20245fa7a605",
|
||||
"aarch64-unknown-linux-gnu-0.4.18":
|
||||
@@ -648,8 +1428,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"946243fa93da15d33e2d2bb59cf9bc622806b5bf5776da8b0e27562e608ad8a1",
|
||||
"x86_64-unknown-linux-musl-0.4.18":
|
||||
"f0cc269adcad633f06ad50755af38d8f5bf745fbe7e4edafa35cfbb286706397",
|
||||
"undefined-0.4.17":
|
||||
"68ad7bf18029bcc9f0c8556e5fb96814fa30d8f67b3ccbc5db19e38b487c9326",
|
||||
"aarch64-apple-darwin-0.4.17":
|
||||
"af8e68a0e831e8b482d9e2f5443af63d24d003b0c53e0d5f921c2bcb5eed1644",
|
||||
"aarch64-unknown-linux-gnu-0.4.17":
|
||||
@@ -684,8 +1462,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"9282496b24585c54f4cb71c1cb1dbdecd650f2311237f71ddf217f8756136f79",
|
||||
"x86_64-unknown-linux-musl-0.4.17":
|
||||
"6f703368f2d5d4c974e3ece239f64815fb0c6e040eba078ffc87c421a9375deb",
|
||||
"undefined-0.4.16":
|
||||
"942296098d4738db464ea170c654d61281f35cd98fc1ecc6c6df784ba9373bb3",
|
||||
"aarch64-apple-darwin-0.4.16":
|
||||
"cbfb46932ced7319e0b90cff87bfff759bc319e719cca369ace476906b178f25",
|
||||
"aarch64-unknown-linux-gnu-0.4.16":
|
||||
@@ -720,8 +1496,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"f4f4de434206fb610ecb2dbc3fc44c62adb6b61e8d1237d858a10b407a2737c4",
|
||||
"x86_64-unknown-linux-musl-0.4.16":
|
||||
"aab3a3ef8e4ffa641210b1ed374eebd08b5e612b1a928c291a543d3b624d46d1",
|
||||
"undefined-0.4.15":
|
||||
"22b605c86cfcb8db9922387151fd8e79d3d2a1caf6f2a03a238ca7ebe058853f",
|
||||
"aarch64-apple-darwin-0.4.15":
|
||||
"32f6ad64b9dcf164fa75efef73e0e9a9b769073e6bfe844560329a3176b39b9b",
|
||||
"aarch64-unknown-linux-gnu-0.4.15":
|
||||
@@ -756,8 +1530,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"f590376432bcb26c2aff86b6ec495d55ba2384d068c62dca477f498902721674",
|
||||
"x86_64-unknown-linux-musl-0.4.15":
|
||||
"70e331be83d97f42fd355f18cb1f8b3f4cadc4973b29fec659109fad4a053a8f",
|
||||
"undefined-0.4.14":
|
||||
"d73771243ecb8f38a925f16894126644aec95da7557eef22d7c161d9b8af69e9",
|
||||
"aarch64-apple-darwin-0.4.14":
|
||||
"e7368a2ffe19cc39e4b733c0b5ddced9952da85fad5d5eb55c75c4a67c7e4747",
|
||||
"aarch64-unknown-linux-gnu-0.4.14":
|
||||
@@ -792,8 +1564,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"873b4b95c5d3d49ae1306122256cb0b116b5c725e068db8100a76efb13d7669d",
|
||||
"x86_64-unknown-linux-musl-0.4.14":
|
||||
"1985046d3e36acd02395c704dcd9d1aff03114afe13fdc166754675bae8ad294",
|
||||
"undefined-0.4.13":
|
||||
"1164572b6a4700821bd3cb72594f7421aafa414c8d1a94e9570e530ca7a5c635",
|
||||
"aarch64-apple-darwin-0.4.13":
|
||||
"32d73e0257dab4371254d26bd9328de4e43b7817ee154d7c77e879df130b15c4",
|
||||
"aarch64-unknown-linux-gnu-0.4.13":
|
||||
@@ -828,8 +1598,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"0f955f51eaa3ccf56215ace06dab2e9b78437e22002eabc2cedcfcf541d997b2",
|
||||
"x86_64-unknown-linux-musl-0.4.13":
|
||||
"c8f73e30407a6e15eea7334f7067ac84ae1526a1ae7f4420dc873492bdfe626e",
|
||||
"undefined-0.4.12":
|
||||
"335861d17540501e2c5f82f5b8955b07034c450edb292fd2d628a837f52e0054",
|
||||
"aarch64-apple-darwin-0.4.12":
|
||||
"507aeb4efbb4a2b97654df8333aaa9d78109c55e3c3d5959f50cf0d93baa0263",
|
||||
"aarch64-unknown-linux-gnu-0.4.12":
|
||||
@@ -864,8 +1632,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"db44453ec57d6e3a35b7af2bb7938b47bdc9e7ca397269e978c53dd3065b1195",
|
||||
"x86_64-unknown-linux-musl-0.4.12":
|
||||
"ef9551ecf6f0efd51264f8a6a683b8b0210789aeaeab664863a90535a553b985",
|
||||
"undefined-0.4.11":
|
||||
"e6e38118aaa7436d31d3aed0f4b0beb188c273c137bd3185e8b4ebdb301682aa",
|
||||
"aarch64-apple-darwin-0.4.11":
|
||||
"b988bce29ca19fa229f088f982b66ef9dbf8571cc45eb98b00370a817cfe383a",
|
||||
"aarch64-unknown-linux-gnu-0.4.11":
|
||||
@@ -900,8 +1666,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"3fc34d56857f24c7065309593a5df05ce953f1736f0cf32965b91f69adb66c46",
|
||||
"x86_64-unknown-linux-musl-0.4.11":
|
||||
"c3c6eb97198a29c6ca51bed673941ffbe7d97d481e74eec034fd8ad8d59b187c",
|
||||
"undefined-0.4.10":
|
||||
"53751ecdbad6aa09b13986e73e1ba1990b348b1793f313fdecaf3bd464311d28",
|
||||
"aarch64-apple-darwin-0.4.10":
|
||||
"e8cf273f464d36b72237347eb42a0bfe75d473a029bc4f89d5a2c098f971186c",
|
||||
"aarch64-unknown-linux-gnu-0.4.10":
|
||||
@@ -936,8 +1700,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"fd5540ef6cdc80091094a2fbc29b2cecab6c41b0a204220d9c882120210bbd11",
|
||||
"x86_64-unknown-linux-musl-0.4.10":
|
||||
"c911e323f3eaf0486755fb5a109e3b1fc4fdbe07e3fed49054e78973f5b70226",
|
||||
"undefined-0.4.9":
|
||||
"a5ca243a43868c5eb259bc80d83d5fa32ba33dea6534a1e96683535bfb0011f8",
|
||||
"aarch64-apple-darwin-0.4.9":
|
||||
"049466d3f7f86262f5915b57cc037b2c814634fa4733ba2bd9062b72c4264482",
|
||||
"aarch64-unknown-linux-gnu-0.4.9":
|
||||
@@ -972,8 +1734,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"4d78a50027f9195db60905b2f50422f417a0aed287f6f94b205e86fecbdb5464",
|
||||
"x86_64-unknown-linux-musl-0.4.9":
|
||||
"43a2aacf680cba78f1730bc363995f7d3b27fd10ae77a70cd35f5e30e9c1418c",
|
||||
"undefined-0.4.8":
|
||||
"b4a05405382a2017cae922ff1c3636b4d799673ae90162739614101936f1d3ca",
|
||||
"aarch64-apple-darwin-0.4.8":
|
||||
"3184e9db9191ca2665feaa72b4b9ed1958feafde81da9573a1320bff6a6a8767",
|
||||
"aarch64-unknown-linux-gnu-0.4.8":
|
||||
@@ -1008,8 +1768,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"3c2e233746eba77b490024f386d1d20fa09b11717365c8ddd69043729fb71ab2",
|
||||
"x86_64-unknown-linux-musl-0.4.8":
|
||||
"5b07df5d9228fb09c31dd1b08e2582ca8df6765705c0fb550b9eb87950d3ca1e",
|
||||
"undefined-0.4.7":
|
||||
"2243b3636da44419b6d15df30db138f861a3c36991e9b9eb8ec43146c674df10",
|
||||
"aarch64-apple-darwin-0.4.7":
|
||||
"a1fa60ccd00d9702e6d2792810226ce2c17d43807f38ab70c7418763693a3f7e",
|
||||
"aarch64-unknown-linux-gnu-0.4.7":
|
||||
@@ -1044,8 +1802,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"a391db7b4c0b2c4b54be407df1a90ebba0542db468f25eefc2d56b7ab3282856",
|
||||
"x86_64-unknown-linux-musl-0.4.7":
|
||||
"aea262a35d402a183b670f635be80dbe73fc9461aa2c9b57c5a3de538fc00017",
|
||||
"undefined-0.4.6":
|
||||
"876a26e7cac5c7d9730ca619e06a117ea48085135412a0400787cef437fc6fcd",
|
||||
"aarch64-apple-darwin-0.4.6":
|
||||
"3fa569aad68c8d3f6f96eccfb4def127411f795d819f90c7dbcdb4a3cec04667",
|
||||
"aarch64-unknown-linux-gnu-0.4.6":
|
||||
@@ -1080,8 +1836,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"68af9a5c41f38bfc4f625bbdc8a9f3921f7c384324ddd7773f078ddfe94eaa9a",
|
||||
"x86_64-unknown-linux-musl-0.4.6":
|
||||
"984a0a07c7a83fc8b21c4b6ac1d81ddb08a5a30c35fd5608b969796a60cdcd25",
|
||||
"undefined-0.4.5":
|
||||
"65442da160bc68062dda71a8dac009afff0745788f079cc596799ec24fd0f2ca",
|
||||
"aarch64-apple-darwin-0.4.5":
|
||||
"e7e8496b494be710261e7524abeb59d7c92ecff949f33174598425bdd14aa519",
|
||||
"aarch64-unknown-linux-gnu-0.4.5":
|
||||
@@ -1116,8 +1870,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"a23e94ab0fb58beb2e7bc2f1d968fb30939b505f1bdab8df5cd1599c02f93793",
|
||||
"x86_64-unknown-linux-musl-0.4.5":
|
||||
"e56d951c90bbff7a1b88c42403cd784af2d0233ea660b8b1b4282af872371f43",
|
||||
"undefined-0.4.4":
|
||||
"32746c58071378ae79d5965f546915cbe85e94845c87111d4209ec3437052cb6",
|
||||
"aarch64-apple-darwin-0.4.4":
|
||||
"3d2e48f405023e0a1762ad66336fd4e615928343c90023972bf3418fa5c829ae",
|
||||
"aarch64-unknown-linux-gnu-0.4.4":
|
||||
@@ -1152,8 +1904,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"c7c0a6804538e083bcfbc49c2cecf07c5aaf9fc31fdcfb4449c787d3a40c980b",
|
||||
"x86_64-unknown-linux-musl-0.4.4":
|
||||
"a72c31f068323803485b6f3f878eda5e7d17383df675123b0e56c2bb6aeaa586",
|
||||
"undefined-0.4.3":
|
||||
"05f11e1292e7bb7a6c6101990d04e8ab1e1ae0df2c58ee3c50b24751cac95554",
|
||||
"aarch64-apple-darwin-0.4.3":
|
||||
"e90719268e20a046ef23ad4d1a44e991876f6abe850147f7525901cdd28e799d",
|
||||
"aarch64-unknown-linux-gnu-0.4.3":
|
||||
@@ -1188,8 +1938,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"af57fae9c355d3ff8f561170edc87be3f52b7d34dc14b1a8980824a483dc4cb8",
|
||||
"x86_64-unknown-linux-musl-0.4.3":
|
||||
"ad4811828ee085d90c08f0cf9e4571e1afe1037a6b35ce04f6dfad9df0c34333",
|
||||
"undefined-0.4.2":
|
||||
"98e8a3c9df737b9f7eae3938113060f7fdb560a2bf25562cbe4fe542a99dbfe3",
|
||||
"aarch64-apple-darwin-0.4.2":
|
||||
"c6b2f6e442d2f3863d3fb02aaeefe8783297bbbd9d3e9cf8a418ec46baa4006e",
|
||||
"aarch64-unknown-linux-gnu-0.4.2":
|
||||
@@ -1224,8 +1972,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"56998ecebd1894876da5eabe628e73a975d45fc579e1bcbcf14f8945c811e289",
|
||||
"x86_64-unknown-linux-musl-0.4.2":
|
||||
"7a29c961b51831ac43c7f4cffa1b60b1138d61dcbd4ef77915bc8475e14b636d",
|
||||
"undefined-0.4.1":
|
||||
"bb9d233b2c5e264e26ca494021c7dead400f0ba0e245a0e896a76d7cede61c82",
|
||||
"aarch64-apple-darwin-0.4.1":
|
||||
"d89a7a658d0a4f44ab60730a5152759a6e6f1238cdc9e6e6391362291e34000b",
|
||||
"aarch64-unknown-linux-gnu-0.4.1":
|
||||
@@ -1260,8 +2006,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"f465e1f82b2eb4702f90c44a2caac64b13b72970f22ec73ac8bbf42fbf19e94e",
|
||||
"x86_64-unknown-linux-musl-0.4.1":
|
||||
"f83d084bed06b59c981a6de683eb58ad0d2e8ec36e066a4f82d8553327ee9c44",
|
||||
"undefined-0.4.0":
|
||||
"3bff99b44234a92ad27d24fb55a72d0d4c837aece85094ba26a8211f6fcc6a18",
|
||||
"aarch64-apple-darwin-0.4.0":
|
||||
"33393f06d0f950b715559b7bd1566f394a90020b9ad0cdb169a6ff49304aa0a9",
|
||||
"aarch64-unknown-linux-gnu-0.4.0":
|
||||
@@ -1296,8 +2040,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"1302d70383d6da5a760cd1710511b118e10482dd11e4e6475776b13ed6a414b1",
|
||||
"x86_64-unknown-linux-musl-0.4.0":
|
||||
"033e69e03668de34eeccbdb3f559c1db578c3aad4a5a34509924871dc9413e0c",
|
||||
"undefined-0.3.5":
|
||||
"7f136b52040652a108a3ad45dc9c9deb94045c73fbc2ea59a11f578faeb55572",
|
||||
"aarch64-apple-darwin-0.3.5":
|
||||
"a9ddfd6d9350e6cb93e0e57d679f39a4493b510e5d14d475f8524a5ade1132d8",
|
||||
"aarch64-unknown-linux-gnu-0.3.5":
|
||||
@@ -1332,8 +2074,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"a1de10f96dbb75a549159bea5771d2be320c130d233422a327ada653e80967db",
|
||||
"x86_64-unknown-linux-musl-0.3.5":
|
||||
"f2b0ec58c2215aa618740a1a66344193f135652b1b8da25b065ae18fa71e7f84",
|
||||
"undefined-0.3.4":
|
||||
"89b619436021c5d28a680cc4c8002867199f5ad898c6e1c7afcf9f04054ebb0d",
|
||||
"aarch64-apple-darwin-0.3.4":
|
||||
"d00391fa2e398d431d0ab62868d3430cb20ae0b6ccea84afa61c4c63252e3086",
|
||||
"aarch64-unknown-linux-gnu-0.3.4":
|
||||
@@ -1368,8 +2108,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"d0235c11b43ca285d066bdff63e674f71063c43d398b22590e0c7817f48c59fe",
|
||||
"x86_64-unknown-linux-musl-0.3.4":
|
||||
"c93ba9ebfd97440c9936630d5667f5ec53bb54f0dd8a5fc9a297a781aa338747",
|
||||
"undefined-0.3.3":
|
||||
"40a3283f6a16c73342f5cba24f7c1395f17712dadeb1d87b0e354a331229ac4e",
|
||||
"aarch64-apple-darwin-0.3.3":
|
||||
"a8e6593f5f787823de4c0509af030b0327b536903044c77c9e61941e0032def7",
|
||||
"aarch64-unknown-linux-gnu-0.3.3":
|
||||
@@ -1404,8 +2142,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"729da13410ba857c6e258753c4fabcccc39d32801fea7f5149997e9f88b27b3d",
|
||||
"x86_64-unknown-linux-musl-0.3.3":
|
||||
"8c7a7bf83bbe25bc5e5d7d41cc5f58148a8b577a298cd91ea9173b4e612bafda",
|
||||
"undefined-0.3.2":
|
||||
"1aadddb260b5a9f3d44f5832a834b55a6fd1573bb657d62759495dcdbe212507",
|
||||
"aarch64-apple-darwin-0.3.2":
|
||||
"a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218",
|
||||
"aarch64-unknown-linux-gnu-0.3.2":
|
||||
@@ -1440,8 +2176,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd",
|
||||
"x86_64-unknown-linux-musl-0.3.2":
|
||||
"38d18a40c0bdf02f98f3ee35749c295638be37fb8699aa626ca5c87d0ad42512",
|
||||
"undefined-0.3.1":
|
||||
"5dce72d45cbbc0b661325e5f585440b977e095b6a29601059f509065f86ff9ae",
|
||||
"aarch64-apple-darwin-0.3.1":
|
||||
"e11b01402ab645392c7ad6044db63d37e4fd1e745e015306993b07695ea5f9f8",
|
||||
"aarch64-unknown-linux-gnu-0.3.1":
|
||||
@@ -1476,8 +2210,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"1ad8815d46435ab29923d84717dd0f8ee467be055cff5c4ba1d9855882a6ae19",
|
||||
"x86_64-unknown-linux-musl-0.3.1":
|
||||
"e9f8396a2c06d6c06c36338b795e2978645c2b3b0e6915537e1860dd0cd951ab",
|
||||
"undefined-0.3.0":
|
||||
"1f52cb03becdae308666b75ff6b193ca55267a762ecf98d99f8f4cc8cbfe5a5a",
|
||||
"aarch64-apple-darwin-0.3.0":
|
||||
"232935b3b2c187c4f8dc8bf533875bd7163d06a6fab625a1770689b337cbfded",
|
||||
"aarch64-unknown-linux-gnu-0.3.0":
|
||||
@@ -1512,8 +2244,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"06e38986b2923882ad250ac42c9e5db3295bde33693aa9a63b8d32632daba007",
|
||||
"x86_64-unknown-linux-musl-0.3.0":
|
||||
"194d2a550af3e334f693f6afd716d66adc90445805e72bfa8108f36714ed7431",
|
||||
"undefined-0.2.37":
|
||||
"bad5e3e29e3a795a789dfdce52b4ae4c252f95572539b075bc938870e6e7c1df",
|
||||
"aarch64-apple-darwin-0.2.37":
|
||||
"35786030f926e3d34d186edc0ea3989698e57755852af9ae4b39da5109abcbfa",
|
||||
"aarch64-unknown-linux-gnu-0.2.37":
|
||||
@@ -1548,8 +2278,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"2aa80df3a7120a13fe8cfd0ced688a6285e58c40cfa878e6de817356914df485",
|
||||
"x86_64-unknown-linux-musl-0.2.37":
|
||||
"a4ec0d06361c27a87111212623559da332382c2ead25c1f4c9386adee9905b62",
|
||||
"undefined-0.2.36":
|
||||
"6e7e0950c5808eea0bda615ab5d2e9fa517434edc0c17d0766cd47606241c060",
|
||||
"aarch64-apple-darwin-0.2.36":
|
||||
"89f0f76695ee554cdfae60245667b795ffeac7e4d52c0b7fa90bb46d4cf95d59",
|
||||
"aarch64-unknown-linux-gnu-0.2.36":
|
||||
@@ -1584,8 +2312,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"6fbea0801c1698d00b2300b220d4f72a4edeb0406877ac6d774f4ff385b6fbe2",
|
||||
"x86_64-unknown-linux-musl-0.2.36":
|
||||
"d3543c84d8b2da5d8f08b6f2e87e792aa7626c47cb65458c7b92e68e8614d3a8",
|
||||
"undefined-0.2.35":
|
||||
"19425afc472eb6e7ff6c4abc28ed2582af977aab1b1d7f15db34ec9579ef9095",
|
||||
"aarch64-apple-darwin-0.2.35":
|
||||
"e07fd0ed3b5e92ce9018f8775aa76cfd891fae8cb0a1627d5a861158fdbbe32a",
|
||||
"aarch64-unknown-linux-gnu-0.2.35":
|
||||
@@ -1620,8 +2346,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"f1a9bcbcc3e085fb5ee6a79f5778373fe27fa192d95fc47db20c596789dd1b97",
|
||||
"x86_64-unknown-linux-musl-0.2.35":
|
||||
"bec7f54d33aaff97098157b4893b9d4a93200c2902772cba13d60c266a54d087",
|
||||
"undefined-0.2.34":
|
||||
"2c8167c6b14738d2d94cc864cbcc5a2f4b45d9136f8cbed348dba937a03927fc",
|
||||
"aarch64-apple-darwin-0.2.34":
|
||||
"2eebf71aa924d8d977983394c212cb3ad99f6e241e77702822e8f407c8e231e0",
|
||||
"aarch64-unknown-linux-gnu-0.2.34":
|
||||
@@ -1656,8 +2380,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"cee114bb3c73a4be5066660d71eea1ac996378f567ba69fb7f29c688289245cd",
|
||||
"x86_64-unknown-linux-musl-0.2.34":
|
||||
"d1d49d2d3e1e2e2ba547b6cad8b1ad279cdbf622fe5b3fe3b6d470d7a06e3c92",
|
||||
"undefined-0.2.33":
|
||||
"7dbdfb20366d96745ab9e48c0d8bd0a88926f0eef4675876fd45e4ecc3942cb2",
|
||||
"aarch64-apple-darwin-0.2.33":
|
||||
"a2602b99e71bc04d7eb11df00b87be068727bb47fc415f7fcbd24dae49c947a3",
|
||||
"aarch64-unknown-linux-gnu-0.2.33":
|
||||
@@ -1692,8 +2414,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"e62a4123e6b77c9dd22f133212f7bac638077ebde73daa20fea3bef3ac51c84c",
|
||||
"x86_64-unknown-linux-musl-0.2.33":
|
||||
"5f6842bd7a800a83c568b7a2cf18f4d9428e929e7ea91d55cc8d53e0a0c10c42",
|
||||
"undefined-0.2.32":
|
||||
"b7694bd29041e5315cbd7194253bb865a51369e19897d7b6b303f4d6255477db",
|
||||
"aarch64-apple-darwin-0.2.32":
|
||||
"5084b7544da648d3467440f87a3f2929ca7c593a311a3b77271b638ca7664f3c",
|
||||
"aarch64-unknown-linux-gnu-0.2.32":
|
||||
@@ -1728,8 +2448,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"c676266d23c8dbe7832c44f37832c4e4ecf21781b7b0560bf27b270bedb14462",
|
||||
"x86_64-unknown-linux-musl-0.2.32":
|
||||
"e7deca89ca4e273c57adc45cd91e83377c74916feb9ece311cc93c8a8ab2c2e5",
|
||||
"undefined-0.2.31":
|
||||
"81dcedc57262b565ba3f9f6a20d368a2be304bbe845121f849d1c75c6d4b53c9",
|
||||
"aarch64-apple-darwin-0.2.31":
|
||||
"34938bcc045b35a646aa768d660755e838a23ab224ea3687dc577299da227fb3",
|
||||
"aarch64-unknown-linux-gnu-0.2.31":
|
||||
@@ -1764,8 +2482,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"351278978126eb9a74c4d735d3ee2191de5cd492fcc1615cc4c1107ad3e632ff",
|
||||
"x86_64-unknown-linux-musl-0.2.31":
|
||||
"003e8ea52e2b8383009f5d2bc78becc27f6c97bd9f6837140162cc25247a465b",
|
||||
"undefined-0.2.30":
|
||||
"1961bf9f481364dfd34c2fa1922152d0901f230de444b168f2d7e29c5b48de5d",
|
||||
"aarch64-apple-darwin-0.2.30":
|
||||
"387f24ebf55f304352bc5fc4638ca251112ab682291a00290de3753a1b5092f7",
|
||||
"aarch64-unknown-linux-gnu-0.2.30":
|
||||
@@ -1800,8 +2516,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"572a09703b40680191f4da33ffad2ae57cee93f0007f1eb25b84d241b0b418f2",
|
||||
"x86_64-unknown-linux-musl-0.2.30":
|
||||
"430aa21ca5c6eea5731dd5f3f8c0a364160a6e2d7153dcc0b3941ecc06947000",
|
||||
"undefined-0.2.29":
|
||||
"4cc0762718440d622e351871e568dbbd1b4325a0a362bea4158adc81bf81826b",
|
||||
"aarch64-apple-darwin-0.2.29":
|
||||
"34e214671c640b72e7805ae4802ad774f9e7636d59361b6434f38950af0fc6c3",
|
||||
"aarch64-unknown-linux-gnu-0.2.29":
|
||||
@@ -1836,8 +2550,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"1199ddcaba212d1909d934b7edfe24ee39f6ac60cfce1a558d74d082f9763937",
|
||||
"x86_64-unknown-linux-musl-0.2.29":
|
||||
"a7529403581edef6e1e34d1b7c321540e526105aedaea1672cb0f37cc1b5da0c",
|
||||
"undefined-0.2.28":
|
||||
"4d42d64676b09efb34a01c867a6fe2acf9cfe9be8d8886b08177f837bd615234",
|
||||
"aarch64-apple-darwin-0.2.28":
|
||||
"b84fc81eecdeda15f9cedc1634685104463798903ad2241f46994bec17bdc5be",
|
||||
"aarch64-unknown-linux-gnu-0.2.28":
|
||||
@@ -1872,8 +2584,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"9c6cbe9f7d7b2abcb45e028d82a5986b951af76a587c93c99922ba0e71c7f21c",
|
||||
"x86_64-unknown-linux-musl-0.2.28":
|
||||
"ba2656952c1dd29e400a9d21a7b923b26f1cc8a4b29468e7c99fa4613034d837",
|
||||
"undefined-0.2.27":
|
||||
"2dc0595cca3a3167832c87ddb340138fa77e682472791ff9c4bf4ddf39a7364e",
|
||||
"aarch64-apple-darwin-0.2.27":
|
||||
"d071d3063933e2e98322619bd4318594e84b7f6ce4f6c5c13a2ef424b0704bb7",
|
||||
"aarch64-unknown-linux-gnu-0.2.27":
|
||||
@@ -1908,8 +2618,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"224cdff5d82ff7053d1a9bf61e5ae89961d536eb2da8a4a13b93a49a0ab434bf",
|
||||
"x86_64-unknown-linux-musl-0.2.27":
|
||||
"2fa8e18d3804863c1355ef8b0688530c1a57b1981be69476641a8dc87c812d60",
|
||||
"undefined-0.2.26":
|
||||
"1ff81cb3c0618cfcde78b67ac1b1267a09ebef69826e20599aa92ed6e57b6321",
|
||||
"aarch64-apple-darwin-0.2.26":
|
||||
"e99954e3853a367497f66ed5ec1460cbe0c527e5664732eb2407ffc375cb3207",
|
||||
"aarch64-unknown-linux-gnu-0.2.26":
|
||||
@@ -1944,8 +2652,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"f70997db1acf979b626e23236c289bfbf418e17ffd18a7956d8cf44e6f3f5522",
|
||||
"x86_64-unknown-linux-musl-0.2.26":
|
||||
"aa61951a7101f9de68265425a64ea2320d2ac1857001293274a338becef63180",
|
||||
"undefined-0.2.25":
|
||||
"71916afae3d93c2147a08324c8455cb4d49a168ceec5123fea7bc4fac5977703",
|
||||
"aarch64-apple-darwin-0.2.25":
|
||||
"79887e314f1614352852b45aad55bb533b45add7ba239faa50cc0122665a941d",
|
||||
"aarch64-unknown-linux-gnu-0.2.25":
|
||||
@@ -1980,8 +2686,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"7f3396784a504ffb3d2190312b4a7c5330f08906ef22bcf544fe20ecde30081c",
|
||||
"x86_64-unknown-linux-musl-0.2.25":
|
||||
"c92951cc355ba7de4897d538e8d420c7b32f810945dcd664f55d50a936331629",
|
||||
"undefined-0.2.24":
|
||||
"5d5a694112d8463c0003cbb295cd29697500c4a0a60920466b0a5c50e43bba2d",
|
||||
"aarch64-apple-darwin-0.2.24":
|
||||
"49d55dd8a8f2adfb83d1feaee5bf40c20169b411e3809e3455ff0d96bae4f388",
|
||||
"aarch64-unknown-linux-gnu-0.2.24":
|
||||
@@ -2016,8 +2720,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"24a0c6758a4f533c37193592fd0a9a37a61fb583a4b6abd0bb81b83127d86336",
|
||||
"x86_64-unknown-linux-musl-0.2.24":
|
||||
"cb91cb5111e9eb4f1be7c4b8e467380e65b41c5f19ad956f613b290deaa838c9",
|
||||
"undefined-0.2.23":
|
||||
"d5fe4b3aa545d6bc43cb5fb2a27d3f24f53762472d345b06d0d03a2e27614f86",
|
||||
"aarch64-apple-darwin-0.2.23":
|
||||
"1d41beb151ace9621a0e729d661cfb04d6375bffdaaf0e366d1653576ce3a687",
|
||||
"aarch64-unknown-linux-gnu-0.2.23":
|
||||
@@ -2052,8 +2754,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"4384db514959beb4de1dcdf7f1f2d5faf664f7180820b0e7a521ef2147e33d1d",
|
||||
"x86_64-unknown-linux-musl-0.2.23":
|
||||
"c7b80246dad84eadf288c26128f6504fa27529f21091ccf7d5f9450fbc229dd4",
|
||||
"undefined-0.2.22":
|
||||
"d390a2990caffab099f129a10b0393dab81a7043dbd93d514e05034368e052d5",
|
||||
"aarch64-apple-darwin-0.2.22":
|
||||
"ed44fcb929f8cef958ed9e6de350d542f7392a43331d3605c4fcbf418e204c5c",
|
||||
"aarch64-unknown-linux-gnu-0.2.22":
|
||||
@@ -2088,8 +2788,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"65cd2e2c3660779f8a1fb02eac488b540d1ae30f3a80a381f8a7859d0b76bf06",
|
||||
"x86_64-unknown-linux-musl-0.2.22":
|
||||
"8e165482df8590a620bea0411023c4c345f14301b733a9b6f6ca93e730947aba",
|
||||
"undefined-0.2.21":
|
||||
"29a224acdb53a5478e12260672547e3d84a14c972c64f3e154553ccd813f8400",
|
||||
"aarch64-apple-darwin-0.2.21":
|
||||
"5b3925fc797bc5e168b5883a5ba2ff6c5751a1c900748c132f01d1ee5c87d24e",
|
||||
"aarch64-unknown-linux-gnu-0.2.21":
|
||||
@@ -2124,8 +2822,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"bb6ff8fa0ac1d86a32b1ef615ec52acb5c8230f803146ad4ceeaba8aaa26a787",
|
||||
"x86_64-unknown-linux-musl-0.2.21":
|
||||
"90b0903364aa45e588ac2b269d70e871180f81df0f7c603d6b17742fccc660b3",
|
||||
"undefined-0.2.20":
|
||||
"f248835e7b801bfd0dd9e70716257604fa6760cdf92573ae6419dd35ce7a9058",
|
||||
"aarch64-apple-darwin-0.2.20":
|
||||
"519bd42c022a41187984234a040c3f00a3eb4bcb189f101c0fa48fe70b953357",
|
||||
"aarch64-unknown-linux-gnu-0.2.20":
|
||||
@@ -2160,8 +2856,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"bafad50e1b8b8b89083df115cdbad6e991747fd6ecb52ca407d6b5533ddb150f",
|
||||
"x86_64-unknown-linux-musl-0.2.20":
|
||||
"1c27fd144912433d7f12b58b00eebb80a7ad9a1864b22b1ba41b07b5998a743b",
|
||||
"undefined-0.2.19":
|
||||
"9186f4961698b35b1812eef5dcd6973accb3eaa980a571c964f6f91ca71da5ff",
|
||||
"aarch64-apple-darwin-0.2.19":
|
||||
"539f2cb812f0596b3f56d41a92662f6e102094587ff07f0793bd015d21cda54b",
|
||||
"aarch64-unknown-linux-gnu-0.2.19":
|
||||
@@ -2196,8 +2890,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"71132ec5c59ec865d73877f2f7f4ff75cd2f56a93d967c1a91ef797bdc87ff93",
|
||||
"x86_64-unknown-linux-musl-0.2.19":
|
||||
"6e8a64434d3baf03fd64f58016a9a37b08a8561db6979b807de8feb55d94502d",
|
||||
"undefined-0.2.18":
|
||||
"5919f79b42997129e5a456bb5910086d0043dda20e505d12f7f57f0a2669ae74",
|
||||
"aarch64-apple-darwin-0.2.18":
|
||||
"979ddc0aa7b068632bf4c517bbb6d97798b95c54dfeaca9ba653df91989ed958",
|
||||
"aarch64-unknown-linux-gnu-0.2.18":
|
||||
@@ -2232,8 +2924,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"e5a0bde1e0fe57a7ea1d26bdb582c636ba742c3db8a10d0a965536da7004abd7",
|
||||
"x86_64-unknown-linux-musl-0.2.18":
|
||||
"4472cd12522d96566be88545f1520dc5099f12f47df297f54f9239fc1af0ed87",
|
||||
"undefined-0.2.17":
|
||||
"6bfe8c67c849a87271a47d6c54672b860a1b37fba5bdb2928f6b912719edac55",
|
||||
"aarch64-apple-darwin-0.2.17":
|
||||
"7dc5fe97867ac3bbcbeabf32fb76b3caaf12141b5e20926ed81353f9a2ff7dcb",
|
||||
"aarch64-unknown-linux-gnu-0.2.17":
|
||||
@@ -2268,8 +2958,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"d49537780cd9cd5621bbc34e6864356487155cd4a7540035e1b0acb0d1017def",
|
||||
"x86_64-unknown-linux-musl-0.2.17":
|
||||
"20184a870ba25416b61d46c387853afd27d9a8df3f0598ee6878a315db5c7302",
|
||||
"undefined-0.2.16":
|
||||
"f215cd4c173a71cfc2427b5cb3c42e321ade41350051a1ca7a9c898ed502ff2c",
|
||||
"aarch64-apple-darwin-0.2.16":
|
||||
"9a19728c43c35a2d5f97f2bf85b0dc7b508e1931738f0d95e2354f0f745196e1",
|
||||
"aarch64-unknown-linux-gnu-0.2.16":
|
||||
@@ -2304,8 +2992,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"0a6cebd98cda27fe3f49853a686ca050fbfef2da7871f6cf4065c5e9a7b2233d",
|
||||
"x86_64-unknown-linux-musl-0.2.16":
|
||||
"e4efe763ad24e32b658e33b38cde271694f2fff7c2eb07cca5a267d600c1f718",
|
||||
"undefined-0.2.15":
|
||||
"902d06ac01ebd1ac7fcda81f514b04c6d79a1bafd70305b18e9b1d387cfc7025",
|
||||
"aarch64-apple-darwin-0.2.15":
|
||||
"7342fba0eeb0ea204eb4ec6311378e76d43bd237ad0576872aca3345914b024d",
|
||||
"aarch64-unknown-linux-gnu-0.2.15":
|
||||
@@ -2340,8 +3026,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"f9c06177f2153336c3a96f9ab54d881126447cde1cb5d00ed771223427692e9c",
|
||||
"x86_64-unknown-linux-musl-0.2.15":
|
||||
"3151e375fdb6c73765a8cae5048790c52366cae4593e89365549587f24406837",
|
||||
"undefined-0.2.14":
|
||||
"528d2dc187720d6338c5dc84809f64633cd969262c5a0f6a2bc0bddffa1ff8c0",
|
||||
"aarch64-apple-darwin-0.2.14":
|
||||
"0a78382f3e93514d51257243313a420646a2316da47bc4bc194bb66ed2e50ee5",
|
||||
"aarch64-unknown-linux-gnu-0.2.14":
|
||||
@@ -2376,8 +3060,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"79b2582675bd93c7d632e71a667478a3b1eed101669944e64c848f7240ab4725",
|
||||
"x86_64-unknown-linux-musl-0.2.14":
|
||||
"c0f760078a326b6f861d0eb4e9a04bccd0bdeed6cf72f284efa698e54ba83c77",
|
||||
"undefined-0.2.13":
|
||||
"9ae345ea16f8c61997d8434153a20a1e95ba11fc46013ac951c70d3fcb77c8ec",
|
||||
"aarch64-apple-darwin-0.2.13":
|
||||
"f588388d2b13f77e4526e619f618a306b6b026a96975fbfb2c6dd1ded134cb72",
|
||||
"aarch64-unknown-linux-gnu-0.2.13":
|
||||
@@ -2412,8 +3094,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"3f96048fa1b82eca14d45bbcc86714cd0dee19a73ef9311da6707faa308ec25f",
|
||||
"x86_64-unknown-linux-musl-0.2.13":
|
||||
"2121a2184aaa0e4c7ef599358dc2bfd20e5a07a1373c302b6fedf79f2ba0778d",
|
||||
"undefined-0.2.12":
|
||||
"322c672b515d240ae4a588dbf18086f0b5cdbc288335668c32cb6554cb3551bb",
|
||||
"aarch64-apple-darwin-0.2.12":
|
||||
"cd9ca2c17a32f08dc03a6430fb99c16cb2eec1350a4857292df6a600d71a1467",
|
||||
"aarch64-unknown-linux-gnu-0.2.12":
|
||||
@@ -2448,8 +3128,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"7a0c67d32844afadd2d964d9d6ecb769a56e122e1423efce53e7554a33fb5c6f",
|
||||
"x86_64-unknown-linux-musl-0.2.12":
|
||||
"a617fdeb285e0dbb13a0f37f802b80be1fe5272a44f752d62d1425ea56428170",
|
||||
"undefined-0.2.11":
|
||||
"75555dfd78bfd30f0b32e7515413319920bd1fcc88c4130c4fe02516dbd2bc58",
|
||||
"aarch64-apple-darwin-0.2.11":
|
||||
"abcc9dd4234623defca3ee8c1b36d2b3662d5fd12c90727e1111b8e1592fb9ba",
|
||||
"aarch64-unknown-linux-gnu-0.2.11":
|
||||
@@ -2484,8 +3162,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"4a6188b172cb8d43e59c91dad8cdc4418ed0b395b09e4198ba4661cbcdbb40eb",
|
||||
"x86_64-unknown-linux-musl-0.2.11":
|
||||
"063afd8753870e147cf5d7c6273748d585f758d43d8df4bc04121667b7d5a6fe",
|
||||
"undefined-0.2.10":
|
||||
"faf7b657b53a31d8d47cca58b33379d14f4701165a1867e61039a961274a45ff",
|
||||
"aarch64-apple-darwin-0.2.10":
|
||||
"a099cd4dc28f879e023ce221697e07a2089b12dc42099dd240a2e64d5cf428be",
|
||||
"aarch64-unknown-linux-musl-0.2.10":
|
||||
@@ -2518,8 +3194,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"99b25a80e170fde54b299c05f4c071c7130ed85db45fe8e7663cef44f09aac5f",
|
||||
"x86_64-unknown-linux-musl-0.2.10":
|
||||
"5ab4daa64daad2fc53624c1e88dca7166424526713e6fcbe8e34e80f23ee612d",
|
||||
"undefined-0.2.9":
|
||||
"d1c2b96c86aa8f928d8f49c3addcbab35bc6c1a6609ae7ed64bfccc3135ec448",
|
||||
"aarch64-apple-darwin-0.2.9":
|
||||
"ebcbfb397dc045356e1b758176b83fe192bf6cede3ac307e30e6934c54ef45a5",
|
||||
"aarch64-unknown-linux-musl-0.2.9":
|
||||
@@ -2552,8 +3226,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"83438964a0be35ddded2099ea64599706e7c7a7de575429ce4df78e20d57774d",
|
||||
"x86_64-unknown-linux-musl-0.2.9":
|
||||
"28e583284cdbbd5e3796c4db2c94997f805b5c632d73dcd9a25ddb3dfa9453b7",
|
||||
"undefined-0.2.8":
|
||||
"dad41d5189d272b0cca9a87b3bb16c7a74241b9051ebf2b6fd5e94a0659a35fb",
|
||||
"aarch64-apple-darwin-0.2.8":
|
||||
"ce64cb16c5e0dd567ba926926a67c569d9138c5162685ed5a40639b2c9163275",
|
||||
"aarch64-unknown-linux-musl-0.2.8":
|
||||
@@ -2586,8 +3258,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"ce9f8fca5faef55af4fb83343143bb403ecef518f9118e97a37ccfbf1ccadfc3",
|
||||
"x86_64-unknown-linux-musl-0.2.8":
|
||||
"6f155b9b9d2b1baba811bd0c1aba0306a39ac547dd6eeb3906f692d3cec86984",
|
||||
"undefined-0.2.7":
|
||||
"dafefc3926d85052bd3dc07e28ebd8ecde0ae575bbf80b5c5bab80fdc3a3ba84",
|
||||
"aarch64-apple-darwin-0.2.7":
|
||||
"b9a0e6c501afbc4b47f07a199927d0783857013736c1c8c2d173201175139e45",
|
||||
"aarch64-unknown-linux-musl-0.2.7":
|
||||
@@ -2620,8 +3290,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"080bedb35224afca73cb424629e3512b529398f96353c4cdf59fe6cdceac5034",
|
||||
"x86_64-unknown-linux-musl-0.2.7":
|
||||
"ebc3de0f88e8cdc211fa914124f201b91037c0ba5f30f2614e630295a147c833",
|
||||
"undefined-0.2.6":
|
||||
"c822fc118367829825775874c19d14bb9415804a2c5efa6dfbb302b1fb18ae0e",
|
||||
"aarch64-apple-darwin-0.2.6":
|
||||
"f985057f3ef9a101ca4d485337f8b5800d894277f4dbbda50dfef5e0e1d352e4",
|
||||
"aarch64-unknown-linux-musl-0.2.6":
|
||||
@@ -2654,8 +3322,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"02c7803b6209a80cdc8a4867a02ca6cb6a622f0d83f5276770a8d5636a89a396",
|
||||
"x86_64-unknown-linux-musl-0.2.6":
|
||||
"5efba2047b1e72dbecd64e707d0063f6dc49c22f8ba467480e665534c5f6a17d",
|
||||
"undefined-0.2.5":
|
||||
"798f49225017610715474781467463a0dc48be1708973b0001e547c98c7c5f58",
|
||||
"aarch64-apple-darwin-0.2.5":
|
||||
"a827cb84658d321de0a029b7207b99fa6e20b99f0c1ab8d24484497b3b87c0e2",
|
||||
"aarch64-unknown-linux-musl-0.2.5":
|
||||
@@ -2688,8 +3354,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"5eb13622b4450b3756f2395c261315562c48f405208cd1a160fe47e43fc85da1",
|
||||
"x86_64-unknown-linux-musl-0.2.5":
|
||||
"dc591b1322d0ad2d3561c6d18657c5c5c34ff9addaa588645a062cd60d14f0dd",
|
||||
"undefined-0.2.4":
|
||||
"073532db6eaf44da32d9a9536f6c48f1c8d450340969234a1b6ac322811758d4",
|
||||
"aarch64-apple-darwin-0.2.4":
|
||||
"2edcd05f37e6f1c44aba1388086768dbc53777473c354feef3033fcb5cc3434a",
|
||||
"aarch64-unknown-linux-musl-0.2.4":
|
||||
@@ -2722,8 +3386,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"2c470b016f749063080fefc5dd19176bd25b9761033df9df7b5ab914eba1a8e5",
|
||||
"x86_64-unknown-linux-musl-0.2.4":
|
||||
"d795a27ccc2a47e8939b02296780c58377342ca35b51a518e36fa6b62291eabc",
|
||||
"undefined-0.2.3":
|
||||
"aa6349670507cf6ce80d832d488391b82b48a9f4511c868886758349d62664de",
|
||||
"aarch64-apple-darwin-0.2.3":
|
||||
"20e466f87ebeda26da0fff5306ad998375fe1e27d2514e4b4f5711f9fad6bcee",
|
||||
"aarch64-unknown-linux-musl-0.2.3":
|
||||
@@ -2756,8 +3418,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"d94b9f679b3718ed0f62eee1126f02f1552301b7dc473a7dc3727f20b889e057",
|
||||
"x86_64-unknown-linux-musl-0.2.3":
|
||||
"872113d59455f86700d23b4589bd2767491fb7ee4e21c0a62a9f2555c631045b",
|
||||
"undefined-0.2.2":
|
||||
"e7ca19e90cc640ac96756b52cdae640d03e427fbce92643a00883cc530487ffd",
|
||||
"aarch64-apple-darwin-0.2.2":
|
||||
"4533c5a3f81f64dbcf9fd154cfa5e1cf904e4d9698eca63ec6a209f554a0beb9",
|
||||
"aarch64-unknown-linux-gnu-0.2.2":
|
||||
@@ -2792,8 +3452,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"d19904a4eb2dca1b654639e82fc0327957c73427e504492005645f62d2205a3b",
|
||||
"x86_64-unknown-linux-musl-0.2.2":
|
||||
"82c4759fd56e932fd94642172ebea98cb55f4fbaafc4d00038ce425b08a5547f",
|
||||
"undefined-0.2.1":
|
||||
"2b7e04835f90d280458fbc473a2d4f47cf960d97769764deb059d0e85a978c45",
|
||||
"aarch64-apple-darwin-0.2.1":
|
||||
"bb50bd8c7844ecc366c6dd99205d8cadefaae3a8bc10ea03d51e3e3634426b45",
|
||||
"aarch64-unknown-linux-gnu-0.2.1":
|
||||
@@ -2828,8 +3486,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"623069deb38e4f2d47054388fdf1e4f9a676853fa42080d3b9bf52cd812c75b5",
|
||||
"x86_64-unknown-linux-musl-0.2.1":
|
||||
"d8af260263364fed8f2d4ba7c1c404bbf30f587cbc2a97807b6f8d5a1feb4cab",
|
||||
"undefined-0.2.0":
|
||||
"352d767c63e4b8ad10d30f705b62121291c2492e1df3eab26ef6dc94948fe090",
|
||||
"aarch64-apple-darwin-0.2.0":
|
||||
"fc2c917a8c2b1567b1d035f4a8122750f900cd813409f9d80bbd287e2597dfae",
|
||||
"aarch64-unknown-linux-musl-0.2.0":
|
||||
@@ -2862,8 +3518,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"a14c9317e2c000475851100c83c20ae725e998511b1ff890006d70532567a822",
|
||||
"x86_64-unknown-linux-musl-0.2.0":
|
||||
"44a6168281d2fe1226f4af6c94b068006dc458a7b98ff4d4dac1991e161eb678",
|
||||
"undefined-0.1.45":
|
||||
"79fee4ffca82be961a2cf79b024506a672a4e5ea1f924c1174ce3a2e5bfee54f",
|
||||
"aarch64-apple-darwin-0.1.45":
|
||||
"4990c1ca07e87ea215085c798294205057efd7ed97d7d5f4c76e840fc366753c",
|
||||
"aarch64-unknown-linux-gnu-0.1.45":
|
||||
@@ -2898,8 +3552,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"11341c386088233e197707a30fd9b13233deb222fd366cd39f9daf8e5924c7db",
|
||||
"x86_64-unknown-linux-musl-0.1.45":
|
||||
"ceac15973402e27c6c9b1077e35249437b2cbc26f60fc90be31114c47631884b",
|
||||
"undefined-0.1.44":
|
||||
"295c120a2b63297d929ee9592c9b1993435a0c6907436d14f8bb93cff5ac4800",
|
||||
"aarch64-apple-darwin-0.1.44":
|
||||
"154d45db602d5c4f8dbffb0e038fee581f161963f5562568be565625ac7bc753",
|
||||
"aarch64-unknown-linux-gnu-0.1.44":
|
||||
@@ -2932,8 +3584,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"68e8fda65c987cc104bdf7ae1eb332477733d44a27823032826f9370928568b2",
|
||||
"x86_64-unknown-linux-musl-0.1.44":
|
||||
"1df53dac9e3a81df6fbbef36e23cd932b1cf0fad9016d943fef63d2ca284bd02",
|
||||
"undefined-0.1.43":
|
||||
"0d57d370baf24dcb00ce59f6ab0d3dc2ceee41bd2c870a73fa517d3747d34a4b",
|
||||
"aarch64-apple-darwin-0.1.43":
|
||||
"e52c5f38cbcbd238fc40382252e2d40df3df1bbcc1302da86c19324285e9d27c",
|
||||
"aarch64-unknown-linux-gnu-0.1.43":
|
||||
@@ -2966,8 +3616,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"62217d8a269cd8901e84e3e197133cdb719a1fa37cd6f4afb07fab001163d247",
|
||||
"x86_64-unknown-linux-musl-0.1.43":
|
||||
"c27d81bd87b60ca7bd0119316f0026b231c0418638255400b54e1094140367b0",
|
||||
"undefined-0.1.42":
|
||||
"70ad9addeb1259afe4077ed6266c1d9359929cc5fe0311463e52275600814564",
|
||||
"aarch64-apple-darwin-0.1.42":
|
||||
"d49e7dea59668962765b8aa2f3a4512b03c166042e380e7a6fec971146ce11e4",
|
||||
"aarch64-unknown-linux-gnu-0.1.42":
|
||||
@@ -3000,8 +3648,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"cf3ca3ffbd1971ccef9b4d6cf703c8cf1730b824888bf63a7f1ede13943ddf7d",
|
||||
"x86_64-unknown-linux-musl-0.1.42":
|
||||
"ba96ab47ec0366abc78f8f91613d9fed314da8ff414262535a7dc605caea5a9c",
|
||||
"undefined-0.1.41":
|
||||
"8aff538cd8cb640bb12b669a6e4a09f5c077c4d39d22be1245bb93965b5a249b",
|
||||
"aarch64-apple-darwin-0.1.41":
|
||||
"c493ac2c5170d656499b7aa4a06d0c20d1c42b8b3b006b72661c747626cb7133",
|
||||
"aarch64-unknown-linux-gnu-0.1.41":
|
||||
@@ -3034,8 +3680,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"8d4782acbea2c04f34d90df25c8a7cce62e3673949d3be4a2baaf610385d5db4",
|
||||
"x86_64-unknown-linux-musl-0.1.41":
|
||||
"9b0058e9fc92c96e3530ec4e1a998e435214cb3905e7284e09cf7c68f1c33c01",
|
||||
"undefined-0.1.40":
|
||||
"c842a83107554c3a90451e7e6d935aa9d3d066bc25e1cba5c66b80c10754384f",
|
||||
"aarch64-apple-darwin-0.1.40":
|
||||
"28e92ed4534fa5085050fe51db0a641c319377e6498e5ee98d892ae91139f603",
|
||||
"aarch64-unknown-linux-gnu-0.1.40":
|
||||
@@ -3068,8 +3712,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"d9175308fcd2bd4b953b05cee66a022380ba493c01b2d35884684719d599299c",
|
||||
"x86_64-unknown-linux-musl-0.1.40":
|
||||
"7a5a1173ba3319f176167bd32544ad5d8edf0f38c753820b5627b036c74aabad",
|
||||
"undefined-0.1.39":
|
||||
"56e3247a49c76a42c7f686292d8f706110a308c45153913b165657f8db8bcbf7",
|
||||
"aarch64-apple-darwin-0.1.39":
|
||||
"35e320cfa41c8902d66e2c491b5b2d2414e1c6443177c660736de657c66fb2c2",
|
||||
"aarch64-unknown-linux-gnu-0.1.39":
|
||||
@@ -3102,8 +3744,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"e748caea4ddafd3aebba771f4e8f51fe5aa517b71151a648269b3be982a349a1",
|
||||
"x86_64-unknown-linux-musl-0.1.39":
|
||||
"dc57b6f64ae82fe604390e05cf66092fe598ae0fd0fdea9d568f6c4874fb3fe2",
|
||||
"undefined-0.1.38":
|
||||
"1fde633a2c16b51e43f346681471b3daf26e2b918a6d13de170eada19945774a",
|
||||
"aarch64-apple-darwin-0.1.38":
|
||||
"9ed4dee0e0f3da47fc85264fed79ea118f66043481ad71182c21e838f4f207dc",
|
||||
"aarch64-unknown-linux-gnu-0.1.38":
|
||||
@@ -3136,8 +3776,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"9b19bf6067ebb2e200211a300f0721e35144424f8f0f703dfc50c0bc745f69df",
|
||||
"x86_64-unknown-linux-musl-0.1.38":
|
||||
"29635ef915c1bb4048720e6b5e19f424a5a5f3934adef5a0e036295256c098df",
|
||||
"undefined-0.1.37":
|
||||
"158c7d7a9bfe2dc8430eeaa1e985a883d241745fba1acfb75e8d2242169983bf",
|
||||
"aarch64-apple-darwin-0.1.37":
|
||||
"1a160798d79a626a06e16634d77315e9dbe363ab6bfdaef424f7b5bffd30cab7",
|
||||
"aarch64-unknown-linux-gnu-0.1.37":
|
||||
@@ -3170,8 +3808,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"33cb815958a3e84b929dc06d42bf5170a5a5eb60b413f2243b4e62e75edc3e49",
|
||||
"x86_64-unknown-linux-musl-0.1.37":
|
||||
"2c591eaa0be3711dce1ad6d07a7564c8738b5c16b009c84037727f94c073a962",
|
||||
"undefined-0.1.36":
|
||||
"1d7cf52af7406ddabc4feb66dee5c4573f7b22a5ff73fd8a5b47dec7897c8e7e",
|
||||
"aarch64-apple-darwin-0.1.36":
|
||||
"d37641e38512b7e55b9eda7f8a6cb831375b5f1e86f0f326dfe0e6a8602ca7b6",
|
||||
"aarch64-unknown-linux-gnu-0.1.36":
|
||||
@@ -3204,8 +3840,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"7108a5709273156a176394d6da4b64f63b3c658e350657978eb1ba4c9e287e02",
|
||||
"x86_64-unknown-linux-musl-0.1.36":
|
||||
"3c95bc263adcab13ae5c7e9a0c97e9de5037f8926294cf22902d04eb99f951ef",
|
||||
"undefined-0.1.35":
|
||||
"033df44758caf9a2d81675419c9ba3bfd9a15255e670078b236b373a6ca8cef9",
|
||||
"aarch64-apple-darwin-0.1.35":
|
||||
"d5c0740e4a64c5d79150f1e819d903ec6281906bfce433bfe599312de7994435",
|
||||
"aarch64-unknown-linux-gnu-0.1.35":
|
||||
@@ -3238,8 +3872,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"ae2081221ea244e4998b89c408421e9922499fecf371c7310cfa0e951bff2a9e",
|
||||
"x86_64-unknown-linux-musl-0.1.35":
|
||||
"9abd44dfd8958e251a3b29a1eb95f152fef94f38fcef8bf534b86fd94ef89e35",
|
||||
"undefined-0.1.34":
|
||||
"ff93be812726a344252374ba1751b0089237439077a30c9214fb9a44bc32582b",
|
||||
"aarch64-apple-darwin-0.1.34":
|
||||
"40233daeac0eca7ea233b79a8f312fb9d85913fc74547031c81f2ec7c3f3aae0",
|
||||
"aarch64-unknown-linux-gnu-0.1.34":
|
||||
@@ -3272,8 +3904,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"1d3b075c89e5763ddbd19efdaf03d6ad96a753db889a28f5127227c40bb9f0bc",
|
||||
"x86_64-unknown-linux-musl-0.1.34":
|
||||
"bd162c354d0406c5ce91c0b16d130a62edbac6528ecd90a7f5b3f2d315f12df3",
|
||||
"undefined-0.1.33":
|
||||
"54a67168f4c5cdf44f4197e948cf4ecb65e71001f49584d79eab82358bbda813",
|
||||
"aarch64-apple-darwin-0.1.33":
|
||||
"6e6af126bfc34a9d0e02641bd99fda1201a81356455ee4f196b760b3d995cb7a",
|
||||
"aarch64-unknown-linux-gnu-0.1.33":
|
||||
@@ -3306,8 +3936,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"c582cf587db50ae4dd50360c5bc5dffce110c7e457f1dc1955fc6ad447bdfcce",
|
||||
"x86_64-unknown-linux-musl-0.1.33":
|
||||
"6a9877d92235c225ba82d18a6960489a8463716ce1f858f793b971f4aa2f7abb",
|
||||
"undefined-0.1.32":
|
||||
"c0fad19c5c03cfbf104ccb8e21c510aa556f5d296ad83a5faa737b4dc763a932",
|
||||
"aarch64-apple-darwin-0.1.32":
|
||||
"2f33ca87c17c27d6c2e7ac45b26e19de1a07fcd5e9312670a7bbb90634278414",
|
||||
"aarch64-unknown-linux-gnu-0.1.32":
|
||||
@@ -3340,8 +3968,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"281204339346c00f395332cec43de65bcdd3675a7dbe17b5d8d1292d7854679a",
|
||||
"x86_64-unknown-linux-musl-0.1.32":
|
||||
"a9dc63f9f48a1964340488e4d139d64b59fc14b06733a165af06d1857980dc97",
|
||||
"undefined-0.1.31":
|
||||
"b5b97391649fb35d588a7f741339e8862b731d2d31448462758428cbd8c51536",
|
||||
"aarch64-apple-darwin-0.1.31":
|
||||
"b00f0d2fbeb2806790b18294c0bf82ae8e69043a7da29d456b369202b261aef1",
|
||||
"aarch64-unknown-linux-gnu-0.1.31":
|
||||
@@ -3374,8 +4000,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"f5b4508eb49d8d65fdc712267d18312f4e3d67f168a8d9b4bb24a28bafdaa831",
|
||||
"x86_64-unknown-linux-musl-0.1.31":
|
||||
"02ba313bd081d2a99137f123e30692c991d0c6d9e190bdf403fe5b1a53c2bc2e",
|
||||
"undefined-0.1.30":
|
||||
"72c816316dc84a6daceadfb856b70f046db7d1a473a16a8bdea5041c786c1693",
|
||||
"aarch64-apple-darwin-0.1.30":
|
||||
"2efee289f003bf2033a44396886836dbff9d4e76ad2e0ef6d81d7a39a1068c49",
|
||||
"aarch64-unknown-linux-gnu-0.1.30":
|
||||
@@ -3408,8 +4032,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"bf102d20cf00bd2c001610570b6cd1409b63db3f5cef6b55e386d64f3d4724a5",
|
||||
"x86_64-unknown-linux-musl-0.1.30":
|
||||
"ff073ae9fce030fab64d1b93fc7a4688a0495eecac7316d55e4dc08a9283a326",
|
||||
"undefined-0.1.29":
|
||||
"dad20061d2e13b281925c26f6e1f0872852d095774b241ca8d963a13da4f4249",
|
||||
"aarch64-apple-darwin-0.1.29":
|
||||
"a5f4cf59f873ea6ffb8d1c11468936f508e444dba0c8278b8f550e811bcfe77f",
|
||||
"aarch64-unknown-linux-gnu-0.1.29":
|
||||
@@ -3442,8 +4064,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"59e9df30439a01e6852da3f62615d6e6fb8fd79029ee86c7ffdd3fc06c76a84e",
|
||||
"x86_64-unknown-linux-musl-0.1.29":
|
||||
"72b43a0e804d033d4064b57acfbd95671abfb0d2c0ddf11bfaf779efdad03e94",
|
||||
"undefined-0.1.28":
|
||||
"d6d23768a49cc7ba3a67cded5e826370c6f9e7f5ce6aa69743c5a5deb2f7e08e",
|
||||
"aarch64-apple-darwin-0.1.28":
|
||||
"3892e0a04ced4e8a1c900a7577a0c0805f362c5cbe13abc9c822215cb8f2317c",
|
||||
"aarch64-unknown-linux-gnu-0.1.28":
|
||||
@@ -3476,8 +4096,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"8047abff126ceb1a0e6c3e4f7a6420568e3421b485533f22f30767302ebae235",
|
||||
"x86_64-unknown-linux-musl-0.1.28":
|
||||
"2c50282284cf8fdbfa605f6c7c7f2c407be858cc1d36c545571d302da24480c8",
|
||||
"undefined-0.1.27":
|
||||
"ca9be4a2ba3ed1bbe4f91530fd65f44e704f968f12c80728d755712f7e5c9d18",
|
||||
"aarch64-apple-darwin-0.1.27":
|
||||
"c805ff702e7b5557277154e5d97b0456c811475a704590de8f4e14679efd276b",
|
||||
"aarch64-unknown-linux-gnu-0.1.27":
|
||||
@@ -3510,8 +4128,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"ffdea092d716bcce4483b29b52c8a14645f4c12c5aa4c012249963d333a0ca7a",
|
||||
"x86_64-unknown-linux-musl-0.1.27":
|
||||
"573115039c44ab9c83990bfe9cffdec0ed3d2ee03ad81bb4c391b5e95dbea50b",
|
||||
"undefined-0.1.26":
|
||||
"b1187944b39dc0426397b1554fb5c6a862fffdcf4ae46254835b6b286e42b4ab",
|
||||
"aarch64-apple-darwin-0.1.26":
|
||||
"37e5e9359c6eb943d31ff0082b0ec5327c93b572a2eafedc8266963181dbb1d0",
|
||||
"aarch64-unknown-linux-gnu-0.1.26":
|
||||
@@ -3544,8 +4160,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"27e4edfa8f12986430c2f6265653b7fca3dec9cd8709692b7fb353c5c0f4db82",
|
||||
"x86_64-unknown-linux-musl-0.1.26":
|
||||
"39738b23bcedb73e51f2010aac87e759d6b31463af40fba27b5e72cfdb42dd95",
|
||||
"undefined-0.1.25":
|
||||
"a5f31208af15c9a4c739abdb04a8daaf4a791c905ec8b95ef4402e7af8d3ccf9",
|
||||
"aarch64-apple-darwin-0.1.25":
|
||||
"4971997b9e3abe7fcb6635676db8f3e1d94c4e1939a21024639e6ed08129e512",
|
||||
"aarch64-unknown-linux-gnu-0.1.25":
|
||||
@@ -3578,8 +4192,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"8bcac2c9d93cf39d248e5284a2dce442a239f69923f999bf87ed39ec010e204a",
|
||||
"x86_64-unknown-linux-musl-0.1.25":
|
||||
"d42a18274d064eeb5bc9a14f48b175c7b5d814effd12cd5a32e8c37c1846cda0",
|
||||
"undefined-0.1.24":
|
||||
"9a9d91d1a5dcfecf5029931530d417fc3febf4c469d7d7b9567845c4210bb59b",
|
||||
"aarch64-apple-darwin-0.1.24":
|
||||
"e87bdea0fdd29327cc94f4be23e75e1894692423f714ef9afd544c3cef53ebea",
|
||||
"aarch64-unknown-linux-gnu-0.1.24":
|
||||
@@ -3612,8 +4224,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"128c23c81dd74f9fa8fe18844b649c0060322ac13e0e1b3a9ceba259b0c10dc6",
|
||||
"x86_64-unknown-linux-musl-0.1.24":
|
||||
"8d2eb876a50c8bfd187fbf166dbadd2790ff41cd351a2e9667e43c97567bfdb0",
|
||||
"undefined-0.1.23":
|
||||
"5024e379b0f8cdd32a3682dda3bfe228e03876fadc51105af164b7d5f20590c9",
|
||||
"aarch64-apple-darwin-0.1.23":
|
||||
"5851419401ceaae8f902cf9f439409e7216abdad4f708fbaedd3d229041aff7c",
|
||||
"aarch64-unknown-linux-gnu-0.1.23":
|
||||
@@ -3646,8 +4256,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"81909f58ec476a40998e5ff2b81f8704195140305c8dea58aa041ec1a8e5aa06",
|
||||
"x86_64-unknown-linux-musl-0.1.23":
|
||||
"7748461ee4d8922b93843e1850e4dd2defbb1c0b3db8b3c062977637a9d6ffdf",
|
||||
"undefined-0.1.22":
|
||||
"20856f7aec12b8c576a8de8a3528de3cdb35789cc3609be580133b59942256c3",
|
||||
"aarch64-apple-darwin-0.1.22":
|
||||
"4768499576438c1d7c741b5dc907a5778fd7f52c88555c1eda7288c7c501a0bb",
|
||||
"aarch64-unknown-linux-gnu-0.1.22":
|
||||
@@ -3680,8 +4288,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"9c17b11bd3991ae98b5333378127aba0ba51888b6969427259b51fbda6bbf955",
|
||||
"x86_64-unknown-linux-musl-0.1.22":
|
||||
"6f80cd8ad79c119ed6882bc9c5b8f860f7e554f87b97830a4ebf1e5b746d5e70",
|
||||
"undefined-0.1.21":
|
||||
"eae4d4641e57ef2eec75d9f76653b8a3a0dc0b91b3dcc8fbbb2ce4456a08fcfe",
|
||||
"aarch64-apple-darwin-0.1.21":
|
||||
"1e7788eb132a6e8b1c81829d81cdbb8ba0b26fe098320217284d4af4332fe606",
|
||||
"aarch64-unknown-linux-gnu-0.1.21":
|
||||
@@ -3712,8 +4318,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"1926f6112b03934f9e4b5caf14f15dc284e5129d1f8572ec55269afb798ed3a7",
|
||||
"x86_64-unknown-linux-musl-0.1.21":
|
||||
"999773834330b6b20174f4486d2ddb19e51dc812291189cfb509aa1e1a3d6b6c",
|
||||
"undefined-0.1.20":
|
||||
"e0ae591d4c14f0cb6b67ca4d64183fec0130e08a623fdaa991ef707f10908865",
|
||||
"aarch64-apple-darwin-0.1.20":
|
||||
"7d6b1bb7e4e044a1f04a541703ea9de0df57111dab57863d82602d848556bc23",
|
||||
"aarch64-unknown-linux-gnu-0.1.20":
|
||||
@@ -3744,8 +4348,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"88cc7354f27134acf45df679bd6e529191409183a936a974ead9ff2714c3e6ce",
|
||||
"x86_64-unknown-linux-musl-0.1.20":
|
||||
"db28ca169154ce55ea7356071dbbed94fc5cc94b3564cd58bb458342788ac45e",
|
||||
"undefined-0.1.19":
|
||||
"a0e28df167a8184016b0b8e571eed6d1aeac2cfe63b34e1a26bbb611ebe67657",
|
||||
"aarch64-apple-darwin-0.1.19":
|
||||
"1ac97b4bedad801cd5860a83e92e092e9e04246fd7028393ba6b5c2f76fc1dff",
|
||||
"aarch64-unknown-linux-gnu-0.1.19":
|
||||
@@ -3776,8 +4378,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"ab187b253f9f7ffb0063e827cf5efbedb0482d013ac619f6b28158941ca8d5f7",
|
||||
"x86_64-unknown-linux-musl-0.1.19":
|
||||
"10e5e7f2007f363717a69393c7c4fee3b7ca8f16d1ae7a4e2cbfa67f7bc41bc7",
|
||||
"undefined-0.1.18":
|
||||
"87d953dc58d3936c299609b1697b6d17ca85407edc177d293c98bb9451f8e5ff",
|
||||
"aarch64-apple-darwin-0.1.18":
|
||||
"1806f3ada6ab943d86aa45a336e690f66b160145fe85f2adb82f3fcaf4eef925",
|
||||
"aarch64-unknown-linux-gnu-0.1.18":
|
||||
@@ -3808,8 +4408,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"605e49d8dc48081ef8ba32212df2f17f02e531c02de36b5caf417bd97818fc3a",
|
||||
"x86_64-unknown-linux-musl-0.1.18":
|
||||
"ed1e5264e84246f91e1f2dbb642eff24fbce273ded3bac337930a0c6ef9ad6b3",
|
||||
"undefined-0.1.17":
|
||||
"7ecfb6fc6c19e3c85cc2ecae0271da16b43bead58b2f0d91fd1c24d1c0f1ae0e",
|
||||
"aarch64-apple-darwin-0.1.17":
|
||||
"8f6d1b142dfc4d2040b86a94956eb3c2f5436fd0e889e0d0d1c59dbb8fbbf9de",
|
||||
"aarch64-unknown-linux-gnu-0.1.17":
|
||||
@@ -3840,8 +4438,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"add91a881b3de0a2defa6cf363bbbbfb5dc58e85cff52e8164052e86fee73809",
|
||||
"x86_64-unknown-linux-musl-0.1.17":
|
||||
"d793d93fa5eac748c1ca84ae28f1ba3fbe6d0ec4093818f960e8378d3c012c3f",
|
||||
"undefined-0.1.16":
|
||||
"8cffa14f967e4900606afb952a1f5efe92e93a550792cd7ba77784fd7a149d0f",
|
||||
"aarch64-apple-darwin-0.1.16":
|
||||
"915b89c135b3890f086149cc50019fb6b243a26311dfe69d7f00204fb6035c87",
|
||||
"aarch64-unknown-linux-gnu-0.1.16":
|
||||
@@ -3872,8 +4468,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"84b15dbd298969ecf2bffb22a3e1003df085579d53d39a6bb87d5813a14e10f2",
|
||||
"x86_64-unknown-linux-musl-0.1.16":
|
||||
"1d76289dea83224d61eb84284f00136a1275234e7537baba44ca3c9e696dab05",
|
||||
"undefined-0.1.15":
|
||||
"55d165ea2c9ab28351c0f5f680c21a66bc8b8c7799ac39162ca5044d0e23a3f4",
|
||||
"aarch64-apple-darwin-0.1.15":
|
||||
"df9bab49d9a171bfafb619422ec8c88c0bea930fb69ddd6c8884420b9cf7a13d",
|
||||
"aarch64-unknown-linux-gnu-0.1.15":
|
||||
@@ -3904,8 +4498,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"00a37907aa7985e88584ab4765905b720fa8b9088d1bcae7611c10f398299c5d",
|
||||
"x86_64-unknown-linux-musl-0.1.15":
|
||||
"5f7378a55671fa53e32cf5cc8beaf2cca40db95a579faaaa1310399f9329d27c",
|
||||
"undefined-0.1.14":
|
||||
"19be86f31cbf3d4c5f7094fc77652c57cd05f70876d22df469d85c52b2108047",
|
||||
"aarch64-apple-darwin-0.1.14":
|
||||
"793d267ae803c4c59b9d825bbacd09d4f1a06579567a7ea9aa458e2986b5b778",
|
||||
"aarch64-unknown-linux-gnu-0.1.14":
|
||||
@@ -3936,8 +4528,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"394c421302ba972fffdd674a0a57f7189d8cc5a728fac8a175027abf833eee59",
|
||||
"x86_64-unknown-linux-musl-0.1.14":
|
||||
"3c26c7a3e236d9f5d10aa6f32a8751322e8719812424b0b05ede1023f16dbd52",
|
||||
"undefined-0.1.13":
|
||||
"859b13879d2a6f97c3c4d8928cb6a81b067b022b4e5b6c8e75bba099570bd0fe",
|
||||
"aarch64-apple-darwin-0.1.13":
|
||||
"9d7a71dbb75dbabcbaace98d06517caa691ec8dab8ecbda3afee44ac9cb1e1c3",
|
||||
"aarch64-unknown-linux-gnu-0.1.13":
|
||||
@@ -3968,8 +4558,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"2bfc6a542a3df6af6f56ccd8ec9f1b0596fff62b11650b0bdb830f10ee4e2d64",
|
||||
"x86_64-unknown-linux-musl-0.1.13":
|
||||
"5e771e72b3dd42d99a354fc4ce9be047e4d9fc1a653b2f551128a3b4fd533d28",
|
||||
"undefined-0.1.12":
|
||||
"e16d94a2d6365a99d88168175325bc1f9f7e9f72eadb136691150e3fdad4491b",
|
||||
"aarch64-apple-darwin-0.1.12":
|
||||
"c27629967760a84caeae66a130bb4c53dc1da0386122a4e67eeb19a0a163311e",
|
||||
"aarch64-unknown-linux-gnu-0.1.12":
|
||||
@@ -4000,8 +4588,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"fb1f56e7485b6c94364d11f227107fdc74799e8c91ca5321c35e8a19828d7a72",
|
||||
"x86_64-unknown-linux-musl-0.1.12":
|
||||
"3d4fe441702e719156c373caffbfccd75254594113d8e3ef5e43d871fad7c722",
|
||||
"undefined-0.1.11":
|
||||
"ce4fd6fad4986f5ee738455e251825de4094f48c86555e9b4b3adafc1a88ed27",
|
||||
"aarch64-apple-darwin-0.1.11":
|
||||
"64e0aeae1d5135684c65e5d41741f1b2eba5c60e574dfef7386712b259066d95",
|
||||
"aarch64-unknown-linux-gnu-0.1.11":
|
||||
@@ -4032,8 +4618,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"8b1d098549f46814ed40975db6e88aba2eb541196bea54753b08f789b6db8384",
|
||||
"x86_64-unknown-linux-musl-0.1.11":
|
||||
"a74b6e51ccf087f78814eecd449ad759f55a633015d9762f06d134394e6122fa",
|
||||
"undefined-0.1.10":
|
||||
"cf57c25c9b806efdc8f81ff1e66df985513caf28a4508b6399d1e125fabbe359",
|
||||
"aarch64-apple-darwin-0.1.10":
|
||||
"1febf66f3377f28d59cedaf16ca08fdf0b18a19dff201ee29cfd4c09b5672a7e",
|
||||
"aarch64-unknown-linux-gnu-0.1.10":
|
||||
@@ -4064,8 +4648,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"94c6a8bdde7151ea9587f866f47f5d376acedd90606c546bac9585d3ad5b4426",
|
||||
"x86_64-unknown-linux-musl-0.1.10":
|
||||
"ff6b01c23bab0333dc258d9decaeddd500d7bcfb3bd6a1c47c12b449e9430bfa",
|
||||
"undefined-0.1.9":
|
||||
"5ac47ac172b0d451bb9820174d2b1ddbf1f99a257d512f065735d3a0dec44854",
|
||||
"aarch64-apple-darwin-0.1.9":
|
||||
"0b92f201c4f48a54a23074001e490722d8a532043566f3b24fdfddcee5dbbb81",
|
||||
"aarch64-unknown-linux-gnu-0.1.9":
|
||||
@@ -4096,8 +4678,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"4c6305655fba53bd68dcecebc622e172c9de369543539428a5449b4c6ee53ec0",
|
||||
"x86_64-unknown-linux-musl-0.1.9":
|
||||
"93f43d609bc6298af89519fc2a8ddcdc3a494110f64e7238c6f19639b3a45755",
|
||||
"undefined-0.1.8":
|
||||
"6ba549d17d0b699fa4c955cdc482bfd5a89d6ec4c382119ab1937f6d75c6770e",
|
||||
"aarch64-apple-darwin-0.1.8":
|
||||
"0993fce3759983899a83d6c2727576a4b35176d97c13d1bcbabd41e91f6147fb",
|
||||
"aarch64-unknown-linux-gnu-0.1.8":
|
||||
@@ -4128,8 +4708,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"074267e2a2eaed2eb87c3ffc71eb1ce1c21c5594e079ec2f2d5d5ff6815cbdf4",
|
||||
"x86_64-unknown-linux-musl-0.1.8":
|
||||
"3d8d92513f85811d1383d74c2b5eeef75002b33f1dfcf48cb46c253c31297cc8",
|
||||
"undefined-0.1.7":
|
||||
"9729f66c74df1341f05b8e3ef4b02598caa234c1fdfd834adb7435b3ad7107a9",
|
||||
"aarch64-apple-darwin-0.1.7":
|
||||
"020cd34efacc144b7dcd0bd1813ca1e8153cbb281b6fb4506be80714ad2322da",
|
||||
"aarch64-unknown-linux-gnu-0.1.7":
|
||||
@@ -4160,8 +4738,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"60175158c359cf247e67b6499feca8d0848c75d95061b7552dd3c5500938ef63",
|
||||
"x86_64-unknown-linux-musl-0.1.7":
|
||||
"d0777ccaf989172b821f7c1a6d2f94b327e527a01ffbd3d5cec1d9d2321ca5db",
|
||||
"undefined-0.1.6":
|
||||
"0b1086d16d4fbba5dccb1aed7e8774fbb6d4feccd5cd42efd4509dce521ff698",
|
||||
"aarch64-apple-darwin-0.1.6":
|
||||
"3c6f147f2f45d0327803a690722d25ba4c23c4145cf08df971cba161567e448b",
|
||||
"aarch64-unknown-linux-gnu-0.1.6":
|
||||
@@ -4192,8 +4768,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"7dc7a615ed6d613ad49d77c0e4a39361a97f43b842e8b14536a00db9671ce5ab",
|
||||
"x86_64-unknown-linux-musl-0.1.6":
|
||||
"4d956f457e0f5a2116d4138082f030488865c0c04aa7389a54f4f80ad0868119",
|
||||
"undefined-0.1.5":
|
||||
"90eeea76c1c1de3343f97be1f270c990c10193cdea7925a80913cd31aae71d45",
|
||||
"aarch64-apple-darwin-0.1.5":
|
||||
"dc62f02d9684e3453ef62d2b8775323a54d89a446e3dbbd94115e809dbd0aa56",
|
||||
"aarch64-unknown-linux-gnu-0.1.5":
|
||||
@@ -4224,8 +4798,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"06e1530ca6dd161d7052a26cd08716276d8d6aee90d6e164cf4e05d4f5694312",
|
||||
"x86_64-unknown-linux-musl-0.1.5":
|
||||
"6d290240419ba81e789b458b3d0685bb3cf8c61d725fb43949b554c64a50ce9b",
|
||||
"undefined-0.1.4":
|
||||
"1fffbd35b2b8feb57d320b5032cd3972b6dbf99606929dc30b8959aaab1e97cd",
|
||||
"aarch64-apple-darwin-0.1.4":
|
||||
"20ddf1a3919664d427d2d5ebb9875d9fef39a9ffd6850c036591235678e42609",
|
||||
"aarch64-unknown-linux-gnu-0.1.4":
|
||||
@@ -4256,8 +4828,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"1eb2f8ba39c231a310e41784980c8085eb747711ad59e430e75975a61a0a7fbf",
|
||||
"x86_64-unknown-linux-musl-0.1.4":
|
||||
"04789d4a7f5a50524679b0d7f440566cfe69873448f4128815fab1354d3a0bb0",
|
||||
"undefined-0.1.3":
|
||||
"0eeba5a57732dc3b0b81fe0b67f01986aac2580ef27275292b97bc1c48837014",
|
||||
"aarch64-apple-darwin-0.1.3":
|
||||
"f15e35d795cb370f6ae9d4107961acb3e7ab190196d6f6e1243ed8941947dcff",
|
||||
"aarch64-unknown-linux-gnu-0.1.3":
|
||||
@@ -4288,8 +4858,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"785f82659bb563553adc08608abd65475bce99f080fd01e9f5a358d2e8ddb2a6",
|
||||
"x86_64-unknown-linux-musl-0.1.3":
|
||||
"f7355abd4f4013c573d7ae64c0a42986ffc6b08a73ee24e8bff74ee6335136df",
|
||||
"undefined-0.1.2":
|
||||
"ba37d11fcbf801bdacdbffac31817f6be7dc4b11155957e98ed94f65e171c436",
|
||||
"aarch64-apple-darwin-0.1.2":
|
||||
"13289f543d96c2506f7c3319e8bbc5fb944c8109374b61188593567dc2dae454",
|
||||
"aarch64-unknown-linux-gnu-0.1.2":
|
||||
@@ -4320,8 +4888,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"89624cd11aa20bc4a841bdcb110940ecb9f05555d79c3f8f4758e34d76c5c7ca",
|
||||
"x86_64-unknown-linux-musl-0.1.2":
|
||||
"f69cbd79dfea3bd69c4db064565f9eaebb86db2c0ba0609c090be86366d5db42",
|
||||
"undefined-0.1.1":
|
||||
"525a76cf1603007fff9d1909126b2f2d3068b1cfa0e0f20dd41769a5efe87808",
|
||||
"aarch64-apple-darwin-0.1.1":
|
||||
"ff595133104cd486c7d852f68d5fa82bafddc7cedcc5087432fd55f0681af89a",
|
||||
"aarch64-unknown-linux-gnu-0.1.1":
|
||||
@@ -4352,8 +4918,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"f9d426e72ae4fccb849cef5e944ab8391accde203966f6e309dcc2505379f341",
|
||||
"x86_64-unknown-linux-musl-0.1.1":
|
||||
"05fbfb6d1f46b2fda2bbb916b5e0c5e396dc01e8f5b14cc2a9b46f427539a380",
|
||||
"undefined-0.1.0":
|
||||
"e745f9958b6cf7c413f52d56e4005e0a8809bdc0237d26fd53555948f4fab8d8",
|
||||
"aarch64-apple-darwin-0.1.0":
|
||||
"955d8dcb920b0a544f3595ebf35b813912fefedf4e18f8ac6a984a0532f9e35e",
|
||||
"aarch64-unknown-linux-gnu-0.1.0":
|
||||
@@ -4384,8 +4948,6 @@ export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"43a5253b18dee80d3e259dc0df39db39728296d0a506ab89974d3fc15d8e3a16",
|
||||
"x86_64-unknown-linux-musl-0.1.0":
|
||||
"9caa5b457d1adbd30b28444bfccb6c789702e3bb260e286d8f3278bd0cb02af6",
|
||||
"undefined-0.0.5":
|
||||
"5eaac1dcbcf6e25b7e2cf73aee3c9ced014605bcd3fe055e337e505ece443835",
|
||||
"aarch64-apple-darwin-0.0.5":
|
||||
"887f58afbcdb879bcb07a0d5f99106a10b8023d4b104882627a93798629c7ed8",
|
||||
"aarch64-unknown-linux-gnu-0.0.5":
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { promises as fs } from "node:fs";
|
||||
import * as tc from "@actions/tool-cache";
|
||||
import { KNOWN_CHECKSUMS } from "./known-checksums";
|
||||
export async function updateChecksums(
|
||||
filePath: string,
|
||||
downloadUrls: string[],
|
||||
@@ -7,31 +8,50 @@ export async function updateChecksums(
|
||||
await fs.rm(filePath);
|
||||
await fs.appendFile(
|
||||
filePath,
|
||||
"// AUTOGENERATED_DO_NOT_EDIT\nexport const KNOWN_CHECKSUMS: {[key: string]: string} = {\n",
|
||||
"// AUTOGENERATED_DO_NOT_EDIT\nexport const KNOWN_CHECKSUMS: { [key: string]: string } = {\n",
|
||||
);
|
||||
let firstLine = true;
|
||||
for (const downloadUrl of downloadUrls) {
|
||||
const content = await downloadAssetContent(downloadUrl);
|
||||
const checksum = content.split(" ")[0].trim();
|
||||
const key = getKey(downloadUrl);
|
||||
if (key === undefined) {
|
||||
continue;
|
||||
}
|
||||
const checksum = await getOrDownloadChecksum(key, downloadUrl);
|
||||
if (!firstLine) {
|
||||
await fs.appendFile(filePath, ",\n");
|
||||
}
|
||||
await fs.appendFile(filePath, ` '${key}':\n '${checksum}'`);
|
||||
await fs.appendFile(filePath, ` "${key}":\n "${checksum}"`);
|
||||
firstLine = false;
|
||||
}
|
||||
await fs.appendFile(filePath, "}\n");
|
||||
await fs.appendFile(filePath, ",\n};\n");
|
||||
}
|
||||
|
||||
function getKey(downloadUrl: string): string {
|
||||
function getKey(downloadUrl: string): string | undefined {
|
||||
// https://github.com/astral-sh/uv/releases/download/0.3.2/uv-aarch64-apple-darwin.tar.gz.sha256
|
||||
const parts = downloadUrl.split("/");
|
||||
const fileName = parts[parts.length - 1];
|
||||
if (fileName.startsWith("source")) {
|
||||
return undefined;
|
||||
}
|
||||
const name = fileName.split(".")[0].split("uv-")[1];
|
||||
const version = parts[parts.length - 2];
|
||||
return `${name}-${version}`;
|
||||
}
|
||||
|
||||
async function getOrDownloadChecksum(
|
||||
key: string,
|
||||
downloadUrl: string,
|
||||
): Promise<string> {
|
||||
let checksum = "";
|
||||
if (key in KNOWN_CHECKSUMS) {
|
||||
checksum = KNOWN_CHECKSUMS[key];
|
||||
} else {
|
||||
const content = await downloadAssetContent(downloadUrl);
|
||||
checksum = content.split(" ")[0].trim();
|
||||
}
|
||||
return checksum;
|
||||
}
|
||||
|
||||
async function downloadAssetContent(downloadUrl: string): Promise<string> {
|
||||
const downloadPath = await tc.downloadTool(downloadUrl);
|
||||
const content = await fs.readFile(downloadPath, "utf8");
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
import * as core from "@actions/core";
|
||||
import * as tc from "@actions/tool-cache";
|
||||
import * as exec from "@actions/exec";
|
||||
import * as path from "node:path";
|
||||
import { promises as fs } from "node:fs";
|
||||
import type { Architecture, Platform } from "../utils/platforms";
|
||||
import { validateChecksum } from "./checksum/checksum";
|
||||
import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants";
|
||||
|
||||
export async function downloadLatest(
|
||||
platform: Platform,
|
||||
arch: Architecture,
|
||||
checkSum: string | undefined,
|
||||
githubToken: string | undefined,
|
||||
): Promise<{ cachedToolDir: string; version: string }> {
|
||||
const artifact = `uv-${arch}-${platform}`;
|
||||
let extension = ".tar.gz";
|
||||
if (platform === "pc-windows-msvc") {
|
||||
extension = ".zip";
|
||||
}
|
||||
const downloadUrl = `https://github.com/${OWNER}/${REPO}/releases/latest/download/${artifact}${extension}`;
|
||||
core.info(`Downloading uv from "${downloadUrl}" ...`);
|
||||
|
||||
const downloadPath = await tc.downloadTool(
|
||||
downloadUrl,
|
||||
undefined,
|
||||
githubToken,
|
||||
);
|
||||
let uvExecutablePath: string;
|
||||
let uvDir: string;
|
||||
if (platform === "pc-windows-msvc") {
|
||||
const fullPathWithExtension = `${downloadPath}${extension}`;
|
||||
await fs.copyFile(downloadPath, fullPathWithExtension);
|
||||
uvDir = await tc.extractZip(fullPathWithExtension);
|
||||
// On windows extracting the zip does not create an intermediate directory
|
||||
uvExecutablePath = path.join(uvDir, "uv.exe");
|
||||
} else {
|
||||
const extractedDir = await tc.extractTar(downloadPath);
|
||||
uvDir = path.join(extractedDir, artifact);
|
||||
uvExecutablePath = path.join(uvDir, "uv");
|
||||
}
|
||||
const version = await getVersion(uvExecutablePath);
|
||||
await validateChecksum(checkSum, downloadPath, arch, platform, version);
|
||||
const cachedToolDir = await tc.cacheDir(
|
||||
uvDir,
|
||||
TOOL_CACHE_NAME,
|
||||
version,
|
||||
arch,
|
||||
);
|
||||
|
||||
return { cachedToolDir, version };
|
||||
}
|
||||
|
||||
async function getVersion(uvExecutablePath: string): Promise<string> {
|
||||
// Parse the output of `uv --version` to get the version
|
||||
// The output looks like
|
||||
// uv 0.3.1 (be17d132a 2024-08-21)
|
||||
|
||||
const options: exec.ExecOptions = {
|
||||
silent: !core.isDebug(),
|
||||
};
|
||||
const execArgs = ["--version"];
|
||||
|
||||
let output = "";
|
||||
options.listeners = {
|
||||
stdout: (data: Buffer) => {
|
||||
output += data.toString();
|
||||
},
|
||||
};
|
||||
await exec.exec(uvExecutablePath, execArgs, options);
|
||||
const parts = output.split(" ");
|
||||
return parts[1].trim();
|
||||
}
|
||||
@@ -5,7 +5,11 @@ import { promises as fs } from "node:fs";
|
||||
import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants";
|
||||
import type { Architecture, Platform } from "../utils/platforms";
|
||||
import { validateChecksum } from "./checksum/checksum";
|
||||
import * as github from "@actions/github";
|
||||
import { Octokit } from "@octokit/core";
|
||||
import { paginateRest } from "@octokit/plugin-paginate-rest";
|
||||
import { restEndpointMethods } from "@octokit/plugin-rest-endpoint-methods";
|
||||
|
||||
const PaginatingOctokit = Octokit.plugin(paginateRest, restEndpointMethods);
|
||||
|
||||
export function tryGetFromToolCache(
|
||||
arch: Architecture,
|
||||
@@ -70,10 +74,14 @@ export async function downloadVersion(
|
||||
return { version: resolvedVersion, cachedToolDir };
|
||||
}
|
||||
|
||||
async function resolveVersion(
|
||||
version: string,
|
||||
export async function resolveVersion(
|
||||
versionInput: string,
|
||||
githubToken: string,
|
||||
): Promise<string> {
|
||||
const version =
|
||||
versionInput === "latest"
|
||||
? await getLatestVersion(githubToken)
|
||||
: versionInput;
|
||||
if (tc.isExplicitVersion(version)) {
|
||||
core.debug(`Version ${version} is an explicit version.`);
|
||||
return version;
|
||||
@@ -87,11 +95,65 @@ async function resolveVersion(
|
||||
}
|
||||
|
||||
async function getAvailableVersions(githubToken: string): Promise<string[]> {
|
||||
const octokit = github.getOctokit(githubToken);
|
||||
try {
|
||||
const octokit = new PaginatingOctokit({
|
||||
auth: githubToken,
|
||||
});
|
||||
return await getReleaseTagNames(octokit);
|
||||
} catch (err) {
|
||||
if ((err as Error).message.includes("Bad credentials")) {
|
||||
core.info(
|
||||
"No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.",
|
||||
);
|
||||
const octokit = new PaginatingOctokit();
|
||||
return await getReleaseTagNames(octokit);
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
async function getReleaseTagNames(
|
||||
octokit: InstanceType<typeof PaginatingOctokit>,
|
||||
): Promise<string[]> {
|
||||
const response = await octokit.paginate(octokit.rest.repos.listReleases, {
|
||||
owner: OWNER,
|
||||
repo: REPO,
|
||||
});
|
||||
return response.map((release) => release.tag_name);
|
||||
}
|
||||
|
||||
async function getLatestVersion(githubToken: string) {
|
||||
const octokit = new PaginatingOctokit({
|
||||
auth: githubToken,
|
||||
});
|
||||
|
||||
let latestRelease: { tag_name: string } | undefined;
|
||||
try {
|
||||
latestRelease = await getLatestRelease(octokit);
|
||||
} catch (err) {
|
||||
if ((err as Error).message.includes("Bad credentials")) {
|
||||
core.info(
|
||||
"No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.",
|
||||
);
|
||||
const octokit = new PaginatingOctokit();
|
||||
latestRelease = await getLatestRelease(octokit);
|
||||
} else {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
if (!latestRelease) {
|
||||
throw new Error("Could not determine latest release.");
|
||||
}
|
||||
return latestRelease.tag_name;
|
||||
}
|
||||
|
||||
async function getLatestRelease(
|
||||
octokit: InstanceType<typeof PaginatingOctokit>,
|
||||
) {
|
||||
const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({
|
||||
owner: OWNER,
|
||||
repo: REPO,
|
||||
});
|
||||
return latestRelease;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import * as cache from "@actions/cache";
|
||||
import * as core from "@actions/core";
|
||||
import * as exec from "@actions/exec";
|
||||
import * as fs from "node:fs";
|
||||
import {
|
||||
STATE_CACHE_MATCHED_KEY,
|
||||
STATE_CACHE_KEY,
|
||||
@@ -8,19 +9,26 @@ import {
|
||||
import {
|
||||
cacheLocalPath,
|
||||
enableCache,
|
||||
ignoreNothingToCache,
|
||||
pruneCache as shouldPruneCache,
|
||||
} from "./utils/inputs";
|
||||
import { STATE_CACHED_UV_DIR } from "./utils/constants";
|
||||
|
||||
export async function run(): Promise<void> {
|
||||
try {
|
||||
if (enableCache) {
|
||||
await saveCache();
|
||||
// node will stay alive if any promises are not resolved,
|
||||
// which is a possibility if HTTP requests are dangling
|
||||
// due to retries or timeouts. We know that if we got here
|
||||
// that all promises that we care about have successfully
|
||||
// resolved, so simply exit with success.
|
||||
process.exit(0);
|
||||
}
|
||||
} catch (error) {
|
||||
const err = error as Error;
|
||||
core.setFailed(err.message);
|
||||
}
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
async function saveCache(): Promise<void> {
|
||||
@@ -41,14 +49,34 @@ async function saveCache(): Promise<void> {
|
||||
}
|
||||
|
||||
core.info(`Saving cache path: ${cacheLocalPath}`);
|
||||
await cache.saveCache([cacheLocalPath], cacheKey);
|
||||
|
||||
core.info(`cache saved with the key: ${cacheKey}`);
|
||||
if (!fs.existsSync(cacheLocalPath) && !ignoreNothingToCache) {
|
||||
throw new Error(
|
||||
`Cache path ${cacheLocalPath} 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.`,
|
||||
);
|
||||
}
|
||||
try {
|
||||
await cache.saveCache([cacheLocalPath], 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(): Promise<void> {
|
||||
const uvDir = core.getState(STATE_CACHED_UV_DIR);
|
||||
const options: exec.ExecOptions = {
|
||||
silent: !core.isDebug(),
|
||||
silent: false,
|
||||
env: { PATH: uvDir },
|
||||
};
|
||||
const execArgs = ["cache", "prune", "--ci"];
|
||||
|
||||
|
||||
123
src/setup-uv.ts
123
src/setup-uv.ts
@@ -3,10 +3,10 @@ import * as path from "node:path";
|
||||
import {
|
||||
downloadVersion,
|
||||
tryGetFromToolCache,
|
||||
resolveVersion,
|
||||
} from "./download/download-version";
|
||||
import { restoreCache } from "./cache/restore-cache";
|
||||
|
||||
import { downloadLatest } from "./download/download-latest";
|
||||
import {
|
||||
type Architecture,
|
||||
getArch,
|
||||
@@ -18,10 +18,17 @@ import {
|
||||
checkSum,
|
||||
enableCache,
|
||||
githubToken,
|
||||
pyProjectFile,
|
||||
pythonVersion,
|
||||
toolBinDir,
|
||||
toolDir,
|
||||
version,
|
||||
uvFile,
|
||||
version as versionInput,
|
||||
} from "./utils/inputs";
|
||||
import * as exec from "@actions/exec";
|
||||
import fs from "node:fs";
|
||||
import { getUvVersionFromConfigFile } from "./utils/pyproject";
|
||||
import { STATE_CACHED_UV_DIR } from "./utils/constants";
|
||||
|
||||
async function run(): Promise<void> {
|
||||
const platform = getPlatform();
|
||||
@@ -34,25 +41,21 @@ async function run(): Promise<void> {
|
||||
if (arch === undefined) {
|
||||
throw new Error(`Unsupported architecture: ${process.arch}`);
|
||||
}
|
||||
const setupResult = await setupUv(
|
||||
platform,
|
||||
arch,
|
||||
version,
|
||||
checkSum,
|
||||
githubToken,
|
||||
);
|
||||
const setupResult = await setupUv(platform, arch, checkSum, githubToken);
|
||||
|
||||
core.saveState(STATE_CACHED_UV_DIR, setupResult.uvDir);
|
||||
addUvToPath(setupResult.uvDir);
|
||||
addToolBinToPath();
|
||||
setToolDir();
|
||||
core.setOutput("uv-version", setupResult.version);
|
||||
core.info(`Successfully installed uv version ${setupResult.version}`);
|
||||
|
||||
await setupPython();
|
||||
addMatchers();
|
||||
setCacheDir(cacheLocalPath);
|
||||
|
||||
core.setOutput("uv-version", setupResult.version);
|
||||
core.info(`Successfully installed uv version ${setupResult.version}`);
|
||||
|
||||
if (enableCache) {
|
||||
await restoreCache(setupResult.version);
|
||||
await restoreCache();
|
||||
}
|
||||
process.exit(0);
|
||||
} catch (err) {
|
||||
@@ -63,42 +66,53 @@ async function run(): Promise<void> {
|
||||
async function setupUv(
|
||||
platform: Platform,
|
||||
arch: Architecture,
|
||||
versionInput: string,
|
||||
checkSum: string | undefined,
|
||||
githubToken: string,
|
||||
): Promise<{ uvDir: string; version: string }> {
|
||||
let installedPath: string | undefined;
|
||||
let cachedToolDir: string;
|
||||
let version: string;
|
||||
if (versionInput === "latest") {
|
||||
const latestResult = await downloadLatest(
|
||||
platform,
|
||||
arch,
|
||||
checkSum,
|
||||
githubToken,
|
||||
);
|
||||
version = latestResult.version;
|
||||
cachedToolDir = latestResult.cachedToolDir;
|
||||
} else {
|
||||
const toolCacheResult = tryGetFromToolCache(arch, versionInput);
|
||||
version = toolCacheResult.version;
|
||||
installedPath = toolCacheResult.installedPath;
|
||||
if (installedPath) {
|
||||
core.info(`Found uv in tool-cache for ${versionInput}`);
|
||||
return { uvDir: installedPath, version };
|
||||
}
|
||||
const versionResult = await downloadVersion(
|
||||
platform,
|
||||
arch,
|
||||
versionInput,
|
||||
checkSum,
|
||||
githubToken,
|
||||
);
|
||||
cachedToolDir = versionResult.cachedToolDir;
|
||||
version = versionResult.version;
|
||||
const resolvedVersion = await determineVersion();
|
||||
const toolCacheResult = tryGetFromToolCache(arch, resolvedVersion);
|
||||
if (toolCacheResult.installedPath) {
|
||||
core.info(`Found uv in tool-cache for ${toolCacheResult.version}`);
|
||||
return {
|
||||
uvDir: toolCacheResult.installedPath,
|
||||
version: toolCacheResult.version,
|
||||
};
|
||||
}
|
||||
|
||||
return { uvDir: cachedToolDir, version };
|
||||
const downloadVersionResult = await downloadVersion(
|
||||
platform,
|
||||
arch,
|
||||
resolvedVersion,
|
||||
checkSum,
|
||||
githubToken,
|
||||
);
|
||||
|
||||
return {
|
||||
uvDir: downloadVersionResult.cachedToolDir,
|
||||
version: downloadVersionResult.version,
|
||||
};
|
||||
}
|
||||
|
||||
async function determineVersion(): Promise<string> {
|
||||
if (versionInput !== "") {
|
||||
return await resolveVersion(versionInput, githubToken);
|
||||
}
|
||||
const configFile = uvFile !== "" ? uvFile : pyProjectFile;
|
||||
if (configFile !== "") {
|
||||
const versionFromConfigFile = getUvVersionFromConfigFile(configFile);
|
||||
if (versionFromConfigFile === undefined) {
|
||||
core.warning(
|
||||
`Could not find required-version under [tool.uv] in ${configFile}. Falling back to latest`,
|
||||
);
|
||||
}
|
||||
return await resolveVersion(versionFromConfigFile || "latest", githubToken);
|
||||
}
|
||||
if (!fs.existsSync("uv.toml") && !fs.existsSync("pyproject.toml")) {
|
||||
return await resolveVersion("latest", githubToken);
|
||||
}
|
||||
const versionFile = fs.existsSync("uv.toml") ? "uv.toml" : "pyproject.toml";
|
||||
const versionFromConfigFile = getUvVersionFromConfigFile(versionFile);
|
||||
return await resolveVersion(versionFromConfigFile || "latest", githubToken);
|
||||
}
|
||||
|
||||
function addUvToPath(cachedPath: string): void {
|
||||
@@ -133,6 +147,27 @@ function setToolDir(): void {
|
||||
}
|
||||
}
|
||||
|
||||
async function setupPython(): Promise<void> {
|
||||
if (pythonVersion !== "") {
|
||||
core.exportVariable("UV_PYTHON", pythonVersion);
|
||||
core.info(`Set UV_PYTHON to ${pythonVersion}`);
|
||||
const options: exec.ExecOptions = {
|
||||
silent: !core.isDebug(),
|
||||
};
|
||||
const execArgs = ["venv", "--python", pythonVersion];
|
||||
|
||||
core.info("Activating python venv...");
|
||||
await exec.exec("uv", execArgs, options);
|
||||
|
||||
let venvBinPath = ".venv/bin";
|
||||
if (process.platform === "win32") {
|
||||
venvBinPath = ".venv/Scripts";
|
||||
}
|
||||
core.addPath(path.resolve(venvBinPath));
|
||||
core.exportVariable("VIRTUAL_ENV", path.resolve(".venv"));
|
||||
}
|
||||
}
|
||||
|
||||
function setCacheDir(cacheLocalPath: string): void {
|
||||
core.exportVariable("UV_CACHE_DIR", cacheLocalPath);
|
||||
core.info(`Set UV_CACHE_DIR to ${cacheLocalPath}`);
|
||||
|
||||
@@ -1,16 +1,22 @@
|
||||
import * as github from "@actions/github";
|
||||
import * as semver from "semver";
|
||||
import * as core from "@actions/core";
|
||||
import { Octokit } from "@octokit/core";
|
||||
import { paginateRest } from "@octokit/plugin-paginate-rest";
|
||||
import { restEndpointMethods } from "@octokit/plugin-rest-endpoint-methods";
|
||||
|
||||
import { OWNER, REPO } from "./utils/constants";
|
||||
import * as semver from "semver";
|
||||
|
||||
import { updateChecksums } from "./download/checksum/update-known-checksums";
|
||||
|
||||
const PaginatingOctokit = Octokit.plugin(paginateRest, restEndpointMethods);
|
||||
|
||||
async function run(): Promise<void> {
|
||||
const checksumFilePath = process.argv.slice(2)[0];
|
||||
const github_token = process.argv.slice(2)[1];
|
||||
|
||||
const octokit = github.getOctokit(github_token);
|
||||
const octokit = new PaginatingOctokit({
|
||||
auth: github_token,
|
||||
});
|
||||
|
||||
const response = await octokit.paginate(octokit.rest.repos.listReleases, {
|
||||
owner: OWNER,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
export const REPO = "uv";
|
||||
export const OWNER = "astral-sh";
|
||||
export const TOOL_CACHE_NAME = "uv";
|
||||
export const STATE_CACHED_UV_DIR = "cached-uv-dir";
|
||||
|
||||
@@ -2,16 +2,29 @@ import * as core from "@actions/core";
|
||||
import path from "node:path";
|
||||
|
||||
export const version = core.getInput("version");
|
||||
export const pyProjectFile = core.getInput("pyproject-file");
|
||||
export const uvFile = core.getInput("uv-file");
|
||||
export const pythonVersion = core.getInput("python-version");
|
||||
export const checkSum = core.getInput("checksum");
|
||||
export const enableCache = core.getInput("enable-cache") === "true";
|
||||
export const enableCache = getEnableCache();
|
||||
export const cacheSuffix = core.getInput("cache-suffix") || "";
|
||||
export const cacheLocalPath = getCacheLocalPath();
|
||||
export const cacheDependencyGlob = core.getInput("cache-dependency-glob");
|
||||
export const pruneCache = core.getInput("prune-cache") === "true";
|
||||
export const ignoreNothingToCache =
|
||||
core.getInput("ignore-nothing-to-cache") === "true";
|
||||
export const toolBinDir = getToolBinDir();
|
||||
export const toolDir = getToolDir();
|
||||
export const githubToken = core.getInput("github-token");
|
||||
|
||||
function getEnableCache(): boolean {
|
||||
const enableCacheInput = core.getInput("enable-cache");
|
||||
if (enableCacheInput === "auto") {
|
||||
return process.env.RUNNER_ENVIRONMENT === "github-hosted";
|
||||
}
|
||||
return enableCacheInput === "true";
|
||||
}
|
||||
|
||||
function getToolBinDir(): string | undefined {
|
||||
const toolBinDirInput = core.getInput("tool-bin-dir");
|
||||
if (toolBinDirInput !== "") {
|
||||
|
||||
45
src/utils/pyproject.ts
Normal file
45
src/utils/pyproject.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import fs from "node:fs";
|
||||
import * as core from "@actions/core";
|
||||
import * as toml from "smol-toml";
|
||||
|
||||
export function getUvVersionFromConfigFile(
|
||||
filePath: string,
|
||||
): string | undefined {
|
||||
if (!fs.existsSync(filePath)) {
|
||||
core.warning(`Could not find file: ${filePath}`);
|
||||
return undefined;
|
||||
}
|
||||
let requiredVersion: string | undefined;
|
||||
try {
|
||||
requiredVersion = getRequiredVersion(filePath);
|
||||
} catch (err) {
|
||||
const message = (err as Error).message;
|
||||
core.warning(`Error while parsing ${filePath}: ${message}`);
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (requiredVersion?.startsWith("==")) {
|
||||
requiredVersion = requiredVersion.slice(2);
|
||||
}
|
||||
if (requiredVersion !== undefined) {
|
||||
core.info(
|
||||
`Found required-version for uv in ${filePath}: ${requiredVersion}`,
|
||||
);
|
||||
}
|
||||
return requiredVersion;
|
||||
}
|
||||
|
||||
function getRequiredVersion(filePath: string): string | undefined {
|
||||
const fileContent = fs.readFileSync(filePath, "utf-8");
|
||||
|
||||
if (filePath.endsWith("pyproject.toml")) {
|
||||
const tomlContent = toml.parse(fileContent) as {
|
||||
tool?: { uv?: { "required-version"?: string } };
|
||||
};
|
||||
return tomlContent?.tool?.uv?.["required-version"];
|
||||
}
|
||||
const tomlContent = toml.parse(fileContent) as {
|
||||
"required-version"?: string;
|
||||
};
|
||||
return tomlContent["required-version"];
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es6" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */,
|
||||
"target": "ES2022" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */,
|
||||
"module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */,
|
||||
"outDir": "./lib" /* Redirect output structure to the directory. */,
|
||||
"rootDir": "./src" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */,
|
||||
|
||||
Reference in New Issue
Block a user