Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8cba46e29c | ||
|
|
925972f627 | ||
|
|
a98754bb6a | ||
|
|
9c13e73478 | ||
|
|
caee9d94ce | ||
|
|
16d791cc10 | ||
|
|
8e056dec7d | ||
|
|
7d5bbf4e8d | ||
|
|
078e2bcd1e | ||
|
|
8c4da285a3 | ||
|
|
2f2f6cf099 | ||
|
|
8262acc559 | ||
|
|
b3bb1f8753 | ||
|
|
c6a5847dac | ||
|
|
daf9d2d497 | ||
|
|
3c4bc6fa0c | ||
|
|
cd7fbbcebb | ||
|
|
60a1a28396 |
4
.github/workflows/codacy-analysis.yml
vendored
4
.github/workflows/codacy-analysis.yml
vendored
@@ -29,7 +29,7 @@ jobs:
|
||||
steps:
|
||||
# Checkout the repository to the GitHub Actions runner
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
|
||||
- name: Run Codacy Analysis CLI
|
||||
@@ -51,6 +51,6 @@ jobs:
|
||||
# Upload the SARIF file generated in the previous step
|
||||
- name: Upload SARIF results file
|
||||
continue-on-error: true
|
||||
uses: github/codeql-action/upload-sarif@cf1bb45a277cb3c205638b2cd5c984db1c46a412 # v3.29.5
|
||||
uses: github/codeql-action/upload-sarif@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v3.29.5
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
8
.github/workflows/codeql.yml
vendored
8
.github/workflows/codeql.yml
vendored
@@ -43,11 +43,11 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@cf1bb45a277cb3c205638b2cd5c984db1c46a412 # v3.29.5
|
||||
uses: github/codeql-action/init@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v3.29.5
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
@@ -61,7 +61,7 @@ jobs:
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@cf1bb45a277cb3c205638b2cd5c984db1c46a412 # v3.29.5
|
||||
uses: github/codeql-action/autobuild@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v3.29.5
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||
@@ -74,6 +74,6 @@ jobs:
|
||||
# ./location_of_script_within_repo/buildscript.sh
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@cf1bb45a277cb3c205638b2cd5c984db1c46a412 # v3.29.5
|
||||
uses: github/codeql-action/analyze@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v3.29.5
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
NUMBER: ${{ github.event.issue.number }}
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
@@ -104,7 +104,7 @@ jobs:
|
||||
NUMBER: ${{ github.event.issue.number }}
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
|
||||
16
.github/workflows/matrix-example.yml
vendored
16
.github/workflows/matrix-example.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
||||
matrix: ${{ steps.changed-files.outputs.all_changed_files }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Get changed files
|
||||
@@ -39,7 +39,19 @@ jobs:
|
||||
fail-fast: false
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- name: Test
|
||||
run: |
|
||||
echo ${{ matrix.files }}
|
||||
|
||||
conditional-job:
|
||||
name: Run Conditional Job
|
||||
runs-on: ubuntu-latest
|
||||
needs: [changed-files]
|
||||
if: contains(needs.changed-files.outputs.matrix, 'README.md') # Conditional check for README
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- name: Execute Conditional Logic
|
||||
run: |
|
||||
echo "README.md has been changed. Running conditional job."
|
||||
|
||||
4
.github/workflows/multi-job-example.yml
vendored
4
.github/workflows/multi-job-example.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
all_changed_files: ${{ steps.changed-files.outputs.all_changed_files }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Get changed files
|
||||
@@ -45,7 +45,7 @@ jobs:
|
||||
all_changed_files: ${{ steps.changed-files.outputs.all_changed_files }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Get changed files
|
||||
|
||||
2
.github/workflows/sync-release-version.yml
vendored
2
.github/workflows/sync-release-version.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
||||
update-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Run release-tagger
|
||||
|
||||
189
.github/workflows/test.yml
vendored
189
.github/workflows/test.yml
vendored
@@ -38,14 +38,14 @@ jobs:
|
||||
contents: write
|
||||
pull-requests: read
|
||||
steps:
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
|
||||
- name: Use Node.js 24.x
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
|
||||
with:
|
||||
cache: 'yarn'
|
||||
node-version: '24.x'
|
||||
@@ -73,7 +73,7 @@ jobs:
|
||||
GITHUB_EVENT_PULL_REQUEST_HEAD_REPO_FORK: ${{ github.event.pull_request.head.repo.fork }}
|
||||
|
||||
- name: Upload build assets
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
|
||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
path: dist
|
||||
@@ -109,7 +109,7 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout into dir1
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
submodules: true
|
||||
@@ -117,7 +117,7 @@ jobs:
|
||||
path: dir1
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
path: dir1/dist
|
||||
@@ -143,13 +143,13 @@ jobs:
|
||||
bash
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
path: dir2/dist
|
||||
|
||||
- name: Checkout into dir2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
submodules: true
|
||||
@@ -185,13 +185,13 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
|
||||
@@ -245,13 +245,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
|
||||
@@ -275,6 +275,113 @@ jobs:
|
||||
shell:
|
||||
bash
|
||||
|
||||
test-skip-same-base-and-commit-sha:
|
||||
name: Test changed-files skip same base and commit sha
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
if: needs.build.outputs.files_changed != 'true'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
|
||||
- name: Get head SHA
|
||||
id: head-sha
|
||||
run: |
|
||||
echo "sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
|
||||
shell:
|
||||
bash
|
||||
|
||||
- name: Run changed-files with same base and commit sha
|
||||
id: changed-files
|
||||
uses: ./
|
||||
with:
|
||||
base_sha: ${{ steps.head-sha.outputs.sha }}
|
||||
sha: ${{ steps.head-sha.outputs.sha }}
|
||||
skip_same_sha: true
|
||||
|
||||
- name: Verify empty outputs
|
||||
if: steps.changed-files.outputs.all_changed_files_count != '0' || steps.changed-files.outputs.any_changed != 'false'
|
||||
run: |
|
||||
echo "Expected empty outputs; got count=${{ steps.changed-files.outputs.all_changed_files_count }} any_changed=${{ steps.changed-files.outputs.any_changed }}"
|
||||
exit 1
|
||||
shell:
|
||||
bash
|
||||
|
||||
- name: Show output
|
||||
run: |
|
||||
echo '${{ toJSON(steps.changed-files.outputs) }}'
|
||||
shell:
|
||||
bash
|
||||
|
||||
test-exclude-symlinks:
|
||||
name: Test changed-files exclude symlinks
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
if: needs.build.outputs.files_changed != 'true'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
|
||||
- name: Run changed-files without symlink exclusion
|
||||
id: changed-files-symlink-included
|
||||
uses: ./
|
||||
with:
|
||||
base_sha: 2f2f6cf099167fa7d7c6aba8fc0421327e181a5a
|
||||
sha: 8c4da285a3cb8b621b4a5cc251d6282b4b0a67a5
|
||||
|
||||
- name: Verify symlink is present
|
||||
if: "!contains(steps.changed-files-symlink-included.outputs.added_files, 'test/symlink-to-target')"
|
||||
run: |
|
||||
echo "Expected symlink to be present in added_files; got ${{ steps.changed-files-symlink-included.outputs.added_files }}"
|
||||
exit 1
|
||||
shell:
|
||||
bash
|
||||
|
||||
- name: Run changed-files excluding symlinks
|
||||
id: changed-files-symlink-excluded
|
||||
uses: ./
|
||||
with:
|
||||
base_sha: 2f2f6cf099167fa7d7c6aba8fc0421327e181a5a
|
||||
sha: 8c4da285a3cb8b621b4a5cc251d6282b4b0a67a5
|
||||
exclude_symlinks: true
|
||||
|
||||
- name: Verify symlink is excluded
|
||||
if: "contains(steps.changed-files-symlink-excluded.outputs.added_files, 'test/symlink-to-target') || contains(steps.changed-files-symlink-excluded.outputs.all_changed_files, 'test/symlink-to-target')"
|
||||
run: |
|
||||
echo "Expected symlink to be excluded; got added=${{ steps.changed-files-symlink-excluded.outputs.added_files }} all=${{ steps.changed-files-symlink-excluded.outputs.all_changed_files }}"
|
||||
exit 1
|
||||
shell:
|
||||
bash
|
||||
|
||||
- name: Show output
|
||||
run: |
|
||||
echo '${{ toJSON(steps.changed-files-symlink-included.outputs) }}'
|
||||
echo '${{ toJSON(steps.changed-files-symlink-excluded.outputs) }}'
|
||||
shell:
|
||||
bash
|
||||
|
||||
test-using-branch-names-for-base-sha-and-sha-inputs:
|
||||
name: Test using branch names for base_sha and sha inputs
|
||||
runs-on: ubuntu-latest
|
||||
@@ -289,13 +396,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
|
||||
@@ -328,13 +435,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
fetch-depth: ${{ matrix.fetch-depth }}
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
|
||||
@@ -362,12 +469,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
|
||||
@@ -396,14 +503,14 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: ${{ matrix.fetch-depth }}
|
||||
persist-credentials: false
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
|
||||
@@ -426,10 +533,10 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
|
||||
@@ -481,10 +588,10 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
|
||||
@@ -536,7 +643,7 @@ jobs:
|
||||
pull-requests: read
|
||||
steps:
|
||||
- name: Checkout into dir1
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
submodules: true
|
||||
@@ -544,7 +651,7 @@ jobs:
|
||||
path: dir1
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
path: dir1/dist
|
||||
@@ -568,14 +675,14 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
path: dist
|
||||
@@ -605,7 +712,7 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout into dir1
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
submodules: true
|
||||
@@ -613,7 +720,7 @@ jobs:
|
||||
path: dir1
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
path: dir1/dist
|
||||
@@ -644,14 +751,14 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
submodules: recursive
|
||||
fetch-depth: ${{ matrix.fetch-depth }}
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
|
||||
@@ -710,14 +817,14 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
submodules: recursive
|
||||
fetch-depth: ${{ matrix.fetch-depth }}
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
|
||||
@@ -805,14 +912,14 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
submodules: recursive
|
||||
fetch-depth: ${{ matrix.fetch-depth }}
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
|
||||
@@ -991,7 +1098,7 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
ref: a52f8621d26d5d9f54b80f74bda2d9eedff94693
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
@@ -1029,7 +1136,7 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
@@ -1108,7 +1215,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
@@ -1116,7 +1223,7 @@ jobs:
|
||||
fetch-depth: ${{ matrix.fetch-depth }}
|
||||
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
|
||||
@@ -1161,13 +1268,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
submodules: true
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
fetch-depth: ${{ matrix.fetch-depth }}
|
||||
- name: Download build assets
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
name: build-assets
|
||||
- name: Dump GitHub context
|
||||
|
||||
2
.github/workflows/update-readme.yml
vendored
2
.github/workflows/update-readme.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
||||
sync-assets:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
|
||||
4
.github/workflows/workflow-run-example.yml
vendored
4
.github/workflows/workflow-run-example.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
||||
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
@@ -29,7 +29,7 @@ jobs:
|
||||
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
|
||||
26
README.md
26
README.md
@@ -45,6 +45,7 @@ Effortlessly track all changed files and directories relative to a target branch
|
||||
* [Credits 👏](#credits-)
|
||||
* [Report Bugs 🐛](#report-bugs-)
|
||||
* [Contributors ✨](#contributors-)
|
||||
* [💼 Automate Your Job Search Too](#-automate-your-job-search-too)
|
||||
|
||||
## Features 🚀
|
||||
|
||||
@@ -411,6 +412,11 @@ Support this project with a :star:
|
||||
# Default: "false"
|
||||
exclude_submodules: ''
|
||||
|
||||
# Exclude symlinks from changed files.
|
||||
# Type: boolean
|
||||
# Default: "false"
|
||||
exclude_symlinks: ''
|
||||
|
||||
# Fail when the initial diff
|
||||
# fails.
|
||||
# Type: boolean
|
||||
@@ -675,6 +681,12 @@ Support this project with a :star:
|
||||
# Default: "false"
|
||||
skip_initial_fetch: ''
|
||||
|
||||
# Do not fail when base
|
||||
# and head SHAs are identical.
|
||||
# Type: boolean
|
||||
# Default: "false"
|
||||
skip_same_sha: ''
|
||||
|
||||
# Tags pattern to ignore.
|
||||
# Type: string
|
||||
tags_ignore_pattern: ''
|
||||
@@ -1459,3 +1471,17 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
||||
|
||||
***
|
||||
|
||||
## 💼 Automate Your Job Search Too
|
||||
|
||||
You automate your CI/CD. Automate your job applications too.
|
||||
|
||||
**[ApplySmart AI](https://applysmart.ai)** helps you:
|
||||
|
||||
* Generate tailored resumes & cover letters in seconds
|
||||
* Extract job details from any posting automatically
|
||||
* Track applications like you track deployments
|
||||
|
||||
**Free tier available** → [applysmart.ai](https://applysmart.ai)
|
||||
|
||||
@@ -227,6 +227,14 @@ inputs:
|
||||
description: "Exclude changes to submodules."
|
||||
required: false
|
||||
default: "false"
|
||||
exclude_symlinks:
|
||||
description: "Exclude symlinks from changed files."
|
||||
required: false
|
||||
default: "false"
|
||||
skip_same_sha:
|
||||
description: "Do not fail when base and head SHAs are identical."
|
||||
required: false
|
||||
default: "false"
|
||||
fetch_missing_history_max_retries:
|
||||
description: "Maximum number of retries to fetch missing history."
|
||||
required: false
|
||||
|
||||
1845
dist/index.js
generated
vendored
1845
dist/index.js
generated
vendored
File diff suppressed because it is too large
Load Diff
2
dist/index.js.map
generated
vendored
2
dist/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
@@ -12,6 +12,7 @@ exports[`getInputs should correctly parse boolean inputs 1`] = `
|
||||
"dirNamesIncludeFilesSeparator": "",
|
||||
"escapeJson": false,
|
||||
"excludeSubmodules": "false",
|
||||
"excludeSymlinks": "false",
|
||||
"failOnInitialDiffError": "false",
|
||||
"failOnSubmoduleDiffError": "false",
|
||||
"fetchAdditionalSubmoduleHistory": "false",
|
||||
@@ -53,6 +54,7 @@ exports[`getInputs should correctly parse boolean inputs 1`] = `
|
||||
"since": "",
|
||||
"sinceLastRemoteCommit": "false",
|
||||
"skipInitialFetch": "true",
|
||||
"skipSameSha": "false",
|
||||
"tagsIgnorePattern": "",
|
||||
"tagsPattern": "*",
|
||||
"token": "",
|
||||
@@ -76,6 +78,7 @@ exports[`getInputs should correctly parse numeric inputs 1`] = `
|
||||
"dirNamesMaxDepth": 2,
|
||||
"escapeJson": false,
|
||||
"excludeSubmodules": false,
|
||||
"excludeSymlinks": false,
|
||||
"failOnInitialDiffError": false,
|
||||
"failOnSubmoduleDiffError": false,
|
||||
"fetchAdditionalSubmoduleHistory": false,
|
||||
@@ -115,6 +118,7 @@ exports[`getInputs should correctly parse numeric inputs 1`] = `
|
||||
"since": "",
|
||||
"sinceLastRemoteCommit": false,
|
||||
"skipInitialFetch": false,
|
||||
"skipSameSha": false,
|
||||
"tagsIgnorePattern": "",
|
||||
"tagsPattern": "",
|
||||
"token": "",
|
||||
@@ -137,6 +141,7 @@ exports[`getInputs should correctly parse string inputs 1`] = `
|
||||
"dirNamesIncludeFilesSeparator": "",
|
||||
"escapeJson": false,
|
||||
"excludeSubmodules": false,
|
||||
"excludeSymlinks": false,
|
||||
"failOnInitialDiffError": false,
|
||||
"failOnSubmoduleDiffError": false,
|
||||
"fetchAdditionalSubmoduleHistory": false,
|
||||
@@ -175,6 +180,7 @@ exports[`getInputs should correctly parse string inputs 1`] = `
|
||||
"since": "",
|
||||
"sinceLastRemoteCommit": false,
|
||||
"skipInitialFetch": false,
|
||||
"skipSameSha": false,
|
||||
"tagsIgnorePattern": "",
|
||||
"tagsPattern": "",
|
||||
"token": "token",
|
||||
@@ -198,6 +204,7 @@ exports[`getInputs should handle invalid numeric inputs correctly 1`] = `
|
||||
"dirNamesMaxDepth": 2,
|
||||
"escapeJson": false,
|
||||
"excludeSubmodules": false,
|
||||
"excludeSymlinks": false,
|
||||
"failOnInitialDiffError": false,
|
||||
"failOnSubmoduleDiffError": false,
|
||||
"fetchAdditionalSubmoduleHistory": false,
|
||||
@@ -237,6 +244,7 @@ exports[`getInputs should handle invalid numeric inputs correctly 1`] = `
|
||||
"since": "",
|
||||
"sinceLastRemoteCommit": false,
|
||||
"skipInitialFetch": false,
|
||||
"skipSameSha": false,
|
||||
"tagsIgnorePattern": "",
|
||||
"tagsPattern": "",
|
||||
"token": "",
|
||||
@@ -260,6 +268,7 @@ exports[`getInputs should handle negative numeric inputs correctly 1`] = `
|
||||
"dirNamesMaxDepth": -2,
|
||||
"escapeJson": false,
|
||||
"excludeSubmodules": false,
|
||||
"excludeSymlinks": false,
|
||||
"failOnInitialDiffError": false,
|
||||
"failOnSubmoduleDiffError": false,
|
||||
"fetchAdditionalSubmoduleHistory": false,
|
||||
@@ -299,6 +308,7 @@ exports[`getInputs should handle negative numeric inputs correctly 1`] = `
|
||||
"since": "",
|
||||
"sinceLastRemoteCommit": false,
|
||||
"skipInitialFetch": false,
|
||||
"skipSameSha": false,
|
||||
"tagsIgnorePattern": "",
|
||||
"tagsPattern": "",
|
||||
"token": "",
|
||||
@@ -321,6 +331,7 @@ exports[`getInputs should return default values when no inputs are provided 1`]
|
||||
"dirNamesIncludeFilesSeparator": "",
|
||||
"escapeJson": false,
|
||||
"excludeSubmodules": false,
|
||||
"excludeSymlinks": false,
|
||||
"failOnInitialDiffError": false,
|
||||
"failOnSubmoduleDiffError": false,
|
||||
"fetchAdditionalSubmoduleHistory": false,
|
||||
@@ -362,6 +373,7 @@ exports[`getInputs should return default values when no inputs are provided 1`]
|
||||
"since": "",
|
||||
"sinceLastRemoteCommit": false,
|
||||
"skipInitialFetch": false,
|
||||
"skipSameSha": false,
|
||||
"tagsIgnorePattern": "",
|
||||
"tagsPattern": "*",
|
||||
"token": "",
|
||||
|
||||
@@ -639,6 +639,8 @@ describe('utils test', () => {
|
||||
negationPatternsFirst: false,
|
||||
useRestApi: false,
|
||||
excludeSubmodules: false,
|
||||
excludeSymlinks: false,
|
||||
skipSameSha: false,
|
||||
fetchMissingHistoryMaxRetries: 20,
|
||||
usePosixPathSeparator: false,
|
||||
tagsPattern: '*',
|
||||
|
||||
@@ -16,6 +16,8 @@ import {
|
||||
getFilteredChangedFiles,
|
||||
gitRenamedFiles,
|
||||
gitSubmoduleDiffSHA,
|
||||
isSymlinkInGitTree,
|
||||
isSymlinkOnDisk,
|
||||
isWindows,
|
||||
jsonOutput,
|
||||
setArrayOutput
|
||||
@@ -220,7 +222,8 @@ export const getAllDiffFiles = async ({
|
||||
outputRenamedFilesAsDeletedAndAdded,
|
||||
fetchAdditionalSubmoduleHistory,
|
||||
failOnInitialDiffError,
|
||||
failOnSubmoduleDiffError
|
||||
failOnSubmoduleDiffError,
|
||||
submoduleShas
|
||||
}: {
|
||||
workingDirectory: string
|
||||
diffSubmodule: boolean
|
||||
@@ -230,6 +233,7 @@ export const getAllDiffFiles = async ({
|
||||
fetchAdditionalSubmoduleHistory: boolean
|
||||
failOnInitialDiffError: boolean
|
||||
failOnSubmoduleDiffError: boolean
|
||||
submoduleShas?: Record<string, {previousSha?: string; currentSha?: string}>
|
||||
}): Promise<ChangedFiles> => {
|
||||
const files = await getAllChangedFiles({
|
||||
cwd: workingDirectory,
|
||||
@@ -256,6 +260,9 @@ export const getAllDiffFiles = async ({
|
||||
)
|
||||
|
||||
if (submoduleShaResult.currentSha && submoduleShaResult.previousSha) {
|
||||
if (submoduleShas) {
|
||||
submoduleShas[submodulePath] = submoduleShaResult
|
||||
}
|
||||
let diff = '...'
|
||||
|
||||
if (
|
||||
@@ -300,6 +307,139 @@ export const getAllDiffFiles = async ({
|
||||
return files
|
||||
}
|
||||
|
||||
export const filterSymlinksFromChangedFiles = async ({
|
||||
changedFiles,
|
||||
workingDirectory,
|
||||
diffResult,
|
||||
submodulePaths,
|
||||
submoduleShas
|
||||
}: {
|
||||
changedFiles: ChangedFiles
|
||||
workingDirectory: string
|
||||
diffResult: DiffResult
|
||||
submodulePaths: string[]
|
||||
submoduleShas?: Record<string, {previousSha?: string; currentSha?: string}>
|
||||
}): Promise<ChangedFiles> => {
|
||||
const filtered: ChangedFiles = {
|
||||
[ChangeTypeEnum.Added]: [],
|
||||
[ChangeTypeEnum.Copied]: [],
|
||||
[ChangeTypeEnum.Deleted]: [],
|
||||
[ChangeTypeEnum.Modified]: [],
|
||||
[ChangeTypeEnum.Renamed]: [],
|
||||
[ChangeTypeEnum.TypeChanged]: [],
|
||||
[ChangeTypeEnum.Unmerged]: [],
|
||||
[ChangeTypeEnum.Unknown]: []
|
||||
}
|
||||
|
||||
const cache = new Map<string, boolean>()
|
||||
const diskCache = new Map<string, boolean>()
|
||||
|
||||
const getSubmoduleContext = (
|
||||
filePath: string
|
||||
): {
|
||||
cwd: string
|
||||
relativePath: string
|
||||
currentSha: string
|
||||
previousSha: string
|
||||
isSubmoduleRoot: boolean
|
||||
} => {
|
||||
const submodulePath = submodulePaths.find(p =>
|
||||
filePath.startsWith(`${p}${path.sep}`)
|
||||
)
|
||||
if (!submodulePath) {
|
||||
return {
|
||||
cwd: workingDirectory,
|
||||
relativePath: filePath,
|
||||
currentSha: diffResult.currentSha,
|
||||
previousSha: diffResult.previousSha,
|
||||
isSubmoduleRoot: false
|
||||
}
|
||||
}
|
||||
|
||||
if (filePath === submodulePath) {
|
||||
return {
|
||||
cwd: workingDirectory,
|
||||
relativePath: filePath,
|
||||
currentSha: diffResult.currentSha,
|
||||
previousSha: diffResult.previousSha,
|
||||
isSubmoduleRoot: true
|
||||
}
|
||||
}
|
||||
|
||||
const submoduleWorkingDirectory = path.join(workingDirectory, submodulePath)
|
||||
const relativePath = filePath.substring(submodulePath.length + 1)
|
||||
const submoduleSha = submoduleShas?.[submodulePath]
|
||||
|
||||
return {
|
||||
cwd: submoduleWorkingDirectory,
|
||||
relativePath,
|
||||
currentSha: submoduleSha?.currentSha || diffResult.currentSha,
|
||||
previousSha: submoduleSha?.previousSha || diffResult.previousSha,
|
||||
isSubmoduleRoot: false
|
||||
}
|
||||
}
|
||||
|
||||
const isSymlinkCached = async ({
|
||||
cwd,
|
||||
filePath,
|
||||
sha,
|
||||
preferDisk
|
||||
}: {
|
||||
cwd: string
|
||||
filePath: string
|
||||
sha: string
|
||||
preferDisk: boolean
|
||||
}): Promise<boolean> => {
|
||||
if (preferDisk) {
|
||||
const diskKey = `${cwd}|disk|${filePath}`
|
||||
const cachedDisk = diskCache.get(diskKey)
|
||||
if (cachedDisk !== undefined) {
|
||||
return cachedDisk
|
||||
}
|
||||
const diskResult = await isSymlinkOnDisk({cwd, filePath})
|
||||
diskCache.set(diskKey, diskResult)
|
||||
if (diskResult) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
const treeKey = `${cwd}|${sha}|${filePath}`
|
||||
const cachedTree = cache.get(treeKey)
|
||||
if (cachedTree !== undefined) {
|
||||
return cachedTree
|
||||
}
|
||||
const treeResult = await isSymlinkInGitTree({cwd, sha, filePath})
|
||||
cache.set(treeKey, treeResult)
|
||||
return treeResult
|
||||
}
|
||||
|
||||
for (const changeType of Object.keys(changedFiles) as ChangeTypeEnum[]) {
|
||||
const files = changedFiles[changeType] || []
|
||||
for (const filePath of files) {
|
||||
const context = getSubmoduleContext(filePath)
|
||||
if (context.isSubmoduleRoot) {
|
||||
filtered[changeType].push(filePath)
|
||||
continue
|
||||
}
|
||||
|
||||
const isDeleted = changeType === ChangeTypeEnum.Deleted
|
||||
const sha = isDeleted ? context.previousSha : context.currentSha
|
||||
const isSymlink = await isSymlinkCached({
|
||||
cwd: context.cwd,
|
||||
filePath: context.relativePath,
|
||||
sha,
|
||||
preferDisk: !isDeleted
|
||||
})
|
||||
|
||||
if (!isSymlink) {
|
||||
filtered[changeType].push(filePath)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return filtered
|
||||
}
|
||||
|
||||
function* getFilePaths({
|
||||
inputs,
|
||||
filePaths,
|
||||
|
||||
@@ -84,6 +84,7 @@ export interface DiffResult {
|
||||
targetBranch: string
|
||||
diff: string
|
||||
initialCommit?: boolean
|
||||
sameSha?: boolean
|
||||
}
|
||||
|
||||
interface SHAForNonPullRequestEvent {
|
||||
@@ -198,6 +199,19 @@ export const getSHAForNonPullRequestEvent = async ({
|
||||
|
||||
if (inputs.baseSha && inputs.sha && currentBranch && targetBranch) {
|
||||
if (previousSha === currentSha) {
|
||||
if (inputs.skipSameSha) {
|
||||
core.info(
|
||||
`Skipping diff because previous sha ${previousSha} is equivalent to the current sha ${currentSha}.`
|
||||
)
|
||||
return {
|
||||
previousSha,
|
||||
currentSha,
|
||||
currentBranch,
|
||||
targetBranch,
|
||||
diff,
|
||||
sameSha: true
|
||||
}
|
||||
}
|
||||
core.error(
|
||||
`Similar commit hashes detected: previous sha: ${previousSha} is equivalent to the current sha: ${currentSha}.`
|
||||
)
|
||||
@@ -305,6 +319,19 @@ export const getSHAForNonPullRequestEvent = async ({
|
||||
core.debug(`Current branch: ${currentBranch}`)
|
||||
|
||||
if (!initialCommit && previousSha === currentSha) {
|
||||
if (inputs.skipSameSha) {
|
||||
core.info(
|
||||
`Skipping diff because previous sha ${previousSha} is equivalent to the current sha ${currentSha}.`
|
||||
)
|
||||
return {
|
||||
previousSha,
|
||||
currentSha,
|
||||
currentBranch,
|
||||
targetBranch,
|
||||
diff,
|
||||
sameSha: true
|
||||
}
|
||||
}
|
||||
core.error(
|
||||
`Similar commit hashes detected: previous sha: ${previousSha} is equivalent to the current sha: ${currentSha}.`
|
||||
)
|
||||
@@ -430,6 +457,19 @@ export const getSHAForPullRequestEvent = async ({
|
||||
|
||||
if (inputs.baseSha && inputs.sha && currentBranch && targetBranch) {
|
||||
if (previousSha === currentSha) {
|
||||
if (inputs.skipSameSha) {
|
||||
core.info(
|
||||
`Skipping diff because previous sha ${previousSha} is equivalent to the current sha ${currentSha}.`
|
||||
)
|
||||
return {
|
||||
previousSha,
|
||||
currentSha,
|
||||
currentBranch,
|
||||
targetBranch,
|
||||
diff,
|
||||
sameSha: true
|
||||
}
|
||||
}
|
||||
core.error(
|
||||
`Similar commit hashes detected: previous sha: ${previousSha} is equivalent to the current sha: ${currentSha}.`
|
||||
)
|
||||
@@ -608,6 +648,19 @@ export const getSHAForPullRequestEvent = async ({
|
||||
}
|
||||
|
||||
if (previousSha === currentSha) {
|
||||
if (inputs.skipSameSha) {
|
||||
core.info(
|
||||
`Skipping diff because previous sha ${previousSha} is equivalent to the current sha ${currentSha}.`
|
||||
)
|
||||
return {
|
||||
previousSha,
|
||||
currentSha,
|
||||
currentBranch,
|
||||
targetBranch,
|
||||
diff,
|
||||
sameSha: true
|
||||
}
|
||||
}
|
||||
core.error(
|
||||
`Similar commit hashes detected: previous sha: ${previousSha} is equivalent to the current sha: ${currentSha}.`
|
||||
)
|
||||
|
||||
@@ -22,6 +22,8 @@ export const DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS: Partial<Inputs> = {
|
||||
fetchAdditionalSubmoduleHistory: false,
|
||||
dirNamesDeletedFilesIncludeOnlyDeletedDirs: false,
|
||||
excludeSubmodules: false,
|
||||
excludeSymlinks: false,
|
||||
skipSameSha: false,
|
||||
fetchMissingHistoryMaxRetries: 20,
|
||||
usePosixPathSeparator: false,
|
||||
tagsPattern: '*',
|
||||
|
||||
@@ -55,6 +55,8 @@ export type Inputs = {
|
||||
negationPatternsFirst: boolean
|
||||
useRestApi: boolean
|
||||
excludeSubmodules: boolean
|
||||
excludeSymlinks: boolean
|
||||
skipSameSha: boolean
|
||||
fetchMissingHistoryMaxRetries?: number
|
||||
usePosixPathSeparator: boolean
|
||||
tagsPattern: string
|
||||
@@ -249,6 +251,14 @@ export const getInputs = (): Inputs => {
|
||||
required: false
|
||||
})
|
||||
|
||||
const excludeSymlinks = core.getBooleanInput('exclude_symlinks', {
|
||||
required: false
|
||||
})
|
||||
|
||||
const skipSameSha = core.getBooleanInput('skip_same_sha', {
|
||||
required: false
|
||||
})
|
||||
|
||||
const fetchMissingHistoryMaxRetries = core.getInput(
|
||||
'fetch_missing_history_max_retries',
|
||||
{required: false}
|
||||
@@ -310,6 +320,8 @@ export const getInputs = (): Inputs => {
|
||||
fetchAdditionalSubmoduleHistory,
|
||||
dirNamesDeletedFilesIncludeOnlyDeletedDirs,
|
||||
excludeSubmodules,
|
||||
excludeSymlinks,
|
||||
skipSameSha,
|
||||
usePosixPathSeparator,
|
||||
tagsPattern,
|
||||
tagsIgnorePattern,
|
||||
|
||||
66
src/main.ts
66
src/main.ts
@@ -5,8 +5,10 @@ import {
|
||||
processChangedFiles,
|
||||
ChangeTypeEnum,
|
||||
getAllDiffFiles,
|
||||
filterSymlinksFromChangedFiles,
|
||||
getChangedFilesFromGithubAPI,
|
||||
getRenamedFiles
|
||||
getRenamedFiles,
|
||||
ChangedFiles
|
||||
} from './changedFiles'
|
||||
import {
|
||||
DiffResult,
|
||||
@@ -127,11 +129,57 @@ const getChangedFilesFromLocalGitHistory = async ({
|
||||
return
|
||||
}
|
||||
|
||||
if (diffResult.sameSha) {
|
||||
core.info('Base and head SHAs are identical; no changed files to report.')
|
||||
const emptyChangedFiles: ChangedFiles = {
|
||||
[ChangeTypeEnum.Added]: [],
|
||||
[ChangeTypeEnum.Copied]: [],
|
||||
[ChangeTypeEnum.Deleted]: [],
|
||||
[ChangeTypeEnum.Modified]: [],
|
||||
[ChangeTypeEnum.Renamed]: [],
|
||||
[ChangeTypeEnum.TypeChanged]: [],
|
||||
[ChangeTypeEnum.Unmerged]: [],
|
||||
[ChangeTypeEnum.Unknown]: []
|
||||
}
|
||||
await processChangedFiles({
|
||||
filePatterns,
|
||||
allDiffFiles: emptyChangedFiles,
|
||||
inputs,
|
||||
yamlFilePatterns,
|
||||
workingDirectory
|
||||
})
|
||||
|
||||
if (inputs.includeAllOldNewRenamedFiles) {
|
||||
await setOutput({
|
||||
key: 'all_old_new_renamed_files',
|
||||
value: inputs.json ? [] : '',
|
||||
writeOutputFiles: inputs.writeOutputFiles,
|
||||
outputDir: inputs.outputDir,
|
||||
json: inputs.json,
|
||||
safeOutput: inputs.safeOutput
|
||||
})
|
||||
await setOutput({
|
||||
key: 'all_old_new_renamed_files_count',
|
||||
value: '0',
|
||||
writeOutputFiles: inputs.writeOutputFiles,
|
||||
outputDir: inputs.outputDir,
|
||||
json: inputs.json
|
||||
})
|
||||
}
|
||||
core.info('All Done!')
|
||||
core.endGroup()
|
||||
return
|
||||
}
|
||||
|
||||
core.info(
|
||||
`Retrieving changes between ${diffResult.previousSha} (${diffResult.targetBranch}) → ${diffResult.currentSha} (${diffResult.currentBranch})`
|
||||
)
|
||||
|
||||
const allDiffFiles = await getAllDiffFiles({
|
||||
const submoduleShas: Record<
|
||||
string,
|
||||
{previousSha?: string; currentSha?: string}
|
||||
> = {}
|
||||
let allDiffFiles = await getAllDiffFiles({
|
||||
workingDirectory,
|
||||
diffSubmodule,
|
||||
diffResult,
|
||||
@@ -139,8 +187,20 @@ const getChangedFilesFromLocalGitHistory = async ({
|
||||
outputRenamedFilesAsDeletedAndAdded,
|
||||
fetchAdditionalSubmoduleHistory: inputs.fetchAdditionalSubmoduleHistory,
|
||||
failOnInitialDiffError: inputs.failOnInitialDiffError,
|
||||
failOnSubmoduleDiffError: inputs.failOnSubmoduleDiffError
|
||||
failOnSubmoduleDiffError: inputs.failOnSubmoduleDiffError,
|
||||
submoduleShas
|
||||
})
|
||||
|
||||
if (inputs.excludeSymlinks) {
|
||||
core.info('Excluding symlinks from the diff')
|
||||
allDiffFiles = await filterSymlinksFromChangedFiles({
|
||||
changedFiles: allDiffFiles,
|
||||
workingDirectory,
|
||||
diffResult,
|
||||
submodulePaths,
|
||||
submoduleShas
|
||||
})
|
||||
}
|
||||
core.debug(`All diff files: ${JSON.stringify(allDiffFiles)}`)
|
||||
core.info('All Done!')
|
||||
core.endGroup()
|
||||
|
||||
110
src/utils.ts
110
src/utils.ts
@@ -152,6 +152,69 @@ export const exists = async (filePath: string): Promise<boolean> => {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a file is a symlink on disk
|
||||
* @param cwd - working directory
|
||||
* @param filePath - path to check
|
||||
* @returns file is a symlink
|
||||
*/
|
||||
export const isSymlinkOnDisk = async ({
|
||||
cwd,
|
||||
filePath
|
||||
}: {
|
||||
cwd: string
|
||||
filePath: string
|
||||
}): Promise<boolean> => {
|
||||
try {
|
||||
const stat = await fs.lstat(path.join(cwd, filePath))
|
||||
return stat.isSymbolicLink()
|
||||
} catch {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a file is a symlink in a git tree
|
||||
* @param cwd - working directory
|
||||
* @param sha - commit sha
|
||||
* @param filePath - path to check
|
||||
* @returns file is a symlink
|
||||
*/
|
||||
export const isSymlinkInGitTree = async ({
|
||||
cwd,
|
||||
sha,
|
||||
filePath
|
||||
}: {
|
||||
cwd: string
|
||||
sha: string
|
||||
filePath: string
|
||||
}): Promise<boolean> => {
|
||||
if (!sha) {
|
||||
return false
|
||||
}
|
||||
const {stdout, exitCode} = await exec.getExecOutput(
|
||||
'git',
|
||||
['ls-tree', '-r', sha, '--', filePath],
|
||||
{
|
||||
cwd,
|
||||
ignoreReturnCode: true,
|
||||
silent: !core.isDebug()
|
||||
}
|
||||
)
|
||||
|
||||
if (exitCode !== 0) {
|
||||
return false
|
||||
}
|
||||
|
||||
const line = stdout.split('\n').find(Boolean)
|
||||
if (!line) {
|
||||
return false
|
||||
}
|
||||
|
||||
const [mode] = line.split(/\s+/)
|
||||
return mode === '120000'
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates lines of a file as an async iterable iterator
|
||||
* @param filePath - path of file to read
|
||||
@@ -819,14 +882,49 @@ export const cleanShaInput = async ({
|
||||
|
||||
if (exitCode !== 0) {
|
||||
const octokit = github.getOctokit(token)
|
||||
// If it's not a valid commit sha, assume it's a branch name and get the HEAD sha
|
||||
const {data: refData} = await octokit.rest.git.getRef({
|
||||
owner: github.context.repo.owner,
|
||||
repo: github.context.repo.repo,
|
||||
ref: `heads/${sha}`
|
||||
const owner = github.context.repo.owner
|
||||
const repo = github.context.repo.repo
|
||||
const isNotFoundError = (error: unknown): boolean =>
|
||||
typeof error === 'object' &&
|
||||
error !== null &&
|
||||
'status' in error &&
|
||||
(error as {status?: number}).status === 404
|
||||
// If it's not a valid commit sha, assume it's a ref name first.
|
||||
try {
|
||||
const {data: refData} = await octokit.rest.git.getRef({
|
||||
owner,
|
||||
repo,
|
||||
ref: `heads/${sha}`
|
||||
})
|
||||
|
||||
return refData.object.sha
|
||||
} catch (error) {
|
||||
if (!isNotFoundError(error)) {
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
const {data: refData} = await octokit.rest.git.getRef({
|
||||
owner,
|
||||
repo,
|
||||
ref: `tags/${sha}`
|
||||
})
|
||||
|
||||
return refData.object.sha
|
||||
} catch (error) {
|
||||
if (!isNotFoundError(error)) {
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
const {data: commitData} = await octokit.rest.git.getCommit({
|
||||
owner,
|
||||
repo,
|
||||
commit_sha: sha
|
||||
})
|
||||
|
||||
return refData.object.sha
|
||||
return commitData.sha
|
||||
}
|
||||
|
||||
return stdout.trim()
|
||||
|
||||
1
test/symlink-target.txt
Normal file
1
test/symlink-target.txt
Normal file
@@ -0,0 +1 @@
|
||||
Symlink target fixture.
|
||||
1
test/symlink-to-target
Symbolic link
1
test/symlink-to-target
Symbolic link
@@ -0,0 +1 @@
|
||||
symlink-target.txt
|
||||
406
yarn.lock
406
yarn.lock
@@ -3,19 +3,12 @@
|
||||
|
||||
|
||||
"@actions/core@^2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@actions/core/-/core-2.0.0.tgz#ab985a153dbf2c84e13c50cf1b559e3ca15f0c5e"
|
||||
integrity sha512-iGW52/zqhPUFnYl0s1ioXfJu86LGs7b+GYuO38JMPpsh14FQrNj3n2JBpC+vZ2CFS4lERQyn5koLDopY+6V/PQ==
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@actions/core/-/core-2.0.2.tgz#81c59e1f3437660d2148a064c1ba8e99931f2cf7"
|
||||
integrity sha512-Ast1V7yHbGAhplAsuVlnb/5J8Mtr/Zl6byPPL+Qjq3lmfIgWF1ak1iYfF/079cRERiuTALTXkSuEUdZeDCfGtA==
|
||||
dependencies:
|
||||
"@actions/exec" "^1.1.1"
|
||||
"@actions/http-client" "^3.0.0"
|
||||
|
||||
"@actions/exec@^1.1.1":
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@actions/exec/-/exec-1.1.1.tgz#2e43f28c54022537172819a7cf886c844221a611"
|
||||
integrity sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==
|
||||
dependencies:
|
||||
"@actions/io" "^1.0.1"
|
||||
"@actions/exec" "^2.0.0"
|
||||
"@actions/http-client" "^3.0.1"
|
||||
|
||||
"@actions/exec@^2.0.0":
|
||||
version "2.0.0"
|
||||
@@ -45,19 +38,14 @@
|
||||
tunnel "^0.0.6"
|
||||
undici "^5.25.4"
|
||||
|
||||
"@actions/http-client@^3.0.0":
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-3.0.0.tgz#6c6058bef29c0580d6683a08c5bf0362c90c2e6e"
|
||||
integrity sha512-1s3tXAfVMSz9a4ZEBkXXRQD4QhY3+GAsWSbaYpeknPOKEeyRiU3lH+bHiLMZdo2x/fIeQ/hscL1wCkDLVM2DZQ==
|
||||
"@actions/http-client@^3.0.1":
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-3.0.1.tgz#0ac91c3abf179a401e23d40abf0d7caa92324268"
|
||||
integrity sha512-SbGS8c/vySbNO3kjFgSW77n83C4MQx/Yoe+b1hAdpuvfHxnkHzDq2pWljUpAA56Si1Gae/7zjeZsV0CYjmLo/w==
|
||||
dependencies:
|
||||
tunnel "^0.0.6"
|
||||
undici "^5.28.5"
|
||||
|
||||
"@actions/io@^1.0.1":
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.3.tgz#4cdb6254da7962b07473ff5c335f3da485d94d71"
|
||||
integrity sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==
|
||||
|
||||
"@actions/io@^2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@actions/io/-/io-2.0.0.tgz#3ad1271ba3cd515324f2215e8d4c1c0c3864d65b"
|
||||
@@ -1150,228 +1138,234 @@
|
||||
dependencies:
|
||||
"@sinonjs/commons" "^3.0.1"
|
||||
|
||||
"@stdlib/assert-has-own-property@^0.2.1":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-has-own-property/-/assert-has-own-property-0.2.2.tgz#072661539bb79c353dc5e62ae9252ce428adb5f1"
|
||||
integrity sha512-m5rV4Z2/iNkwx2vRsNheM6sQZMzc8rQQOo90LieICXovXZy8wA5jNld4kRKjMNcRt/TjrNP7i2Rhh8hruRDlHg==
|
||||
"@stdlib/assert-has-own-property@^0.2.2":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-has-own-property/-/assert-has-own-property-0.2.3.tgz#26026550742a77be84677a81d953a503983808c8"
|
||||
integrity sha512-BnX1Lpvd9YaucQLokQrf7ppLwa3V+nTUQ9qoys5SloYhjwbYWtO61SJVT2JK+cfsCxUAx/HAh3dN1qTKxx1PIg==
|
||||
|
||||
"@stdlib/assert-has-symbol-support@^0.2.1":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-has-symbol-support/-/assert-has-symbol-support-0.2.2.tgz#ed7abecb6ae513c5f52dbd14d4601f3d707ab19f"
|
||||
integrity sha512-vCsGGmDZz5dikGgdF26rIL0y0nHvH7qaVf89HLLTybceuZijAqFSJEqcB3Gpl5uaeueLNAWExHi2EkoUVqKHGg==
|
||||
"@stdlib/assert-has-symbol-support@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-has-symbol-support/-/assert-has-symbol-support-0.2.3.tgz#cfbfc0a33087d573f9534ab575580dac49d27b88"
|
||||
integrity sha512-yNsJnCb7HWye5xhZ/eRIpp28HwOVFF5gUCKeT1p4haoDJOn+3YEPYaXMn4mYK6kRN96tUhovlJQv9H/9jwnLpA==
|
||||
|
||||
"@stdlib/assert-has-tostringtag-support@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-has-tostringtag-support/-/assert-has-tostringtag-support-0.2.2.tgz#4e5053b69571aca325b9ccf26f8e6acbf8190acb"
|
||||
integrity sha512-bSHGqku11VH0swPEzO4Y2Dr+lTYEtjSWjamwqCTC8udOiOIOHKoxuU4uaMGKJjVfXG1L+XefLHqzuO5azxdRaA==
|
||||
"@stdlib/assert-has-tostringtag-support@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-has-tostringtag-support/-/assert-has-tostringtag-support-0.2.3.tgz#c450216f68ea9f270ce5eb3612088c9fb5b377c3"
|
||||
integrity sha512-9sULfRKYneF/Mq6F96xqeQrf0a9wdJc1lNZf2wfs1EtRwQHQfx5+QlYl7hp3gWI/iid5M4Npme86T0413eaBfA==
|
||||
dependencies:
|
||||
"@stdlib/assert-has-symbol-support" "^0.2.1"
|
||||
"@stdlib/assert-has-symbol-support" "^0.2.3"
|
||||
|
||||
"@stdlib/assert-is-array@^0.2.1":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-is-array/-/assert-is-array-0.2.2.tgz#ba820d24dd914fe8c29bd61033417ab5a2c2c34f"
|
||||
integrity sha512-aJyTX2U3JqAGCATgaAX9ygvDHc97GCIKkIhiZm/AZaLoFHPtMA1atQ4bKcefEC8Um9eefryxTHfFPfSr9CoNQQ==
|
||||
"@stdlib/assert-is-array@^0.2.2":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-is-array/-/assert-is-array-0.2.3.tgz#e231dd5988b52e1ad06fa2d494d5b8ee9e63da17"
|
||||
integrity sha512-ayRsLGmssNO+8SR63tPP2+LZCxFVsSXtdN0ToSdm0kAOaGT4e0FoQus+AlFdhW5xWtvoxL8r5WKTVqJ514/rvQ==
|
||||
dependencies:
|
||||
"@stdlib/utils-native-class" "^0.2.1"
|
||||
"@stdlib/utils-native-class" "^0.2.2"
|
||||
|
||||
"@stdlib/assert-is-boolean@^0.2.1":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-is-boolean/-/assert-is-boolean-0.2.2.tgz#1d6361f66a25cd81ae12085da6ce1457311758ee"
|
||||
integrity sha512-3KFLRTYZpX6u95baZ6PubBvjehJs2xBU6+zrenR0jx8KToUYCnJPxqqj7JXRhSD+cOURmcjj9rocVaG9Nz18Pg==
|
||||
"@stdlib/assert-is-boolean@^0.2.2":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-is-boolean/-/assert-is-boolean-0.2.3.tgz#0789c6be929977b4e59ffec49d0912aaccb05e40"
|
||||
integrity sha512-36BETlRDrBeCOBLowW1/vqk9wD+OA3Wp9eQxFij/7icKiMDURH+Fiw2hfbhaZ3c3Y9uEN0rAdOT7AJlwWhXc7Q==
|
||||
dependencies:
|
||||
"@stdlib/assert-has-tostringtag-support" "^0.2.2"
|
||||
"@stdlib/boolean-ctor" "^0.2.2"
|
||||
"@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2"
|
||||
"@stdlib/utils-native-class" "^0.2.1"
|
||||
"@stdlib/assert-has-tostringtag-support" "^0.2.3"
|
||||
"@stdlib/boolean-ctor" "^0.2.3"
|
||||
"@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.3"
|
||||
"@stdlib/utils-native-class" "^0.2.2"
|
||||
|
||||
"@stdlib/assert-is-buffer@^0.2.1":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-is-buffer/-/assert-is-buffer-0.2.2.tgz#f32894cc86103c151e144cf3dbac63ef9e3f8f15"
|
||||
integrity sha512-4/WMFTEcDYlVbRhxY8Wlqag4S70QCnn6WmQ4wmfiLW92kqQHsLvTNvdt/qqh/SDyDV31R/cpd3QPsVN534dNEA==
|
||||
"@stdlib/assert-is-buffer@^0.2.2":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-is-buffer/-/assert-is-buffer-0.2.3.tgz#966b860b997f35dcd78af2c70b946407b35200e5"
|
||||
integrity sha512-ppnL0sC5XHSk221AYjT4zD33TDB/XuSkhbbbr5sviTH5+88KAqy7SjFlvcpqpvB2BvEVzqRE1fgVso8SjGQD+A==
|
||||
dependencies:
|
||||
"@stdlib/assert-is-object-like" "^0.2.1"
|
||||
"@stdlib/assert-is-object-like" "^0.2.2"
|
||||
|
||||
"@stdlib/assert-is-function@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-is-function/-/assert-is-function-0.2.2.tgz#97b54f449e54fd15913054cc69c7385ea9baab81"
|
||||
integrity sha512-whY69DUYWljCJ79Cvygp7VzWGOtGTsh3SQhzNuGt+ut6EsOW+8nwiRkyBXYKf/MOF+NRn15pxg8cJEoeRgsPcA==
|
||||
"@stdlib/assert-is-function@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-is-function/-/assert-is-function-0.2.3.tgz#a72970ba919418e81e681db56d89f45ae9c91611"
|
||||
integrity sha512-6EdSkdJ1KtILdGb84MhherNtitGgzHH+u6rs1gGj+294wg/9IzLYaaHDktJVRN/viD3XLEQjPGzSTq5x5DzPbQ==
|
||||
dependencies:
|
||||
"@stdlib/utils-type-of" "^0.2.1"
|
||||
"@stdlib/utils-type-of" "^0.2.2"
|
||||
|
||||
"@stdlib/assert-is-object-like@^0.2.1":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-is-object-like/-/assert-is-object-like-0.2.2.tgz#3bd47386addeb7ccb4ac82b9d924ddaa5fddde57"
|
||||
integrity sha512-MjQBpHdEebbJwLlxh/BKNH8IEHqY0YlcCMRKOQU0UOlILSJg0vG+GL4fDDqtx9FSXxcTqC+w3keHx8kAKvQhzg==
|
||||
"@stdlib/assert-is-object-like@^0.2.2":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-is-object-like/-/assert-is-object-like-0.2.3.tgz#0230a766a038fbd7dea65a9d468ae578cf9bf268"
|
||||
integrity sha512-K6G58h5euEVSEZvFZSHADoYL7sixNTRy+ezHl/I3byJpC9PJdvTO0XWYD0CT0yVXIaqmCYU2NsPpgGdcPLELFg==
|
||||
dependencies:
|
||||
"@stdlib/assert-tools-array-function" "^0.2.1"
|
||||
"@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2"
|
||||
"@stdlib/assert-tools-array-function" "^0.2.2"
|
||||
"@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.3"
|
||||
|
||||
"@stdlib/assert-is-regexp@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-is-regexp/-/assert-is-regexp-0.2.2.tgz#4d0f24c5ab189da3839ceca7e6955d263d7b798d"
|
||||
integrity sha512-2JtiUtRJxPaVXL7dkWoV3n5jouI65DwYDXsDXg3xo23TXlTNGgU/HhKO4FWC1Yqju7YMZi0hcZSW6E9v8ISqeQ==
|
||||
"@stdlib/assert-is-regexp@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-is-regexp/-/assert-is-regexp-0.2.3.tgz#a94bf42da29f655b649bdcbf023741b8dcc9bbf2"
|
||||
integrity sha512-+QlQMHrmSmF++7gK0Jjgy7W5aa91gAfpFWPyY4gUwkrSc+mY+JPPYW4peAf+v6dXABOgfKH/JOaFPSv227SSTQ==
|
||||
dependencies:
|
||||
"@stdlib/assert-has-tostringtag-support" "^0.2.2"
|
||||
"@stdlib/utils-native-class" "^0.2.1"
|
||||
"@stdlib/assert-has-tostringtag-support" "^0.2.3"
|
||||
"@stdlib/utils-native-class" "^0.2.2"
|
||||
|
||||
"@stdlib/assert-is-string@^0.2.1", "@stdlib/assert-is-string@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-is-string/-/assert-is-string-0.2.2.tgz#2f3099045f5c9bdb85bf7620c021c17e5be19f2f"
|
||||
integrity sha512-SOkFg4Hq443hkadM4tzcwTHWvTyKP9ULOZ8MSnnqmU0nBX1zLVFLFGY8jnF6Cary0dL0V7QQBCfuxqKFM6u2PQ==
|
||||
"@stdlib/assert-is-string@^0.2.2", "@stdlib/assert-is-string@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-is-string/-/assert-is-string-0.2.3.tgz#1c3a4212ab321574020f6dae06d2e499c4f2236c"
|
||||
integrity sha512-KC2sHwnIo775uEPRG7miERHb3DMABf37jS6o2bmcMHyME+gl+HC/bnqgwYTfgOsM0YOvYMSgA1HJo6iPDXdFrw==
|
||||
dependencies:
|
||||
"@stdlib/assert-has-tostringtag-support" "^0.2.2"
|
||||
"@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2"
|
||||
"@stdlib/utils-native-class" "^0.2.1"
|
||||
"@stdlib/assert-has-tostringtag-support" "^0.2.3"
|
||||
"@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.3"
|
||||
"@stdlib/utils-native-class" "^0.2.2"
|
||||
|
||||
"@stdlib/assert-tools-array-function@^0.2.1":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-tools-array-function/-/assert-tools-array-function-0.2.2.tgz#aba9b71b5164e97872cd2d6b16b221e01bd8c5e0"
|
||||
integrity sha512-FYeT7X9x0C8Nh+MN6IJUDz+7i7yB6mio2/SDlrvyepjyPSU/cfHfwW0GEOnQhxZ+keLZC/YqDD930WjRODwMdA==
|
||||
"@stdlib/assert-tools-array-function@^0.2.2":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/assert-tools-array-function/-/assert-tools-array-function-0.2.3.tgz#ee56db5590f8e27d987fca39551b4bef6ea4b1ba"
|
||||
integrity sha512-z2a2G6f9Exz/V0UfE00TLm1sp6W+pOdYltekRRgdEgFNPPP66WxaJfFLkXwqZv0X75U6TuQ0pp7tFq6Ac0lf5A==
|
||||
dependencies:
|
||||
"@stdlib/assert-is-array" "^0.2.1"
|
||||
"@stdlib/error-tools-fmtprodmsg" "^0.2.2"
|
||||
"@stdlib/string-format" "^0.2.2"
|
||||
"@stdlib/assert-is-array" "^0.2.2"
|
||||
"@stdlib/error-tools-fmtprodmsg" "^0.2.3"
|
||||
"@stdlib/string-format" "^0.2.3"
|
||||
|
||||
"@stdlib/boolean-ctor@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/boolean-ctor/-/boolean-ctor-0.2.2.tgz#d0add4760adeca22631625dd95bb9ca32abb931a"
|
||||
integrity sha512-qIkHzmfxDvGzQ3XI9R7sZG97QSaWG5TvWVlrvcysOGT1cs6HtQgnf4D//SRzZ52VLm8oICP+6OKtd8Hpm6G7Ww==
|
||||
"@stdlib/boolean-ctor@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/boolean-ctor/-/boolean-ctor-0.2.3.tgz#bcb19028736853a848c4dc773cd8168631e723a8"
|
||||
integrity sha512-JmVu1SdJHYK5ubLl8nqi0gfYX5kAcSRRJYNQ7JuG8oU6WtkIMsC0ahQ8+3G673czRaQ7HGE+pL0IZiH/s8HSrQ==
|
||||
|
||||
"@stdlib/error-tools-fmtprodmsg@^0.2.1", "@stdlib/error-tools-fmtprodmsg@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/error-tools-fmtprodmsg/-/error-tools-fmtprodmsg-0.2.2.tgz#0b42240fc5131b460f1120b77da8345dd22ee2dd"
|
||||
integrity sha512-2IliQfTes4WV5odPidZFGD5eYDswZrPXob7oOu95Q69ERqImo8WzSwnG2EDbHPyOyYCewuMfM5Ha6Ggf+u944Q==
|
||||
"@stdlib/error-tools-fmtprodmsg@^0.2.2", "@stdlib/error-tools-fmtprodmsg@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/error-tools-fmtprodmsg/-/error-tools-fmtprodmsg-0.2.3.tgz#05dcb260c0a36b4ad20a1936e9a669dacc12f959"
|
||||
integrity sha512-mt4YRp52oCkNWhxkUIJkeGaFnSvZkyfl4rOJX8Drz99xFiIdanXcSacckhrXXu6NQvMDKidCGr6DvrhHHx15LQ==
|
||||
|
||||
"@stdlib/regexp-extended-length-path@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/regexp-extended-length-path/-/regexp-extended-length-path-0.2.2.tgz#5ea1664bc07de520236f8ab8201b160c9d9bffcd"
|
||||
integrity sha512-z3jqauEsaxpsQU3rj1A1QnOgu17pyW5kt+Az8QkoTk7wqNE8HhPikI6k4o7XBHV689rSFWZCl4c4W+7JAiNObQ==
|
||||
"@stdlib/regexp-extended-length-path@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/regexp-extended-length-path/-/regexp-extended-length-path-0.2.3.tgz#573c222c4b0d6f64ecea0a6a316b9959af8c2262"
|
||||
integrity sha512-3HYXiSzBpKz4nSOCtrYtMw9/OXN4EmTvq0owXv6HMvvDweFskieBcdNlVcOl0ViezjvUuvUL0DHJHdGp6SQEIw==
|
||||
dependencies:
|
||||
"@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2"
|
||||
"@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.3"
|
||||
|
||||
"@stdlib/regexp-function-name@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/regexp-function-name/-/regexp-function-name-0.2.2.tgz#e85e4e94eb382c9c8416b18ffe712c934c2b2b1f"
|
||||
integrity sha512-0z/KRsgHJJ3UQkmBeLH+Nin0hXIeA+Fw1T+mnG2V5CHnTA6FKlpxJxWrvwLEsRX7mR/DNtDp06zGyzMFE/4kig==
|
||||
"@stdlib/regexp-function-name@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/regexp-function-name/-/regexp-function-name-0.2.3.tgz#4d9a246c55bf3c2c5393e66cf03bc761025516d3"
|
||||
integrity sha512-ER1C2rUW5Kzu5w4W0gbrJdIj5STNO5RfNy4GeiqycezeiXT99G393QeN4irqcOItYkeZhwbpY2ZzwlLxQvod1A==
|
||||
dependencies:
|
||||
"@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2"
|
||||
"@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.3"
|
||||
|
||||
"@stdlib/string-base-format-interpolate@^0.2.1":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/string-base-format-interpolate/-/string-base-format-interpolate-0.2.2.tgz#67c22f0ca93ccffd0eb7e1c7276e487b26e786c6"
|
||||
integrity sha512-i9nU9rAB2+o/RR66TS9iQ8x+YzeUDL1SGiAo6GY3hP6Umz5Dx9Qp/v8T69gWVsb4a1YSclz5+YeCWaFgwvPjKA==
|
||||
"@stdlib/string-base-format-interpolate@^0.2.3":
|
||||
version "0.2.4"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/string-base-format-interpolate/-/string-base-format-interpolate-0.2.4.tgz#90a1a014946662a7bdf0adc7336a3181acc0eb4a"
|
||||
integrity sha512-POG725+DPEmzEJbMFTFPdKM4vA5i+t7juNYs+H2cQz5JXiPV1+5+P3epnO+/DqHWzLhiMlsKDCZq03C3WcBkSA==
|
||||
|
||||
"@stdlib/string-base-format-tokenize@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/string-base-format-tokenize/-/string-base-format-tokenize-0.2.2.tgz#3ef9e49f6619ce39d9ba8399c9f4f63b3199289a"
|
||||
integrity sha512-kXq2015i+LJjqth5dN+hYnvJXBSzRm8w0ABWB5tYAsIuQTpQK+mSo2muM8JBEFEnqUHAwpUsu2qNTK/9o8lsJg==
|
||||
"@stdlib/string-base-format-tokenize@^0.2.4":
|
||||
version "0.2.4"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/string-base-format-tokenize/-/string-base-format-tokenize-0.2.4.tgz#ef6a8f265377eb59eff918899c93ca48f65d79f0"
|
||||
integrity sha512-qYHSmqFv7vloLFvjBAbZCn5qtxj7M+Qru3VqBooJTxWMcUeZOEBZg18/PFgfUrZhji5MVWDXbRTAx5Bu5M5nQA==
|
||||
|
||||
"@stdlib/string-base-lowercase@^0.4.0":
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/string-base-lowercase/-/string-base-lowercase-0.4.0.tgz#079b55c30be8f2ea5b63c7a24707852e63a8d1b8"
|
||||
integrity sha512-IH35Z5e4T+S3b3SfYY39mUhrD2qvJVp4VS7Rn3+jgj4+C3syocuAPsJ8C4OQXWGfblX/N9ymizbpFBCiVvMW8w==
|
||||
"@stdlib/string-base-lowercase@^0.4.1":
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/string-base-lowercase/-/string-base-lowercase-0.4.1.tgz#1f77c24d26cafa8be6861974a651e62d0035d222"
|
||||
integrity sha512-3NcDy2j6HtvKrC2GRCt5mKiYaWWHLLSQRSbuu28WEzA98/2izmiHYkR0i9IeEd4Tqrxqof/FXP4gWj1f14RXTQ==
|
||||
|
||||
"@stdlib/string-base-replace@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/string-base-replace/-/string-base-replace-0.2.2.tgz#d5f8967600d530b2b2938ba1a8c1b333b6be8c1f"
|
||||
integrity sha512-Y4jZwRV4Uertw7AlA/lwaYl1HjTefSriN5+ztRcQQyDYmoVN3gzoVKLJ123HPiggZ89vROfC+sk/6AKvly+0CA==
|
||||
"@stdlib/string-base-replace@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/string-base-replace/-/string-base-replace-0.2.3.tgz#2e3588f47dba7537c884424854ebc5b49785d71c"
|
||||
integrity sha512-FJdh2GzIkgMlr0v/ZZKD5cWRs+SMOhBTWxAexmWoYFL3WL1YMDgwI5hRtYh/ySyOy94MjJmYwRMpIVdxeclrAw==
|
||||
|
||||
"@stdlib/string-format@^0.2.1", "@stdlib/string-format@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/string-format/-/string-format-0.2.2.tgz#5f2ac8cfb06e1b11be9ac8fc546075d0c77ec938"
|
||||
integrity sha512-GUa50uxgMAtoItsxTbMmwkyhIwrCxCrsjzk3nAbLnt/1Kt1EWOWMwsALqZdD6K4V/xSJ4ns6PZur3W6w+vKk9g==
|
||||
"@stdlib/string-format@^0.2.2", "@stdlib/string-format@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/string-format/-/string-format-0.2.3.tgz#7843b7bee2d672525cc945b1e78adc328bb97692"
|
||||
integrity sha512-uE0LHUUnWKfxFeipyfb9yWbs+iczz6dHaolSGC1WBzMVyeHqx8xvq+yP3f2POYWgEcknmxNgU21WSqToSNrxdA==
|
||||
dependencies:
|
||||
"@stdlib/string-base-format-interpolate" "^0.2.1"
|
||||
"@stdlib/string-base-format-tokenize" "^0.2.2"
|
||||
"@stdlib/string-base-format-interpolate" "^0.2.3"
|
||||
"@stdlib/string-base-format-tokenize" "^0.2.4"
|
||||
|
||||
"@stdlib/string-replace@^0.2.1":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/string-replace/-/string-replace-0.2.2.tgz#c4a526abdec7ec031beeb87f98c4c9356fdce969"
|
||||
integrity sha512-czNS5IU7sBuHjac45Y3VWUTsUoi82yc8JsMZrOMcjgSrEuDrVmA6sNJg7HC1DuSpdPjm/v9uUk102s1gIfk3Nw==
|
||||
"@stdlib/string-replace@^0.2.2":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/string-replace/-/string-replace-0.2.3.tgz#2cb463afffd68c031f4f13f81a5830a800f364fc"
|
||||
integrity sha512-CXJhl/L2TfRrkVUNVp8OfNsKeuUzOZXzJLUDoopHtQalbWBww1fDSDj1fwGpzgZV4IODs8LCsiIxLBnLRP6emg==
|
||||
dependencies:
|
||||
"@stdlib/assert-is-function" "^0.2.2"
|
||||
"@stdlib/assert-is-regexp" "^0.2.2"
|
||||
"@stdlib/assert-is-string" "^0.2.2"
|
||||
"@stdlib/error-tools-fmtprodmsg" "^0.2.2"
|
||||
"@stdlib/string-base-replace" "^0.2.2"
|
||||
"@stdlib/string-format" "^0.2.2"
|
||||
"@stdlib/utils-escape-regexp-string" "^0.2.2"
|
||||
"@stdlib/assert-is-function" "^0.2.3"
|
||||
"@stdlib/assert-is-regexp" "^0.2.3"
|
||||
"@stdlib/assert-is-string" "^0.2.3"
|
||||
"@stdlib/error-tools-fmtprodmsg" "^0.2.3"
|
||||
"@stdlib/string-base-replace" "^0.2.3"
|
||||
"@stdlib/string-format" "^0.2.3"
|
||||
"@stdlib/utils-escape-regexp-string" "^0.2.3"
|
||||
|
||||
"@stdlib/symbol-ctor@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/symbol-ctor/-/symbol-ctor-0.2.2.tgz#07a1477df50d9c54f4b79f810a0f0667e52c24d6"
|
||||
integrity sha512-XsmiTfHnTb9jSPf2SoK3O0wrNOXMxqzukvDvtzVur1XBKfim9+seaAS4akmV1H3+AroAXQWVtde885e1B6jz1w==
|
||||
"@stdlib/symbol-ctor@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/symbol-ctor/-/symbol-ctor-0.2.3.tgz#383c854acf3f4e882d51ec00fc710f860ae1e113"
|
||||
integrity sha512-wnuFrxnmhg2p6QQP0B/j97LD5ys2d1bHuwVvh9yuUSCLoX/GankaVyGSufk2ROlsxrcm2HPhSDB/ILBHeUmamA==
|
||||
|
||||
"@stdlib/utils-constructor-name@^0.2.1":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-constructor-name/-/utils-constructor-name-0.2.2.tgz#3462fb107196d00698604aac32089353273c82a2"
|
||||
integrity sha512-TBtO3MKDAf05ij5ajmyBCbpKKt0Lfahn5tu18gqds4PkFltgcw5tVZfSHY5DZ2HySJQ2GMMYjPW2Kbg6yPCSVg==
|
||||
"@stdlib/types@^0.4.3":
|
||||
version "0.4.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/types/-/types-0.4.3.tgz#a013b9cddd46d3e5928fd5b0c94e74f959396a7d"
|
||||
integrity sha512-9GCqS2eni2VSwa5/CCniAJ4I1eWLtvior1z6hoPJp6VTNMgW9Lh4BiI84IO0xun/0qAclJ+mTGTiCTZxZLK13A==
|
||||
|
||||
"@stdlib/utils-constructor-name@^0.2.2":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-constructor-name/-/utils-constructor-name-0.2.3.tgz#429db956893bfbc92437054b391a38fdbf21e90d"
|
||||
integrity sha512-/ApogDUIFxndcmnEeI6ctsqWt66c40g1T7R0nS9aOoYgnDOdmpUFSflzf++MDWksBycGsqgm1UD7IU54m4u7jg==
|
||||
dependencies:
|
||||
"@stdlib/assert-is-buffer" "^0.2.1"
|
||||
"@stdlib/regexp-function-name" "^0.2.2"
|
||||
"@stdlib/utils-native-class" "^0.2.1"
|
||||
"@stdlib/assert-is-buffer" "^0.2.2"
|
||||
"@stdlib/regexp-function-name" "^0.2.3"
|
||||
"@stdlib/utils-native-class" "^0.2.2"
|
||||
|
||||
"@stdlib/utils-convert-path@^0.2.1":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-convert-path/-/utils-convert-path-0.2.2.tgz#7ffcd09a4f2384e0421a4154e31fe520ee0a62b7"
|
||||
integrity sha512-8nNuAgt23Np9NssjShUrPK42c6gRTweGuoQw+yTpTfBR9VQv8WFyt048n8gRGUlAHizrdMNpEY9VAb7IBzpVYw==
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-convert-path/-/utils-convert-path-0.2.3.tgz#bc4287772cefa1178fd4eb8aa16b140255b1ba21"
|
||||
integrity sha512-fmqJ6Qvce0HV7D+uYrram/+iAHB3u2gMys9zeh0uc/h411sB8Hw9X7i1w2cJevCpouMzqTnpzp75C+swkoQlKA==
|
||||
dependencies:
|
||||
"@stdlib/assert-is-string" "^0.2.3"
|
||||
"@stdlib/error-tools-fmtprodmsg" "^0.2.3"
|
||||
"@stdlib/regexp-extended-length-path" "^0.2.3"
|
||||
"@stdlib/string-base-lowercase" "^0.4.1"
|
||||
"@stdlib/string-format" "^0.2.3"
|
||||
"@stdlib/string-replace" "^0.2.2"
|
||||
|
||||
"@stdlib/utils-define-nonenumerable-read-only-property@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-define-nonenumerable-read-only-property/-/utils-define-nonenumerable-read-only-property-0.2.3.tgz#1377835cec65cd397842303c8983be8c235f5ebf"
|
||||
integrity sha512-W0rqnRsXgW3GjcwEcOMi0mI/CXn3TVqmFvcxItLUZPJNYmwrU6+t+9kGldhMw845DyOtv8uYASrnNoVE/VfiDw==
|
||||
dependencies:
|
||||
"@stdlib/types" "^0.4.3"
|
||||
"@stdlib/utils-define-property" "^0.2.5"
|
||||
|
||||
"@stdlib/utils-define-property@^0.2.5":
|
||||
version "0.2.5"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-define-property/-/utils-define-property-0.2.5.tgz#e7f237c88b8bf8b2068a79c50c7fddfa00d87ca7"
|
||||
integrity sha512-WpbXc2uq8vtSqmWFzVrFifNj6HGoGHIZHolxX5GfRFbj4RNme1u/wtklmiOvcHE0s6SwPX764tuFXIgHBR5Vag==
|
||||
dependencies:
|
||||
"@stdlib/error-tools-fmtprodmsg" "^0.2.2"
|
||||
"@stdlib/string-format" "^0.2.2"
|
||||
|
||||
"@stdlib/utils-escape-regexp-string@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-escape-regexp-string/-/utils-escape-regexp-string-0.2.3.tgz#39b451bf8d104420893635db53c363f115c622c4"
|
||||
integrity sha512-ZQAq5HHF+C1fmK+RvqeMO0iIQf5kGl2Ofx9LYloURUPZD2zVMX+2hxDLFBTPAusqYxffQAjj3ap4LE/J0+YiRQ==
|
||||
dependencies:
|
||||
"@stdlib/assert-is-string" "^0.2.2"
|
||||
"@stdlib/error-tools-fmtprodmsg" "^0.2.2"
|
||||
"@stdlib/regexp-extended-length-path" "^0.2.2"
|
||||
"@stdlib/string-base-lowercase" "^0.4.0"
|
||||
"@stdlib/string-format" "^0.2.2"
|
||||
"@stdlib/string-replace" "^0.2.1"
|
||||
"@stdlib/error-tools-fmtprodmsg" "^0.2.3"
|
||||
"@stdlib/string-format" "^0.2.3"
|
||||
|
||||
"@stdlib/utils-define-nonenumerable-read-only-property@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-define-nonenumerable-read-only-property/-/utils-define-nonenumerable-read-only-property-0.2.2.tgz#80be97888609d1e471d20812cc5ba83a01f92e88"
|
||||
integrity sha512-V3mpAesJemLYDKG376CsmoczWPE/4LKsp8xBvUxCt5CLNAx3J/1W39iZQyA5q6nY1RStGinGn1/dYZwa8ig0Uw==
|
||||
"@stdlib/utils-global@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-global/-/utils-global-0.2.3.tgz#f7d52cc6dbaa0d0154142c0590e2cbbe4ab42a73"
|
||||
integrity sha512-e8gyuENhSeF8udH7vlZMDbNVQ/ZxZ4vWOcpB2iw06z1HSFZWc31Coh19ScfgagLfofo2GQYPJI3tJtZQYsUS6A==
|
||||
dependencies:
|
||||
"@stdlib/utils-define-property" "^0.2.3"
|
||||
"@stdlib/assert-is-boolean" "^0.2.2"
|
||||
"@stdlib/error-tools-fmtprodmsg" "^0.2.3"
|
||||
"@stdlib/string-format" "^0.2.3"
|
||||
|
||||
"@stdlib/utils-define-property@^0.2.3":
|
||||
version "0.2.4"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-define-property/-/utils-define-property-0.2.4.tgz#a8b6e120c829ee99ed81cf0111bb4c76ef85da9e"
|
||||
integrity sha512-XlMdz7xwuw/sqXc9LbsV8XunCzZXjbZPC+OAdf4t4PBw4ZRwGzlTI6WED+f4PYR5Tp9F1cHgLPyMYCIBfA2zRg==
|
||||
"@stdlib/utils-native-class@^0.2.2":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-native-class/-/utils-native-class-0.2.3.tgz#f74772c72819515251097a6771dc32b4b1c8dd79"
|
||||
integrity sha512-UGXCPhgmOjwMpEQ5fFiifcqrhUnP8ICyWzEkHphUrh2/0pHyK0zilZvcODfROgzoy6L9ivUUuR6NjrAI+j14hA==
|
||||
dependencies:
|
||||
"@stdlib/error-tools-fmtprodmsg" "^0.2.1"
|
||||
"@stdlib/string-format" "^0.2.1"
|
||||
"@stdlib/assert-has-own-property" "^0.2.2"
|
||||
"@stdlib/assert-has-tostringtag-support" "^0.2.3"
|
||||
"@stdlib/symbol-ctor" "^0.2.3"
|
||||
|
||||
"@stdlib/utils-escape-regexp-string@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-escape-regexp-string/-/utils-escape-regexp-string-0.2.2.tgz#dd407c9324c1da4fa7b25e5c862502e8dc6d61ab"
|
||||
integrity sha512-areCibzgpmvm6pGKBg+mXkSDJW4NxtS5jcAT7RtunGMdAYhA/I5whISMPaeJkIT2XhjjFkjKBaIs5pF6aPr4fQ==
|
||||
"@stdlib/utils-type-of@^0.2.2":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-type-of/-/utils-type-of-0.2.3.tgz#788c90c42a2013def59e94ec34c8833fac056548"
|
||||
integrity sha512-2KmDUfqIv0g4lrWtnyR5xw82NvdsEwUHON43JAe55XRlLWnk1V1troiyJiM9fccENtl524kVRBnD7RMohmUyyQ==
|
||||
dependencies:
|
||||
"@stdlib/assert-is-string" "^0.2.1"
|
||||
"@stdlib/error-tools-fmtprodmsg" "^0.2.2"
|
||||
"@stdlib/string-format" "^0.2.2"
|
||||
|
||||
"@stdlib/utils-global@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-global/-/utils-global-0.2.2.tgz#61f875ef4ed74a091ed841127262961edef2d973"
|
||||
integrity sha512-A4E8VFHn+1bpfJ4PA8H2b62CMQpjv2A+H3QDEBrouLFWne0wrx0TNq8vH6VYHxx9ZRxhgWQjfHiSAxtUJobrbQ==
|
||||
dependencies:
|
||||
"@stdlib/assert-is-boolean" "^0.2.1"
|
||||
"@stdlib/error-tools-fmtprodmsg" "^0.2.2"
|
||||
"@stdlib/string-format" "^0.2.2"
|
||||
|
||||
"@stdlib/utils-native-class@^0.2.1":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-native-class/-/utils-native-class-0.2.2.tgz#dbb00a84e8c583cdd1bc40b163f1786dc44c4f09"
|
||||
integrity sha512-cSn/FozbEpfR/FlJAoceQtZ8yUJFhZ8RFkbEsxW/7+H4o09yln3lBS0HSfUJISYNtpTNN/2/Fup88vmvwspvwA==
|
||||
dependencies:
|
||||
"@stdlib/assert-has-own-property" "^0.2.1"
|
||||
"@stdlib/assert-has-tostringtag-support" "^0.2.2"
|
||||
"@stdlib/symbol-ctor" "^0.2.2"
|
||||
|
||||
"@stdlib/utils-type-of@^0.2.1":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@stdlib/utils-type-of/-/utils-type-of-0.2.2.tgz#517de513c043d7c0a48743593be41f67f0d51a9f"
|
||||
integrity sha512-RLGFxPNgY9AtVVrFGdKO6Y3pOd/Ov2WA4O2/czZN/AbgYzbPdoF0KkfvHRIney6k+TtvoyYB8YqZXJ4G88f9BQ==
|
||||
dependencies:
|
||||
"@stdlib/utils-constructor-name" "^0.2.1"
|
||||
"@stdlib/utils-global" "^0.2.2"
|
||||
"@stdlib/utils-constructor-name" "^0.2.2"
|
||||
"@stdlib/utils-global" "^0.2.3"
|
||||
|
||||
"@tybys/wasm-util@^0.9.0":
|
||||
version "0.9.0"
|
||||
@@ -1451,9 +1445,9 @@
|
||||
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
|
||||
|
||||
"@types/lodash@^4.14.195":
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.21.tgz#b806831543d696b14f8112db600ea9d3a1df6ea4"
|
||||
integrity sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==
|
||||
version "4.17.23"
|
||||
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.23.tgz#c1bb06db218acc8fc232da0447473fc2fb9d9841"
|
||||
integrity sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==
|
||||
|
||||
"@types/micromatch@^4.0.2":
|
||||
version "4.0.10"
|
||||
@@ -1463,9 +1457,9 @@
|
||||
"@types/braces" "*"
|
||||
|
||||
"@types/node@*", "@types/node@^25.0.0":
|
||||
version "25.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-25.0.0.tgz#c0e0022c3c7b41635c49322e6b3a0279fffa7d62"
|
||||
integrity sha512-rl78HwuZlaDIUSeUKkmogkhebA+8K1Hy7tddZuJ3D0xV8pZSfsYGTsliGUol1JPzu9EKnTxPC4L1fiWouStRew==
|
||||
version "25.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-25.2.2.tgz#0ddfe326c326afcb3422d32bfe5eb2938e1cb5db"
|
||||
integrity sha512-BkmoP5/FhRYek5izySdkOneRyXYN35I860MFAGupTdebyE66uZaR+bXLHq8k4DirE5DwQi3NuhvRU1jqTVwUrQ==
|
||||
dependencies:
|
||||
undici-types "~7.16.0"
|
||||
|
||||
@@ -2620,9 +2614,9 @@ eslint-plugin-import@^2.31.0:
|
||||
tsconfig-paths "^3.15.0"
|
||||
|
||||
eslint-plugin-jest@^29.0.1:
|
||||
version "29.2.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-29.2.1.tgz#e56c5f79b6475dafa551ce8e762ac25d4bd21ea4"
|
||||
integrity sha512-0WLIezrIxitUGbjMIGwznVzSIp0uFJV0PZ2fiSvpyVcxe+QMXKUt7MRhUpzdbctnnLwiOTOFkACplgB0wAglFw==
|
||||
version "29.12.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-29.12.1.tgz#a0f78812f589796b09148a53a786866244185638"
|
||||
integrity sha512-Rxo7r4jSANMBkXLICJKS0gjacgyopfNAsoS0e3R9AHnjoKuQOaaPfmsDJPi8UWwygI099OV/K/JhpYRVkxD4AA==
|
||||
dependencies:
|
||||
"@typescript-eslint/utils" "^8.0.0"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user