Compare commits

...

18 Commits

Author SHA1 Message Date
Tonye Jack
de0eba3279 feat: update error handling for yaml inputs (#1395)
Co-authored-by: GitHub Action <action@github.com>
2023-07-20 18:05:55 +00:00
Tonye Jack
bc262c2f61 Update README.md 2023-07-20 11:41:44 -06:00
Tonye Jack
d4389f0f4f Update README.md 2023-07-20 06:48:41 -06:00
tj-actions[bot]
79984462e1 Updated README.md (#1394)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-07-19 17:08:30 -06:00
Tonye Jack
c6dcc2a013 Update action.yml 2023-07-19 17:07:28 -06:00
tj-actions[bot]
e6dde3c065 Upgraded to v37.3.0 (#1392)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-07-19 08:19:57 +00:00
tj-actions[bot]
39283171ce Updated README.md (#1391)
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com>
2023-07-19 01:53:16 -06:00
Tonye Jack
33288d37e7 feat: add support for restricting recoverable deleted files via patterns (#1390)
Co-authored-by: GitHub Action <action@github.com>
2023-07-19 07:50:59 +00:00
tj-actions[bot]
b60277dde9 Upgraded to v37.2.0 (#1389)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-07-19 05:43:20 +00:00
renovate[bot]
68b429ddc6 chore(deps): update dependency eslint-plugin-github to v4.9.2 (#1388)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-18 17:41:01 +00:00
Tonye Jack
ec0b6d0e4c chore: switch to use the github context (#1386)
Co-authored-by: GitHub Action <action@github.com>
2023-07-18 03:44:59 -06:00
Tonye Jack
e3ea6b7948 Update README.md 2023-07-18 02:56:15 -06:00
renovate[bot]
8c8be234b2 chore(deps): update dependency eslint-plugin-github to v4.9.1 (#1387)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-18 01:31:59 +00:00
renovate[bot]
029d6cd6b8 chore(deps): update typescript-eslint monorepo to v6.1.0 (#1385)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-17 17:56:41 +00:00
renovate[bot]
8fc95ea175 chore(deps): lock file maintenance (#1383)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-17 01:32:34 +00:00
renovate[bot]
3e2a2ce2d0 chore(deps): lock file maintenance (#1382)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-15 06:46:23 +00:00
renovate[bot]
4aebdafc0b chore(deps): update dependency eslint to v8.45.0 (#1381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-14 18:05:35 +00:00
tj-actions[bot]
2aadab2297 Upgraded to v37.1.2 (#1378)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-07-13 13:04:06 -06:00
13 changed files with 746 additions and 677 deletions

View File

@@ -1,5 +1,84 @@
# Changelog # Changelog
# [37.3.0](https://github.com/tj-actions/changed-files/compare/v37.2.0...v37.3.0) - (2023-07-19)
## <!-- 0 -->🚀 Features
- Add support for restricting recoverable deleted files via patterns ([#1390](https://github.com/tj-actions/changed-files/issues/1390)) ([33288d3](https://github.com/tj-actions/changed-files/commit/33288d37e78121ba601151ba03d8dacaf856777c)) - (Tonye Jack)
## <!-- 26 -->🔄 Update
- Updated README.md ([#1391](https://github.com/tj-actions/changed-files/issues/1391))
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com> ([3928317](https://github.com/tj-actions/changed-files/commit/39283171cefdf491e0f0d6cf285b86b31eb6f3cd)) - (tj-actions[bot])
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v37.2.0 ([#1389](https://github.com/tj-actions/changed-files/issues/1389))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([b60277d](https://github.com/tj-actions/changed-files/commit/b60277dde98548f8d384a0b92a469fc5d0f46b1f)) - (tj-actions[bot])
# [37.2.0](https://github.com/tj-actions/changed-files/compare/v37.1.2...v37.2.0) - (2023-07-18)
## <!-- 26 -->🔄 Update
- Update README.md ([e3ea6b7](https://github.com/tj-actions/changed-files/commit/e3ea6b7948826820cfd616fda2d9c974a4ead314)) - (Tonye Jack)
## <!-- 7 -->⚙️ Miscellaneous Tasks
- **deps:** Update dependency eslint-plugin-github to v4.9.2 ([#1388](https://github.com/tj-actions/changed-files/issues/1388)) ([68b429d](https://github.com/tj-actions/changed-files/commit/68b429ddc666ea0dba46309e1ee45e06bb408df8)) - (renovate[bot])
- Switch to use the github context ([#1386](https://github.com/tj-actions/changed-files/issues/1386)) ([ec0b6d0](https://github.com/tj-actions/changed-files/commit/ec0b6d0e4c2965e4073849cbd0ab0e6fd3b42d50)) - (Tonye Jack)
- **deps:** Update dependency eslint-plugin-github to v4.9.1 ([#1387](https://github.com/tj-actions/changed-files/issues/1387)) ([8c8be23](https://github.com/tj-actions/changed-files/commit/8c8be234b2ced36de48c003dd2b2b0cd3448985f)) - (renovate[bot])
- **deps:** Update typescript-eslint monorepo to v6.1.0 ([#1385](https://github.com/tj-actions/changed-files/issues/1385)) ([029d6cd](https://github.com/tj-actions/changed-files/commit/029d6cd6b8191709b7e3d2bff0207a58a0c9c272)) - (renovate[bot])
- **deps:** Lock file maintenance ([#1383](https://github.com/tj-actions/changed-files/issues/1383)) ([8fc95ea](https://github.com/tj-actions/changed-files/commit/8fc95ea17520d70ecf9d3141ec0a0d8443780a48)) - (renovate[bot])
- **deps:** Lock file maintenance ([#1382](https://github.com/tj-actions/changed-files/issues/1382)) ([3e2a2ce](https://github.com/tj-actions/changed-files/commit/3e2a2ce2d08798ebef6a1b3b7fd8782820484ea4)) - (renovate[bot])
- **deps:** Update dependency eslint to v8.45.0 ([#1381](https://github.com/tj-actions/changed-files/issues/1381)) ([4aebdaf](https://github.com/tj-actions/changed-files/commit/4aebdafc0bbe1a3beffb6e7f6278d3323c6aabcb)) - (renovate[bot])
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v37.1.2 ([#1378](https://github.com/tj-actions/changed-files/issues/1378))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([2aadab2](https://github.com/tj-actions/changed-files/commit/2aadab2297933ef2a8eaa3a3316ae458aafe4964)) - (tj-actions[bot])
# [37.1.2](https://github.com/tj-actions/changed-files/compare/v37.1.1...v37.1.2) - (2023-07-13)
## <!-- 1 -->🐛 Bug Fixes
- Excluding current dir with max depth less than 2 ([#1375](https://github.com/tj-actions/changed-files/issues/1375)) ([2a968ff](https://github.com/tj-actions/changed-files/commit/2a968ff601949c81b47d9c1fdb789b0d25ddeea2)) - (Tonye Jack)
## <!-- 26 -->🔄 Update
- Updated README.md ([#1373](https://github.com/tj-actions/changed-files/issues/1373))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([fe91ab7](https://github.com/tj-actions/changed-files/commit/fe91ab72f6a9ecb02a0242c01b58685d5680fd4e)) - (tj-actions[bot])
- Update README.md ([cc23ede](https://github.com/tj-actions/changed-files/commit/cc23ede8379d7798f2cd63082882472ae1add438)) - (Tonye Jack)
- Updated README.md ([#1368](https://github.com/tj-actions/changed-files/issues/1368))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([032079b](https://github.com/tj-actions/changed-files/commit/032079bf7feccea4cc0b271962986e7770e345b3)) - (tj-actions[bot])
- Update action.yml ([21ccb43](https://github.com/tj-actions/changed-files/commit/21ccb43669e77a07efac5f011bd4ee8b73128ef6)) - (Tonye Jack)
- Updated README.md ([#1367](https://github.com/tj-actions/changed-files/issues/1367))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([038a51a](https://github.com/tj-actions/changed-files/commit/038a51af80a6a09ec582702adc3df051791f9db0)) - (tj-actions[bot])
- Update README.md ([c6c396f](https://github.com/tj-actions/changed-files/commit/c6c396f2fe271cc83e7e0f9d536c3d86ec4c26ba)) - (Tonye Jack)
- Update README.md ([7f05b89](https://github.com/tj-actions/changed-files/commit/7f05b891876669d2c7c19a0d297f6a3b856e0a74)) - (Tonye Jack)
- Update README.md ([97365f6](https://github.com/tj-actions/changed-files/commit/97365f6cd24ea353a8eb76ec7882677c79f73b7e)) - (Tonye Jack)
## <!-- 7 -->⚙️ Miscellaneous Tasks
- **deps:** Update dependency eslint-plugin-github to v4.9.0 ([#1377](https://github.com/tj-actions/changed-files/issues/1377)) ([ef327f9](https://github.com/tj-actions/changed-files/commit/ef327f98b5f31e95aad0ae00e29a83a72294910a)) - (renovate[bot])
- **deps:** Update dependency eslint-plugin-jest to v27.2.3 ([#1376](https://github.com/tj-actions/changed-files/issues/1376)) ([5c1cab8](https://github.com/tj-actions/changed-files/commit/5c1cab842919e3c5e2c9385b01039715b7f81382)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.4.2 ([#1372](https://github.com/tj-actions/changed-files/issues/1372)) ([60e7ac7](https://github.com/tj-actions/changed-files/commit/60e7ac7c28a8e1f8d0dca3a5b0b2c558c38526d1)) - (renovate[bot])
- Update README.md ([#1371](https://github.com/tj-actions/changed-files/issues/1371)) ([76dc7bc](https://github.com/tj-actions/changed-files/commit/76dc7bcd3f1236de1b72ce30d0b98b19cea5ab9d)) - (Tonye Jack)
- Improve test coverage ([#1369](https://github.com/tj-actions/changed-files/issues/1369)) ([c7072f0](https://github.com/tj-actions/changed-files/commit/c7072f096921517be8c12059fdcdfaa3c27f8ee3)) - (Tonye Jack)
- Update readme to include downsides of skipping the initial fetch ([a5f4b54](https://github.com/tj-actions/changed-files/commit/a5f4b54b5f4e834abbbe77a9f9f94af0b3d93ab0)) - (Tonye Jack)
- **deps:** Update dependency eslint-plugin-prettier to v5.0.0 ([#1364](https://github.com/tj-actions/changed-files/issues/1364)) ([61e9ed7](https://github.com/tj-actions/changed-files/commit/61e9ed7dab363242491581aca47219f0201eb362)) - (renovate[bot])
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v37.1.1 ([#1363](https://github.com/tj-actions/changed-files/issues/1363))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([139cb86](https://github.com/tj-actions/changed-files/commit/139cb86a771ba8b366563c29e123d7bd97ece0c2)) - (tj-actions[bot])
# [37.1.1](https://github.com/tj-actions/changed-files/compare/v37.1.0...v37.1.1) - (2023-07-11) # [37.1.1](https://github.com/tj-actions/changed-files/compare/v37.1.0...v37.1.1) - (2023-07-11)
## <!-- 26 -->🔄 Update ## <!-- 26 -->🔄 Update

154
README.md
View File

@@ -110,46 +110,17 @@ jobs:
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit. fetch-depth: 0 # OR "2" -> To retrieve the preceding commit.
# Example 1 # Example 1
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v37
# To compare changes between the current commit and the last pushed remote commit set `since_last_remote_commit: true`. e.g
# with:
# since_last_remote_commit: true
- name: List all changed files
run: |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
echo "$file was changed"
done
# Example 2
- name: Get changed files in the docs folder
id: changed-files-specific
uses: tj-actions/changed-files@v37
with:
files: docs/*.{js,html} # Alternatively using: `docs/**` or `docs`
files_ignore: docs/static.js
- name: Run step if any file(s) in the docs folder change
if: steps.changed-files-specific.outputs.any_changed == 'true'
run: |
echo "One or more files in the docs folder has changed."
echo "List all the files that have changed: ${{ steps.changed-files-specific.outputs.all_changed_files }}"
# Example 3
- name: Get all test, doc and src files that have changed - name: Get all test, doc and src files that have changed
id: changed-files-yaml id: changed-files-yaml
uses: tj-actions/changed-files@v37 uses: tj-actions/changed-files@v37
with: with:
files_yaml: | files_yaml: |
doc: doc:
- **.md - '**.md'
- docs/** - 'docs/**'
- !docs/README.md - !docs/README.md
test: test:
- test/** - 'test/**'
- !test/README.md - !test/README.md
src: src:
- src/** - src/**
@@ -166,6 +137,35 @@ jobs:
run: | run: |
echo "One or more doc file(s) has changed." echo "One or more doc file(s) has changed."
echo "List all the files that have changed: ${{ steps.changed-files-yaml.outputs.doc_all_changed_files }}" echo "List all the files that have changed: ${{ steps.changed-files-yaml.outputs.doc_all_changed_files }}"
# Example 2
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v37
# To compare changes between the current commit and the last pushed remote commit set `since_last_remote_commit: true`. e.g
# with:
# since_last_remote_commit: true
- name: List all changed files
run: |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
echo "$file was changed"
done
# Example 3
- name: Get changed files in the docs folder
id: changed-files-specific
uses: tj-actions/changed-files@v37
with:
files: docs/*.{js,html} # Alternatively using: `docs/**` or `docs`
files_ignore: docs/static.js
- name: Run step if any file(s) in the docs folder change
if: steps.changed-files-specific.outputs.any_changed == 'true'
run: |
echo "One or more files in the docs folder has changed."
echo "List all the files that have changed: ${{ steps.changed-files-specific.outputs.all_changed_files }}"
``` ```
#### Using Github's API #### Using Github's API
@@ -343,48 +343,52 @@ Support this project with a :star:
<!-- AUTO-DOC-INPUT:START - Do not remove or modify this section --> <!-- AUTO-DOC-INPUT:START - Do not remove or modify this section -->
| INPUT | TYPE | REQUIRED | DEFAULT | DESCRIPTION | | INPUT | TYPE | REQUIRED | DEFAULT | DESCRIPTION |
|----------------------------------------------|--------|----------|---------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |----------------------------------------------|--------|----------|---------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| api\_url | string | false | `"${{ github.api_url }}"` | Github API URL. | | api\_url | string | false | `"${{ github.api_url }}"` | Github API URL. |
| base\_sha | string | false | | Specify a different base commit <br>SHA used for comparing changes | | base\_sha | string | false | | Specify a different base commit <br>SHA used for comparing changes |
| diff\_relative | string | false | `"true"` | Exclude changes outside the current <br>directory and show path names <br>relative to it. **NOTE:** This <br>requires you to specify the <br>top level directory via the <br>`path` input. | | diff\_relative | string | false | `"true"` | Exclude changes outside the current <br>directory and show path names <br>relative to it. **NOTE:** This <br>requires you to specify the <br>top level directory via the <br>`path` input. |
| dir\_names | string | false | `"false"` | Output unique changed directories instead <br>of filenames. **NOTE:** This returns <br>`.` for changed files located <br>in the current working directory <br>which defaults to `$GITHUB_WORKSPACE`. | | dir\_names | string | false | `"false"` | Output unique changed directories instead <br>of filenames. **NOTE:** This returns <br>`.` for changed files located <br>in the current working directory <br>which defaults to `$GITHUB_WORKSPACE`. |
| dir\_names\_exclude\_current\_dir | string | false | `"false"` | Exclude the current directory represented <br>by `.` from the output <br>when `dir_names` is set to <br>`true`. | | dir\_names\_exclude\_current\_dir | string | false | `"false"` | Exclude the current directory represented <br>by `.` from the output <br>when `dir_names` is set to <br>`true`. |
| dir\_names\_max\_depth | string | false | | Limit the directory output to <br>a maximum depth e.g `test/test1/test2` <br>with max depth of `2` <br>returns `test/test1`. | | dir\_names\_max\_depth | string | false | | Limit the directory output to <br>a maximum depth e.g `test/test1/test2` <br>with max depth of `2` <br>returns `test/test1`. |
| escape\_json | string | false | `"true"` | Escape JSON output. | | escape\_json | string | false | `"true"` | Escape JSON output. |
| fetch\_depth | string | false | `"50"` | Depth of additional branch history <br>fetched. **NOTE**: This can be <br>adjusted to resolve errors with <br>insufficient history. | | fetch\_depth | string | false | `"50"` | Depth of additional branch history <br>fetched. **NOTE**: This can be <br>adjusted to resolve errors with <br>insufficient history. |
| files | string | false | | File and directory patterns used <br>to detect changes (Defaults to the entire repo if unset) **NOTE:** <br>Multiline file/directory patterns should not <br>include quotes. | | files | string | false | | File and directory patterns used <br>to detect changes (Defaults to the entire repo if unset) **NOTE:** <br>Multiline file/directory patterns should not <br>include quotes. |
| files\_from\_source\_file | string | false | | Source file(s) used to populate <br>the `files` input. | | files\_from\_source\_file | string | false | | Source file(s) used to populate <br>the `files` input. |
| files\_from\_source\_file\_separator | string | false | `"\n"` | Separator used to split the <br>`files_from_source_file` input | | files\_from\_source\_file\_separator | string | false | `"\n"` | Separator used to split the <br>`files_from_source_file` input |
| files\_ignore | string | false | | Ignore changes to these file(s) <br>**NOTE:** Multiline file/directory patterns should <br>not include quotes. | | files\_ignore | string | false | | Ignore changes to these file(s) <br>**NOTE:** Multiline file/directory patterns should <br>not include quotes. |
| files\_ignore\_from\_source\_file | string | false | | Source file(s) used to populate <br>the `files_ignore` input | | files\_ignore\_from\_source\_file | string | false | | Source file(s) used to populate <br>the `files_ignore` input |
| files\_ignore\_from\_source\_file\_separator | string | false | `"\n"` | Separator used to split the <br>`files_ignore_from_source_file` input | | files\_ignore\_from\_source\_file\_separator | string | false | `"\n"` | Separator used to split the <br>`files_ignore_from_source_file` input |
| files\_ignore\_separator | string | false | `"\n"` | Separator used to split the <br>`files_ignore` input | | files\_ignore\_separator | string | false | `"\n"` | Separator used to split the <br>`files_ignore` input |
| files\_ignore\_yaml | string | false | | YAML used to define a <br>set of file patterns to <br>ignore changes | | files\_ignore\_yaml | string | false | | YAML used to define a <br>set of file patterns to <br>ignore changes |
| files\_ignore\_yaml\_from\_source\_file | string | false | | Source file(s) used to populate <br>the `files_ignore_yaml` input. [Example](https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml) | | files\_ignore\_yaml\_from\_source\_file | string | false | | Source file(s) used to populate <br>the `files_ignore_yaml` input. [Example](https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml) |
| files\_ignore\_yaml\_from\_source\_file\_separator | string | false | `"\n"` | Separator used to split the <br>`files_ignore_yaml_from_source_file` input | | files\_ignore\_yaml\_from\_source\_file\_separator | string | false | `"\n"` | Separator used to split the <br>`files_ignore_yaml_from_source_file` input |
| files\_separator | string | false | `"\n"` | Separator used to split the <br>`files` input | | files\_separator | string | false | `"\n"` | Separator used to split the <br>`files` input |
| files\_yaml | string | false | | YAML used to define a <br>set of file patterns to <br>detect changes | | files\_yaml | string | false | | YAML used to define a <br>set of file patterns to <br>detect changes |
| files\_yaml\_from\_source\_file | string | false | | Source file(s) used to populate <br>the `files_yaml` input. [Example](https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml) | | files\_yaml\_from\_source\_file | string | false | | Source file(s) used to populate <br>the `files_yaml` input. [Example](https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml) |
| files\_yaml\_from\_source\_file\_separator | string | false | `"\n"` | Separator used to split the <br>`files_yaml_from_source_file` input | | files\_yaml\_from\_source\_file\_separator | string | false | `"\n"` | Separator used to split the <br>`files_yaml_from_source_file` input |
| include\_all\_old\_new\_renamed\_files | string | false | `"false"` | Include `all_old_new_renamed_files` output. Note this <br>can generate a large output <br>See: [#501](https://github.com/tj-actions/changed-files/issues/501). | | include\_all\_old\_new\_renamed\_files | string | false | `"false"` | Include `all_old_new_renamed_files` output. Note this <br>can generate a large output <br>See: [#501](https://github.com/tj-actions/changed-files/issues/501). |
| json | string | false | `"false"` | Output list of changed files <br>in a JSON formatted string <br>which can be used for <br>matrix jobs. | | json | string | false | `"false"` | Output list of changed files <br>in a JSON formatted string <br>which can be used for <br>matrix jobs. |
| old\_new\_files\_separator | string | false | `" "` | Split character for old and <br>new renamed filename pairs. | | old\_new\_files\_separator | string | false | `" "` | Split character for old and <br>new renamed filename pairs. |
| old\_new\_separator | string | false | `","` | Split character for old and <br>new filename pairs. | | old\_new\_separator | string | false | `","` | Split character for old and <br>new filename pairs. |
| output\_dir | string | false | `".github/outputs"` | Directory to store output files. | | output\_dir | string | false | `".github/outputs"` | Directory to store output files. |
| output\_renamed\_files\_as\_deleted\_and\_added | string | false | `"false"` | Output renamed files as deleted <br>and added files. | | output\_renamed\_files\_as\_deleted\_and\_added | string | false | `"false"` | Output renamed files as deleted <br>and added files. |
| path | string | false | `"."` | Specify a relative path under <br>`$GITHUB_WORKSPACE` to locate the repository. | | path | string | false | `"."` | Specify a relative path under <br>`$GITHUB_WORKSPACE` to locate the repository. |
| quotepath | string | false | `"true"` | Use non-ascii characters to match <br>files and output the filenames <br>completely verbatim by setting this <br>to `false` | | quotepath | string | false | `"true"` | Use non-ascii characters to match <br>files and output the filenames <br>completely verbatim by setting this <br>to `false` |
| recover\_deleted\_files | string | false | `"false"` | Recover deleted files. | | recover\_deleted\_files | string | false | `"false"` | Recover deleted files. |
| recover\_deleted\_files\_to\_destination | string | false | | Recover deleted files to a <br>new destination directory, defaults to <br>the original location. | | recover\_deleted\_files\_to\_destination | string | false | | Recover deleted files to a <br>new destination directory, defaults to <br>the original location. |
| separator | string | false | `" "` | Split character for output strings | | recover\_files | string | false | | File and directory patterns used <br>to recover deleted files, defaults <br>to the patterns provided via <br>the `files`, `files_from_source_file`, `files_ignore` and <br>`files_ignore_from_source_file` inputs or all deleted <br>files if no patterns are <br>provided. |
| sha | string | false | | Specify a different commit SHA <br>used for comparing changes | | recover\_files\_ignore | string | false | | File and directory patterns to <br>ignore when recovering deleted files. |
| since | string | false | | Get changed files for commits <br>whose timestamp is older than <br>the given time. | | recover\_files\_ignore\_separator | string | false | `"\n"` | Separator used to split the <br>`recover_files_ignore` input |
| since\_last\_remote\_commit | string | false | `"false"` | Use the last commit on <br>the remote branch as the <br>`base_sha`. Defaults to the last <br>non-merge commit on the target <br>branch for pull request events <br>and the previous remote commit <br>of the current branch for <br>push events. | | recover\_files\_separator | string | false | `"\n"` | Separator used to split the <br>`recover_files` input |
| skip\_initial\_fetch | string | false | `"false"` | Skip the initial fetch to <br>improve performance for shallow repositories. <br>**NOTE**: This could lead to <br>errors with missing history and <br>the intended use is limited <br>to when you've fetched the <br>history necessary to perform the <br>diff. | | separator | string | false | `" "` | Split character for output strings |
| token | string | false | `"${{ github.token }}"` | Github token used to fetch <br>changed files from Github's API. | | sha | string | false | | Specify a different commit SHA <br>used for comparing changes |
| until | string | false | | Get changed files for commits <br>whose timestamp is earlier than <br>the given time. | | since | string | false | | Get changed files for commits <br>whose timestamp is older than <br>the given time. |
| write\_output\_files | string | false | `"false"` | Write outputs to the `output_dir` <br>defaults to `.github/outputs` folder. **NOTE:** <br>This creates a `.txt` file <br>by default and a `.json` <br>file if `json` is set <br>to `true`. | | since\_last\_remote\_commit | string | false | `"false"` | Use the last commit on <br>the remote branch as the <br>`base_sha`. Defaults to the last <br>non-merge commit on the target <br>branch for pull request events <br>and the previous remote commit <br>of the current branch for <br>push events. |
| skip\_initial\_fetch | string | false | `"false"` | Skip the initial fetch to <br>improve performance for shallow repositories. <br>**NOTE**: This could lead to <br>errors with missing history and <br>the intended use is limited <br>to when you've fetched the <br>history necessary to perform the <br>diff. |
| token | string | false | `"${{ github.token }}"` | Github token used to fetch <br>changed files from Github's API. |
| until | string | false | | Get changed files for commits <br>whose timestamp is earlier than <br>the given time. |
| write\_output\_files | string | false | `"false"` | Write outputs to the `output_dir` <br>defaults to `.github/outputs` folder. **NOTE:** <br>This creates a `.txt` file <br>by default and a `.json` <br>file if `json` is set <br>to `true`. |
<!-- AUTO-DOC-INPUT:END --> <!-- AUTO-DOC-INPUT:END -->
@@ -901,7 +905,7 @@ And many more...
> **Warning**: > **Warning**:
> >
> * Spaces in file names can introduce bugs when using bash loops. See: [#216](https://github.com/tj-actions/changed-files/issues/216) > * Spaces in file names can introduce bugs when using bash loops. See: [#216](https://github.com/tj-actions/changed-files/issues/216)
> However, this action will handle spaces in file names, with a recommendation of using a separator to prevent hidden issues. > However, this action will handle spaces in file names, with a recommendation of using a separator to prevent any hidden issues.
> >
> ![Screen Shot 2021-10-23 at 9 37 34 AM](https://user-images.githubusercontent.com/17484350/138558767-b13c90bf-a1ae-4e86-9520-70a6a4624f41.png) > ![Screen Shot 2021-10-23 at 9 37 34 AM](https://user-images.githubusercontent.com/17484350/138558767-b13c90bf-a1ae-4e86-9520-70a6a4624f41.png)

View File

@@ -152,6 +152,22 @@ inputs:
description: "Recover deleted files to a new destination directory, defaults to the original location." description: "Recover deleted files to a new destination directory, defaults to the original location."
required: false required: false
default: "" default: ""
recover_files:
description: "File and directory patterns used to recover deleted files, defaults to the patterns provided via the `files`, `files_from_source_file`, `files_ignore` and `files_ignore_from_source_file` inputs or all deleted files if no patterns are provided."
required: false
default: ""
recover_files_separator:
description: "Separator used to split the `recover_files` input"
default: "\n"
required: false
recover_files_ignore:
description: "File and directory patterns to ignore when recovering deleted files."
required: false
default: ""
recover_files_ignore_separator:
description: "Separator used to split the `recover_files_ignore` input"
default: "\n"
required: false
token: token:
description: "Github token used to fetch changed files from Github's API." description: "Github token used to fetch changed files from Github's API."
required: false required: false

347
dist/index.js generated vendored
View File

@@ -52,9 +52,9 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getChangedFilesFromGithubAPI = exports.getAllChangeTypeFiles = exports.getChangeTypeFiles = exports.getAllDiffFiles = exports.ChangeTypeEnum = exports.getRenamedFiles = void 0; exports.getChangedFilesFromGithubAPI = exports.getAllChangeTypeFiles = exports.getChangeTypeFiles = exports.getAllDiffFiles = exports.ChangeTypeEnum = exports.getRenamedFiles = void 0;
const core = __importStar(__nccwpck_require__(2186)); const core = __importStar(__nccwpck_require__(2186));
const github = __importStar(__nccwpck_require__(5438)); const github = __importStar(__nccwpck_require__(5438));
const flatten_1 = __importDefault(__nccwpck_require__(2394));
const path = __importStar(__nccwpck_require__(1017)); const path = __importStar(__nccwpck_require__(1017));
const utils_1 = __nccwpck_require__(918); const utils_1 = __nccwpck_require__(918);
const flatten_1 = __importDefault(__nccwpck_require__(2394));
const getRenamedFiles = ({ inputs, workingDirectory, hasSubmodule, diffResult, submodulePaths }) => __awaiter(void 0, void 0, void 0, function* () { const getRenamedFiles = ({ inputs, workingDirectory, hasSubmodule, diffResult, submodulePaths }) => __awaiter(void 0, void 0, void 0, function* () {
const renamedFiles = yield (0, utils_1.gitRenamedFiles)({ const renamedFiles = yield (0, utils_1.gitRenamedFiles)({
cwd: workingDirectory, cwd: workingDirectory,
@@ -213,8 +213,9 @@ const getAllChangeTypeFiles = ({ inputs, changedFiles }) => __awaiter(void 0, vo
}; };
}); });
exports.getAllChangeTypeFiles = getAllChangeTypeFiles; exports.getAllChangeTypeFiles = getAllChangeTypeFiles;
const getChangedFilesFromGithubAPI = ({ inputs, env }) => __awaiter(void 0, void 0, void 0, function* () { const getChangedFilesFromGithubAPI = ({ inputs }) => __awaiter(void 0, void 0, void 0, function* () {
var _a, e_1, _b, _c; var _a, e_1, _b, _c;
var _d;
const octokit = github.getOctokit(inputs.token, { const octokit = github.getOctokit(inputs.token, {
baseUrl: inputs.apiUrl baseUrl: inputs.apiUrl
}); });
@@ -232,7 +233,7 @@ const getChangedFilesFromGithubAPI = ({ inputs, env }) => __awaiter(void 0, void
const options = octokit.rest.pulls.listFiles.endpoint.merge({ const options = octokit.rest.pulls.listFiles.endpoint.merge({
owner: github.context.repo.owner, owner: github.context.repo.owner,
repo: github.context.repo.repo, repo: github.context.repo.repo,
pull_number: env.GITHUB_EVENT_PULL_REQUEST_NUMBER, pull_number: (_d = github.context.payload.pull_request) === null || _d === void 0 ? void 0 : _d.number,
per_page: 100 per_page: 100
}); });
const paginatedResponse = yield octokit.paginate(options); const paginatedResponse = yield octokit.paginate(options);
@@ -247,9 +248,9 @@ const getChangedFilesFromGithubAPI = ({ inputs, env }) => __awaiter(void 0, void
unchanged: ChangeTypeEnum.Unmerged unchanged: ChangeTypeEnum.Unmerged
}; };
try { try {
for (var _d = true, paginatedResponse_1 = __asyncValues(paginatedResponse), paginatedResponse_1_1; paginatedResponse_1_1 = yield paginatedResponse_1.next(), _a = paginatedResponse_1_1.done, !_a; _d = true) { for (var _e = true, paginatedResponse_1 = __asyncValues(paginatedResponse), paginatedResponse_1_1; paginatedResponse_1_1 = yield paginatedResponse_1.next(), _a = paginatedResponse_1_1.done, !_a; _e = true) {
_c = paginatedResponse_1_1.value; _c = paginatedResponse_1_1.value;
_d = false; _e = false;
const item = _c; const item = _c;
const changeType = statusMap[item.status] || ChangeTypeEnum.Unknown; const changeType = statusMap[item.status] || ChangeTypeEnum.Unknown;
if (changeType === ChangeTypeEnum.Renamed) { if (changeType === ChangeTypeEnum.Renamed) {
@@ -269,7 +270,7 @@ const getChangedFilesFromGithubAPI = ({ inputs, env }) => __awaiter(void 0, void
catch (e_1_1) { e_1 = { error: e_1_1 }; } catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally { finally {
try { try {
if (!_d && !_a && (_b = paginatedResponse_1.return)) yield _b.call(paginatedResponse_1); if (!_e && !_a && (_b = paginatedResponse_1.return)) yield _b.call(paginatedResponse_1);
} }
finally { if (e_1) throw e_1.error; } finally { if (e_1) throw e_1.error; }
} }
@@ -325,26 +326,18 @@ const utils_1 = __nccwpck_require__(918);
const getOutputKey = (key, outputPrefix) => { const getOutputKey = (key, outputPrefix) => {
return outputPrefix ? `${outputPrefix}_${key}` : key; return outputPrefix ? `${outputPrefix}_${key}` : key;
}; };
const setChangedFilesOutput = ({ allDiffFiles, inputs, workingDirectory, diffResult, filePatterns = [], outputPrefix = '' }) => __awaiter(void 0, void 0, void 0, function* () { const setChangedFilesOutput = ({ allDiffFiles, inputs, filePatterns = [], outputPrefix = '' }) => __awaiter(void 0, void 0, void 0, function* () {
const allFilteredDiffFiles = yield (0, utils_1.getFilteredChangedFiles)({ const allFilteredDiffFiles = yield (0, utils_1.getFilteredChangedFiles)({
allDiffFiles, allDiffFiles,
filePatterns filePatterns
}); });
core.debug(`All filtered diff files: ${JSON.stringify(allFilteredDiffFiles)}`); core.debug(`All filtered diff files: ${JSON.stringify(allFilteredDiffFiles)}`);
if (diffResult) {
yield (0, utils_1.recoverDeletedFiles)({
inputs,
workingDirectory,
deletedFiles: allFilteredDiffFiles[changedFiles_1.ChangeTypeEnum.Deleted],
sha: diffResult.previousSha
});
}
const addedFiles = yield (0, changedFiles_1.getChangeTypeFiles)({ const addedFiles = yield (0, changedFiles_1.getChangeTypeFiles)({
inputs, inputs,
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [changedFiles_1.ChangeTypeEnum.Added] changeTypes: [changedFiles_1.ChangeTypeEnum.Added]
}); });
core.debug(`Added files: ${addedFiles}`); core.debug(`Added files: ${JSON.stringify(addedFiles)}`);
yield (0, utils_1.setOutput)({ yield (0, utils_1.setOutput)({
key: getOutputKey('added_files', outputPrefix), key: getOutputKey('added_files', outputPrefix),
value: addedFiles.paths, value: addedFiles.paths,
@@ -360,7 +353,7 @@ const setChangedFilesOutput = ({ allDiffFiles, inputs, workingDirectory, diffRes
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [changedFiles_1.ChangeTypeEnum.Copied] changeTypes: [changedFiles_1.ChangeTypeEnum.Copied]
}); });
core.debug(`Copied files: ${copiedFiles}`); core.debug(`Copied files: ${JSON.stringify(copiedFiles)}`);
yield (0, utils_1.setOutput)({ yield (0, utils_1.setOutput)({
key: getOutputKey('copied_files', outputPrefix), key: getOutputKey('copied_files', outputPrefix),
value: copiedFiles.paths, value: copiedFiles.paths,
@@ -376,7 +369,7 @@ const setChangedFilesOutput = ({ allDiffFiles, inputs, workingDirectory, diffRes
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [changedFiles_1.ChangeTypeEnum.Modified] changeTypes: [changedFiles_1.ChangeTypeEnum.Modified]
}); });
core.debug(`Modified files: ${modifiedFiles}`); core.debug(`Modified files: ${JSON.stringify(modifiedFiles)}`);
yield (0, utils_1.setOutput)({ yield (0, utils_1.setOutput)({
key: getOutputKey('modified_files', outputPrefix), key: getOutputKey('modified_files', outputPrefix),
value: modifiedFiles.paths, value: modifiedFiles.paths,
@@ -392,7 +385,7 @@ const setChangedFilesOutput = ({ allDiffFiles, inputs, workingDirectory, diffRes
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [changedFiles_1.ChangeTypeEnum.Renamed] changeTypes: [changedFiles_1.ChangeTypeEnum.Renamed]
}); });
core.debug(`Renamed files: ${renamedFiles}`); core.debug(`Renamed files: ${JSON.stringify(renamedFiles)}`);
yield (0, utils_1.setOutput)({ yield (0, utils_1.setOutput)({
key: getOutputKey('renamed_files', outputPrefix), key: getOutputKey('renamed_files', outputPrefix),
value: renamedFiles.paths, value: renamedFiles.paths,
@@ -408,7 +401,7 @@ const setChangedFilesOutput = ({ allDiffFiles, inputs, workingDirectory, diffRes
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [changedFiles_1.ChangeTypeEnum.TypeChanged] changeTypes: [changedFiles_1.ChangeTypeEnum.TypeChanged]
}); });
core.debug(`Type changed files: ${typeChangedFiles}`); core.debug(`Type changed files: ${JSON.stringify(typeChangedFiles)}`);
yield (0, utils_1.setOutput)({ yield (0, utils_1.setOutput)({
key: getOutputKey('type_changed_files', outputPrefix), key: getOutputKey('type_changed_files', outputPrefix),
value: typeChangedFiles.paths, value: typeChangedFiles.paths,
@@ -424,7 +417,7 @@ const setChangedFilesOutput = ({ allDiffFiles, inputs, workingDirectory, diffRes
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [changedFiles_1.ChangeTypeEnum.Unmerged] changeTypes: [changedFiles_1.ChangeTypeEnum.Unmerged]
}); });
core.debug(`Unmerged files: ${unmergedFiles}`); core.debug(`Unmerged files: ${JSON.stringify(unmergedFiles)}`);
yield (0, utils_1.setOutput)({ yield (0, utils_1.setOutput)({
key: getOutputKey('unmerged_files', outputPrefix), key: getOutputKey('unmerged_files', outputPrefix),
value: unmergedFiles.paths, value: unmergedFiles.paths,
@@ -440,7 +433,7 @@ const setChangedFilesOutput = ({ allDiffFiles, inputs, workingDirectory, diffRes
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [changedFiles_1.ChangeTypeEnum.Unknown] changeTypes: [changedFiles_1.ChangeTypeEnum.Unknown]
}); });
core.debug(`Unknown files: ${unknownFiles}`); core.debug(`Unknown files: ${JSON.stringify(unknownFiles)}`);
yield (0, utils_1.setOutput)({ yield (0, utils_1.setOutput)({
key: getOutputKey('unknown_files', outputPrefix), key: getOutputKey('unknown_files', outputPrefix),
value: unknownFiles.paths, value: unknownFiles.paths,
@@ -455,7 +448,7 @@ const setChangedFilesOutput = ({ allDiffFiles, inputs, workingDirectory, diffRes
inputs, inputs,
changedFiles: allFilteredDiffFiles changedFiles: allFilteredDiffFiles
}); });
core.debug(`All changed and modified files: ${allChangedAndModifiedFiles}`); core.debug(`All changed and modified files: ${JSON.stringify(allChangedAndModifiedFiles)}`);
yield (0, utils_1.setOutput)({ yield (0, utils_1.setOutput)({
key: getOutputKey('all_changed_and_modified_files', outputPrefix), key: getOutputKey('all_changed_and_modified_files', outputPrefix),
value: allChangedAndModifiedFiles.paths, value: allChangedAndModifiedFiles.paths,
@@ -476,7 +469,7 @@ const setChangedFilesOutput = ({ allDiffFiles, inputs, workingDirectory, diffRes
changedFiles_1.ChangeTypeEnum.Renamed changedFiles_1.ChangeTypeEnum.Renamed
] ]
}); });
core.debug(`All changed files: ${allChangedFiles}`); core.debug(`All changed files: ${JSON.stringify(allChangedFiles)}`);
yield (0, utils_1.setOutput)({ yield (0, utils_1.setOutput)({
key: getOutputKey('all_changed_files', outputPrefix), key: getOutputKey('all_changed_files', outputPrefix),
value: allChangedFiles.paths, value: allChangedFiles.paths,
@@ -502,7 +495,7 @@ const setChangedFilesOutput = ({ allDiffFiles, inputs, workingDirectory, diffRes
changedFiles_1.ChangeTypeEnum.Renamed changedFiles_1.ChangeTypeEnum.Renamed
] ]
}); });
core.debug(`All other changed files: ${allOtherChangedFiles}`); core.debug(`All other changed files: ${JSON.stringify(allOtherChangedFiles)}`);
const otherChangedFiles = allOtherChangedFiles.paths const otherChangedFiles = allOtherChangedFiles.paths
.split(inputs.separator) .split(inputs.separator)
.filter((filePath) => !allChangedFiles.paths.split(inputs.separator).includes(filePath)); .filter((filePath) => !allChangedFiles.paths.split(inputs.separator).includes(filePath));
@@ -535,7 +528,7 @@ const setChangedFilesOutput = ({ allDiffFiles, inputs, workingDirectory, diffRes
changedFiles_1.ChangeTypeEnum.Deleted changedFiles_1.ChangeTypeEnum.Deleted
] ]
}); });
core.debug(`All modified files: ${allModifiedFiles}`); core.debug(`All modified files: ${JSON.stringify(allModifiedFiles)}`);
yield (0, utils_1.setOutput)({ yield (0, utils_1.setOutput)({
key: getOutputKey('all_modified_files', outputPrefix), key: getOutputKey('all_modified_files', outputPrefix),
value: allModifiedFiles.paths, value: allModifiedFiles.paths,
@@ -588,7 +581,7 @@ const setChangedFilesOutput = ({ allDiffFiles, inputs, workingDirectory, diffRes
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [changedFiles_1.ChangeTypeEnum.Deleted] changeTypes: [changedFiles_1.ChangeTypeEnum.Deleted]
}); });
core.debug(`Deleted files: ${deletedFiles}`); core.debug(`Deleted files: ${JSON.stringify(deletedFiles)}`);
yield (0, utils_1.setOutput)({ yield (0, utils_1.setOutput)({
key: getOutputKey('deleted_files', outputPrefix), key: getOutputKey('deleted_files', outputPrefix),
value: deletedFiles.paths, value: deletedFiles.paths,
@@ -676,8 +669,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getSHAForPullRequestEvent = exports.getSHAForPushEvent = void 0; exports.getSHAForPullRequestEvent = exports.getSHAForPushEvent = void 0;
const core = __importStar(__nccwpck_require__(2186)); const core = __importStar(__nccwpck_require__(2186));
const github = __importStar(__nccwpck_require__(5438));
const utils_1 = __nccwpck_require__(918); const utils_1 = __nccwpck_require__(918);
const getCurrentSHA = ({ env, inputs, workingDirectory }) => __awaiter(void 0, void 0, void 0, function* () { const getCurrentSHA = ({ inputs, workingDirectory }) => __awaiter(void 0, void 0, void 0, function* () {
var _a, _b, _c, _d, _e, _f;
let currentSha = inputs.sha; let currentSha = inputs.sha;
core.debug('Getting current SHA...'); core.debug('Getting current SHA...');
if (inputs.until) { if (inputs.until) {
@@ -703,13 +698,13 @@ const getCurrentSHA = ({ env, inputs, workingDirectory }) => __awaiter(void 0, v
} }
else { else {
if (!currentSha) { if (!currentSha) {
if (env.GITHUB_EVENT_PULL_REQUEST_HEAD_SHA && if (((_b = (_a = github.context.payload.pull_request) === null || _a === void 0 ? void 0 : _a.head) === null || _b === void 0 ? void 0 : _b.sha) &&
(yield (0, utils_1.verifyCommitSha)({ (yield (0, utils_1.verifyCommitSha)({
sha: env.GITHUB_EVENT_PULL_REQUEST_HEAD_SHA, sha: (_d = (_c = github.context.payload.pull_request) === null || _c === void 0 ? void 0 : _c.head) === null || _d === void 0 ? void 0 : _d.sha,
cwd: workingDirectory, cwd: workingDirectory,
showAsErrorMessage: false showAsErrorMessage: false
})) === 0) { })) === 0) {
currentSha = env.GITHUB_EVENT_PULL_REQUEST_HEAD_SHA; currentSha = (_f = (_e = github.context.payload.pull_request) === null || _e === void 0 ? void 0 : _e.head) === null || _f === void 0 ? void 0 : _f.sha;
} }
else { else {
currentSha = yield (0, utils_1.getHeadSha)({ cwd: workingDirectory }); currentSha = yield (0, utils_1.getHeadSha)({ cwd: workingDirectory });
@@ -721,14 +716,15 @@ const getCurrentSHA = ({ env, inputs, workingDirectory }) => __awaiter(void 0, v
return currentSha; return currentSha;
}); });
const getSHAForPushEvent = (inputs, env, workingDirectory, isShallow, hasSubmodule, gitFetchExtraArgs, isTag) => __awaiter(void 0, void 0, void 0, function* () { const getSHAForPushEvent = (inputs, env, workingDirectory, isShallow, hasSubmodule, gitFetchExtraArgs, isTag) => __awaiter(void 0, void 0, void 0, function* () {
var _g;
let targetBranch = env.GITHUB_REF_NAME; let targetBranch = env.GITHUB_REF_NAME;
const currentBranch = targetBranch; const currentBranch = targetBranch;
let initialCommit = false; let initialCommit = false;
if (isShallow && !inputs.skipInitialFetch) { if (isShallow && !inputs.skipInitialFetch) {
core.info('Repository is shallow, fetching more history...'); core.info('Repository is shallow, fetching more history...');
if (isTag) { if (isTag) {
const sourceBranch = env.GITHUB_EVENT_BASE_REF.replace('refs/heads/', '') || const sourceBranch = github.context.payload.base_ref.replace('refs/heads/', '') ||
env.GITHUB_EVENT_RELEASE_TARGET_COMMITISH; ((_g = github.context.payload.release) === null || _g === void 0 ? void 0 : _g.target_commitish);
yield (0, utils_1.gitFetch)({ yield (0, utils_1.gitFetch)({
cwd: workingDirectory, cwd: workingDirectory,
args: [ args: [
@@ -766,7 +762,7 @@ const getSHAForPushEvent = (inputs, env, workingDirectory, isShallow, hasSubmodu
}); });
} }
} }
const currentSha = yield getCurrentSHA({ env, inputs, workingDirectory }); const currentSha = yield getCurrentSHA({ inputs, workingDirectory });
let previousSha = inputs.baseSha; let previousSha = inputs.baseSha;
const diff = '..'; const diff = '..';
if (previousSha && currentSha && currentBranch && targetBranch) { if (previousSha && currentSha && currentBranch && targetBranch) {
@@ -812,8 +808,9 @@ const getSHAForPushEvent = (inputs, env, workingDirectory, isShallow, hasSubmodu
} }
else { else {
core.debug('Getting previous SHA for last remote commit...'); core.debug('Getting previous SHA for last remote commit...');
if (env.GITHUB_EVENT_FORCED === 'false' || !env.GITHUB_EVENT_FORCED) { if (github.context.payload.forced === 'false' ||
previousSha = env.GITHUB_EVENT_BEFORE; !github.context.payload.forced) {
previousSha = github.context.payload.before;
} }
if (!previousSha || if (!previousSha ||
previousSha === '0000000000000000000000000000000000000000') { previousSha === '0000000000000000000000000000000000000000') {
@@ -863,8 +860,9 @@ const getSHAForPushEvent = (inputs, env, workingDirectory, isShallow, hasSubmodu
}); });
exports.getSHAForPushEvent = getSHAForPushEvent; exports.getSHAForPushEvent = getSHAForPushEvent;
const getSHAForPullRequestEvent = (inputs, env, workingDirectory, isShallow, hasSubmodule, gitFetchExtraArgs) => __awaiter(void 0, void 0, void 0, function* () { const getSHAForPullRequestEvent = (inputs, env, workingDirectory, isShallow, hasSubmodule, gitFetchExtraArgs) => __awaiter(void 0, void 0, void 0, function* () {
let targetBranch = env.GITHUB_EVENT_PULL_REQUEST_BASE_REF; var _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
const currentBranch = env.GITHUB_EVENT_PULL_REQUEST_HEAD_REF; let targetBranch = (_j = (_h = github.context.payload.pull_request) === null || _h === void 0 ? void 0 : _h.base) === null || _j === void 0 ? void 0 : _j.ref;
const currentBranch = (_l = (_k = github.context.payload.pull_request) === null || _k === void 0 ? void 0 : _k.head) === null || _l === void 0 ? void 0 : _l.ref;
if (inputs.sinceLastRemoteCommit) { if (inputs.sinceLastRemoteCommit) {
targetBranch = currentBranch; targetBranch = currentBranch;
} }
@@ -877,7 +875,7 @@ const getSHAForPullRequestEvent = (inputs, env, workingDirectory, isShallow, has
'-u', '-u',
'--progress', '--progress',
'origin', 'origin',
`pull/${env.GITHUB_EVENT_PULL_REQUEST_NUMBER}/head:${currentBranch}` `pull/${(_m = github.context.payload.pull_request) === null || _m === void 0 ? void 0 : _m.number}/head:${currentBranch}`
] ]
}); });
if (prFetchExitCode !== 0) { if (prFetchExitCode !== 0) {
@@ -923,7 +921,7 @@ const getSHAForPullRequestEvent = (inputs, env, workingDirectory, isShallow, has
} }
core.info('Completed fetching more history.'); core.info('Completed fetching more history.');
} }
const currentSha = yield getCurrentSHA({ env, inputs, workingDirectory }); const currentSha = yield getCurrentSHA({ inputs, workingDirectory });
let previousSha = inputs.baseSha; let previousSha = inputs.baseSha;
let diff = '...'; let diff = '...';
if (previousSha && currentSha && currentBranch && targetBranch) { if (previousSha && currentSha && currentBranch && targetBranch) {
@@ -942,13 +940,13 @@ const getSHAForPullRequestEvent = (inputs, env, workingDirectory, isShallow, has
diff diff
}; };
} }
if (!env.GITHUB_EVENT_PULL_REQUEST_BASE_REF || if (!((_p = (_o = github.context.payload.pull_request) === null || _o === void 0 ? void 0 : _o.base) === null || _p === void 0 ? void 0 : _p.ref) ||
env.GITHUB_EVENT_HEAD_REPO_FORK === 'true') { ((_r = (_q = github.context.payload.head) === null || _q === void 0 ? void 0 : _q.repo) === null || _r === void 0 ? void 0 : _r.fork) === 'true') {
diff = '..'; diff = '..';
} }
if (!previousSha) { if (!previousSha) {
if (inputs.sinceLastRemoteCommit) { if (inputs.sinceLastRemoteCommit) {
previousSha = env.GITHUB_EVENT_BEFORE; previousSha = github.context.payload.before;
if (!previousSha || if (!previousSha ||
(previousSha && (previousSha &&
(yield (0, utils_1.verifyCommitSha)({ sha: previousSha, cwd: workingDirectory })) !== (yield (0, utils_1.verifyCommitSha)({ sha: previousSha, cwd: workingDirectory })) !==
@@ -959,7 +957,7 @@ const getSHAForPullRequestEvent = (inputs, env, workingDirectory, isShallow, has
}); });
if (!previousSha) { if (!previousSha) {
core.warning('Unable to locate the previous commit in the local history. Falling back to the pull request base sha.'); core.warning('Unable to locate the previous commit in the local history. Falling back to the pull request base sha.');
previousSha = env.GITHUB_EVENT_PULL_REQUEST_BASE_SHA; previousSha = (_t = (_s = github.context.payload.pull_request) === null || _s === void 0 ? void 0 : _s.base) === null || _t === void 0 ? void 0 : _t.sha;
} }
} }
} }
@@ -969,7 +967,7 @@ const getSHAForPullRequestEvent = (inputs, env, workingDirectory, isShallow, has
branch: targetBranch branch: targetBranch
}); });
if (!previousSha) { if (!previousSha) {
previousSha = env.GITHUB_EVENT_PULL_REQUEST_BASE_SHA; previousSha = (_v = (_u = github.context.payload.pull_request) === null || _u === void 0 ? void 0 : _u.base) === null || _v === void 0 ? void 0 : _v.sha;
} }
if (isShallow) { if (isShallow) {
if (!(yield (0, utils_1.canDiffCommits)({ if (!(yield (0, utils_1.canDiffCommits)({
@@ -1006,7 +1004,7 @@ const getSHAForPullRequestEvent = (inputs, env, workingDirectory, isShallow, has
} }
} }
if (!previousSha || previousSha === currentSha) { if (!previousSha || previousSha === currentSha) {
previousSha = env.GITHUB_EVENT_PULL_REQUEST_BASE_SHA; previousSha = (_x = (_w = github.context.payload.pull_request) === null || _w === void 0 ? void 0 : _w.base) === null || _x === void 0 ? void 0 : _x.sha;
} }
} }
if (!(yield (0, utils_1.canDiffCommits)({ if (!(yield (0, utils_1.canDiffCommits)({
@@ -1039,7 +1037,7 @@ const getSHAForPullRequestEvent = (inputs, env, workingDirectory, isShallow, has
// uses: actions/checkout@v3 // uses: actions/checkout@v3
// with: // with:
// repository: ${{ github.event.pull_request.head.repo.full_name }} // repository: ${{ github.event.pull_request.head.repo.full_name }}
if (env.GITHUB_EVENT_NAME === 'pull_request_target') { if (github.context.eventName === 'pull_request_target') {
core.warning('If this pull request is from a forked repository, please set the checkout action `repository` input to the same repository as the pull request.'); core.warning('If this pull request is from a forked repository, please set the checkout action `repository` input to the same repository as the pull request.');
core.warning('This can be done by setting actions/checkout `repository` to ${{ github.event.pull_request.head.repo.full_name }}'); core.warning('This can be done by setting actions/checkout `repository` to ${{ github.event.pull_request.head.repo.full_name }}');
} }
@@ -1100,35 +1098,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
}; };
Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getEnv = void 0; exports.getEnv = void 0;
const fs_1 = __nccwpck_require__(7147);
const core = __importStar(__nccwpck_require__(2186)); const core = __importStar(__nccwpck_require__(2186));
const getEnv = () => __awaiter(void 0, void 0, void 0, function* () { const getEnv = () => __awaiter(void 0, void 0, void 0, function* () {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; core.debug(`Process Env: ${JSON.stringify(process.env, null, 2)}`);
const eventPath = process.env.GITHUB_EVENT_PATH;
let eventJson = {};
if (eventPath) {
eventJson = JSON.parse(yield fs_1.promises.readFile(eventPath, { encoding: 'utf8' }));
}
core.debug(`Env: ${JSON.stringify(process.env, null, 2)}`);
core.debug(`Event: ${JSON.stringify(eventJson, null, 2)}`);
return { return {
GITHUB_EVENT_PULL_REQUEST_HEAD_REF: ((_b = (_a = eventJson.pull_request) === null || _a === void 0 ? void 0 : _a.head) === null || _b === void 0 ? void 0 : _b.ref) || '',
GITHUB_EVENT_PULL_REQUEST_BASE_REF: ((_d = (_c = eventJson.pull_request) === null || _c === void 0 ? void 0 : _c.base) === null || _d === void 0 ? void 0 : _d.ref) || '',
GITHUB_EVENT_BEFORE: eventJson.before || '',
GITHUB_EVENT_BASE_REF: eventJson.base_ref || '',
GITHUB_EVENT_RELEASE_TARGET_COMMITISH: ((_e = eventJson.release) === null || _e === void 0 ? void 0 : _e.target_commitish) || '',
GITHUB_EVENT_HEAD_REPO_FORK: ((_g = (_f = eventJson.head) === null || _f === void 0 ? void 0 : _f.repo) === null || _g === void 0 ? void 0 : _g.fork) || '',
GITHUB_EVENT_PULL_REQUEST_NUMBER: ((_h = eventJson.pull_request) === null || _h === void 0 ? void 0 : _h.number) || '',
GITHUB_EVENT_PULL_REQUEST_BASE_SHA: ((_k = (_j = eventJson.pull_request) === null || _j === void 0 ? void 0 : _j.base) === null || _k === void 0 ? void 0 : _k.sha) || '',
GITHUB_EVENT_PULL_REQUEST_HEAD_SHA: ((_m = (_l = eventJson.pull_request) === null || _l === void 0 ? void 0 : _l.head) === null || _m === void 0 ? void 0 : _m.sha) || '',
GITHUB_EVENT_FORCED: eventJson.forced || '',
GITHUB_EVENT_ACTION: eventJson.action || '',
GITHUB_REF_NAME: process.env.GITHUB_REF_NAME || '', GITHUB_REF_NAME: process.env.GITHUB_REF_NAME || '',
GITHUB_REF: process.env.GITHUB_REF || '', GITHUB_REF: process.env.GITHUB_REF || '',
GITHUB_WORKSPACE: process.env.GITHUB_WORKSPACE || '', GITHUB_WORKSPACE: process.env.GITHUB_WORKSPACE || ''
GITHUB_EVENT_NAME: process.env.GITHUB_EVENT_NAME || '',
GITHUB_REPOSITORY_OWNER: process.env.GITHUB_REPOSITORY_OWNER || '',
GITHUB_REPOSITORY: process.env.GITHUB_REPOSITORY || ''
}; };
}); });
exports.getEnv = getEnv; exports.getEnv = getEnv;
@@ -1244,6 +1220,18 @@ const getInputs = () => {
required: false required: false
}); });
const recoverDeletedFilesToDestination = core.getInput('recover_deleted_files_to_destination', { required: false }); const recoverDeletedFilesToDestination = core.getInput('recover_deleted_files_to_destination', { required: false });
const recoverFiles = core.getInput('recover_files', { required: false });
const recoverFilesSeparator = core.getInput('recover_files_separator', {
required: false,
trimWhitespace: false
});
const recoverFilesIgnore = core.getInput('recover_files_ignore', {
required: false
});
const recoverFilesIgnoreSeparator = core.getInput('recover_files_ignore_separator', {
required: false,
trimWhitespace: false
});
const token = core.getInput('token', { required: false }); const token = core.getInput('token', { required: false });
const apiUrl = core.getInput('api_url', { required: false }); const apiUrl = core.getInput('api_url', { required: false });
const skipInitialFetch = core.getBooleanInput('skip_initial_fetch', { const skipInitialFetch = core.getBooleanInput('skip_initial_fetch', {
@@ -1276,6 +1264,10 @@ const getInputs = () => {
sinceLastRemoteCommit, sinceLastRemoteCommit,
recoverDeletedFiles, recoverDeletedFiles,
recoverDeletedFilesToDestination, recoverDeletedFilesToDestination,
recoverFiles,
recoverFilesSeparator,
recoverFilesIgnore,
recoverFilesIgnoreSeparator,
includeAllOldNewRenamedFiles, includeAllOldNewRenamedFiles,
oldNewSeparator, oldNewSeparator,
oldNewFilesSeparator, oldNewFilesSeparator,
@@ -1347,6 +1339,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.run = void 0; exports.run = void 0;
const core = __importStar(__nccwpck_require__(2186)); const core = __importStar(__nccwpck_require__(2186));
const github = __importStar(__nccwpck_require__(5438));
const path_1 = __importDefault(__nccwpck_require__(1017)); const path_1 = __importDefault(__nccwpck_require__(1017));
const changedFiles_1 = __nccwpck_require__(7358); const changedFiles_1 = __nccwpck_require__(7358);
const changedFilesOutput_1 = __nccwpck_require__(8930); const changedFilesOutput_1 = __nccwpck_require__(8930);
@@ -1354,8 +1347,42 @@ const commitSha_1 = __nccwpck_require__(8613);
const env_1 = __nccwpck_require__(9763); const env_1 = __nccwpck_require__(9763);
const inputs_1 = __nccwpck_require__(6180); const inputs_1 = __nccwpck_require__(6180);
const utils_1 = __nccwpck_require__(918); const utils_1 = __nccwpck_require__(918);
const changedFilesOutput = ({ filePatterns, allDiffFiles, inputs, yamlFilePatterns }) => __awaiter(void 0, void 0, void 0, function* () {
if (filePatterns.length > 0) {
core.startGroup('changed-files-patterns');
yield (0, changedFilesOutput_1.setChangedFilesOutput)({
allDiffFiles,
filePatterns,
inputs
});
core.info('All Done!');
core.endGroup();
}
if (Object.keys(yamlFilePatterns).length > 0) {
for (const key of Object.keys(yamlFilePatterns)) {
core.startGroup(`changed-files-yaml-${key}`);
yield (0, changedFilesOutput_1.setChangedFilesOutput)({
allDiffFiles,
filePatterns: yamlFilePatterns[key],
outputPrefix: key,
inputs
});
core.info('All Done!');
core.endGroup();
}
}
if (filePatterns.length === 0 && Object.keys(yamlFilePatterns).length === 0) {
core.startGroup('changed-files-all');
yield (0, changedFilesOutput_1.setChangedFilesOutput)({
allDiffFiles,
inputs
});
core.info('All Done!');
core.endGroup();
}
});
const getChangedFilesFromLocalGit = ({ inputs, env, workingDirectory, filePatterns, yamlFilePatterns }) => __awaiter(void 0, void 0, void 0, function* () { const getChangedFilesFromLocalGit = ({ inputs, env, workingDirectory, filePatterns, yamlFilePatterns }) => __awaiter(void 0, void 0, void 0, function* () {
var _a; var _a, _b, _c;
yield (0, utils_1.verifyMinimumGitVersion)(); yield (0, utils_1.verifyMinimumGitVersion)();
let quotePathValue = 'on'; let quotePathValue = 'on';
if (!inputs.quotePath) { if (!inputs.quotePath) {
@@ -1384,12 +1411,12 @@ const getChangedFilesFromLocalGit = ({ inputs, env, workingDirectory, filePatter
gitFetchExtraArgs = ['--prune', '--no-recurse-submodules']; gitFetchExtraArgs = ['--prune', '--no-recurse-submodules'];
} }
let diffResult; let diffResult;
if (!env.GITHUB_EVENT_PULL_REQUEST_BASE_REF) { if (!((_c = (_b = github.context.payload.pull_request) === null || _b === void 0 ? void 0 : _b.base) === null || _c === void 0 ? void 0 : _c.ref)) {
core.info(`Running on a ${env.GITHUB_EVENT_NAME || 'push'} event...`); core.info(`Running on a ${github.context.eventName || 'push'} event...`);
diffResult = yield (0, commitSha_1.getSHAForPushEvent)(inputs, env, workingDirectory, isShallow, hasSubmodule, gitFetchExtraArgs, isTag); diffResult = yield (0, commitSha_1.getSHAForPushEvent)(inputs, env, workingDirectory, isShallow, hasSubmodule, gitFetchExtraArgs, isTag);
} }
else { else {
core.info(`Running on a ${env.GITHUB_EVENT_NAME || 'pull_request'} (${env.GITHUB_EVENT_ACTION}) event...`); core.info(`Running on a ${github.context.eventName || 'pull_request'} (${github.context.payload.action}) event...`);
diffResult = yield (0, commitSha_1.getSHAForPullRequestEvent)(inputs, env, workingDirectory, isShallow, hasSubmodule, gitFetchExtraArgs); diffResult = yield (0, commitSha_1.getSHAForPullRequestEvent)(inputs, env, workingDirectory, isShallow, hasSubmodule, gitFetchExtraArgs);
} }
if (diffResult.initialCommit) { if (diffResult.initialCommit) {
@@ -1408,44 +1435,26 @@ const getChangedFilesFromLocalGit = ({ inputs, env, workingDirectory, filePatter
core.debug(`All diff files: ${JSON.stringify(allDiffFiles)}`); core.debug(`All diff files: ${JSON.stringify(allDiffFiles)}`);
core.info('All Done!'); core.info('All Done!');
core.endGroup(); core.endGroup();
if (filePatterns.length > 0) { if (inputs.recoverDeletedFiles) {
core.startGroup('changed-files-patterns'); let recoverPatterns = (0, utils_1.getRecoverFilePatterns)({ inputs });
yield (0, changedFilesOutput_1.setChangedFilesOutput)({ if (recoverPatterns.length > 0 && filePatterns.length > 0) {
allDiffFiles, core.info('No recover patterns found; defaulting to file patterns');
filePatterns, recoverPatterns = filePatterns;
inputs,
workingDirectory,
diffResult
});
core.info('All Done!');
core.endGroup();
}
if (Object.keys(yamlFilePatterns).length > 0) {
for (const key of Object.keys(yamlFilePatterns)) {
core.startGroup(`changed-files-yaml-${key}`);
yield (0, changedFilesOutput_1.setChangedFilesOutput)({
allDiffFiles,
filePatterns: yamlFilePatterns[key],
outputPrefix: key,
inputs,
workingDirectory,
diffResult
});
core.info('All Done!');
core.endGroup();
} }
} yield (0, utils_1.recoverDeletedFiles)({
if (filePatterns.length === 0 && Object.keys(yamlFilePatterns).length === 0) {
core.startGroup('changed-files-all');
yield (0, changedFilesOutput_1.setChangedFilesOutput)({
allDiffFiles,
inputs, inputs,
workingDirectory, workingDirectory,
diffResult deletedFiles: allDiffFiles[changedFiles_1.ChangeTypeEnum.Deleted],
recoverPatterns,
sha: diffResult.previousSha
}); });
core.info('All Done!');
core.endGroup();
} }
yield changedFilesOutput({
filePatterns,
allDiffFiles,
inputs,
yamlFilePatterns
});
if (inputs.includeAllOldNewRenamedFiles) { if (inputs.includeAllOldNewRenamedFiles) {
core.startGroup('changed-files-all-old-new-renamed-files'); core.startGroup('changed-files-all-old-new-renamed-files');
const allOldNewRenamedFiles = yield (0, changedFiles_1.getRenamedFiles)({ const allOldNewRenamedFiles = yield (0, changedFiles_1.getRenamedFiles)({
@@ -1470,56 +1479,28 @@ const getChangedFilesFromLocalGit = ({ inputs, env, workingDirectory, filePatter
core.endGroup(); core.endGroup();
} }
}); });
const getChangedFilesFromRESTAPI = ({ inputs, env, workingDirectory, filePatterns, yamlFilePatterns }) => __awaiter(void 0, void 0, void 0, function* () { const getChangedFilesFromRESTAPI = ({ inputs, filePatterns, yamlFilePatterns }) => __awaiter(void 0, void 0, void 0, function* () {
const allDiffFiles = yield (0, changedFiles_1.getChangedFilesFromGithubAPI)({ const allDiffFiles = yield (0, changedFiles_1.getChangedFilesFromGithubAPI)({
inputs, inputs
env
}); });
core.debug(`All diff files: ${JSON.stringify(allDiffFiles)}`); core.debug(`All diff files: ${JSON.stringify(allDiffFiles)}`);
core.info('All Done!'); core.info('All Done!');
if (filePatterns.length > 0) { yield changedFilesOutput({
core.startGroup('changed-files-patterns'); filePatterns,
yield (0, changedFilesOutput_1.setChangedFilesOutput)({ allDiffFiles,
allDiffFiles, inputs,
filePatterns, yamlFilePatterns
inputs, });
workingDirectory
});
core.info('All Done!');
core.endGroup();
}
if (Object.keys(yamlFilePatterns).length > 0) {
for (const key of Object.keys(yamlFilePatterns)) {
core.startGroup(`changed-files-yaml-${key}`);
yield (0, changedFilesOutput_1.setChangedFilesOutput)({
allDiffFiles,
filePatterns: yamlFilePatterns[key],
outputPrefix: key,
inputs,
workingDirectory
});
core.info('All Done!');
core.endGroup();
}
}
if (filePatterns.length === 0 && Object.keys(yamlFilePatterns).length === 0) {
core.startGroup('changed-files-all');
yield (0, changedFilesOutput_1.setChangedFilesOutput)({
allDiffFiles,
inputs,
workingDirectory
});
core.info('All Done!');
core.endGroup();
}
}); });
function run() { function run() {
var _a;
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
core.startGroup('changed-files'); core.startGroup('changed-files');
const env = yield (0, env_1.getEnv)(); const env = yield (0, env_1.getEnv)();
core.debug(`Env: ${JSON.stringify(env, null, 2)}`); core.debug(`Env: ${JSON.stringify(env, null, 2)}`);
const inputs = (0, inputs_1.getInputs)(); const inputs = (0, inputs_1.getInputs)();
core.debug(`Inputs: ${JSON.stringify(inputs, null, 2)}`); core.debug(`Inputs: ${JSON.stringify(inputs, null, 2)}`);
core.debug(`Github Context: ${JSON.stringify(github.context, null, 2)}`);
const workingDirectory = path_1.default.resolve(env.GITHUB_WORKSPACE || process.cwd(), inputs.path); const workingDirectory = path_1.default.resolve(env.GITHUB_WORKSPACE || process.cwd(), inputs.path);
core.debug(`Working directory: ${workingDirectory}`); core.debug(`Working directory: ${workingDirectory}`);
const hasGitDirectory = yield (0, utils_1.hasLocalGitDirectory)({ workingDirectory }); const hasGitDirectory = yield (0, utils_1.hasLocalGitDirectory)({ workingDirectory });
@@ -1535,7 +1516,7 @@ function run() {
}); });
core.debug(`Yaml file patterns: ${JSON.stringify(yamlFilePatterns)}`); core.debug(`Yaml file patterns: ${JSON.stringify(yamlFilePatterns)}`);
if (inputs.token && if (inputs.token &&
env.GITHUB_EVENT_PULL_REQUEST_NUMBER && ((_a = github.context.payload.pull_request) === null || _a === void 0 ? void 0 : _a.number) &&
!hasGitDirectory) { !hasGitDirectory) {
core.info("Using GitHub's REST API to get changed files"); core.info("Using GitHub's REST API to get changed files");
const unsupportedInputs = [ const unsupportedInputs = [
@@ -1555,8 +1536,6 @@ function run() {
} }
yield getChangedFilesFromRESTAPI({ yield getChangedFilesFromRESTAPI({
inputs, inputs,
env,
workingDirectory,
filePatterns, filePatterns,
yamlFilePatterns yamlFilePatterns
}); });
@@ -1649,7 +1628,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod }; return (mod && mod.__esModule) ? mod : { "default": mod };
}; };
Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.hasLocalGitDirectory = exports.recoverDeletedFiles = exports.setOutput = exports.getYamlFilePatterns = exports.getFilePatterns = exports.jsonOutput = exports.getDirnameMaxDepth = exports.canDiffCommits = exports.getPreviousGitTag = exports.verifyCommitSha = exports.getParentSha = exports.getRemoteBranchHeadSha = exports.isInsideWorkTree = exports.getHeadSha = exports.gitLog = exports.getFilteredChangedFiles = exports.getAllChangedFiles = exports.gitRenamedFiles = exports.gitSubmoduleDiffSHA = exports.getSubmodulePath = exports.gitFetchSubmodules = exports.gitFetch = exports.submoduleExists = exports.isRepoShallow = exports.updateGitGlobalConfig = exports.verifyMinimumGitVersion = void 0; exports.hasLocalGitDirectory = exports.recoverDeletedFiles = exports.setOutput = exports.getRecoverFilePatterns = exports.getYamlFilePatterns = exports.getFilePatterns = exports.jsonOutput = exports.getDirnameMaxDepth = exports.canDiffCommits = exports.getPreviousGitTag = exports.verifyCommitSha = exports.getParentSha = exports.getRemoteBranchHeadSha = exports.isInsideWorkTree = exports.getHeadSha = exports.gitLog = exports.getFilteredChangedFiles = exports.getAllChangedFiles = exports.gitRenamedFiles = exports.gitSubmoduleDiffSHA = exports.getSubmodulePath = exports.gitFetchSubmodules = exports.gitFetch = exports.submoduleExists = exports.isRepoShallow = exports.updateGitGlobalConfig = exports.verifyMinimumGitVersion = void 0;
/*global AsyncIterableIterator*/ /*global AsyncIterableIterator*/
const core = __importStar(__nccwpck_require__(2186)); const core = __importStar(__nccwpck_require__(2186));
const exec = __importStar(__nccwpck_require__(1514)); const exec = __importStar(__nccwpck_require__(1514));
@@ -2222,18 +2201,18 @@ const getYamlFilePatternsFromContents = ({ content = '', filePath = '', excluded
const doc = (0, yaml_1.parseDocument)(source, { merge: true, schema: 'failsafe' }); const doc = (0, yaml_1.parseDocument)(source, { merge: true, schema: 'failsafe' });
if (doc.errors.length > 0) { if (doc.errors.length > 0) {
if (filePath) { if (filePath) {
core.warning(`YAML errors in ${filePath}: ${doc.errors}`); throw new Error(`YAML errors in ${filePath}: ${doc.errors}`);
} }
else { else {
core.warning(`YAML errors: ${doc.errors}`); throw new Error(`YAML errors: ${doc.errors}`);
} }
} }
if (doc.warnings.length > 0) { if (doc.warnings.length > 0) {
if (filePath) { if (filePath) {
core.warning(`YAML warnings in ${filePath}: ${doc.warnings}`); throw new Error(`YAML warnings in ${filePath}: ${doc.warnings}`);
} }
else { else {
core.warning(`YAML warnings: ${doc.warnings}`); throw new Error(`YAML warnings: ${doc.warnings}`);
} }
} }
const yamlObject = doc.toJS(); const yamlObject = doc.toJS();
@@ -2317,6 +2296,23 @@ const getYamlFilePatterns = ({ inputs, workingDirectory }) => __awaiter(void 0,
return filePatterns; return filePatterns;
}); });
exports.getYamlFilePatterns = getYamlFilePatterns; exports.getYamlFilePatterns = getYamlFilePatterns;
const getRecoverFilePatterns = ({ inputs }) => {
let filePatterns = inputs.recoverFiles.split(inputs.recoverFilesSeparator);
if (inputs.recoverFilesIgnore) {
const ignoreFilePatterns = inputs.recoverFilesIgnore.split(inputs.recoverFilesSeparator);
filePatterns = filePatterns.concat(ignoreFilePatterns.map(p => {
if (p.startsWith('!')) {
return p;
}
else {
return `!${p}`;
}
}));
}
core.debug(`recover file patterns: ${filePatterns}`);
return filePatterns.filter(Boolean);
};
exports.getRecoverFilePatterns = getRecoverFilePatterns;
const setOutput = ({ key, value, inputs }) => __awaiter(void 0, void 0, void 0, function* () { const setOutput = ({ key, value, inputs }) => __awaiter(void 0, void 0, void 0, function* () {
const cleanedValue = value.toString().trim(); const cleanedValue = value.toString().trim();
core.setOutput(key, cleanedValue); core.setOutput(key, cleanedValue);
@@ -2342,31 +2338,38 @@ const getDeletedFileContents = ({ cwd, filePath, sha }) => __awaiter(void 0, voi
} }
return stdout; return stdout;
}); });
const recoverDeletedFiles = ({ inputs, workingDirectory, deletedFiles, sha }) => __awaiter(void 0, void 0, void 0, function* () { const recoverDeletedFiles = ({ inputs, workingDirectory, deletedFiles, recoverPatterns, sha }) => __awaiter(void 0, void 0, void 0, function* () {
if (inputs.recoverDeletedFiles) { let recoverableDeletedFiles = deletedFiles;
for (const deletedFile of deletedFiles) { core.debug(`recoverable deleted files: ${recoverableDeletedFiles}`);
let target = path.join(workingDirectory, deletedFile); if (recoverPatterns.length > 0) {
if (inputs.recoverDeletedFilesToDestination) { recoverableDeletedFiles = (0, micromatch_1.default)(deletedFiles, recoverPatterns, {
target = path.join(workingDirectory, inputs.recoverDeletedFilesToDestination, deletedFile); dot: true,
} windows: IS_WINDOWS,
const deletedFileContents = yield getDeletedFileContents({ noext: true
cwd: workingDirectory, });
filePath: deletedFile, core.debug(`filtered recoverable deleted files: ${recoverableDeletedFiles}`);
sha }
}); for (const deletedFile of recoverableDeletedFiles) {
if (!(yield exists(path.dirname(target)))) { let target = path.join(workingDirectory, deletedFile);
yield fs_1.promises.mkdir(path.dirname(target), { recursive: true }); if (inputs.recoverDeletedFilesToDestination) {
} target = path.join(workingDirectory, inputs.recoverDeletedFilesToDestination, deletedFile);
yield fs_1.promises.writeFile(target, deletedFileContents);
} }
const deletedFileContents = yield getDeletedFileContents({
cwd: workingDirectory,
filePath: deletedFile,
sha
});
if (!(yield exists(path.dirname(target)))) {
yield fs_1.promises.mkdir(path.dirname(target), { recursive: true });
}
yield fs_1.promises.writeFile(target, deletedFileContents);
} }
}); });
exports.recoverDeletedFiles = recoverDeletedFiles; exports.recoverDeletedFiles = recoverDeletedFiles;
const hasLocalGitDirectory = ({ workingDirectory }) => __awaiter(void 0, void 0, void 0, function* () { const hasLocalGitDirectory = ({ workingDirectory }) => __awaiter(void 0, void 0, void 0, function* () {
const insideWorkTree = yield (0, exports.isInsideWorkTree)({ return yield (0, exports.isInsideWorkTree)({
cwd: workingDirectory cwd: workingDirectory
}); });
return insideWorkTree;
}); });
exports.hasLocalGitDirectory = hasLocalGitDirectory; exports.hasLocalGitDirectory = hasLocalGitDirectory;

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,19 +1,18 @@
import * as core from '@actions/core' import * as core from '@actions/core'
import * as github from '@actions/github' import * as github from '@actions/github'
import type {RestEndpointMethodTypes} from '@octokit/rest' import type {RestEndpointMethodTypes} from '@octokit/rest'
import flatten from 'lodash/flatten'
import * as path from 'path' import * as path from 'path'
import {DiffResult} from './commitSha' import {DiffResult} from './commitSha'
import {Env} from './env'
import {Inputs} from './inputs' import {Inputs} from './inputs'
import { import {
getAllChangedFiles,
getDirnameMaxDepth, getDirnameMaxDepth,
gitRenamedFiles, gitRenamedFiles,
gitSubmoduleDiffSHA, gitSubmoduleDiffSHA,
jsonOutput, jsonOutput
getAllChangedFiles
} from './utils' } from './utils'
import flatten from 'lodash/flatten'
export const getRenamedFiles = async ({ export const getRenamedFiles = async ({
inputs, inputs,
@@ -252,11 +251,9 @@ export const getAllChangeTypeFiles = async ({
} }
export const getChangedFilesFromGithubAPI = async ({ export const getChangedFilesFromGithubAPI = async ({
inputs, inputs
env
}: { }: {
inputs: Inputs inputs: Inputs
env: Env
}): Promise<ChangedFiles> => { }): Promise<ChangedFiles> => {
const octokit = github.getOctokit(inputs.token, { const octokit = github.getOctokit(inputs.token, {
baseUrl: inputs.apiUrl baseUrl: inputs.apiUrl
@@ -277,7 +274,7 @@ export const getChangedFilesFromGithubAPI = async ({
const options = octokit.rest.pulls.listFiles.endpoint.merge({ const options = octokit.rest.pulls.listFiles.endpoint.merge({
owner: github.context.repo.owner, owner: github.context.repo.owner,
repo: github.context.repo.repo, repo: github.context.repo.repo,
pull_number: env.GITHUB_EVENT_PULL_REQUEST_NUMBER, pull_number: github.context.payload.pull_request?.number,
per_page: 100 per_page: 100
}) })

View File

@@ -5,9 +5,8 @@ import {
getAllChangeTypeFiles, getAllChangeTypeFiles,
getChangeTypeFiles getChangeTypeFiles
} from './changedFiles' } from './changedFiles'
import {DiffResult} from './commitSha'
import {Inputs} from './inputs' import {Inputs} from './inputs'
import {getFilteredChangedFiles, recoverDeletedFiles, setOutput} from './utils' import {getFilteredChangedFiles, setOutput} from './utils'
const getOutputKey = (key: string, outputPrefix: string): string => { const getOutputKey = (key: string, outputPrefix: string): string => {
return outputPrefix ? `${outputPrefix}_${key}` : key return outputPrefix ? `${outputPrefix}_${key}` : key
@@ -16,15 +15,11 @@ const getOutputKey = (key: string, outputPrefix: string): string => {
export const setChangedFilesOutput = async ({ export const setChangedFilesOutput = async ({
allDiffFiles, allDiffFiles,
inputs, inputs,
workingDirectory,
diffResult,
filePatterns = [], filePatterns = [],
outputPrefix = '' outputPrefix = ''
}: { }: {
allDiffFiles: ChangedFiles allDiffFiles: ChangedFiles
inputs: Inputs inputs: Inputs
workingDirectory: string
diffResult?: DiffResult
filePatterns?: string[] filePatterns?: string[]
outputPrefix?: string outputPrefix?: string
}): Promise<void> => { }): Promise<void> => {
@@ -34,21 +29,12 @@ export const setChangedFilesOutput = async ({
}) })
core.debug(`All filtered diff files: ${JSON.stringify(allFilteredDiffFiles)}`) core.debug(`All filtered diff files: ${JSON.stringify(allFilteredDiffFiles)}`)
if (diffResult) {
await recoverDeletedFiles({
inputs,
workingDirectory,
deletedFiles: allFilteredDiffFiles[ChangeTypeEnum.Deleted],
sha: diffResult.previousSha
})
}
const addedFiles = await getChangeTypeFiles({ const addedFiles = await getChangeTypeFiles({
inputs, inputs,
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [ChangeTypeEnum.Added] changeTypes: [ChangeTypeEnum.Added]
}) })
core.debug(`Added files: ${addedFiles}`) core.debug(`Added files: ${JSON.stringify(addedFiles)}`)
await setOutput({ await setOutput({
key: getOutputKey('added_files', outputPrefix), key: getOutputKey('added_files', outputPrefix),
value: addedFiles.paths, value: addedFiles.paths,
@@ -65,7 +51,7 @@ export const setChangedFilesOutput = async ({
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [ChangeTypeEnum.Copied] changeTypes: [ChangeTypeEnum.Copied]
}) })
core.debug(`Copied files: ${copiedFiles}`) core.debug(`Copied files: ${JSON.stringify(copiedFiles)}`)
await setOutput({ await setOutput({
key: getOutputKey('copied_files', outputPrefix), key: getOutputKey('copied_files', outputPrefix),
value: copiedFiles.paths, value: copiedFiles.paths,
@@ -83,7 +69,7 @@ export const setChangedFilesOutput = async ({
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [ChangeTypeEnum.Modified] changeTypes: [ChangeTypeEnum.Modified]
}) })
core.debug(`Modified files: ${modifiedFiles}`) core.debug(`Modified files: ${JSON.stringify(modifiedFiles)}`)
await setOutput({ await setOutput({
key: getOutputKey('modified_files', outputPrefix), key: getOutputKey('modified_files', outputPrefix),
value: modifiedFiles.paths, value: modifiedFiles.paths,
@@ -101,7 +87,7 @@ export const setChangedFilesOutput = async ({
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [ChangeTypeEnum.Renamed] changeTypes: [ChangeTypeEnum.Renamed]
}) })
core.debug(`Renamed files: ${renamedFiles}`) core.debug(`Renamed files: ${JSON.stringify(renamedFiles)}`)
await setOutput({ await setOutput({
key: getOutputKey('renamed_files', outputPrefix), key: getOutputKey('renamed_files', outputPrefix),
value: renamedFiles.paths, value: renamedFiles.paths,
@@ -119,7 +105,7 @@ export const setChangedFilesOutput = async ({
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [ChangeTypeEnum.TypeChanged] changeTypes: [ChangeTypeEnum.TypeChanged]
}) })
core.debug(`Type changed files: ${typeChangedFiles}`) core.debug(`Type changed files: ${JSON.stringify(typeChangedFiles)}`)
await setOutput({ await setOutput({
key: getOutputKey('type_changed_files', outputPrefix), key: getOutputKey('type_changed_files', outputPrefix),
value: typeChangedFiles.paths, value: typeChangedFiles.paths,
@@ -137,7 +123,7 @@ export const setChangedFilesOutput = async ({
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [ChangeTypeEnum.Unmerged] changeTypes: [ChangeTypeEnum.Unmerged]
}) })
core.debug(`Unmerged files: ${unmergedFiles}`) core.debug(`Unmerged files: ${JSON.stringify(unmergedFiles)}`)
await setOutput({ await setOutput({
key: getOutputKey('unmerged_files', outputPrefix), key: getOutputKey('unmerged_files', outputPrefix),
value: unmergedFiles.paths, value: unmergedFiles.paths,
@@ -155,7 +141,7 @@ export const setChangedFilesOutput = async ({
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [ChangeTypeEnum.Unknown] changeTypes: [ChangeTypeEnum.Unknown]
}) })
core.debug(`Unknown files: ${unknownFiles}`) core.debug(`Unknown files: ${JSON.stringify(unknownFiles)}`)
await setOutput({ await setOutput({
key: getOutputKey('unknown_files', outputPrefix), key: getOutputKey('unknown_files', outputPrefix),
value: unknownFiles.paths, value: unknownFiles.paths,
@@ -172,7 +158,11 @@ export const setChangedFilesOutput = async ({
inputs, inputs,
changedFiles: allFilteredDiffFiles changedFiles: allFilteredDiffFiles
}) })
core.debug(`All changed and modified files: ${allChangedAndModifiedFiles}`) core.debug(
`All changed and modified files: ${JSON.stringify(
allChangedAndModifiedFiles
)}`
)
await setOutput({ await setOutput({
key: getOutputKey('all_changed_and_modified_files', outputPrefix), key: getOutputKey('all_changed_and_modified_files', outputPrefix),
value: allChangedAndModifiedFiles.paths, value: allChangedAndModifiedFiles.paths,
@@ -195,7 +185,7 @@ export const setChangedFilesOutput = async ({
ChangeTypeEnum.Renamed ChangeTypeEnum.Renamed
] ]
}) })
core.debug(`All changed files: ${allChangedFiles}`) core.debug(`All changed files: ${JSON.stringify(allChangedFiles)}`)
await setOutput({ await setOutput({
key: getOutputKey('all_changed_files', outputPrefix), key: getOutputKey('all_changed_files', outputPrefix),
value: allChangedFiles.paths, value: allChangedFiles.paths,
@@ -224,7 +214,7 @@ export const setChangedFilesOutput = async ({
ChangeTypeEnum.Renamed ChangeTypeEnum.Renamed
] ]
}) })
core.debug(`All other changed files: ${allOtherChangedFiles}`) core.debug(`All other changed files: ${JSON.stringify(allOtherChangedFiles)}`)
const otherChangedFiles = allOtherChangedFiles.paths const otherChangedFiles = allOtherChangedFiles.paths
.split(inputs.separator) .split(inputs.separator)
@@ -267,7 +257,7 @@ export const setChangedFilesOutput = async ({
ChangeTypeEnum.Deleted ChangeTypeEnum.Deleted
] ]
}) })
core.debug(`All modified files: ${allModifiedFiles}`) core.debug(`All modified files: ${JSON.stringify(allModifiedFiles)}`)
await setOutput({ await setOutput({
key: getOutputKey('all_modified_files', outputPrefix), key: getOutputKey('all_modified_files', outputPrefix),
value: allModifiedFiles.paths, value: allModifiedFiles.paths,
@@ -333,7 +323,7 @@ export const setChangedFilesOutput = async ({
changedFiles: allFilteredDiffFiles, changedFiles: allFilteredDiffFiles,
changeTypes: [ChangeTypeEnum.Deleted] changeTypes: [ChangeTypeEnum.Deleted]
}) })
core.debug(`Deleted files: ${deletedFiles}`) core.debug(`Deleted files: ${JSON.stringify(deletedFiles)}`)
await setOutput({ await setOutput({
key: getOutputKey('deleted_files', outputPrefix), key: getOutputKey('deleted_files', outputPrefix),
value: deletedFiles.paths, value: deletedFiles.paths,

View File

@@ -1,4 +1,5 @@
import * as core from '@actions/core' import * as core from '@actions/core'
import * as github from '@actions/github'
import {Env} from './env' import {Env} from './env'
import {Inputs} from './inputs' import {Inputs} from './inputs'
@@ -15,11 +16,9 @@ import {
} from './utils' } from './utils'
const getCurrentSHA = async ({ const getCurrentSHA = async ({
env,
inputs, inputs,
workingDirectory workingDirectory
}: { }: {
env: Env
inputs: Inputs inputs: Inputs
workingDirectory: string workingDirectory: string
}): Promise<string> => { }): Promise<string> => {
@@ -50,14 +49,14 @@ const getCurrentSHA = async ({
} else { } else {
if (!currentSha) { if (!currentSha) {
if ( if (
env.GITHUB_EVENT_PULL_REQUEST_HEAD_SHA && github.context.payload.pull_request?.head?.sha &&
(await verifyCommitSha({ (await verifyCommitSha({
sha: env.GITHUB_EVENT_PULL_REQUEST_HEAD_SHA, sha: github.context.payload.pull_request?.head?.sha,
cwd: workingDirectory, cwd: workingDirectory,
showAsErrorMessage: false showAsErrorMessage: false
})) === 0 })) === 0
) { ) {
currentSha = env.GITHUB_EVENT_PULL_REQUEST_HEAD_SHA currentSha = github.context.payload.pull_request?.head?.sha
} else { } else {
currentSha = await getHeadSha({cwd: workingDirectory}) currentSha = await getHeadSha({cwd: workingDirectory})
} }
@@ -97,8 +96,8 @@ export const getSHAForPushEvent = async (
if (isTag) { if (isTag) {
const sourceBranch = const sourceBranch =
env.GITHUB_EVENT_BASE_REF.replace('refs/heads/', '') || github.context.payload.base_ref.replace('refs/heads/', '') ||
env.GITHUB_EVENT_RELEASE_TARGET_COMMITISH github.context.payload.release?.target_commitish
await gitFetch({ await gitFetch({
cwd: workingDirectory, cwd: workingDirectory,
args: [ args: [
@@ -137,7 +136,7 @@ export const getSHAForPushEvent = async (
} }
} }
const currentSha = await getCurrentSHA({env, inputs, workingDirectory}) const currentSha = await getCurrentSHA({inputs, workingDirectory})
let previousSha = inputs.baseSha let previousSha = inputs.baseSha
const diff = '..' const diff = '..'
@@ -191,8 +190,11 @@ export const getSHAForPushEvent = async (
targetBranch = tag targetBranch = tag
} else { } else {
core.debug('Getting previous SHA for last remote commit...') core.debug('Getting previous SHA for last remote commit...')
if (env.GITHUB_EVENT_FORCED === 'false' || !env.GITHUB_EVENT_FORCED) { if (
previousSha = env.GITHUB_EVENT_BEFORE github.context.payload.forced === 'false' ||
!github.context.payload.forced
) {
previousSha = github.context.payload.before
} }
if ( if (
@@ -265,8 +267,8 @@ export const getSHAForPullRequestEvent = async (
hasSubmodule: boolean, hasSubmodule: boolean,
gitFetchExtraArgs: string[] gitFetchExtraArgs: string[]
): Promise<DiffResult> => { ): Promise<DiffResult> => {
let targetBranch = env.GITHUB_EVENT_PULL_REQUEST_BASE_REF let targetBranch = github.context.payload.pull_request?.base?.ref
const currentBranch = env.GITHUB_EVENT_PULL_REQUEST_HEAD_REF const currentBranch = github.context.payload.pull_request?.head?.ref
if (inputs.sinceLastRemoteCommit) { if (inputs.sinceLastRemoteCommit) {
targetBranch = currentBranch targetBranch = currentBranch
} }
@@ -281,7 +283,7 @@ export const getSHAForPullRequestEvent = async (
'-u', '-u',
'--progress', '--progress',
'origin', 'origin',
`pull/${env.GITHUB_EVENT_PULL_REQUEST_NUMBER}/head:${currentBranch}` `pull/${github.context.payload.pull_request?.number}/head:${currentBranch}`
] ]
}) })
@@ -334,7 +336,7 @@ export const getSHAForPullRequestEvent = async (
core.info('Completed fetching more history.') core.info('Completed fetching more history.')
} }
const currentSha = await getCurrentSHA({env, inputs, workingDirectory}) const currentSha = await getCurrentSHA({inputs, workingDirectory})
let previousSha = inputs.baseSha let previousSha = inputs.baseSha
let diff = '...' let diff = '...'
@@ -362,15 +364,15 @@ export const getSHAForPullRequestEvent = async (
} }
if ( if (
!env.GITHUB_EVENT_PULL_REQUEST_BASE_REF || !github.context.payload.pull_request?.base?.ref ||
env.GITHUB_EVENT_HEAD_REPO_FORK === 'true' github.context.payload.head?.repo?.fork === 'true'
) { ) {
diff = '..' diff = '..'
} }
if (!previousSha) { if (!previousSha) {
if (inputs.sinceLastRemoteCommit) { if (inputs.sinceLastRemoteCommit) {
previousSha = env.GITHUB_EVENT_BEFORE previousSha = github.context.payload.before
if ( if (
!previousSha || !previousSha ||
@@ -389,7 +391,7 @@ export const getSHAForPullRequestEvent = async (
core.warning( core.warning(
'Unable to locate the previous commit in the local history. Falling back to the pull request base sha.' 'Unable to locate the previous commit in the local history. Falling back to the pull request base sha.'
) )
previousSha = env.GITHUB_EVENT_PULL_REQUEST_BASE_SHA previousSha = github.context.payload.pull_request?.base?.sha
} }
} }
} else { } else {
@@ -399,7 +401,7 @@ export const getSHAForPullRequestEvent = async (
}) })
if (!previousSha) { if (!previousSha) {
previousSha = env.GITHUB_EVENT_PULL_REQUEST_BASE_SHA previousSha = github.context.payload.pull_request?.base?.sha
} }
if (isShallow) { if (isShallow) {
@@ -449,7 +451,7 @@ export const getSHAForPullRequestEvent = async (
} }
if (!previousSha || previousSha === currentSha) { if (!previousSha || previousSha === currentSha) {
previousSha = env.GITHUB_EVENT_PULL_REQUEST_BASE_SHA previousSha = github.context.payload.pull_request?.base?.sha
} }
} }
@@ -494,7 +496,7 @@ export const getSHAForPullRequestEvent = async (
// uses: actions/checkout@v3 // uses: actions/checkout@v3
// with: // with:
// repository: ${{ github.event.pull_request.head.repo.full_name }} // repository: ${{ github.event.pull_request.head.repo.full_name }}
if (env.GITHUB_EVENT_NAME === 'pull_request_target') { if (github.context.eventName === 'pull_request_target') {
core.warning( core.warning(
'If this pull request is from a forked repository, please set the checkout action `repository` input to the same repository as the pull request.' 'If this pull request is from a forked repository, please set the checkout action `repository` input to the same repository as the pull request.'
) )

View File

@@ -1,80 +1,16 @@
import {promises as fs} from 'fs'
import * as core from '@actions/core' import * as core from '@actions/core'
export type Env = { export type Env = {
GITHUB_REF_NAME: string GITHUB_REF_NAME: string
GITHUB_REF: string GITHUB_REF: string
GITHUB_WORKSPACE: string GITHUB_WORKSPACE: string
GITHUB_EVENT_ACTION: string
GITHUB_EVENT_NAME: string
GITHUB_EVENT_FORCED: string
GITHUB_EVENT_BEFORE: string
GITHUB_EVENT_BASE_REF: string
GITHUB_EVENT_RELEASE_TARGET_COMMITISH: string
GITHUB_EVENT_HEAD_REPO_FORK: string
GITHUB_EVENT_PULL_REQUEST_NUMBER: string
GITHUB_EVENT_PULL_REQUEST_BASE_SHA: string
GITHUB_EVENT_PULL_REQUEST_HEAD_SHA: string
GITHUB_EVENT_PULL_REQUEST_HEAD_REF: string
GITHUB_EVENT_PULL_REQUEST_BASE_REF: string
GITHUB_REPOSITORY_OWNER: string
GITHUB_REPOSITORY: string
} }
type GithubEvent = {
action?: string
forced?: string
pull_request?: {
head: {
ref: string
sha: string
}
base: {
ref: string
sha: string
}
number: string
}
release?: {
target_commitish: string
}
before?: string
base_ref?: string
head?: {
repo?: {
fork: string
}
}
}
export const getEnv = async (): Promise<Env> => { export const getEnv = async (): Promise<Env> => {
const eventPath = process.env.GITHUB_EVENT_PATH core.debug(`Process Env: ${JSON.stringify(process.env, null, 2)}`)
let eventJson: GithubEvent = {}
if (eventPath) {
eventJson = JSON.parse(await fs.readFile(eventPath, {encoding: 'utf8'}))
}
core.debug(`Env: ${JSON.stringify(process.env, null, 2)}`)
core.debug(`Event: ${JSON.stringify(eventJson, null, 2)}`)
return { return {
GITHUB_EVENT_PULL_REQUEST_HEAD_REF: eventJson.pull_request?.head?.ref || '',
GITHUB_EVENT_PULL_REQUEST_BASE_REF: eventJson.pull_request?.base?.ref || '',
GITHUB_EVENT_BEFORE: eventJson.before || '',
GITHUB_EVENT_BASE_REF: eventJson.base_ref || '',
GITHUB_EVENT_RELEASE_TARGET_COMMITISH:
eventJson.release?.target_commitish || '',
GITHUB_EVENT_HEAD_REPO_FORK: eventJson.head?.repo?.fork || '',
GITHUB_EVENT_PULL_REQUEST_NUMBER: eventJson.pull_request?.number || '',
GITHUB_EVENT_PULL_REQUEST_BASE_SHA: eventJson.pull_request?.base?.sha || '',
GITHUB_EVENT_PULL_REQUEST_HEAD_SHA: eventJson.pull_request?.head?.sha || '',
GITHUB_EVENT_FORCED: eventJson.forced || '',
GITHUB_EVENT_ACTION: eventJson.action || '',
GITHUB_REF_NAME: process.env.GITHUB_REF_NAME || '', GITHUB_REF_NAME: process.env.GITHUB_REF_NAME || '',
GITHUB_REF: process.env.GITHUB_REF || '', GITHUB_REF: process.env.GITHUB_REF || '',
GITHUB_WORKSPACE: process.env.GITHUB_WORKSPACE || '', GITHUB_WORKSPACE: process.env.GITHUB_WORKSPACE || ''
GITHUB_EVENT_NAME: process.env.GITHUB_EVENT_NAME || '',
GITHUB_REPOSITORY_OWNER: process.env.GITHUB_REPOSITORY_OWNER || '',
GITHUB_REPOSITORY: process.env.GITHUB_REPOSITORY || ''
} }
} }

View File

@@ -38,6 +38,10 @@ export type Inputs = {
outputRenamedFilesAsDeletedAndAdded: boolean outputRenamedFilesAsDeletedAndAdded: boolean
recoverDeletedFiles: boolean recoverDeletedFiles: boolean
recoverDeletedFilesToDestination: string recoverDeletedFilesToDestination: string
recoverFiles: string
recoverFilesSeparator: string
recoverFilesIgnore: string
recoverFilesIgnoreSeparator: string
token: string token: string
apiUrl: string apiUrl: string
skipInitialFetch: boolean skipInitialFetch: boolean
@@ -153,6 +157,21 @@ export const getInputs = (): Inputs => {
'recover_deleted_files_to_destination', 'recover_deleted_files_to_destination',
{required: false} {required: false}
) )
const recoverFiles = core.getInput('recover_files', {required: false})
const recoverFilesSeparator = core.getInput('recover_files_separator', {
required: false,
trimWhitespace: false
})
const recoverFilesIgnore = core.getInput('recover_files_ignore', {
required: false
})
const recoverFilesIgnoreSeparator = core.getInput(
'recover_files_ignore_separator',
{
required: false,
trimWhitespace: false
}
)
const token = core.getInput('token', {required: false}) const token = core.getInput('token', {required: false})
const apiUrl = core.getInput('api_url', {required: false}) const apiUrl = core.getInput('api_url', {required: false})
const skipInitialFetch = core.getBooleanInput('skip_initial_fetch', { const skipInitialFetch = core.getBooleanInput('skip_initial_fetch', {
@@ -186,6 +205,10 @@ export const getInputs = (): Inputs => {
sinceLastRemoteCommit, sinceLastRemoteCommit,
recoverDeletedFiles, recoverDeletedFiles,
recoverDeletedFilesToDestination, recoverDeletedFilesToDestination,
recoverFiles,
recoverFilesSeparator,
recoverFilesIgnore,
recoverFilesIgnoreSeparator,
includeAllOldNewRenamedFiles, includeAllOldNewRenamedFiles,
oldNewSeparator, oldNewSeparator,
oldNewFilesSeparator, oldNewFilesSeparator,

View File

@@ -1,6 +1,9 @@
import * as core from '@actions/core' import * as core from '@actions/core'
import * as github from '@actions/github'
import path from 'path' import path from 'path'
import { import {
ChangedFiles,
ChangeTypeEnum,
getAllDiffFiles, getAllDiffFiles,
getChangedFilesFromGithubAPI, getChangedFilesFromGithubAPI,
getRenamedFiles getRenamedFiles
@@ -15,16 +18,65 @@ import {Env, getEnv} from './env'
import {getInputs, Inputs} from './inputs' import {getInputs, Inputs} from './inputs'
import { import {
getFilePatterns, getFilePatterns,
getRecoverFilePatterns,
getSubmodulePath, getSubmodulePath,
getYamlFilePatterns, getYamlFilePatterns,
hasLocalGitDirectory, hasLocalGitDirectory,
isRepoShallow, isRepoShallow,
recoverDeletedFiles,
setOutput, setOutput,
submoduleExists, submoduleExists,
updateGitGlobalConfig, updateGitGlobalConfig,
verifyMinimumGitVersion verifyMinimumGitVersion
} from './utils' } from './utils'
const changedFilesOutput = async ({
filePatterns,
allDiffFiles,
inputs,
yamlFilePatterns
}: {
filePatterns: string[]
allDiffFiles: ChangedFiles
inputs: Inputs
yamlFilePatterns: Record<string, string[]>
}): Promise<void> => {
if (filePatterns.length > 0) {
core.startGroup('changed-files-patterns')
await setChangedFilesOutput({
allDiffFiles,
filePatterns,
inputs
})
core.info('All Done!')
core.endGroup()
}
if (Object.keys(yamlFilePatterns).length > 0) {
for (const key of Object.keys(yamlFilePatterns)) {
core.startGroup(`changed-files-yaml-${key}`)
await setChangedFilesOutput({
allDiffFiles,
filePatterns: yamlFilePatterns[key],
outputPrefix: key,
inputs
})
core.info('All Done!')
core.endGroup()
}
}
if (filePatterns.length === 0 && Object.keys(yamlFilePatterns).length === 0) {
core.startGroup('changed-files-all')
await setChangedFilesOutput({
allDiffFiles,
inputs
})
core.info('All Done!')
core.endGroup()
}
}
const getChangedFilesFromLocalGit = async ({ const getChangedFilesFromLocalGit = async ({
inputs, inputs,
env, env,
@@ -76,8 +128,8 @@ const getChangedFilesFromLocalGit = async ({
let diffResult: DiffResult let diffResult: DiffResult
if (!env.GITHUB_EVENT_PULL_REQUEST_BASE_REF) { if (!github.context.payload.pull_request?.base?.ref) {
core.info(`Running on a ${env.GITHUB_EVENT_NAME || 'push'} event...`) core.info(`Running on a ${github.context.eventName || 'push'} event...`)
diffResult = await getSHAForPushEvent( diffResult = await getSHAForPushEvent(
inputs, inputs,
env, env,
@@ -89,8 +141,8 @@ const getChangedFilesFromLocalGit = async ({
) )
} else { } else {
core.info( core.info(
`Running on a ${env.GITHUB_EVENT_NAME || 'pull_request'} (${ `Running on a ${github.context.eventName || 'pull_request'} (${
env.GITHUB_EVENT_ACTION github.context.payload.action
}) event...` }) event...`
) )
diffResult = await getSHAForPullRequestEvent( diffResult = await getSHAForPullRequestEvent(
@@ -124,47 +176,30 @@ const getChangedFilesFromLocalGit = async ({
core.info('All Done!') core.info('All Done!')
core.endGroup() core.endGroup()
if (filePatterns.length > 0) { if (inputs.recoverDeletedFiles) {
core.startGroup('changed-files-patterns') let recoverPatterns = getRecoverFilePatterns({inputs})
await setChangedFilesOutput({
allDiffFiles,
filePatterns,
inputs,
workingDirectory,
diffResult
})
core.info('All Done!')
core.endGroup()
}
if (Object.keys(yamlFilePatterns).length > 0) { if (recoverPatterns.length > 0 && filePatterns.length > 0) {
for (const key of Object.keys(yamlFilePatterns)) { core.info('No recover patterns found; defaulting to file patterns')
core.startGroup(`changed-files-yaml-${key}`) recoverPatterns = filePatterns
await setChangedFilesOutput({
allDiffFiles,
filePatterns: yamlFilePatterns[key],
outputPrefix: key,
inputs,
workingDirectory,
diffResult
})
core.info('All Done!')
core.endGroup()
} }
}
if (filePatterns.length === 0 && Object.keys(yamlFilePatterns).length === 0) { await recoverDeletedFiles({
core.startGroup('changed-files-all')
await setChangedFilesOutput({
allDiffFiles,
inputs, inputs,
workingDirectory, workingDirectory,
diffResult deletedFiles: allDiffFiles[ChangeTypeEnum.Deleted],
recoverPatterns,
sha: diffResult.previousSha
}) })
core.info('All Done!')
core.endGroup()
} }
await changedFilesOutput({
filePatterns,
allDiffFiles,
inputs,
yamlFilePatterns
})
if (inputs.includeAllOldNewRenamedFiles) { if (inputs.includeAllOldNewRenamedFiles) {
core.startGroup('changed-files-all-old-new-renamed-files') core.startGroup('changed-files-all-old-new-renamed-files')
const allOldNewRenamedFiles = await getRenamedFiles({ const allOldNewRenamedFiles = await getRenamedFiles({
@@ -192,61 +227,25 @@ const getChangedFilesFromLocalGit = async ({
const getChangedFilesFromRESTAPI = async ({ const getChangedFilesFromRESTAPI = async ({
inputs, inputs,
env,
workingDirectory,
filePatterns, filePatterns,
yamlFilePatterns yamlFilePatterns
}: { }: {
inputs: Inputs inputs: Inputs
env: Env
workingDirectory: string
filePatterns: string[] filePatterns: string[]
yamlFilePatterns: Record<string, string[]> yamlFilePatterns: Record<string, string[]>
}): Promise<void> => { }): Promise<void> => {
const allDiffFiles = await getChangedFilesFromGithubAPI({ const allDiffFiles = await getChangedFilesFromGithubAPI({
inputs, inputs
env
}) })
core.debug(`All diff files: ${JSON.stringify(allDiffFiles)}`) core.debug(`All diff files: ${JSON.stringify(allDiffFiles)}`)
core.info('All Done!') core.info('All Done!')
if (filePatterns.length > 0) { await changedFilesOutput({
core.startGroup('changed-files-patterns') filePatterns,
await setChangedFilesOutput({ allDiffFiles,
allDiffFiles, inputs,
filePatterns, yamlFilePatterns
inputs, })
workingDirectory
})
core.info('All Done!')
core.endGroup()
}
if (Object.keys(yamlFilePatterns).length > 0) {
for (const key of Object.keys(yamlFilePatterns)) {
core.startGroup(`changed-files-yaml-${key}`)
await setChangedFilesOutput({
allDiffFiles,
filePatterns: yamlFilePatterns[key],
outputPrefix: key,
inputs,
workingDirectory
})
core.info('All Done!')
core.endGroup()
}
}
if (filePatterns.length === 0 && Object.keys(yamlFilePatterns).length === 0) {
core.startGroup('changed-files-all')
await setChangedFilesOutput({
allDiffFiles,
inputs,
workingDirectory
})
core.info('All Done!')
core.endGroup()
}
} }
export async function run(): Promise<void> { export async function run(): Promise<void> {
@@ -258,6 +257,8 @@ export async function run(): Promise<void> {
const inputs = getInputs() const inputs = getInputs()
core.debug(`Inputs: ${JSON.stringify(inputs, null, 2)}`) core.debug(`Inputs: ${JSON.stringify(inputs, null, 2)}`)
core.debug(`Github Context: ${JSON.stringify(github.context, null, 2)}`)
const workingDirectory = path.resolve( const workingDirectory = path.resolve(
env.GITHUB_WORKSPACE || process.cwd(), env.GITHUB_WORKSPACE || process.cwd(),
inputs.path inputs.path
@@ -281,7 +282,7 @@ export async function run(): Promise<void> {
if ( if (
inputs.token && inputs.token &&
env.GITHUB_EVENT_PULL_REQUEST_NUMBER && github.context.payload.pull_request?.number &&
!hasGitDirectory !hasGitDirectory
) { ) {
core.info("Using GitHub's REST API to get changed files") core.info("Using GitHub's REST API to get changed files")
@@ -305,8 +306,6 @@ export async function run(): Promise<void> {
} }
await getChangedFilesFromRESTAPI({ await getChangedFilesFromRESTAPI({
inputs, inputs,
env,
workingDirectory,
filePatterns, filePatterns,
yamlFilePatterns yamlFilePatterns
}) })

View File

@@ -893,17 +893,17 @@ const getYamlFilePatternsFromContents = async ({
if (doc.errors.length > 0) { if (doc.errors.length > 0) {
if (filePath) { if (filePath) {
core.warning(`YAML errors in ${filePath}: ${doc.errors}`) throw new Error(`YAML errors in ${filePath}: ${doc.errors}`)
} else { } else {
core.warning(`YAML errors: ${doc.errors}`) throw new Error(`YAML errors: ${doc.errors}`)
} }
} }
if (doc.warnings.length > 0) { if (doc.warnings.length > 0) {
if (filePath) { if (filePath) {
core.warning(`YAML warnings in ${filePath}: ${doc.warnings}`) throw new Error(`YAML warnings in ${filePath}: ${doc.warnings}`)
} else { } else {
core.warning(`YAML warnings: ${doc.warnings}`) throw new Error(`YAML warnings: ${doc.warnings}`)
} }
} }
@@ -1028,6 +1028,36 @@ export const getYamlFilePatterns = async ({
return filePatterns return filePatterns
} }
export const getRecoverFilePatterns = ({
inputs
}: {
inputs: Inputs
}): string[] => {
let filePatterns: string[] = inputs.recoverFiles.split(
inputs.recoverFilesSeparator
)
if (inputs.recoverFilesIgnore) {
const ignoreFilePatterns = inputs.recoverFilesIgnore.split(
inputs.recoverFilesSeparator
)
filePatterns = filePatterns.concat(
ignoreFilePatterns.map(p => {
if (p.startsWith('!')) {
return p
} else {
return `!${p}`
}
})
)
}
core.debug(`recover file patterns: ${filePatterns}`)
return filePatterns.filter(Boolean)
}
export const setOutput = async ({ export const setOutput = async ({
key, key,
value, value,
@@ -1084,36 +1114,48 @@ export const recoverDeletedFiles = async ({
inputs, inputs,
workingDirectory, workingDirectory,
deletedFiles, deletedFiles,
recoverPatterns,
sha sha
}: { }: {
inputs: Inputs inputs: Inputs
workingDirectory: string workingDirectory: string
deletedFiles: string[] deletedFiles: string[]
recoverPatterns: string[]
sha: string sha: string
}): Promise<void> => { }): Promise<void> => {
if (inputs.recoverDeletedFiles) { let recoverableDeletedFiles = deletedFiles
for (const deletedFile of deletedFiles) { core.debug(`recoverable deleted files: ${recoverableDeletedFiles}`)
let target = path.join(workingDirectory, deletedFile)
if (inputs.recoverDeletedFilesToDestination) { if (recoverPatterns.length > 0) {
target = path.join( recoverableDeletedFiles = mm(deletedFiles, recoverPatterns, {
workingDirectory, dot: true,
inputs.recoverDeletedFilesToDestination, windows: IS_WINDOWS,
deletedFile noext: true
) })
} core.debug(`filtered recoverable deleted files: ${recoverableDeletedFiles}`)
}
const deletedFileContents = await getDeletedFileContents({ for (const deletedFile of recoverableDeletedFiles) {
cwd: workingDirectory, let target = path.join(workingDirectory, deletedFile)
filePath: deletedFile,
sha
})
if (!(await exists(path.dirname(target)))) { if (inputs.recoverDeletedFilesToDestination) {
await fs.mkdir(path.dirname(target), {recursive: true}) target = path.join(
} workingDirectory,
await fs.writeFile(target, deletedFileContents) inputs.recoverDeletedFilesToDestination,
deletedFile
)
} }
const deletedFileContents = await getDeletedFileContents({
cwd: workingDirectory,
filePath: deletedFile,
sha
})
if (!(await exists(path.dirname(target)))) {
await fs.mkdir(path.dirname(target), {recursive: true})
}
await fs.writeFile(target, deletedFileContents)
} }
} }
@@ -1122,9 +1164,7 @@ export const hasLocalGitDirectory = async ({
}: { }: {
workingDirectory: string workingDirectory: string
}): Promise<boolean> => { }): Promise<boolean> => {
const insideWorkTree = await isInsideWorkTree({ return await isInsideWorkTree({
cwd: workingDirectory cwd: workingDirectory
}) })
return insideWorkTree
} }

376
yarn.lock
View File

@@ -59,52 +59,52 @@
dependencies: dependencies:
"@babel/highlight" "^7.22.5" "@babel/highlight" "^7.22.5"
"@babel/compat-data@^7.22.6": "@babel/compat-data@^7.22.9":
version "7.22.6" version "7.22.9"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.6.tgz#15606a20341de59ba02cd2fcc5086fcbe73bf544" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730"
integrity sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg== integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==
"@babel/core@^7.11.6", "@babel/core@^7.12.3": "@babel/core@^7.11.6", "@babel/core@^7.12.3":
version "7.22.8" version "7.22.9"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.8.tgz#386470abe884302db9c82e8e5e87be9e46c86785" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f"
integrity sha512-75+KxFB4CZqYRXjx4NlR4J7yGvKumBuZTmV4NV6v09dVXXkuYVYLT68N6HCzLvfJ+fWCxQsntNzKwwIXL4bHnw== integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==
dependencies: dependencies:
"@ampproject/remapping" "^2.2.0" "@ampproject/remapping" "^2.2.0"
"@babel/code-frame" "^7.22.5" "@babel/code-frame" "^7.22.5"
"@babel/generator" "^7.22.7" "@babel/generator" "^7.22.9"
"@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-compilation-targets" "^7.22.9"
"@babel/helper-module-transforms" "^7.22.5" "@babel/helper-module-transforms" "^7.22.9"
"@babel/helpers" "^7.22.6" "@babel/helpers" "^7.22.6"
"@babel/parser" "^7.22.7" "@babel/parser" "^7.22.7"
"@babel/template" "^7.22.5" "@babel/template" "^7.22.5"
"@babel/traverse" "^7.22.8" "@babel/traverse" "^7.22.8"
"@babel/types" "^7.22.5" "@babel/types" "^7.22.5"
"@nicolo-ribaudo/semver-v6" "^6.3.3"
convert-source-map "^1.7.0" convert-source-map "^1.7.0"
debug "^4.1.0" debug "^4.1.0"
gensync "^1.0.0-beta.2" gensync "^1.0.0-beta.2"
json5 "^2.2.2" json5 "^2.2.2"
semver "^6.3.1"
"@babel/generator@^7.22.7", "@babel/generator@^7.7.2": "@babel/generator@^7.22.7", "@babel/generator@^7.22.9", "@babel/generator@^7.7.2":
version "7.22.7" version "7.22.9"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.7.tgz#a6b8152d5a621893f2c9dacf9a4e286d520633d5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d"
integrity sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ== integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==
dependencies: dependencies:
"@babel/types" "^7.22.5" "@babel/types" "^7.22.5"
"@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/gen-mapping" "^0.3.2"
"@jridgewell/trace-mapping" "^0.3.17" "@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1" jsesc "^2.5.1"
"@babel/helper-compilation-targets@^7.22.6": "@babel/helper-compilation-targets@^7.22.9":
version "7.22.6" version "7.22.9"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz#e30d61abe9480aa5a83232eb31c111be922d2e52" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892"
integrity sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA== integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==
dependencies: dependencies:
"@babel/compat-data" "^7.22.6" "@babel/compat-data" "^7.22.9"
"@babel/helper-validator-option" "^7.22.5" "@babel/helper-validator-option" "^7.22.5"
"@nicolo-ribaudo/semver-v6" "^6.3.3"
browserslist "^4.21.9" browserslist "^4.21.9"
lru-cache "^5.1.1" lru-cache "^5.1.1"
semver "^6.3.1"
"@babel/helper-environment-visitor@^7.22.5": "@babel/helper-environment-visitor@^7.22.5":
version "7.22.5" version "7.22.5"
@@ -133,19 +133,16 @@
dependencies: dependencies:
"@babel/types" "^7.22.5" "@babel/types" "^7.22.5"
"@babel/helper-module-transforms@^7.22.5": "@babel/helper-module-transforms@^7.22.9":
version "7.22.5" version "7.22.9"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129"
integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw== integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==
dependencies: dependencies:
"@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.5"
"@babel/helper-module-imports" "^7.22.5" "@babel/helper-module-imports" "^7.22.5"
"@babel/helper-simple-access" "^7.22.5" "@babel/helper-simple-access" "^7.22.5"
"@babel/helper-split-export-declaration" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6"
"@babel/helper-validator-identifier" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.5"
"@babel/template" "^7.22.5"
"@babel/traverse" "^7.22.5"
"@babel/types" "^7.22.5"
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0":
version "7.22.5" version "7.22.5"
@@ -159,7 +156,7 @@
dependencies: dependencies:
"@babel/types" "^7.22.5" "@babel/types" "^7.22.5"
"@babel/helper-split-export-declaration@^7.22.5", "@babel/helper-split-export-declaration@^7.22.6": "@babel/helper-split-export-declaration@^7.22.6":
version "7.22.6" version "7.22.6"
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
@@ -318,7 +315,7 @@
"@babel/parser" "^7.22.5" "@babel/parser" "^7.22.5"
"@babel/types" "^7.22.5" "@babel/types" "^7.22.5"
"@babel/traverse@^7.22.5", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8":
version "7.22.8" version "7.22.8"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e"
integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==
@@ -348,14 +345,14 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.3.0": "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
version "4.4.0" version "4.4.0"
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
dependencies: dependencies:
eslint-visitor-keys "^3.3.0" eslint-visitor-keys "^3.3.0"
"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.0": "@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.1":
version "4.5.1" version "4.5.1"
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884"
integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==
@@ -649,11 +646,6 @@
"@jridgewell/resolve-uri" "3.1.0" "@jridgewell/resolve-uri" "3.1.0"
"@jridgewell/sourcemap-codec" "1.4.14" "@jridgewell/sourcemap-codec" "1.4.14"
"@nicolo-ribaudo/semver-v6@^6.3.3":
version "6.3.3"
resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz#ea6d23ade78a325f7a52750aab1526b02b628c29"
integrity sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==
"@nodelib/fs.scandir@2.1.5": "@nodelib/fs.scandir@2.1.5":
version "2.1.5" version "2.1.5"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
@@ -975,7 +967,7 @@
expect "^29.0.0" expect "^29.0.0"
pretty-format "^29.0.0" pretty-format "^29.0.0"
"@types/json-schema@^7.0.11", "@types/json-schema@^7.0.9": "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9":
version "7.0.12" version "7.0.12"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb"
integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==
@@ -1007,7 +999,7 @@
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f"
integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==
"@types/semver@^7.3.12": "@types/semver@^7.3.12", "@types/semver@^7.5.0":
version "7.5.0" version "7.5.0"
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a"
integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==
@@ -1034,60 +1026,33 @@
dependencies: dependencies:
"@types/yargs-parser" "*" "@types/yargs-parser" "*"
"@typescript-eslint/eslint-plugin@^5.1.0":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db"
integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==
dependencies:
"@eslint-community/regexpp" "^4.4.0"
"@typescript-eslint/scope-manager" "5.62.0"
"@typescript-eslint/type-utils" "5.62.0"
"@typescript-eslint/utils" "5.62.0"
debug "^4.3.4"
graphemer "^1.4.0"
ignore "^5.2.0"
natural-compare-lite "^1.4.0"
semver "^7.3.7"
tsutils "^3.21.0"
"@typescript-eslint/eslint-plugin@^6.0.0": "@typescript-eslint/eslint-plugin@^6.0.0":
version "6.0.0" version "6.1.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.0.0.tgz#19ff4f1cab8d6f8c2c1825150f7a840bc5d9bdc4" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.1.0.tgz#96f3ca6615717659d06c9f7161a1d14ab0c49c66"
integrity sha512-xuv6ghKGoiq856Bww/yVYnXGsKa588kY3M0XK7uUW/3fJNNULKRfZfSBkMTSpqGG/8ZCXCadfh8G/z/B4aqS/A== integrity sha512-qg7Bm5TyP/I7iilGyp6DRqqkt8na00lI6HbjWZObgk3FFSzH5ypRwAHXJhJkwiRtTcfn+xYQIMOR5kJgpo6upw==
dependencies: dependencies:
"@eslint-community/regexpp" "^4.5.0" "@eslint-community/regexpp" "^4.5.1"
"@typescript-eslint/scope-manager" "6.0.0" "@typescript-eslint/scope-manager" "6.1.0"
"@typescript-eslint/type-utils" "6.0.0" "@typescript-eslint/type-utils" "6.1.0"
"@typescript-eslint/utils" "6.0.0" "@typescript-eslint/utils" "6.1.0"
"@typescript-eslint/visitor-keys" "6.0.0" "@typescript-eslint/visitor-keys" "6.1.0"
debug "^4.3.4" debug "^4.3.4"
grapheme-splitter "^1.0.4"
graphemer "^1.4.0" graphemer "^1.4.0"
ignore "^5.2.4" ignore "^5.2.4"
natural-compare "^1.4.0" natural-compare "^1.4.0"
natural-compare-lite "^1.4.0" natural-compare-lite "^1.4.0"
semver "^7.5.0" semver "^7.5.4"
ts-api-utils "^1.0.1" ts-api-utils "^1.0.1"
"@typescript-eslint/parser@^5.1.0":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7"
integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==
dependencies:
"@typescript-eslint/scope-manager" "5.62.0"
"@typescript-eslint/types" "5.62.0"
"@typescript-eslint/typescript-estree" "5.62.0"
debug "^4.3.4"
"@typescript-eslint/parser@^6.0.0": "@typescript-eslint/parser@^6.0.0":
version "6.0.0" version "6.1.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.0.0.tgz#46b2600fd1f67e62fc00a28093a75f41bf7effc4" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.1.0.tgz#3135bf65dca5340d8650703eb8cb83113e156ee5"
integrity sha512-TNaufYSPrr1U8n+3xN+Yp9g31vQDJqhXzzPSHfQDLcaO4tU+mCfODPxCwf4H530zo7aUBE3QIdxCXamEnG04Tg== integrity sha512-hIzCPvX4vDs4qL07SYzyomamcs2/tQYXg5DtdAfj35AyJ5PIUqhsLf4YrEIFzZcND7R2E8tpQIZKayxg8/6Wbw==
dependencies: dependencies:
"@typescript-eslint/scope-manager" "6.0.0" "@typescript-eslint/scope-manager" "6.1.0"
"@typescript-eslint/types" "6.0.0" "@typescript-eslint/types" "6.1.0"
"@typescript-eslint/typescript-estree" "6.0.0" "@typescript-eslint/typescript-estree" "6.1.0"
"@typescript-eslint/visitor-keys" "6.0.0" "@typescript-eslint/visitor-keys" "6.1.0"
debug "^4.3.4" debug "^4.3.4"
"@typescript-eslint/scope-manager@5.62.0": "@typescript-eslint/scope-manager@5.62.0":
@@ -1098,31 +1063,21 @@
"@typescript-eslint/types" "5.62.0" "@typescript-eslint/types" "5.62.0"
"@typescript-eslint/visitor-keys" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0"
"@typescript-eslint/scope-manager@6.0.0": "@typescript-eslint/scope-manager@6.1.0":
version "6.0.0" version "6.1.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.0.0.tgz#8ede47a37cb2b7ed82d329000437abd1113b5e11" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.1.0.tgz#a6cdbe11630614f8c04867858a42dd56590796ed"
integrity sha512-o4q0KHlgCZTqjuaZ25nw5W57NeykZT9LiMEG4do/ovwvOcPnDO1BI5BQdCsUkjxFyrCL0cSzLjvIMfR9uo7cWg== integrity sha512-AxjgxDn27hgPpe2rQe19k0tXw84YCOsjDJ2r61cIebq1t+AIxbgiXKvD4999Wk49GVaAcdJ/d49FYel+Pp3jjw==
dependencies: dependencies:
"@typescript-eslint/types" "6.0.0" "@typescript-eslint/types" "6.1.0"
"@typescript-eslint/visitor-keys" "6.0.0" "@typescript-eslint/visitor-keys" "6.1.0"
"@typescript-eslint/type-utils@5.62.0": "@typescript-eslint/type-utils@6.1.0":
version "5.62.0" version "6.1.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.1.0.tgz#21cc6c3bc1980b03f9eb4e64580d0c5be6f08215"
integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== integrity sha512-kFXBx6QWS1ZZ5Ni89TyT1X9Ag6RXVIVhqDs0vZE/jUeWlBv/ixq2diua6G7ece6+fXw3TvNRxP77/5mOMusx2w==
dependencies: dependencies:
"@typescript-eslint/typescript-estree" "5.62.0" "@typescript-eslint/typescript-estree" "6.1.0"
"@typescript-eslint/utils" "5.62.0" "@typescript-eslint/utils" "6.1.0"
debug "^4.3.4"
tsutils "^3.21.0"
"@typescript-eslint/type-utils@6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.0.0.tgz#0478d8a94f05e51da2877cc0500f1b3c27ac7e18"
integrity sha512-ah6LJvLgkoZ/pyJ9GAdFkzeuMZ8goV6BH7eC9FPmojrnX9yNCIsfjB+zYcnex28YO3RFvBkV6rMV6WpIqkPvoQ==
dependencies:
"@typescript-eslint/typescript-estree" "6.0.0"
"@typescript-eslint/utils" "6.0.0"
debug "^4.3.4" debug "^4.3.4"
ts-api-utils "^1.0.1" ts-api-utils "^1.0.1"
@@ -1131,10 +1086,10 @@
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
"@typescript-eslint/types@6.0.0": "@typescript-eslint/types@6.1.0":
version "6.0.0" version "6.1.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.0.0.tgz#19795f515f8decbec749c448b0b5fc76d82445a1" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.1.0.tgz#2d607c62827bb416ada5c96ebfa2ef84e45a8dfa"
integrity sha512-Zk9KDggyZM6tj0AJWYYKgF0yQyrcnievdhG0g5FqyU3Y2DRxJn4yWY21sJC0QKBckbsdKKjYDV2yVrrEvuTgxg== integrity sha512-+Gfd5NHCpDoHDOaU/yIF3WWRI2PcBRKKpP91ZcVbL0t5tQpqYWBs3z/GGhvU+EV1D0262g9XCnyqQh19prU0JQ==
"@typescript-eslint/typescript-estree@5.62.0": "@typescript-eslint/typescript-estree@5.62.0":
version "5.62.0" version "5.62.0"
@@ -1149,20 +1104,33 @@
semver "^7.3.7" semver "^7.3.7"
tsutils "^3.21.0" tsutils "^3.21.0"
"@typescript-eslint/typescript-estree@6.0.0": "@typescript-eslint/typescript-estree@6.1.0":
version "6.0.0" version "6.1.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.0.0.tgz#1e09aab7320e404fb9f83027ea568ac24e372f81" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.1.0.tgz#ea382f6482ba698d7e993a88ce5391ea7a66c33d"
integrity sha512-2zq4O7P6YCQADfmJ5OTDQTP3ktajnXIRrYAtHM9ofto/CJZV3QfJ89GEaM2BNGeSr1KgmBuLhEkz5FBkS2RQhQ== integrity sha512-nUKAPWOaP/tQjU1IQw9sOPCDavs/iU5iYLiY/6u7gxS7oKQoi4aUxXS1nrrVGTyBBaGesjkcwwHkbkiD5eBvcg==
dependencies: dependencies:
"@typescript-eslint/types" "6.0.0" "@typescript-eslint/types" "6.1.0"
"@typescript-eslint/visitor-keys" "6.0.0" "@typescript-eslint/visitor-keys" "6.1.0"
debug "^4.3.4" debug "^4.3.4"
globby "^11.1.0" globby "^11.1.0"
is-glob "^4.0.3" is-glob "^4.0.3"
semver "^7.5.0" semver "^7.5.4"
ts-api-utils "^1.0.1" ts-api-utils "^1.0.1"
"@typescript-eslint/utils@5.62.0", "@typescript-eslint/utils@^5.10.0": "@typescript-eslint/utils@6.1.0":
version "6.1.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.1.0.tgz#1641843792b4e3451cc692e2c73055df8b26f453"
integrity sha512-wp652EogZlKmQoMS5hAvWqRKplXvkuOnNzZSE0PVvsKjpexd/XznRVHAtrfHFYmqaJz0DFkjlDsGYC9OXw+OhQ==
dependencies:
"@eslint-community/eslint-utils" "^4.4.0"
"@types/json-schema" "^7.0.12"
"@types/semver" "^7.5.0"
"@typescript-eslint/scope-manager" "6.1.0"
"@typescript-eslint/types" "6.1.0"
"@typescript-eslint/typescript-estree" "6.1.0"
semver "^7.5.4"
"@typescript-eslint/utils@^5.10.0":
version "5.62.0" version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86"
integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==
@@ -1176,20 +1144,6 @@
eslint-scope "^5.1.1" eslint-scope "^5.1.1"
semver "^7.3.7" semver "^7.3.7"
"@typescript-eslint/utils@6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.0.0.tgz#27a16d0d8f2719274a39417b9782f7daa3802db0"
integrity sha512-SOr6l4NB6HE4H/ktz0JVVWNXqCJTOo/mHnvIte1ZhBQ0Cvd04x5uKZa3zT6tiodL06zf5xxdK8COiDvPnQ27JQ==
dependencies:
"@eslint-community/eslint-utils" "^4.3.0"
"@types/json-schema" "^7.0.11"
"@types/semver" "^7.3.12"
"@typescript-eslint/scope-manager" "6.0.0"
"@typescript-eslint/types" "6.0.0"
"@typescript-eslint/typescript-estree" "6.0.0"
eslint-scope "^5.1.1"
semver "^7.5.0"
"@typescript-eslint/visitor-keys@5.62.0": "@typescript-eslint/visitor-keys@5.62.0":
version "5.62.0" version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e"
@@ -1198,12 +1152,12 @@
"@typescript-eslint/types" "5.62.0" "@typescript-eslint/types" "5.62.0"
eslint-visitor-keys "^3.3.0" eslint-visitor-keys "^3.3.0"
"@typescript-eslint/visitor-keys@6.0.0": "@typescript-eslint/visitor-keys@6.1.0":
version "6.0.0" version "6.1.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.0.0.tgz#0b49026049fbd096d2c00c5e784866bc69532a31" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.1.0.tgz#d2b84dff6b58944d3257ea03687e269a788c73be"
integrity sha512-cvJ63l8c0yXdeT5POHpL0Q1cZoRcmRKFCtSjNGJxPkcP571EfZMcNbzWAc7oK3D1dRzm/V5EwtkANTZxqvuuUA== integrity sha512-yQeh+EXhquh119Eis4k0kYhj9vmFzNpbhM3LftWQVwqVjipCkwHBQOZutcYW+JVkjtTG9k8nrZU1UoNedPDd1A==
dependencies: dependencies:
"@typescript-eslint/types" "6.0.0" "@typescript-eslint/types" "6.1.0"
eslint-visitor-keys "^3.4.1" eslint-visitor-keys "^3.4.1"
"@vercel/ncc@^0.36.1": "@vercel/ncc@^0.36.1":
@@ -1333,6 +1287,18 @@ array.prototype.flatmap@^1.3.1:
es-abstract "^1.20.4" es-abstract "^1.20.4"
es-shim-unscopables "^1.0.0" es-shim-unscopables "^1.0.0"
arraybuffer.prototype.slice@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb"
integrity sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==
dependencies:
array-buffer-byte-length "^1.0.0"
call-bind "^1.0.2"
define-properties "^1.2.0"
get-intrinsic "^1.2.1"
is-array-buffer "^3.0.2"
is-shared-array-buffer "^1.0.2"
ast-types-flow@^0.0.7: ast-types-flow@^0.0.7:
version "0.0.7" version "0.0.7"
resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
@@ -1512,9 +1478,9 @@ camelcase@^6.2.0:
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
caniuse-lite@^1.0.30001503: caniuse-lite@^1.0.30001503:
version "1.0.30001515" version "1.0.30001516"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz#418aefeed9d024cd3129bfae0ccc782d4cb8f12b" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001516.tgz#621b1be7d85a8843ee7d210fd9d87b52e3daab3a"
integrity sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA== integrity sha512-Wmec9pCBY8CWbmI4HsjBeQLqDTqV91nFVR83DnZpYyRnPI1wePDsTg0bGLPC5VU/3OIZV1fmxEea1b+tFKe86g==
chalk@^2.0.0: chalk@^2.0.0:
version "2.4.2" version "2.4.2"
@@ -1722,9 +1688,9 @@ doctrine@^3.0.0:
esutils "^2.0.2" esutils "^2.0.2"
electron-to-chromium@^1.4.431: electron-to-chromium@^1.4.431:
version "1.4.459" version "1.4.463"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.459.tgz#25a23370f4ae8aaa8f77aaf00133aa4994f4148e" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.463.tgz#8eb04355f24fef5c8097661d14e143f6d8554055"
integrity sha512-XXRS5NFv8nCrBL74Rm3qhJjA2VCsRFx0OjHKBMPI0otij56aun8UWiKTDABmd5/7GTR021pA4wivs+Ri6XCElg== integrity sha512-fT3hvdUWLjDbaTGzyOjng/CQhQJSQP8ThO3XZAoaxHvHo2kUXiRQVMj9M235l8uDFiNPsPa6KHT1p3RaR6ugRw==
emittery@^0.13.1: emittery@^0.13.1:
version "0.13.1" version "0.13.1"
@@ -1749,11 +1715,12 @@ error-ex@^1.3.1:
is-arrayish "^0.2.1" is-arrayish "^0.2.1"
es-abstract@^1.19.0, es-abstract@^1.20.4: es-abstract@^1.19.0, es-abstract@^1.20.4:
version "1.21.3" version "1.22.1"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.3.tgz#8aaa0ffc080e8a6fef6ace72631dc1ec5d47bf94" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc"
integrity sha512-ZU4miiY1j3sGPFLJ34VJXEqhpmL+HGByCinGHv4HC+Fxl2fI2Z4yR6tl0mORnDr6PA8eihWo4LmSWDbvhALckg== integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==
dependencies: dependencies:
array-buffer-byte-length "^1.0.0" array-buffer-byte-length "^1.0.0"
arraybuffer.prototype.slice "^1.0.1"
available-typed-arrays "^1.0.5" available-typed-arrays "^1.0.5"
call-bind "^1.0.2" call-bind "^1.0.2"
es-set-tostringtag "^2.0.1" es-set-tostringtag "^2.0.1"
@@ -1780,10 +1747,13 @@ es-abstract@^1.19.0, es-abstract@^1.20.4:
object-keys "^1.1.1" object-keys "^1.1.1"
object.assign "^4.1.4" object.assign "^4.1.4"
regexp.prototype.flags "^1.5.0" regexp.prototype.flags "^1.5.0"
safe-array-concat "^1.0.0"
safe-regex-test "^1.0.0" safe-regex-test "^1.0.0"
string.prototype.trim "^1.2.7" string.prototype.trim "^1.2.7"
string.prototype.trimend "^1.0.6" string.prototype.trimend "^1.0.6"
string.prototype.trimstart "^1.0.6" string.prototype.trimstart "^1.0.6"
typed-array-buffer "^1.0.0"
typed-array-byte-length "^1.0.0"
typed-array-byte-offset "^1.0.0" typed-array-byte-offset "^1.0.0"
typed-array-length "^1.0.4" typed-array-length "^1.0.4"
unbox-primitive "^1.0.2" unbox-primitive "^1.0.2"
@@ -1881,13 +1851,13 @@ eslint-plugin-filenames@^1.3.2:
lodash.upperfirst "4.3.1" lodash.upperfirst "4.3.1"
eslint-plugin-github@^4.8.0: eslint-plugin-github@^4.8.0:
version "4.9.0" version "4.9.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-github/-/eslint-plugin-github-4.9.0.tgz#f481ae4eee03ae266328c255e02330dfed960bf6" resolved "https://registry.yarnpkg.com/eslint-plugin-github/-/eslint-plugin-github-4.9.2.tgz#db4a57619b8fa844371186ab9604e8bc42d3da96"
integrity sha512-c4jnJXJzHy8lzdYjOXlXcY7jX4b2ciGh+ugZM5b6vs6q2+m+6BrNl20u5WxloJvH6Q8CbZ0+Lnh7lDJxUd3WkQ== integrity sha512-osez6Sio/fLr/3QkW5HE1wbCOcmYG5030/6QIa9IcKyyfchewlecdnYcsbeUMUtdIiU9lWqhroQp2H/O7auxBA==
dependencies: dependencies:
"@github/browserslist-config" "^1.0.0" "@github/browserslist-config" "^1.0.0"
"@typescript-eslint/eslint-plugin" "^5.1.0" "@typescript-eslint/eslint-plugin" "^6.0.0"
"@typescript-eslint/parser" "^5.1.0" "@typescript-eslint/parser" "^6.0.0"
aria-query "^5.3.0" aria-query "^5.3.0"
eslint-config-prettier ">=8.0.0" eslint-config-prettier ">=8.0.0"
eslint-plugin-escompat "^3.3.3" eslint-plugin-escompat "^3.3.3"
@@ -1897,10 +1867,10 @@ eslint-plugin-github@^4.8.0:
eslint-plugin-import "^2.25.2" eslint-plugin-import "^2.25.2"
eslint-plugin-jsx-a11y "^6.7.1" eslint-plugin-jsx-a11y "^6.7.1"
eslint-plugin-no-only-tests "^3.0.0" eslint-plugin-no-only-tests "^3.0.0"
eslint-plugin-prettier "^4.0.0" eslint-plugin-prettier "^5.0.0"
eslint-rule-documentation ">=1.0.0" eslint-rule-documentation ">=1.0.0"
jsx-ast-utils "^3.3.2" jsx-ast-utils "^3.3.2"
prettier "^2.2.1" prettier "^3.0.0"
svg-element-attributes "^1.3.1" svg-element-attributes "^1.3.1"
eslint-plugin-i18n-text@^1.0.1: eslint-plugin-i18n-text@^1.0.1:
@@ -1963,14 +1933,7 @@ eslint-plugin-no-only-tests@^3.0.0:
resolved "https://registry.yarnpkg.com/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.1.0.tgz#f38e4935c6c6c4842bf158b64aaa20c366fe171b" resolved "https://registry.yarnpkg.com/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.1.0.tgz#f38e4935c6c6c4842bf158b64aaa20c366fe171b"
integrity sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw== integrity sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==
eslint-plugin-prettier@^4.0.0: eslint-plugin-prettier@^5.0.0, eslint-plugin-prettier@^5.0.0-alpha.2:
version "4.2.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b"
integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==
dependencies:
prettier-linter-helpers "^1.0.0"
eslint-plugin-prettier@^5.0.0-alpha.2:
version "5.0.0" version "5.0.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz#6887780ed95f7708340ec79acfdf60c35b9be57a" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz#6887780ed95f7708340ec79acfdf60c35b9be57a"
integrity sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w== integrity sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==
@@ -1992,9 +1955,9 @@ eslint-scope@^5.1.1:
estraverse "^4.1.1" estraverse "^4.1.1"
eslint-scope@^7.2.0: eslint-scope@^7.2.0:
version "7.2.0" version "7.2.1"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.1.tgz#936821d3462675f25a18ac5fd88a67cc15b393bd"
integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== integrity sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==
dependencies: dependencies:
esrecurse "^4.3.0" esrecurse "^4.3.0"
estraverse "^5.2.0" estraverse "^5.2.0"
@@ -2005,9 +1968,9 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1:
integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==
eslint@^8.43.0: eslint@^8.43.0:
version "8.44.0" version "8.45.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.44.0.tgz#51246e3889b259bbcd1d7d736a0c10add4f0e500" resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.45.0.tgz#bab660f90d18e1364352c0a6b7c6db8edb458b78"
integrity sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A== integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==
dependencies: dependencies:
"@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/eslint-utils" "^4.2.0"
"@eslint-community/regexpp" "^4.4.0" "@eslint-community/regexpp" "^4.4.0"
@@ -2034,7 +1997,6 @@ eslint@^8.43.0:
globals "^13.19.0" globals "^13.19.0"
graphemer "^1.4.0" graphemer "^1.4.0"
ignore "^5.2.0" ignore "^5.2.0"
import-fresh "^3.0.0"
imurmurhash "^0.1.4" imurmurhash "^0.1.4"
is-glob "^4.0.0" is-glob "^4.0.0"
is-path-inside "^3.0.3" is-path-inside "^3.0.3"
@@ -2046,13 +2008,12 @@ eslint@^8.43.0:
natural-compare "^1.4.0" natural-compare "^1.4.0"
optionator "^0.9.3" optionator "^0.9.3"
strip-ansi "^6.0.1" strip-ansi "^6.0.1"
strip-json-comments "^3.1.0"
text-table "^0.2.0" text-table "^0.2.0"
espree@^9.6.0: espree@^9.6.0:
version "9.6.0" version "9.6.1"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
integrity sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A== integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
dependencies: dependencies:
acorn "^8.9.0" acorn "^8.9.0"
acorn-jsx "^5.3.2" acorn-jsx "^5.3.2"
@@ -2371,11 +2332,6 @@ graceful-fs@^4.2.9:
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
grapheme-splitter@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
graphemer@^1.4.0: graphemer@^1.4.0:
version "1.4.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
@@ -2447,7 +2403,7 @@ ignore@^5.0.5, ignore@^5.2.0, ignore@^5.2.4:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
import-fresh@^3.0.0, import-fresh@^3.2.1: import-fresh@^3.2.1:
version "3.3.0" version "3.3.0"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
@@ -2644,15 +2600,11 @@ is-symbol@^1.0.2, is-symbol@^1.0.3:
has-symbols "^1.0.2" has-symbols "^1.0.2"
is-typed-array@^1.1.10, is-typed-array@^1.1.9: is-typed-array@^1.1.10, is-typed-array@^1.1.9:
version "1.1.10" version "1.1.12"
resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a"
integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==
dependencies: dependencies:
available-typed-arrays "^1.0.5" which-typed-array "^1.1.11"
call-bind "^1.0.2"
for-each "^0.3.3"
gopd "^1.0.1"
has-tostringtag "^1.0.0"
is-weakref@^1.0.2: is-weakref@^1.0.2:
version "1.0.2" version "1.0.2"
@@ -2668,6 +2620,11 @@ is-wsl@^2.2.0:
dependencies: dependencies:
is-docker "^2.0.0" is-docker "^2.0.0"
isarray@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
isexe@^2.0.0: isexe@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
@@ -3553,11 +3510,6 @@ prettier-linter-helpers@^1.0.0:
dependencies: dependencies:
fast-diff "^1.1.2" fast-diff "^1.1.2"
prettier@^2.2.1:
version "2.8.8"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
prettier@^3.0.0: prettier@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae"
@@ -3676,6 +3628,16 @@ run-parallel@^1.1.9:
dependencies: dependencies:
queue-microtask "^1.2.2" queue-microtask "^1.2.2"
safe-array-concat@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060"
integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==
dependencies:
call-bind "^1.0.2"
get-intrinsic "^1.2.0"
has-symbols "^1.0.3"
isarray "^2.0.5"
safe-regex-test@^1.0.0: safe-regex-test@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295"
@@ -3685,12 +3647,12 @@ safe-regex-test@^1.0.0:
get-intrinsic "^1.1.3" get-intrinsic "^1.1.3"
is-regex "^1.1.4" is-regex "^1.1.4"
semver@^6.0.0, semver@^6.3.0: semver@^6.0.0, semver@^6.3.0, semver@^6.3.1:
version "6.3.1" version "6.3.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
semver@^7.3.7, semver@^7.5.0, semver@^7.5.3: semver@^7.3.7, semver@^7.5.3, semver@^7.5.4:
version "7.5.4" version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
@@ -3829,7 +3791,7 @@ strip-final-newline@^3.0.0:
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: strip-json-comments@^3.1.1:
version "3.1.1" version "3.1.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
@@ -3987,6 +3949,25 @@ type-fest@^0.21.3:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
typed-array-buffer@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60"
integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==
dependencies:
call-bind "^1.0.2"
get-intrinsic "^1.2.1"
is-typed-array "^1.1.10"
typed-array-byte-length@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0"
integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==
dependencies:
call-bind "^1.0.2"
for-each "^0.3.3"
has-proto "^1.0.1"
is-typed-array "^1.1.10"
typed-array-byte-offset@^1.0.0: typed-array-byte-offset@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b"
@@ -4092,17 +4073,16 @@ which-boxed-primitive@^1.0.2:
is-string "^1.0.5" is-string "^1.0.5"
is-symbol "^1.0.3" is-symbol "^1.0.3"
which-typed-array@^1.1.10: which-typed-array@^1.1.10, which-typed-array@^1.1.11:
version "1.1.10" version "1.1.11"
resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.10.tgz#74baa2789991905c2076abb317103b866c64e69e" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a"
integrity sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA== integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==
dependencies: dependencies:
available-typed-arrays "^1.0.5" available-typed-arrays "^1.0.5"
call-bind "^1.0.2" call-bind "^1.0.2"
for-each "^0.3.3" for-each "^0.3.3"
gopd "^1.0.1" gopd "^1.0.1"
has-tostringtag "^1.0.0" has-tostringtag "^1.0.0"
is-typed-array "^1.1.10"
which@^2.0.1: which@^2.0.1:
version "2.0.2" version "2.0.2"