From 5d9717389b2b4df98a9c824c5f74f6971eeb431f Mon Sep 17 00:00:00 2001 From: Jason Dent Date: Thu, 29 Feb 2024 15:34:54 +0100 Subject: [PATCH] feat!: Use locally installed `git` to determine file changes. (#1596) --- .github/workflows/smoke.yml | 55 +- .github/workflows/test-action.yml | 102 +- .github/workflows/test.yml | 18 +- .gitignore | 1 + README.md | 4 - .../bad_params/bad_unsupported_event.json | 2 +- action-src/fixtures/commits.json | 2372 ++ action-src/fixtures/pr_1594_context.json | 396 + action-src/fixtures/pr_1594_env.json | 15 + action-src/fixtures/pr_1594_event.json | 393 + action-src/fixtures/pr_1594_raw.json | 373 + action-src/fixtures/pull_request_2.json | 14 + .../fixtures/pull_request_2_context.json | 578 + .../fixtures/pull_request_2_payload.json | 533 + action-src/fixtures/push.json | 2 +- action-src/fixtures/push_payload.json | 4 +- action-src/package.json | 5 + action-src/src/ActionParams.test.ts | 3 +- action-src/src/ActionParams.ts | 8 - action-src/src/action.test.ts | 73 +- action-src/src/action.ts | 59 +- action-src/src/getActionParams.ts | 2 +- action-src/src/git.test.ts | 66 + action-src/src/git.ts | 103 + action-src/src/github.test.ts | 25 - action-src/src/github.ts | 71 - action-src/src/main.test.ts | 51 +- action-src/src/main.ts | 16 +- action-src/src/test/helper.ts | 76 +- action-src/tsconfig.json | 3 +- action.yaml | 10 - action/lib/main_root.cjs | 20222 ++++++---------- .../@cspell/dict-public-licenses/README.md | 59 - .../@cspell/dict-public-licenses/package.json | 8 +- .../public-licenses.txt.gz | Bin 3502 -> 3194 bytes fixtures/pull_request_context.json | 2 +- pnpm-lock.yaml | 32 +- 37 files changed, 12096 insertions(+), 13660 deletions(-) create mode 100644 action-src/fixtures/commits.json create mode 100644 action-src/fixtures/pr_1594_context.json create mode 100644 action-src/fixtures/pr_1594_env.json create mode 100644 action-src/fixtures/pr_1594_event.json create mode 100644 action-src/fixtures/pr_1594_raw.json create mode 100644 action-src/fixtures/pull_request_2.json create mode 100644 action-src/fixtures/pull_request_2_context.json create mode 100644 action-src/fixtures/pull_request_2_payload.json create mode 100644 action-src/src/git.test.ts create mode 100644 action-src/src/git.ts delete mode 100644 action-src/src/github.test.ts delete mode 100644 action-src/src/github.ts delete mode 100644 action/node_modules/@cspell/dict-public-licenses/README.md diff --git a/.github/workflows/smoke.yml b/.github/workflows/smoke.yml index 35839d292..c457d2c58 100644 --- a/.github/workflows/smoke.yml +++ b/.github/workflows/smoke.yml @@ -2,6 +2,8 @@ name: Smoke Test Context on: # rebuild any PRs and main branch changes pull_request: push: + issues: + issue_comment: workflow_dispatch: permissions: @@ -12,18 +14,55 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + + - name: Get Environment + id: get-env + uses: actions/github-script@v7 + with: + script: | + return process.env; + + - name: View context attributes + uses: actions/github-script@v7 + with: + result-encoding: string + script: | + console.log('Env %o', process.env); + console.log('context: %o', context); + return process.env.GITHUB_EVENT_PATH; + + - name: Read Event File + id: read-event + uses: streetsidesoftware/actions/public/read-file@v1 + with: + path: ${{ fromJSON(steps.get-env.outputs.result).GITHUB_EVENT_PATH }} + - name: View context in summary uses: streetsidesoftware/actions/public/summary@v1 with: text: | - Context: + # Context Summary + + Event Name: `${{ github.event_name }}` + After: `${{ github.event.after }}` + Before: `${{ github.event.before }}` + PR Base SHA: `${{ github.event.pull_request.base.sha }}` + + Commits Ids: + ``` + ${{ toJSON(github.event.commits.*.id || 'undefined') }} + ``` + + Env: + `````json + ${{ toJson(fromJson(steps.get-env.outputs.result)) }} + ````` + GitHub Context: `````json ${{ toJson(github) }} ````` - - name: View context attributes - uses: actions/github-script@v7 - with: - script: | - console.log(context); - console.log('%o', context); - console.log(JSON.stringify(context, null, 2)); + + Event File: + `````json + ${{ toJson(fromJSON(steps.read-event.outputs.result)) }} + ````` diff --git a/.github/workflows/test-action.yml b/.github/workflows/test-action.yml index c3cf39e5e..915b254c0 100644 --- a/.github/workflows/test-action.yml +++ b/.github/workflows/test-action.yml @@ -2,12 +2,13 @@ name: "test-action" on: # rebuild any PRs and main branch changes pull_request: push: - branches: - - main permissions: contents: read +env: + FETCH_DEPTH: 1 + jobs: test-action: # run the action runs-on: ubuntu-latest @@ -17,11 +18,26 @@ jobs: id: cspell-action env: TEST: true + - name: Show Results + uses: streetsidesoftware/actions/public/summary@v1 + with: + text: | + outputs: + ``````json + ${{ toJSON(steps.cspell-action.outputs) }} + `````` + + Commits Ids: + ``` + ${{ toJSON(github.event.commits.*.id || 'undefined') }} + ``` test-action-with-file: # run the action runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: ${{ env.FETCH_DEPTH }} - uses: ./ id: cspell-action env: @@ -30,11 +46,21 @@ jobs: files: | **/*.ts **/*.md + - name: Show Results + uses: streetsidesoftware/actions/public/summary@v1 + with: + text: | + outputs: + ``````json + ${{ toJSON(steps.cspell-action.outputs) }} + `````` test-action-no-increment: # run the action runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: ${{ env.FETCH_DEPTH }} - uses: ./ id: cspell-action env: @@ -42,18 +68,22 @@ jobs: with: incremental_files_only: false files: | - ** - .*/** + . - name: Show Results - env: - outputs: ${{ toJSON(steps.cspell-action.outputs) }} - run: | - echo "$outputs" + uses: streetsidesoftware/actions/public/summary@v1 + with: + text: | + outputs: + ``````json + ${{ toJSON(steps.cspell-action.outputs) }} + `````` test-action-no-increment-verbose: # run the action runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: ${{ env.FETCH_DEPTH }} - uses: ./ id: cspell-action with: @@ -62,11 +92,21 @@ jobs: ** .*/** verbose: true + - name: Show Results + uses: streetsidesoftware/actions/public/summary@v1 + with: + text: | + outputs: + ``````json + ${{ toJSON(steps.cspell-action.outputs) }} + `````` test-action-files-with-issues: # run the action runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: ${{ env.FETCH_DEPTH }} - uses: ./ id: cspell-action with: @@ -77,42 +117,10 @@ jobs: strict: false inline: none - name: Show Results - env: - outputs: ${{ toJSON(steps.cspell-action.outputs) }} - run: | - echo "$outputs" - - # Experiment with writing the status to a PR. - # show_status: - # runs-on: ubuntu-latest - # steps: - # - name: Env - # env: - # github: ${{ toJSON(github) }} - # run: | - # echo GITHUB_REPOSITORY_OWNER=$GITHUB_REPOSITORY_OWNER - # echo GITHUB_REPOSITORY=$GITHUB_REPOSITORY - # echo GITHUB_REF=$GITHUB_REF - # echo SHA=${{ github.event.pull_request.head.sha || env.GITHUB_SHA }} - # echo github="$github" - # env - # - name: GH Status - # env: - # GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # run: | - # gh api \ - # -H "Accept: application/vnd.github+json" \ - # /repos/$GITHUB_REPOSITORY/commits/$GITHUB_REF/statuses - # - name: Write Status - # env: - # GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # SHA: ${{ github.event.pull_request.head.sha || env.GITHUB_SHA }} - # run: | - # gh api \ - # --method POST \ - # -H "Accept: application/vnd.github+json" \ - # /repos/$GITHUB_REPOSITORY/statuses/$SHA \ - # -f state='success' \ - # -f target_url='https://example.com/build/status' \ - # -f description='The test succeeded!' \ - # -f context='continuous-integration/testing for fun' + uses: streetsidesoftware/actions/public/summary@v1 + with: + text: | + outputs: + ``````json + ${{ toJSON(steps.cspell-action.outputs) }} + `````` diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 16772e84b..ae8861319 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,19 +18,6 @@ jobs: - run: pnpm i - run: git --no-pager diff --compact-summary --exit-code - # unit-test: # make sure unit-tests run - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 - # - uses: streetsidesoftware/actions/public/setup-node-pnpm@v1 - - # - run: pnpm i - - # # Build should not be necessary to run tests - # - env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # run: GITHUB_OUTPUT="" TEST="true" pnpm test - clean-build: # make sure nothing changes with a clean build runs-on: ubuntu-latest steps: @@ -48,12 +35,15 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: streetsidesoftware/actions/public/setup-node-pnpm@v1 - run: pnpm i - env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: GITHUB_OUTPUT="" TEST="true" pnpm coverage + run: GITHUB_OUTPUT="" pnpm coverage - name: Upload coverage Coveralls uses: coverallsapp/github-action@3dfc5567390f6fa9267c0ee9c251e4c8c3f18949 # 2.2.3 diff --git a/.gitignore b/.gitignore index 7acbcf576..4b5c45ece 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ /node_modules /acton-src/node_modules +/action-src/dist /debug # install-state seems to always be changing diff --git a/README.md b/README.md index 172a534f5..da6850f26 100644 --- a/README.md +++ b/README.md @@ -25,10 +25,6 @@ jobs: ```yaml - uses: streetsidesoftware/cspell-action@v5 with: - # Github token used to fetch the list of changed files in the commit. - # Default: ${{ github.token }} - github_token: '' - # Define glob patterns to filter the files to be checked. Use a new line between patterns to define multiple patterns. # The default is to check ALL files that were changed in in the pull_request or push. # Note: `ignorePaths` defined in cspell.json still apply. diff --git a/action-src/fixtures/bad_params/bad_unsupported_event.json b/action-src/fixtures/bad_params/bad_unsupported_event.json index 91f90e951..6922c706e 100644 --- a/action-src/fixtures/bad_params/bad_unsupported_event.json +++ b/action-src/fixtures/bad_params/bad_unsupported_event.json @@ -1,7 +1,7 @@ { "INPUT_GITHUB_TOKEN": "$GITHUB_TOKEN", "INPUT_INCREMENTAL_FILES_ONLY": "true", - "GITHUB_EVENT_PATH": "./fixtures/push_payload.json", + "GITHUB_EVENT_PATH": "../push_payload.json", "GITHUB_EVENT_NAME": "fork", "GITHUB_SHA": "a16b47a16f6c11b63cfdcf510c15ba26edd0f3d1", "GITHUB_REF": "refs/heads/fix-resolve-path", diff --git a/action-src/fixtures/commits.json b/action-src/fixtures/commits.json new file mode 100644 index 000000000..77a6aad76 --- /dev/null +++ b/action-src/fixtures/commits.json @@ -0,0 +1,2372 @@ +[ + { + "sha": "3fcea606a7709e6aabcdf67801c8b174a32c743c", + "node_id": "C_kwDODohhMtoAKDNmY2VhNjA2YTc3MDllNmFhYmNkZjY3ODAxYzhiMTc0YTMyYzc0M2M", + "commit": { + "author": { + "name": "Jason Dent", + "email": "jason@streetsidesoftware.nl", + "date": "2024-02-27T14:39:07Z" + }, + "committer": { + "name": "Jason Dent", + "email": "jason@streetsidesoftware.nl", + "date": "2024-02-27T14:39:07Z" + }, + "message": "chore: clean up the output", + "tree": { + "sha": "ed9615c2557098465d75fc9fb96e34ac94f06431", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/ed9615c2557098465d75fc9fb96e34ac94f06431" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/3fcea606a7709e6aabcdf67801c8b174a32c743c", + "comment_count": 0, + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/3fcea606a7709e6aabcdf67801c8b174a32c743c", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/3fcea606a7709e6aabcdf67801c8b174a32c743c", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/3fcea606a7709e6aabcdf67801c8b174a32c743c/comments", + "author": { + "login": "Jason3S", + "id": 3740137, + "node_id": "MDQ6VXNlcjM3NDAxMzc=", + "avatar_url": "https://avatars.githubusercontent.com/u/3740137?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jason3S", + "html_url": "https://github.com/Jason3S", + "followers_url": "https://api.github.com/users/Jason3S/followers", + "following_url": "https://api.github.com/users/Jason3S/following{/other_user}", + "gists_url": "https://api.github.com/users/Jason3S/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jason3S/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jason3S/subscriptions", + "organizations_url": "https://api.github.com/users/Jason3S/orgs", + "repos_url": "https://api.github.com/users/Jason3S/repos", + "events_url": "https://api.github.com/users/Jason3S/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jason3S/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "Jason3S", + "id": 3740137, + "node_id": "MDQ6VXNlcjM3NDAxMzc=", + "avatar_url": "https://avatars.githubusercontent.com/u/3740137?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jason3S", + "html_url": "https://github.com/Jason3S", + "followers_url": "https://api.github.com/users/Jason3S/followers", + "following_url": "https://api.github.com/users/Jason3S/following{/other_user}", + "gists_url": "https://api.github.com/users/Jason3S/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jason3S/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jason3S/subscriptions", + "organizations_url": "https://api.github.com/users/Jason3S/orgs", + "repos_url": "https://api.github.com/users/Jason3S/repos", + "events_url": "https://api.github.com/users/Jason3S/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jason3S/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "92d115716b53a74cbed4757232610c2b56531741", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/92d115716b53a74cbed4757232610c2b56531741", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/92d115716b53a74cbed4757232610c2b56531741" + } + ] + }, + { + "sha": "92d115716b53a74cbed4757232610c2b56531741", + "node_id": "C_kwDODohhMtoAKDkyZDExNTcxNmI1M2E3NGNiZWQ0NzU3MjMyNjEwYzJiNTY1MzE3NDE", + "commit": { + "author": { + "name": "Jason Dent", + "email": "jason@streetsidesoftware.nl", + "date": "2024-02-27T14:37:55Z" + }, + "committer": { + "name": "Jason Dent", + "email": "jason@streetsidesoftware.nl", + "date": "2024-02-27T14:37:55Z" + }, + "message": "chore: create a smoke test to view context", + "tree": { + "sha": "def62ccf8ce9df88bfe8cb0d7e40e7218bc44a36", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/def62ccf8ce9df88bfe8cb0d7e40e7218bc44a36" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/92d115716b53a74cbed4757232610c2b56531741", + "comment_count": 0, + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/92d115716b53a74cbed4757232610c2b56531741", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/92d115716b53a74cbed4757232610c2b56531741", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/92d115716b53a74cbed4757232610c2b56531741/comments", + "author": { + "login": "Jason3S", + "id": 3740137, + "node_id": "MDQ6VXNlcjM3NDAxMzc=", + "avatar_url": "https://avatars.githubusercontent.com/u/3740137?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jason3S", + "html_url": "https://github.com/Jason3S", + "followers_url": "https://api.github.com/users/Jason3S/followers", + "following_url": "https://api.github.com/users/Jason3S/following{/other_user}", + "gists_url": "https://api.github.com/users/Jason3S/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jason3S/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jason3S/subscriptions", + "organizations_url": "https://api.github.com/users/Jason3S/orgs", + "repos_url": "https://api.github.com/users/Jason3S/repos", + "events_url": "https://api.github.com/users/Jason3S/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jason3S/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "Jason3S", + "id": 3740137, + "node_id": "MDQ6VXNlcjM3NDAxMzc=", + "avatar_url": "https://avatars.githubusercontent.com/u/3740137?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jason3S", + "html_url": "https://github.com/Jason3S", + "followers_url": "https://api.github.com/users/Jason3S/followers", + "following_url": "https://api.github.com/users/Jason3S/following{/other_user}", + "gists_url": "https://api.github.com/users/Jason3S/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jason3S/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jason3S/subscriptions", + "organizations_url": "https://api.github.com/users/Jason3S/orgs", + "repos_url": "https://api.github.com/users/Jason3S/repos", + "events_url": "https://api.github.com/users/Jason3S/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jason3S/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "0ab9d5479b053735a59405cf2f9f938c09e8405f", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/0ab9d5479b053735a59405cf2f9f938c09e8405f", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/0ab9d5479b053735a59405cf2f9f938c09e8405f" + } + ] + }, + { + "sha": "0ab9d5479b053735a59405cf2f9f938c09e8405f", + "node_id": "C_kwDODohhMtoAKDBhYjlkNTQ3OWIwNTM3MzVhNTk0MDVjZjJmOWY5MzhjMDllODQwNWY", + "commit": { + "author": { + "name": "Jason Dent", + "email": "Jason3S@users.noreply.github.com", + "date": "2024-02-27T13:16:56Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-27T13:16:56Z" + }, + "message": "fix: Update Octokit/core to v6 (#1595)", + "tree": { + "sha": "e1c8032ca9163bab3ab57c8b3df6a4f7278842c3", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/e1c8032ca9163bab3ab57c8b3df6a4f7278842c3" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/0ab9d5479b053735a59405cf2f9f938c09e8405f", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl3eDICRC1aQ7uu5UhlAAA1M0QAANEjzcMVkgyeNTy6/o4+qEL\n1JkLIZqwD4tZGWzavBbusMHvABZPgLAItgUvmmG4yu6Z848ykTpvC7jFkOLXX03a\nsdG7ahP9qTOgDLc30qzsWpFYNl0FxrlLs3te5smVvPWHwPkN2bRsxzheyCRe2BcG\nyMGp8jotLV0e3j/lo+a38gC8QzVjhst6ikCRI4uE6zOj09/svi8zrEL1eJHm2ZuQ\nQxoJ3YQbUtVj4Mp7tnhbkPYgOT3EeLtXbkBC5gOhI2m843v64EWNKJHHGNpxIgJ+\nskxAVs78BjjefFPPDr3HBB4hbQDzf1yc8bY1mYq3OHCaRRsVt98naJqFMwgb2Qwb\nRR44j1qzYBvTH13vSLagQ1i80tsz4nGvNJ9mggkjmw2SMrI9lJ4tJdLn6oCJWO5o\n5IsFp7RZBAH+qwrSE/PPp/PAuCKpU1X9NrMvgUq0e/sAGdERpyuMuhkHCiIeWxnt\nOPX7Df+bokj4paOUOkg4DEeAH6mWT+wdRwbJmZS2yJWb3jd8MD3vbhwNOCVnlD9G\nbPMMPjfpSGnjXIkZaKtXQKgETiR8xDXEmZoMBHgc8FL+4pcd1JwGK1f/nc2FWFa/\nQbfoKmZk9mTod28JUY/HkZI0N2gO8i148IRsKrB0U8wOzJ1rCDwCncIF5EQR1dqM\nbVaoRccrg4+lzsvmDjOT\n=hDgh\n-----END PGP SIGNATURE-----\n", + "payload": "tree e1c8032ca9163bab3ab57c8b3df6a4f7278842c3\nparent c77a374beb7aee7cd74473370201ac51ed2d2806\nauthor Jason Dent 1709039816 +0100\ncommitter GitHub 1709039816 +0100\n\nfix: Update Octokit/core to v6 (#1595)\n\n" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/0ab9d5479b053735a59405cf2f9f938c09e8405f", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/0ab9d5479b053735a59405cf2f9f938c09e8405f", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/0ab9d5479b053735a59405cf2f9f938c09e8405f/comments", + "author": { + "login": "Jason3S", + "id": 3740137, + "node_id": "MDQ6VXNlcjM3NDAxMzc=", + "avatar_url": "https://avatars.githubusercontent.com/u/3740137?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jason3S", + "html_url": "https://github.com/Jason3S", + "followers_url": "https://api.github.com/users/Jason3S/followers", + "following_url": "https://api.github.com/users/Jason3S/following{/other_user}", + "gists_url": "https://api.github.com/users/Jason3S/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jason3S/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jason3S/subscriptions", + "organizations_url": "https://api.github.com/users/Jason3S/orgs", + "repos_url": "https://api.github.com/users/Jason3S/repos", + "events_url": "https://api.github.com/users/Jason3S/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jason3S/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "c77a374beb7aee7cd74473370201ac51ed2d2806", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/c77a374beb7aee7cd74473370201ac51ed2d2806", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/c77a374beb7aee7cd74473370201ac51ed2d2806" + } + ] + }, + { + "sha": "c77a374beb7aee7cd74473370201ac51ed2d2806", + "node_id": "C_kwDODohhMtoAKGM3N2EzNzRiZWI3YWVlN2NkNzQ0NzMzNzAyMDFhYzUxZWQyZDI4MDY", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-27T10:58:12Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-27T10:58:12Z" + }, + "message": "ci: Workflow Bot -- Update ALL Dependencies (main) (#1593)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>", + "tree": { + "sha": "99801be201e5444ded96cb261111de96b354546a", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/99801be201e5444ded96cb261111de96b354546a" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/c77a374beb7aee7cd74473370201ac51ed2d2806", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl3cBECRC1aQ7uu5UhlAAAMwcQAIbxLTxURW/vSMMHbKrg//gK\nJ40uRdy2cc8SBZ560TLeH59X/k0Qt14UDPYkuKmBwSIILqS294DT/UZUGUIn7NEQ\n9WBAbcuTxIwSYdQzYhQVpMmo5aFMGNbwet3rB31POI0vxZm79n4ODDmJnu5eSmGL\ncG+uYhKNsfdEP0R/3HcvhWRgVPM4/2NGRuctaL7W4/tmKUkJJVsCDjvJcuf1Tqu6\nS3rEdHBBEEPgAyhXooTK/YdSpmAJNbl09obngageVvf+F9Ltp+fMMn+UlaTLLySy\ndV+X6+eZ3JIrtQTnw8Oehi63CtsFlk1zwd4b+dJXB5+t1QoOwOmeUyliClqNe5Nm\nz6HaUTklD4S3DGO2mRueDMetvoa7gQbPCY8Whoql0hiURj/AfX8rCQjq2QR6k4iR\nHgh8h8iEYci1hu0YwCxXfq71hpljjcnZ4IbARNTQEh5kIpJGfXAcaEJsBSr4U4ae\nstwcehsG/c0dLHx89gEQ/DVNGUsx/to2fKoA3dusdDhSr24yqgsmMnw1nMepj87O\nR92MuPcu2i0Fa3njEc72mDZ4kTo+cORWoVlbwaEEikW12wHrSr2tstSYlYZQ7O1H\no/M+yVk6z924EIljqXn8R2P9V39pGg5OFDXoviGzQi9R+SE+Bow5lszb0IiKCVjK\nn8izIVo1UqJUid3z44Rp\n=JN36\n-----END PGP SIGNATURE-----\n", + "payload": "tree 99801be201e5444ded96cb261111de96b354546a\nparent 5c5ba0cca65718402a67fbdcfec7097d289620d2\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1709031492 +0100\ncommitter GitHub 1709031492 +0100\n\nci: Workflow Bot -- Update ALL Dependencies (main) (#1593)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/c77a374beb7aee7cd74473370201ac51ed2d2806", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/c77a374beb7aee7cd74473370201ac51ed2d2806", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/c77a374beb7aee7cd74473370201ac51ed2d2806/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "5c5ba0cca65718402a67fbdcfec7097d289620d2", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/5c5ba0cca65718402a67fbdcfec7097d289620d2", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/5c5ba0cca65718402a67fbdcfec7097d289620d2" + } + ] + }, + { + "sha": "5c5ba0cca65718402a67fbdcfec7097d289620d2", + "node_id": "C_kwDODohhMtoAKDVjNWJhMGNjYTY1NzE4NDAyYTY3ZmJkY2ZlYzcwOTdkMjg5NjIwZDI", + "commit": { + "author": { + "name": "Jason Dent", + "email": "Jason3S@users.noreply.github.com", + "date": "2024-02-27T10:54:32Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-27T10:54:32Z" + }, + "message": "chore: Convert to ESM Module (#1594)", + "tree": { + "sha": "eadb80d0be6e13259a95d9e9f773dcb33a252d66", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/eadb80d0be6e13259a95d9e9f773dcb33a252d66" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/5c5ba0cca65718402a67fbdcfec7097d289620d2", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl3b9oCRC1aQ7uu5UhlAAALfEQACQEnn9BEkklqDOJ9lEcW55f\nYbq3ClJeeNGaHHuemBWuAUhnSbrtIGj3quQct3nsiucekNg+40Pu7OgwNBKm1tiK\nwwFVhCm0D5pNv2V5Cxu+EyIRKOidxixouO70hCnm5JMCV4Wlv1dSWHzdLHB0Dp7m\nRo+nRndhxcAsKN7oxUwIW+wdCLcoLGusfiLac+G9+lx87MzxBaDqdiWv1r7/6e0A\nXGkrv3UmcYBFc+cZ06q8mhyXtkQ9oo5jobC8MJ4ksw+7io1tzzI1//kVHaPx09q+\niyEtROMzhryLwGnjdEzP8ytgGs+WcSnGTkGJrdeqYgyLVOhqRkPxPHtiU1Wc5Yic\notQs6E1yNpGYE2SCGSjuXY6x0f+1Au7mKbZlHwsXTW42LBgeK8/XIslFQne/ogh3\nudpVcwxPIJzpagbWBnSgxqzIxCG/VjxSptoxcvYd3ijZCjGW+JdCChuf0pR6nrZl\nCOAamMPkoOWpZTiYWDRbrI/+QjULy4ZydG8GVS1A5MWg3wLpf4L1MIsgzBlEgCXo\n1q54tf207MaBXy8QTgHPmHmeyyLfcQw+eFsRTenCnGTLlqL1H2zGV8gGCDWD9PV6\n2fMDF9bbfOTw5kayH+Jf+jOIriDAteR9DKXpRjPtEhw3OtbCDJXfII27xtt8vE1e\nCRQFwmW7Kum+wFZ+uY/W\n=Dxfo\n-----END PGP SIGNATURE-----\n", + "payload": "tree eadb80d0be6e13259a95d9e9f773dcb33a252d66\nparent 3b73d1ab76a9d33d6c947714be2e6b0e58f094c4\nauthor Jason Dent 1709031272 +0100\ncommitter GitHub 1709031272 +0100\n\nchore: Convert to ESM Module (#1594)\n\n" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/5c5ba0cca65718402a67fbdcfec7097d289620d2", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/5c5ba0cca65718402a67fbdcfec7097d289620d2", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/5c5ba0cca65718402a67fbdcfec7097d289620d2/comments", + "author": { + "login": "Jason3S", + "id": 3740137, + "node_id": "MDQ6VXNlcjM3NDAxMzc=", + "avatar_url": "https://avatars.githubusercontent.com/u/3740137?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jason3S", + "html_url": "https://github.com/Jason3S", + "followers_url": "https://api.github.com/users/Jason3S/followers", + "following_url": "https://api.github.com/users/Jason3S/following{/other_user}", + "gists_url": "https://api.github.com/users/Jason3S/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jason3S/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jason3S/subscriptions", + "organizations_url": "https://api.github.com/users/Jason3S/orgs", + "repos_url": "https://api.github.com/users/Jason3S/repos", + "events_url": "https://api.github.com/users/Jason3S/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jason3S/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "3b73d1ab76a9d33d6c947714be2e6b0e58f094c4", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/3b73d1ab76a9d33d6c947714be2e6b0e58f094c4", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/3b73d1ab76a9d33d6c947714be2e6b0e58f094c4" + } + ] + }, + { + "sha": "3b73d1ab76a9d33d6c947714be2e6b0e58f094c4", + "node_id": "C_kwDODohhMtoAKDNiNzNkMWFiNzZhOWQzM2Q2Yzk0NzcxNGJlMmU2YjBlNThmMDk0YzQ", + "commit": { + "author": { + "name": "dependabot[bot]", + "email": "49699333+dependabot[bot]@users.noreply.github.com", + "date": "2024-02-27T10:02:21Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-27T10:02:21Z" + }, + "message": "chore(deps): bump codecov/codecov-action from 4.0.2 to 4.1.0 (#1589)\n\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>", + "tree": { + "sha": "319fe6b2f9e306a8aff189bab1bbc88f4b3a87d7", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/319fe6b2f9e306a8aff189bab1bbc88f4b3a87d7" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/3b73d1ab76a9d33d6c947714be2e6b0e58f094c4", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl3bMtCRC1aQ7uu5UhlAAAnQcQAGVEweJbZg5/IewHvplNX49K\n277wPPuZxKaRuaZJ4ewo01nZIWm88ubs66KHvXQVereto1HmM1GFEo73nMaf1CR8\nZYJewnZniZ3LQrtNg+vqR+SHh88KEucnQkA2wNCgAYwNARu03nwxCuYoZBvdMzG1\nsd4K7DuLN0k4giDI8nyjFtVvAkJHPbQwFUO+Nb4KTD/YJz9maNZ+ci4+imgMwqJs\nhoVaJHm4VgXjSP0ft55Rw77XFiOa9wsu0M4H4TU7fwS+SHNGzuZ4ITp+fQUp48gS\nZqGZ8GIyNblaoGGB6kbOhC+4o2Qmw0s64yqki3MG2iuri4PVEeaDQrkww/IWvnA3\nYNjPZt7va6tJgaO2x0gpnkucLgifcREsH85YxxktmgClIOd18ov3CNZzzIMSB7Dp\nlvW3UU34sBWek+7uWIimVH9lJj08TQjy0jhPL6F6Bu83k4Gdi0d7AlgoaeOEZZUt\nXQikBNtkxqL6HSM4OqK4H0SD/hnHu2T5d6Eh/rVqL5vWFsj8UZKs5VecVpGuwfXk\nRVUxbwz8dnjdCYeb+pMwbSPLYa1lRckgbamPwpgop8S1POhJIdS7nuFOBc95s05T\n6DABmGT3XEuw6AktJ0q3RDv3k4kFeLaj6chztdyiqzdKJKrD8l1AkTi6/ymYdmUh\nQSIMRVpRj54wP+2dNmZf\n=zjjG\n-----END PGP SIGNATURE-----\n", + "payload": "tree 319fe6b2f9e306a8aff189bab1bbc88f4b3a87d7\nparent 06d30e03776264ddbd4d23e32097a8342d6bc285\nauthor dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 1709028141 +0100\ncommitter GitHub 1709028141 +0100\n\nchore(deps): bump codecov/codecov-action from 4.0.2 to 4.1.0 (#1589)\n\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/3b73d1ab76a9d33d6c947714be2e6b0e58f094c4", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/3b73d1ab76a9d33d6c947714be2e6b0e58f094c4", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/3b73d1ab76a9d33d6c947714be2e6b0e58f094c4/comments", + "author": { + "login": "dependabot[bot]", + "id": 49699333, + "node_id": "MDM6Qm90NDk2OTkzMzM=", + "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/dependabot%5Bbot%5D", + "html_url": "https://github.com/apps/dependabot", + "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "06d30e03776264ddbd4d23e32097a8342d6bc285", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/06d30e03776264ddbd4d23e32097a8342d6bc285", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/06d30e03776264ddbd4d23e32097a8342d6bc285" + } + ] + }, + { + "sha": "06d30e03776264ddbd4d23e32097a8342d6bc285", + "node_id": "C_kwDODohhMtoAKDA2ZDMwZTAzNzc2MjY0ZGRiZDRkMjNlMzIwOTdhODM0MmQ2YmMyODU", + "commit": { + "author": { + "name": "dependabot[bot]", + "email": "49699333+dependabot[bot]@users.noreply.github.com", + "date": "2024-02-26T17:03:13Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-26T17:03:13Z" + }, + "message": "chore(deps): bump codecov/codecov-action from 4.0.1 to 4.0.2 (#1585)\n\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>", + "tree": { + "sha": "ce25fe370729113642d76f6c5b09ed29465fee5b", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/ce25fe370729113642d76f6c5b09ed29465fee5b" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/06d30e03776264ddbd4d23e32097a8342d6bc285", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl3MRRCRC1aQ7uu5UhlAAAa+QQAFaRlpb1pfhsU4qHsiHDCorv\nOpoZVwHauNpRCJDH8K1Eg+ksQuqfODr8nPcsVd34NnPxJ2j4wdtoKURZCli30Y4c\nHBV1mZcWcRt5SLE7orA1GiPaGAK5I/V6B106ihplLJOyoFSlQLZ37NCLLmB81JiC\nMxH021cqP1UkUOhK88kDolFgOdFef65feNlHFiDXQq8kw989cc1ouBTQ8Hy1kG4m\n7ZSLeVAmalEuVF8rwDt6MLLA6MewEXMNIF50sqQzUBrbZ9gnLO2rCp4rERHffiaD\n80qJB/1yLOkEGGtiYM3L8J/zHHnwQNtk5plZokQqJdSesPDojOPNJE+Fc+BgR+oM\n+NpN3PQ/+baTAeVG6+niAwiKKz/xHlB9axGUZPJr2MQ8jIv1d2hyZe4netFpIVq3\n5V2wv3iWe8ufnxoMrjFtg8tgWqXbhRuloBnI/NQBBObLZUOFEOu1enyKeoqFDeGX\nXFCuGJFHK1w3TXCHrbdGxGXoPUAp4TGs7d2GkFmwrUD/wBhzdt1EW8FOzW3RfAQF\ncNDESrkfXaS++jmOv17SokFn5y9GZ9fxR9Mpmnju9E0+d0ruUh+1P2uoJFt1/CSd\nhwdFof9KPvG7+vp7/7EegNgS/5u6/ZCv5ZVAwQ/bOvsgKNUmTPKQPj6q7EZMvcvR\nat3rR6/3fIhUvQvUBDfJ\n=yRKb\n-----END PGP SIGNATURE-----\n", + "payload": "tree ce25fe370729113642d76f6c5b09ed29465fee5b\nparent 234423edd54c01aff0bd979c9bcc7cc30d267268\nauthor dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 1708966993 +0100\ncommitter GitHub 1708966993 +0100\n\nchore(deps): bump codecov/codecov-action from 4.0.1 to 4.0.2 (#1585)\n\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/06d30e03776264ddbd4d23e32097a8342d6bc285", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/06d30e03776264ddbd4d23e32097a8342d6bc285", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/06d30e03776264ddbd4d23e32097a8342d6bc285/comments", + "author": { + "login": "dependabot[bot]", + "id": 49699333, + "node_id": "MDM6Qm90NDk2OTkzMzM=", + "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/dependabot%5Bbot%5D", + "html_url": "https://github.com/apps/dependabot", + "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "234423edd54c01aff0bd979c9bcc7cc30d267268", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/234423edd54c01aff0bd979c9bcc7cc30d267268", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/234423edd54c01aff0bd979c9bcc7cc30d267268" + } + ] + }, + { + "sha": "234423edd54c01aff0bd979c9bcc7cc30d267268", + "node_id": "C_kwDODohhMtoAKDIzNDQyM2VkZDU0YzAxYWZmMGJkOTc5YzliY2M3Y2MzMGQyNjcyNjg", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-26T17:02:52Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-26T17:02:52Z" + }, + "message": "fix: Workflow Bot -- Update ALL Dependencies (main) (#1582)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>", + "tree": { + "sha": "62b8cf802a57b0a661733e08d60fa3cb6ee5a98d", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/62b8cf802a57b0a661733e08d60fa3cb6ee5a98d" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/234423edd54c01aff0bd979c9bcc7cc30d267268", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl3MQ8CRC1aQ7uu5UhlAAA9dAQAB+RUfl9eE7GtBU9p9uv2c+3\nikYudlrJHljKqqD+9pW/BuhTmr/+fZxoKrmGlRYLIwk8Qu1hZp75UZEMprzMZ/vS\nh1luh97mqo0OUHMIUkTwgOQJxNJXA38H++siIQ9843puqVJCIbnUrwoiYpN7OdKD\nQlCeJgOajv57bTEsoToaLIo7YcuX2e7u0KNtrn87B3WUDueuQhrR26skibApNcs3\ngNvSa6jijnfNXwe5/eiCxQpU2VkUCTFep+20H8LT47oXRVuf3iXfbSZjnTRw60Ct\nOPYqHWWEonfRTTal5Awx2sJVhxqulFWIjVnWpMTa7cWXedKsN2uH7Vknkzk4YB70\nmgPeTkpDW+SYWABXPcmqaEmv4/pSx41t/+sBOdhGuYEbtd+f8j1qe2dkmvXzGDIm\nhEARs0I/+bsTqfqywCzhKXmhztunwOlX1K7VMK9Cxh6hBf0urDrIATUl2krPx+A0\nnEESJb5Or8sNi7FrT/tOj8GRHyVpnpUkJldPE5g8hHxSVcdJ5dy/z4jpAFzU+w/U\nDbULzi70gxcPo1DWBXAc4DrtneAcWgpe+GJEximmqixrUuHLp/wU32lLm2SGaaih\nWCR4IaSmoewgY9YIUUwtuRIdsFEL5cN5AIL72iiJ0Jcs1mRtyrNi2Klc5yFtIZr1\nq988RRpyDxg8OaeKZVtQ\n=Mwb1\n-----END PGP SIGNATURE-----\n", + "payload": "tree 62b8cf802a57b0a661733e08d60fa3cb6ee5a98d\nparent c2b2ef55ea1026514b433af29451a81864aed53d\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1708966972 +0100\ncommitter GitHub 1708966972 +0100\n\nfix: Workflow Bot -- Update ALL Dependencies (main) (#1582)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/234423edd54c01aff0bd979c9bcc7cc30d267268", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/234423edd54c01aff0bd979c9bcc7cc30d267268", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/234423edd54c01aff0bd979c9bcc7cc30d267268/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "c2b2ef55ea1026514b433af29451a81864aed53d", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/c2b2ef55ea1026514b433af29451a81864aed53d", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/c2b2ef55ea1026514b433af29451a81864aed53d" + } + ] + }, + { + "sha": "c2b2ef55ea1026514b433af29451a81864aed53d", + "node_id": "C_kwDODohhMtoAKGMyYjJlZjU1ZWExMDI2NTE0YjQzM2FmMjk0NTFhODE4NjRhZWQ1M2Q", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-22T08:21:21Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-22T08:21:21Z" + }, + "message": "ci: Workflow Bot -- Update ALL Dependencies (main) (#1581)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>", + "tree": { + "sha": "f3b591d71f62a4ad0770006bca93fe53ceb7de32", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/f3b591d71f62a4ad0770006bca93fe53ceb7de32" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/c2b2ef55ea1026514b433af29451a81864aed53d", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl1wQBCRC1aQ7uu5UhlAAAMs4QADCEdnSL6DhyWFXjGRamu1xI\ns019dHm/DI812mJWkU3gJ112SDoF1iPUsHgSALAudTUYgm9efe5QUTmGSKKp06Fr\nQdNcuWpXTCDGREpCwZV8dZ7D8O7nDKBDcZExoFtr9zK4kvavk/+MvfC5uNSBG8AS\nRRuRDtS5JlYLPszCEYLXGmNhCh6XxfhgtYVGHjNKJzR/dnfi3vUG3t/81PkG+qxF\ncELeprMkhR17rUKmpoHRUJR3oekjV03iyt+b+k154af7PSp0huzFKdMN2cMJ923+\nPXPIyXq8JA0diNjqSRSy9DWfrTdvElTwpQ/EPrLF2BolQXzHHkJtnAuRbtmCgjDp\nQovuwSRPDpnLktrJrxEfgb4Hvc4KSPLJTC4LGXEpVB6E41V7Ki9gpGJG9365Esm8\ng2Mh2dqhVNzNLmzAEUiYaybLVkoroaxMCKB2xKur9ncc/itLtJU+pk244ur+LGnU\nrUae74GtM0EBoTdk1fbw1NU1ED+NdHnWYkFwGOdbxXLTy7Ax55Nz97N+sPPRZq0+\nUNb5Ho3O23W5aGTiZUZCPieyXoEYPVjmMJkJKdQ2FA6peMTUEFr6VC0utBvAhiMJ\nD5OBNgi5buIYm+V98YLXnZqWn5+z1uA4Agvst8w038BCnMeoOBVzAmKuUILgo53/\ndbpkUJK3C5TI5AhTLF3x\n=6Tkv\n-----END PGP SIGNATURE-----\n", + "payload": "tree f3b591d71f62a4ad0770006bca93fe53ceb7de32\nparent 2c1bbc0f25a8694255ecbc8e36583be9b19d6584\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1708590081 +0100\ncommitter GitHub 1708590081 +0100\n\nci: Workflow Bot -- Update ALL Dependencies (main) (#1581)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/c2b2ef55ea1026514b433af29451a81864aed53d", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/c2b2ef55ea1026514b433af29451a81864aed53d", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/c2b2ef55ea1026514b433af29451a81864aed53d/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "2c1bbc0f25a8694255ecbc8e36583be9b19d6584", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/2c1bbc0f25a8694255ecbc8e36583be9b19d6584", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/2c1bbc0f25a8694255ecbc8e36583be9b19d6584" + } + ] + }, + { + "sha": "2c1bbc0f25a8694255ecbc8e36583be9b19d6584", + "node_id": "C_kwDODohhMtoAKDJjMWJiYzBmMjVhODY5NDI1NWVjYmM4ZTM2NTgzYmU5YjE5ZDY1ODQ", + "commit": { + "author": { + "name": "dependabot[bot]", + "email": "49699333+dependabot[bot]@users.noreply.github.com", + "date": "2024-02-22T07:54:53Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-22T07:54:53Z" + }, + "message": "chore(deps-dev): bump @typescript-eslint/parser from 6.21.0 to 7.0.2 (#1578)\n\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>", + "tree": { + "sha": "e3ba2ff09cbfeb71aeefb84aee64c47c792e4e4c", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/e3ba2ff09cbfeb71aeefb84aee64c47c792e4e4c" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/2c1bbc0f25a8694255ecbc8e36583be9b19d6584", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl1v3NCRC1aQ7uu5UhlAAAYt4QAANg/7c+/lTCRHuJ5vq8kWlZ\nMwP+6u/fGH6re743bIANe0ZMx5gGiGFA9lvyi5P2HUmSvh16dNKirTqas2Zvxypb\nxy9EmBYM57JZJMLlRe6p8iHkLBWwEoGAb/XT/mQyJND9GqwmepbmitJCkTL2FBsY\nPy+0GwNNggRWdRRdVFZnQ9Jip0jlnqkNdbJ2bZD7ey6wxvjWe7N/sg2KLrOG+CwZ\nt4BMpjBBQbwXF9jFcamFeKXK0uYKomjHPpboqCOfA5xrYVN3JHBevt8GHmDRENfB\ngP1jaOC96lpKmp8IOwwmSiF3+1Nf+uqCkA0jt50ea83JcAQjORqa3V0vMy3o6kp+\n2W/JcFd+c9vcTohi7GrnEi4K2AWdrbCVlk4PIUVaK6OWZoPgagmQ48LvMXx/Tigq\nuVSc1xKlpBhvQuxHQK+LcpELhc9mvOklN7zTP+ARsazqO9axeOyEl8mhDf25k15t\n61mqxZ1Kd/QX+dpkb2tPNQ1mIUTHA1/t7PGybQXr0PcYc8iZc2AuB2fMD25hEZ92\nmcCt/oADtEJ7CHWmX410ED0oZbNOJeuIHWs4UOcGDkCh/ahKVsi8FuMAi01LzYGr\njT/P0raWJ68ozZr+M9xGj53q2QDVmuQCPcyHKUWI37GoHRWc3DnaOP2GCbssnAKN\nqMS1Ucx/jV1tYnVvXeOY\n=mE0g\n-----END PGP SIGNATURE-----\n", + "payload": "tree e3ba2ff09cbfeb71aeefb84aee64c47c792e4e4c\nparent 5c1337229993d408f9aa973af06f56a52ae89f42\nauthor dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 1708588493 +0100\ncommitter GitHub 1708588493 +0100\n\nchore(deps-dev): bump @typescript-eslint/parser from 6.21.0 to 7.0.2 (#1578)\n\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/2c1bbc0f25a8694255ecbc8e36583be9b19d6584", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/2c1bbc0f25a8694255ecbc8e36583be9b19d6584", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/2c1bbc0f25a8694255ecbc8e36583be9b19d6584/comments", + "author": { + "login": "dependabot[bot]", + "id": 49699333, + "node_id": "MDM6Qm90NDk2OTkzMzM=", + "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/dependabot%5Bbot%5D", + "html_url": "https://github.com/apps/dependabot", + "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "5c1337229993d408f9aa973af06f56a52ae89f42", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/5c1337229993d408f9aa973af06f56a52ae89f42", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/5c1337229993d408f9aa973af06f56a52ae89f42" + } + ] + }, + { + "sha": "5c1337229993d408f9aa973af06f56a52ae89f42", + "node_id": "C_kwDODohhMtoAKDVjMTMzNzIyOTk5M2Q0MDhmOWFhOTczYWYwNmY1NmE1MmFlODlmNDI", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-22T07:54:38Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-22T07:54:38Z" + }, + "message": "ci: Workflow Bot -- Update ALL Dependencies (main) (#1580)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>", + "tree": { + "sha": "06c6800715ab70c48fdc9d5bfa284d6a9bf4322b", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/06c6800715ab70c48fdc9d5bfa284d6a9bf4322b" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/5c1337229993d408f9aa973af06f56a52ae89f42", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl1v2+CRC1aQ7uu5UhlAAAlqYQADeCUXXmB5U9FZzxPVumEiaA\nIkB45lOPDaY4shPC6ugVLArG8v74LNGrvatTRMHwSaPPufUcxg1He4lBt6HIliQf\nOk97gAIb169lf2TJWbvZJ1nniLwg77wD2VDCUClnUcqdm/8HvGCXoEBl8FQXnh9i\nD/oq10WDCxRFGsZxqapmLNBqoPe0XEej16h74X3cqVwuuTZwagP5RY7bVueQ0KQ1\nWB8mMV4s6/PHVK2oyYcjt484cs0AaClYHfIBpm81Fb+4q5zK3EurUNNiOAOg3G8F\nBlqsdXazd95aOTH/L9JJsmNzKLKV+xePYbBSCdf+L9Xarf/2+2+3ksBucIHPqZxS\nlKhXRo7csBhq69x9LPp6LCbB79p+ILH9iPMSP0YJCPeIs5SXc4ni304SSc3Q9jTZ\nDuNG4PMU6/Q/cjtFMWvy6uXJ6znXq6cSnGOrMjFinbtUuYxoDIhmhfYAONJZDpCX\n9t4PoFTPPdeHQ61/n2NOrgI5ewrnUe7weqIrGJsuVbtf3F+c92J5QLzAhZnhrViE\niBKLTRRYHPCr9QBR5PXD9kuJPpmjjdnf+vttTQWixfPPpTn3veSjuhv5i6awklO6\nXKtnV6kqLgD5R0gBvvBgJBXiBvOtfXldgYBTXRE9HnZNdTL7fS3VuthfmrPnw4l2\nPTGWt7AMIAoeAz1warZf\n=D/Hr\n-----END PGP SIGNATURE-----\n", + "payload": "tree 06c6800715ab70c48fdc9d5bfa284d6a9bf4322b\nparent e6f09063780e6ace11d87ce10d818d4e2bad9b66\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1708588478 +0100\ncommitter GitHub 1708588478 +0100\n\nci: Workflow Bot -- Update ALL Dependencies (main) (#1580)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/5c1337229993d408f9aa973af06f56a52ae89f42", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/5c1337229993d408f9aa973af06f56a52ae89f42", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/5c1337229993d408f9aa973af06f56a52ae89f42/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "e6f09063780e6ace11d87ce10d818d4e2bad9b66", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/e6f09063780e6ace11d87ce10d818d4e2bad9b66", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/e6f09063780e6ace11d87ce10d818d4e2bad9b66" + } + ] + }, + { + "sha": "e6f09063780e6ace11d87ce10d818d4e2bad9b66", + "node_id": "C_kwDODohhMtoAKGU2ZjA5MDYzNzgwZTZhY2UxMWQ4N2NlMTBkODE4ZDRlMmJhZDliNjY", + "commit": { + "author": { + "name": "github-actions[bot]", + "email": "41898282+github-actions[bot]@users.noreply.github.com", + "date": "2024-02-21T16:29:59Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-21T16:29:59Z" + }, + "message": "chore(main): release 5.4.0 (#1538)\n\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>", + "tree": { + "sha": "b07bb7b7237673e491596a57df728a93827c757a", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/b07bb7b7237673e491596a57df728a93827c757a" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/e6f09063780e6ace11d87ce10d818d4e2bad9b66", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl1iUHCRC1aQ7uu5UhlAAAQVgQAGORdc14eXRyLbV4mMB1amBV\niQQZpYNCc+lhJ6BUgkW7V5P0PbxjnQT9vNJLNDPKGvLAYBFGitnw7/pqwF0KSWv5\nY8XJ67A+h6CsOnFuVf0AXKKvE0tgaTCZga0ad3j2ncDrzVyH+KEn1TOHODU1AC6w\ncYkuNE2KzOF37SsXyUWAoaFxkfzZ9wEaIDclgKORI+LGqxeJus+8LFGale9TIQkS\nRRij2OhX2OKZQWeniLCQGwrBda+7zzjcvqNSX9CTm6REwd0dOdQ+J/KI/KRVEKM3\nB/QgNPQ+1KJcLhnb5xQyo6SczqyK6UhCSUwAFmjEF6j5ab45NYucGaHCpF72uZe4\nsa23RCeztQe0TqCyCSDpR4cqUzPDcj3qpPM3btejKv5rw6Zn/QWqwu+OdHT3oaGA\n3QBviOPXonnsK92ma+uQpR+wAYhHkgb7hHFoMNACN+Q/YhR+2JpEcANm4S+e3zbh\n4jl/IqgQLNTPwnVcQiZ9whLSMZ3lfYXm+J8LHyBvmsDxlR+Opb3nifIO+/J7y6NK\nEn3IFD7SNAHGQikCjaYR5gQKsztANiym7znMh8abH1TDol/cJMuPbTO7CAbVc0cH\nly97TfA1iRX0zvDXuVdDIFQZepqapzY3NU++AwucwE5I/Og7jeuSisGOoiTVxv+g\nJ1Zlk1RKDZI6dVuN8cmI\n=OLvf\n-----END PGP SIGNATURE-----\n", + "payload": "tree b07bb7b7237673e491596a57df728a93827c757a\nparent 646fc21ca1558b8d993d6c2b0f17dd0cf9c5b57e\nauthor github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> 1708532999 +0100\ncommitter GitHub 1708532999 +0100\n\nchore(main): release 5.4.0 (#1538)\n\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/e6f09063780e6ace11d87ce10d818d4e2bad9b66", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/e6f09063780e6ace11d87ce10d818d4e2bad9b66", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/e6f09063780e6ace11d87ce10d818d4e2bad9b66/comments", + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "646fc21ca1558b8d993d6c2b0f17dd0cf9c5b57e", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/646fc21ca1558b8d993d6c2b0f17dd0cf9c5b57e", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/646fc21ca1558b8d993d6c2b0f17dd0cf9c5b57e" + } + ] + }, + { + "sha": "646fc21ca1558b8d993d6c2b0f17dd0cf9c5b57e", + "node_id": "C_kwDODohhMtoAKDY0NmZjMjFjYTE1NThiOGQ5OTNkNmMyYjBmMTdkZDBjZjljNWI1N2U", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-21T16:28:43Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-21T16:28:43Z" + }, + "message": "fix: Workflow Bot -- Update ALL Dependencies (main) (#1579)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>", + "tree": { + "sha": "59174c11ed9daa3c13cd6cb7f75ed5b7bc363215", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/59174c11ed9daa3c13cd6cb7f75ed5b7bc363215" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/646fc21ca1558b8d993d6c2b0f17dd0cf9c5b57e", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl1iS7CRC1aQ7uu5UhlAAAviIQAFMwZR5YmuyiKKt+CZoUfMR5\nnKGn392XmpcFs8mkjuRHJG9asCBl+gM828wKaDr3pZYObRr3ixq3jkXJnvVfrZ5o\nu1B/RG26S8h3fkpTUyCtKdci44LI3o0m7ISVGT7cRCCoNEKEPC5EeHqBckjvrgA0\nIz0KCEX1bieF/fIwY+GThvFPFX/RqzgUuAIFE3vHaHNQ3kUWwQSSOANaJdtA7dLL\nFuXzP180Pkh6pfI1mZkVQ0/UVCCAweJrL1ajJAGoIJpQ7gO8MNsyIkS1qi2D0hRZ\n9RqU721NVJGU1DdXzegwjeTPaiGe7sp9FgYCvJ20H8dEVRwTqDnkb5Mq4yc4pv53\nhHj6p7oBqvCNqyd8V+HTFrTdM0RaEiV1yqoPjvLgkMcgBntEpdK88pf2DJB4uBc6\nxK5hISTMChECSdfJJhBeA+PtrhqkMUhpwyRZtNiKAckfX1W5hVJ6dRabZvEQCcIE\nAfDp429IjQlm0V1ufqZdvQt/8ewJmLJGwRcWLoaTYdc3Vqr1zLngZxvRSjSVvYl6\n4to6gYXg0421D3VZk8asRzUrpssSt7Q7QpKrGnVxfqSrV6d90Ey4uuPQXfcl//N8\nmEDjpyNAZtIULOwjde3ze3yv8HtTmw2dIx6L+FZ3rSkLKgAvomApdJaz73iwFkV8\nWJi55myfJ/ziVXGVm+sd\n=c27y\n-----END PGP SIGNATURE-----\n", + "payload": "tree 59174c11ed9daa3c13cd6cb7f75ed5b7bc363215\nparent ed4b29694c600cdce1fa30bc20280f5e66b214de\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1708532923 +0100\ncommitter GitHub 1708532923 +0100\n\nfix: Workflow Bot -- Update ALL Dependencies (main) (#1579)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/646fc21ca1558b8d993d6c2b0f17dd0cf9c5b57e", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/646fc21ca1558b8d993d6c2b0f17dd0cf9c5b57e", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/646fc21ca1558b8d993d6c2b0f17dd0cf9c5b57e/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "ed4b29694c600cdce1fa30bc20280f5e66b214de", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/ed4b29694c600cdce1fa30bc20280f5e66b214de", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/ed4b29694c600cdce1fa30bc20280f5e66b214de" + } + ] + }, + { + "sha": "ed4b29694c600cdce1fa30bc20280f5e66b214de", + "node_id": "C_kwDODohhMtoAKGVkNGIyOTY5NGM2MDBjZGNlMWZhMzBiYzIwMjgwZjVlNjZiMjE0ZGU", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-20T16:29:59Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-20T16:29:59Z" + }, + "message": "ci: Workflow Bot -- Update ALL Dependencies (main) (#1577)", + "tree": { + "sha": "b1c416fb3118d1c87a02cbdc3db2022deb785089", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/b1c416fb3118d1c87a02cbdc3db2022deb785089" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/ed4b29694c600cdce1fa30bc20280f5e66b214de", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl1NOHCRC1aQ7uu5UhlAAAgHkQAHAlIGpLprvhKcpYb+ZVu/i5\nO7gd6OH52oUUeU1jTwofIRJX9L9LpRvJ78CuCHf5UAnV1it9MnGUaADXXsqrVFLW\n03Mt9LCi+FlxitYCu9sk+tt4G3eKEPy6wQN8dhSXcSz1yrWadArcDzFXO92GnbW0\njKlP7fv+1psZDEZtFHV67V5lspIJkoNK17Jctuge+deTrH5PG+XC9FQwfEc5eG5b\nRAz91LZQBgmeMmmHYrh573fV5zqYQspd+7k+yzVMbGmthy7oDwxtgXt93qPUsxGX\nJikeTbA45eQgTeQl6KXtFbzSYhxMY9zrd318ZcEDM/RnGHFCmYRcjqbSsK7jFgNj\nCtm0nT1t7Z9TMk9VMF0n678HvCmGrzALk3xnaI5Q6skT5N8+fkQR2OoLaRe+8wmy\nhNDdEslLtqHxaPPiOl59YJJOJAiLbj5aOk9Sg+FgdgBGgrLzeg1INma/MTV6GaP5\nhIGFcZAlMoSkED4pficBdnDIZ8U+86/HRAlrTWWDLmgWmMCjGnT72y21NljbU78o\nUKGOevxrkqnJiuU0o6QEzTkbcQPmALFD0+S4HSp9MyXE3gbBRxox3Vdy3JkNvseZ\nPFzVKl0KfFja9phN8Qx+CiRSREfeKUGvlYk6+x23qrpgr8NGvr0wkXN8MrrON24l\naYRV+MSfsFSe9qOTU1fA\n=btNa\n-----END PGP SIGNATURE-----\n", + "payload": "tree b1c416fb3118d1c87a02cbdc3db2022deb785089\nparent 435cf4364d988b8efaa63076b5d6e5b8152e4254\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1708446599 +0100\ncommitter GitHub 1708446599 +0100\n\nci: Workflow Bot -- Update ALL Dependencies (main) (#1577)\n\n" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/ed4b29694c600cdce1fa30bc20280f5e66b214de", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/ed4b29694c600cdce1fa30bc20280f5e66b214de", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/ed4b29694c600cdce1fa30bc20280f5e66b214de/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "435cf4364d988b8efaa63076b5d6e5b8152e4254", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/435cf4364d988b8efaa63076b5d6e5b8152e4254", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/435cf4364d988b8efaa63076b5d6e5b8152e4254" + } + ] + }, + { + "sha": "435cf4364d988b8efaa63076b5d6e5b8152e4254", + "node_id": "C_kwDODohhMtoAKDQzNWNmNDM2NGQ5ODhiOGVmYWE2MzA3NmI1ZDZlNWI4MTUyZTQyNTQ", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-20T16:23:12Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-20T16:23:12Z" + }, + "message": "fix: Workflow Bot -- Update ALL Dependencies (main) (#1576)", + "tree": { + "sha": "ad9adfe60c3982b0839ceee4ed583e7375f7b6ab", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/ad9adfe60c3982b0839ceee4ed583e7375f7b6ab" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/435cf4364d988b8efaa63076b5d6e5b8152e4254", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl1NHwCRC1aQ7uu5UhlAAAyLAQAAjUCcSHpZnEUb6Dawk/dljY\nBUDF0N6ApkWUrze88PjpfUedKbPq9O4b/Vd1doi8pl4bnNQ1A9VVGG1SFQdNJd5U\nG4QkKVJzP29zfpK25YrsqL3w6yE3tgRjUynyokfpvmqBJC7++TTenw6UaLm6Vt3U\nOUACyJ69nMoV0xAzBH5izK2FegljnkvzRgvIvyzsh3eFY/+pX5r0pK/yHTE2kZBJ\nBisU67SPVSwc5XT1BtmJgV/223irLQxWpo+19MXuCwtcdLcN9fgsAn8tmBmiOCrd\ngNN2rIm3aVTNTD5R8AGTTL7x8fOuCOb6jBwFYKfqy3Oqm3SnTYhAvb5ZiiCCW9qh\nklHINK5b0/YrzUxPXrQ7SdagcW0VA+CRriyui0e11db6l+hal9T4NERells2stFM\nvDkDs0AFLSZjqTEyyGr6ynkw7YtFvjrbB0DusSjTu2MF3h4kco8DbkxwudtDYnZ6\nyXBvygJg8+Qs7Ho8NIbwQp5qnW31C1Wt5k1tGZYkgV5Vx4fnCi4kNs4rD3JnfhPR\nqeEz8smVdNAgkcihIhNesDwpzVfqnf8qEvtPuT+b7SzLmrXRvgrLy7x5kxW7MAON\nyVhQyDaL2WRIxDfymkEf6Zxnajps3T1L9mmPik9O5q07zuM3VDuIsmWUlGMMlJ6l\nBX8Rw0fnXfeNWZ+FU03b\n=niRD\n-----END PGP SIGNATURE-----\n", + "payload": "tree ad9adfe60c3982b0839ceee4ed583e7375f7b6ab\nparent fafff7e4c079f28c42decf8e93fdb7c5713ff15e\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1708446192 +0100\ncommitter GitHub 1708446192 +0100\n\nfix: Workflow Bot -- Update ALL Dependencies (main) (#1576)\n\n" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/435cf4364d988b8efaa63076b5d6e5b8152e4254", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/435cf4364d988b8efaa63076b5d6e5b8152e4254", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/435cf4364d988b8efaa63076b5d6e5b8152e4254/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "fafff7e4c079f28c42decf8e93fdb7c5713ff15e", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/fafff7e4c079f28c42decf8e93fdb7c5713ff15e", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/fafff7e4c079f28c42decf8e93fdb7c5713ff15e" + } + ] + }, + { + "sha": "fafff7e4c079f28c42decf8e93fdb7c5713ff15e", + "node_id": "C_kwDODohhMtoAKGZhZmZmN2U0YzA3OWYyOGM0MmRlY2Y4ZTkzZmRiN2M1NzEzZmYxNWU", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-20T09:54:51Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-20T09:54:51Z" + }, + "message": "ci: Workflow Bot -- Update ALL Dependencies (main) (#1575)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>", + "tree": { + "sha": "2530286f7c5cb0ce84d3ac67c5b25ab10c2dd5d2", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/2530286f7c5cb0ce84d3ac67c5b25ab10c2dd5d2" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/fafff7e4c079f28c42decf8e93fdb7c5713ff15e", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl1HbrCRC1aQ7uu5UhlAAAEdwQAFOZCxx6SOD03X5L60b1C4Yp\nqzKroDto9E3uCMPBijC2uTWYNxjZIKg2b1aph3yw+XT2IHC2rsBYJIM9zpxv1Mhz\n9uthAUKQCgqaj/NxG5gMJR36i4xMSWC6Fg31nlm6TN2aj8/nNtr5k7tEefyfZYqJ\nCBXBB2G4DHBiRQ5ddkvJwfNrY3Os/L9O65QiPzrhkEwLSNKESKMHHAah/qJIHeuu\nNRRr9WbOxUa7rOIZWFUCBeXQMJGzZxZIogtq9efp6F7YTGIBiYSE1S4yw0BuQxFQ\n2miaJmz6ZsKR6JpqfZvcxdIdwMHeytQyO8ekRAaZRMoIr+NPFe/OLMn4JcddLUBo\nvJ7blffNUCnb3jvOVe+mEl7nwsq3bH3q9LYkXnjGmuTSu3bq2qqdsmjMGks5sYiq\nCh95nrWjus3PgFzm3mVj3P4Mm32SKdMG8RFSqLVcUAIeTmvDx/KB3JNwNH5mTvnK\n9vFnjQ1bNRyyu/eEHkDvgXDXhOq6gpoF5hZDCtmlu9ytfTY2UdBr2U/JGM2inVrh\n80A9Uv9Ldd8NfRRo76V97DmMGtFCgvHgqv6qo9S3Pbxbxx8usxiHphhL98mHUQuE\n/ZPs0shhpuiMgV87Y7HEWfo8RiUDN4K4Bd5Zjz/GKMsNHv7IJKZzmaGI9LaadPqO\nAGl8RcdipgB9xJQTUEUL\n=CeNf\n-----END PGP SIGNATURE-----\n", + "payload": "tree 2530286f7c5cb0ce84d3ac67c5b25ab10c2dd5d2\nparent 85332b1e3715eb2e89ca6a05a910a46fbed3a8ae\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1708422891 +0100\ncommitter GitHub 1708422891 +0100\n\nci: Workflow Bot -- Update ALL Dependencies (main) (#1575)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/fafff7e4c079f28c42decf8e93fdb7c5713ff15e", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/fafff7e4c079f28c42decf8e93fdb7c5713ff15e", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/fafff7e4c079f28c42decf8e93fdb7c5713ff15e/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "85332b1e3715eb2e89ca6a05a910a46fbed3a8ae", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/85332b1e3715eb2e89ca6a05a910a46fbed3a8ae", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/85332b1e3715eb2e89ca6a05a910a46fbed3a8ae" + } + ] + }, + { + "sha": "85332b1e3715eb2e89ca6a05a910a46fbed3a8ae", + "node_id": "C_kwDODohhMtoAKDg1MzMyYjFlMzcxNWViMmU4OWNhNmEwNWE5MTBhNDZmYmVkM2E4YWU", + "commit": { + "author": { + "name": "dependabot[bot]", + "email": "49699333+dependabot[bot]@users.noreply.github.com", + "date": "2024-02-20T09:52:25Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-20T09:52:25Z" + }, + "message": "chore(deps-dev): bump @typescript-eslint/eslint-plugin from 6.20.0 to 7.0.0 (#1568)\n\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>", + "tree": { + "sha": "265caf4311b2b5d965ed748ec05f27fc27a6546a", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/265caf4311b2b5d965ed748ec05f27fc27a6546a" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/85332b1e3715eb2e89ca6a05a910a46fbed3a8ae", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl1HZZCRC1aQ7uu5UhlAAA6oQQAAXEz5eIC8o/Y2+pys2XFTst\nHrSUZ7mT5ktEEWvGQgKJ43JX+NcUxSw6n5H8JH9MlusiWo1AGVylm/kqXye7By/z\nlPPohrlcNOgJTfena3xzK72cYRR2SicOZWW9U+uDALBazcK58FVYcrk/iLm+7hku\nOpcdR0CeXjnxKGgWlTAmMs9KI22z9ddlSFzvBW2Naz1A5MaIhAVF1Tqjl2OPqsVk\nIk/RHliJOO7CCrwPgTM624jvHpKg0K7LRX7uZ0O1BXc4V8U1nyJKNT4eCIlYlgUs\n7JDL8zyv7KZwa008r3Q9+2pJ8SXkACb0EEvclcnWxy+/wNSDsjGkuBLacj0JwmYp\nbPQGeOX3Cw4ZCdwylIN0CM90H4YOl0aVFLAqXMLnXQC9HiTFY3lAzaqZ/jn/5BoD\nYCVf6Q18BIbSzcnQ+eomVOem2VDVkpY93dJy8JIyPW01Bknyv0cg8MUnBhcNXYfa\nBTvRuMtK5QG/24QUtpZNuiOuhFg0Ez8ni8LqwGBP/lagk2cGX4+ImvdQj4MWFWR0\nbO73ox8hq18jCUBobbJGYgscN1ATWgarS5BRi6qOF7stZRiu/kpx39ucrGC9kJtG\nWPES9/pWJ2gNZxZxzdhw2JiahjE7Ez4CCBNH+A/v0rLFFj+zMovgy+EDjXi0yU7v\nNUn7u27q2MJ7y9vrEtXp\n=C8Pb\n-----END PGP SIGNATURE-----\n", + "payload": "tree 265caf4311b2b5d965ed748ec05f27fc27a6546a\nparent 4d09489867661b703da44e7098760e61c41bb473\nauthor dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 1708422745 +0100\ncommitter GitHub 1708422745 +0100\n\nchore(deps-dev): bump @typescript-eslint/eslint-plugin from 6.20.0 to 7.0.0 (#1568)\n\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/85332b1e3715eb2e89ca6a05a910a46fbed3a8ae", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/85332b1e3715eb2e89ca6a05a910a46fbed3a8ae", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/85332b1e3715eb2e89ca6a05a910a46fbed3a8ae/comments", + "author": { + "login": "dependabot[bot]", + "id": 49699333, + "node_id": "MDM6Qm90NDk2OTkzMzM=", + "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/dependabot%5Bbot%5D", + "html_url": "https://github.com/apps/dependabot", + "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "4d09489867661b703da44e7098760e61c41bb473", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/4d09489867661b703da44e7098760e61c41bb473", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/4d09489867661b703da44e7098760e61c41bb473" + } + ] + }, + { + "sha": "4d09489867661b703da44e7098760e61c41bb473", + "node_id": "C_kwDODohhMtoAKDRkMDk0ODk4Njc2NjFiNzAzZGE0NGU3MDk4NzYwZTYxYzQxYmI0NzM", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-20T09:51:56Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-20T09:51:56Z" + }, + "message": "fix: Update CSpell version (8.4.1) (#1574)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>", + "tree": { + "sha": "454dbae92a51c1f4f1946bea388a0eea6c497264", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/454dbae92a51c1f4f1946bea388a0eea6c497264" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/4d09489867661b703da44e7098760e61c41bb473", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl1HY8CRC1aQ7uu5UhlAAAb48QABvPmbOBkPO6RU4NeMs1BMDE\n8dSdbbnZJSj47j/bRNxlrcgiIKXKQwOXH+9eAwIoH1zuNs16kcJtYzBPjF1+BcpW\nVWFuVOaX2tPzF9sJNojyd00uXjxKRE2g1Ii9ZyFx0Uh027WEtTKm9N6LLejBz+Wk\nsT6rhasTyuoP2GdvPj2sES5UPIBvgvlFP+RCGRkC40FvZ4djGbCrOOktzk9KqgoC\nkEfW1jLeCG6huNBCtTHFlX+LKA+id2ieeDjldiFlrLQ0agVjzuqpHirE4OSQ1sjy\n1zF2FbWyTSXg0H3u4JiWdjW2hJ2MqGyr5pL++EsmyXK9AYBypqU1rIUvttw2ABTr\nurGu7Y71ujD5Q7yhPBWFK6MuOsip/2qcs2pkTucdLSxg9Sjr6KvaEZyGG6kFqmry\ncmR5VH2/+wDjMojHpfl29rcIjqEN8Z53cXcDBq+C3GFeOYeW5aYLRXvQ9NQseWR5\njeu7UfR6c5WxkO1RptKusZnWPAoJ0KBb8s89EVWxxH7BWrboIPNCFNG56xxM+jhX\nLpnB6uJsxwsqXNpDCSHTEdpS7mhx+WSC3ocW9iBVbs9NjwsSvYUQv0jUtQAf4vbS\nfMozJY54kMkd8CDVbXX5PhKnFD9NjrnUoHabXd4OpDqYZtmOnirPoApH1GhUo671\nxUwl0ARLUAvCuuTYChkM\n=YR4X\n-----END PGP SIGNATURE-----\n", + "payload": "tree 454dbae92a51c1f4f1946bea388a0eea6c497264\nparent 9ff4c83cfcf55e5bcbbfab0472c9d3adb93cd127\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1708422716 +0100\ncommitter GitHub 1708422716 +0100\n\nfix: Update CSpell version (8.4.1) (#1574)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/4d09489867661b703da44e7098760e61c41bb473", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/4d09489867661b703da44e7098760e61c41bb473", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/4d09489867661b703da44e7098760e61c41bb473/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "9ff4c83cfcf55e5bcbbfab0472c9d3adb93cd127", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/9ff4c83cfcf55e5bcbbfab0472c9d3adb93cd127", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/9ff4c83cfcf55e5bcbbfab0472c9d3adb93cd127" + } + ] + }, + { + "sha": "9ff4c83cfcf55e5bcbbfab0472c9d3adb93cd127", + "node_id": "C_kwDODohhMtoAKDlmZjRjODNjZmNmNTVlNWJjYmJmYWIwNDcyYzlkM2FkYjkzY2QxMjc", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-19T17:22:11Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-19T17:22:11Z" + }, + "message": "ci: Workflow Bot -- Update ALL Dependencies (main) (#1572)", + "tree": { + "sha": "2fd34819d2b36d219656f9cd9b7a37b7e4e00d07", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/2fd34819d2b36d219656f9cd9b7a37b7e4e00d07" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/9ff4c83cfcf55e5bcbbfab0472c9d3adb93cd127", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl045ECRC1aQ7uu5UhlAAAFoQQAGGt5s0hwSem01nCTBkcJaJ0\nTfeiYG/HSGSlmLUoHnnGnqX68IP1YJPHkifXb9v9TNitpAEN9MUvxgHL5zhRYutn\njkt1GVgJVOZmVdLW6UA8U8muiuXfTX5sdVIv2sU1lPihmcEhqbZgZG7HLj1k/wp6\nIi8f0WG3F4Y9EWuS+l91eK1i3z6fnFSSrEEoBCI3V9S2Hs8Cfh3orIuu6NWrof/b\nntm40cKKsWvtV4Gfq0N4nqKOYMfSqqMQWz/r05xyqLvL/7kDAGOOHD3AucuMpJY3\nFoSbzwZrzyw25YrXtvTtoBxlJlEZuy/6zY9wEedYU14hr4607XMleUIVAs29r2Om\nu5RHmpfCbMm93P0UEI0gN38ymuyGrwYRr6BcF0wYqKrrwAJA8x2zF1wsMZWb/hox\n9a2nOQyLvdILX0TzWPKzdc51MJMpLV7xASMoCoXD/bMZhNuM2d4dGBCtJjK3dW9P\nD6nMgdA90UO13ei/9xyqRt4JjCUujhAYMRoJjTJrPQxycCccvZuGFu+gEHPal7rB\nijKysFM/A+oRMLCvEAGPzjMfRuRLe/G9+9MOtufZFfCQB0wKtBMQYtZdEAHde8qv\nm2smTpBw5cRkTcLnDtbocm0mfbCBd8XZwlHnUFMab5O7YoKz/hyxnUPBJVIbmTmi\nqu05TNl/w4i1M0ewsCUo\n=Hfgr\n-----END PGP SIGNATURE-----\n", + "payload": "tree 2fd34819d2b36d219656f9cd9b7a37b7e4e00d07\nparent eadadef4da7f55b1f9b0fc1246f875b6ffa488b0\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1708363331 +0100\ncommitter GitHub 1708363331 +0100\n\nci: Workflow Bot -- Update ALL Dependencies (main) (#1572)\n\n" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/9ff4c83cfcf55e5bcbbfab0472c9d3adb93cd127", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/9ff4c83cfcf55e5bcbbfab0472c9d3adb93cd127", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/9ff4c83cfcf55e5bcbbfab0472c9d3adb93cd127/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "eadadef4da7f55b1f9b0fc1246f875b6ffa488b0", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/eadadef4da7f55b1f9b0fc1246f875b6ffa488b0", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/eadadef4da7f55b1f9b0fc1246f875b6ffa488b0" + } + ] + }, + { + "sha": "eadadef4da7f55b1f9b0fc1246f875b6ffa488b0", + "node_id": "C_kwDODohhMtoAKGVhZGFkZWY0ZGE3ZjU1YjFmOWIwZmMxMjQ2Zjg3NWI2ZmZhNDg4YjA", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-19T11:59:58Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-19T11:59:58Z" + }, + "message": "feat: Update CSpell version (8.4.0) (#1573)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>", + "tree": { + "sha": "81f3eb4cb59c01f9d798249c12fca2a866db6633", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/81f3eb4cb59c01f9d798249c12fca2a866db6633" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/eadadef4da7f55b1f9b0fc1246f875b6ffa488b0", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl00K+CRC1aQ7uu5UhlAAA2ZgQAKWdeZatagc6nbJL46TwovW8\na7h7BekQ8DrcrIUk3JDXURzrb15lbI2jr/COrpggfWW7AKBK3K4+lNc8POKkm3r9\nqaBRIlvQZhBD2WdUXrIrm140tdI6betuA/Ot7G9YULHHwqjRx18onckr9xfuhUZN\ndMKmyBh+yIQRj2ZOaeB8XViDY+/yXTXASZWmzsW2ksJNyxdtZkSubIFhyFrBBFcM\ntNwsXw0b0l0V5k7JwWfti8zUDi2tpZ6ObRa9JLQCGaJTEFS7KAYi2hgv48ZH8WcH\nGh5E6upCatloo60SDY/88D0L4GlxT0rRiElIN/F6T1OmkTofUQn43zdnb0PfLQOR\n8ppC3z6PfThTqm6DRW4795GkMluB0R61Jd6g2O234JXeUED442pjk7e41CWvt9yi\nkG5Ee/BCE7uFDR41kCcsjSfeIdXGwStFSfyIef09jrQNXTtiM9wC+Sh7Z4lz+e4P\nK2uVdQCTJoUpurAWDLEG8DEPrXfrj/wNYF5Wi1ACALcXn7r/j713tPThkupx4ZOW\nHaKamaOTytACtn9yAaV9nJfGCbqdMPegPIdC9bvOjdJspuZe/css/T97pcW2xM4z\n/VLwz9moNTJk/g+xdN0jY7vCH7zXOoy456C2HwgUROugJhCbcr6R/QcKYCeYknSS\ncuYdMfV1F86lYH7bf2mt\n=toS8\n-----END PGP SIGNATURE-----\n", + "payload": "tree 81f3eb4cb59c01f9d798249c12fca2a866db6633\nparent 05dcb2bc21c58162dedcb453a25e07a8808944af\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1708343998 +0100\ncommitter GitHub 1708343998 +0100\n\nfeat: Update CSpell version (8.4.0) (#1573)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/eadadef4da7f55b1f9b0fc1246f875b6ffa488b0", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/eadadef4da7f55b1f9b0fc1246f875b6ffa488b0", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/eadadef4da7f55b1f9b0fc1246f875b6ffa488b0/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "05dcb2bc21c58162dedcb453a25e07a8808944af", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/05dcb2bc21c58162dedcb453a25e07a8808944af", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/05dcb2bc21c58162dedcb453a25e07a8808944af" + } + ] + }, + { + "sha": "05dcb2bc21c58162dedcb453a25e07a8808944af", + "node_id": "C_kwDODohhMtoAKDA1ZGNiMmJjMjFjNTgxNjJkZWRjYjQ1M2EyNWUwN2E4ODA4OTQ0YWY", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-19T11:57:59Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-19T11:57:59Z" + }, + "message": "ci: Workflow Bot -- Update ALL Dependencies (main) (#1571)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>", + "tree": { + "sha": "6b104970d68894692bc3820d8442fdeef3c271aa", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/6b104970d68894692bc3820d8442fdeef3c271aa" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/05dcb2bc21c58162dedcb453a25e07a8808944af", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJl00JHCRC1aQ7uu5UhlAAA6sUQAICpmrg3P3zsUrVC2GifqHK5\ncEPaY2V6QeCHbpjJpLi7qHrabaGI9paQBesCvX63Rrp3JKi3GPr7WKj2Wio6ZjKo\nuX+GXV1kebMEL7g/n2eODu+SgDdXqPJ5uKAidi2AHJ/pyiBAu2+qgTDFqmmBeW1N\nUMa4Y5buQ5UaPAi5q7BjfjUEzGeMn747iaCDiTngk5/+yEXnwMjZHEV5BhTbxi4D\nvyzwO5b7dmf6jdXDTgDttQoysBfzN1XbBIT5dKyip2POrAkW/Hjrnh5h+ChkzSZf\n0eBJEBr5/bva2xS83LoPv6SFosXAr52JyUPpfLs9ROMSiRpd2HLpsrx6WKtpyNRz\nwSRJTKrPJWXngv0PYlK4SBssbY+k2H3JDudPkB3ZgMhtP63XJTBAANEc9zq4Eb/3\nwNpoDP3yNt+vX881nguQsh0/MHlrnSjm5ORehSqgHxNF+mayRS54SnuWNc5Nc/f1\nc41cmFowPmQi4H3nlJ/Osmi42XuH7gYksWN3Abj5MEqx38xh9BMMkhvKh5mLglku\nN17PYEqv1dlUSWeMFCrqgAIYtI3kyd/XnDIgL8z46+f1ej4c5tnNDcX7CEjz4WNH\n7yLAruPpXQY3Gj6LoNHW/GXPWGKNhg5Ctc8VueeKFr24fF5srmdFEuYUpVVnQZGk\nPSpANimcXVgyt7q2SURW\n=zxIi\n-----END PGP SIGNATURE-----\n", + "payload": "tree 6b104970d68894692bc3820d8442fdeef3c271aa\nparent 3ab9391f2b428b4385576a930f5b9a617b52d028\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1708343879 +0100\ncommitter GitHub 1708343879 +0100\n\nci: Workflow Bot -- Update ALL Dependencies (main) (#1571)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/05dcb2bc21c58162dedcb453a25e07a8808944af", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/05dcb2bc21c58162dedcb453a25e07a8808944af", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/05dcb2bc21c58162dedcb453a25e07a8808944af/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "3ab9391f2b428b4385576a930f5b9a617b52d028", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/3ab9391f2b428b4385576a930f5b9a617b52d028", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/3ab9391f2b428b4385576a930f5b9a617b52d028" + } + ] + }, + { + "sha": "3ab9391f2b428b4385576a930f5b9a617b52d028", + "node_id": "C_kwDODohhMtoAKDNhYjkzOTFmMmI0MjhiNDM4NTU3NmE5MzBmNWI5YTYxN2I1MmQwMjg", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-16T10:22:09Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-16T10:22:09Z" + }, + "message": "fix: Workflow Bot -- Update ALL Dependencies (main) (#1562)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>", + "tree": { + "sha": "1ab6ba7c572c966ac6f7b71b3da77cf843d03980", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/1ab6ba7c572c966ac6f7b71b3da77cf843d03980" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/3ab9391f2b428b4385576a930f5b9a617b52d028", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJlzzdRCRC1aQ7uu5UhlAAAHcUQAGsXpY9lTuF05cVLGhADh8zG\nn4PG09ifaSbVMOgs2FECyUGy/xUvUzWmvXRsmZL706AxnDGG4kt0dWOi0AYs3LBy\nfv5Mqv0MnlyGIpxy223Dbi3NI205nochG9FZaGxx0tooZTJzhfEiS41FISZ8Hifm\nowHi+w2cktRWuNqCVKW2XGTksBC6d8qkJIqonjsh4KlR4F2q+Tq9K9WuOkDD+s//\ntdZNgkU3f/LNzWyOvVMlGWoviSo7MDFJ1tWGbG5y4uf+cx3gbj8qqahV/h5Japkg\nwhhqovEyJssRwBuiiSoFsOpb82a0ebzZF41qslx0DFQkooLLHdC8T7vaTcUx4Qhw\nfak9MmAn6w2ZwiyeO/+z9XJlNFceqxr9eQNP/Iie1wuwIjEL7C8/WN69ytM0xx16\nG7uQxhqrzBvCW6FlSDuS8rKJm3gWsahWPELCcdqdxrlvj0qVgtLejumF0ciFfQJ5\nwrmOWmq2yomMBAN2MZ2O8xUDithK2KPR+jB0ijjnPQdoW6BsoyE6620yIrmC3y7u\nYcayaSYf79R/z61GdzWtSerQru80qIeLg/s3C24Ko+9uCiRFhHm0dEMLm+1xv9ab\n6sA0oowbA9NdgEbEjD4I0ppcccK5vK8hXyGna8EDwdJ78kLH0BGuN6MKyr6qxUD2\nWwQ2vTz7KlAYixPcGisu\n=nhqw\n-----END PGP SIGNATURE-----\n", + "payload": "tree 1ab6ba7c572c966ac6f7b71b3da77cf843d03980\nparent 9653b3ae80fe711be2884be5fc1bf625695f6d64\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1708078929 +0100\ncommitter GitHub 1708078929 +0100\n\nfix: Workflow Bot -- Update ALL Dependencies (main) (#1562)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/3ab9391f2b428b4385576a930f5b9a617b52d028", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/3ab9391f2b428b4385576a930f5b9a617b52d028", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/3ab9391f2b428b4385576a930f5b9a617b52d028/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "9653b3ae80fe711be2884be5fc1bf625695f6d64", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/9653b3ae80fe711be2884be5fc1bf625695f6d64", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/9653b3ae80fe711be2884be5fc1bf625695f6d64" + } + ] + }, + { + "sha": "9653b3ae80fe711be2884be5fc1bf625695f6d64", + "node_id": "C_kwDODohhMtoAKDk2NTNiM2FlODBmZTcxMWJlMjg4NGJlNWZjMWJmNjI1Njk1ZjZkNjQ", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-16T10:16:54Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-16T10:16:54Z" + }, + "message": "fix: Update Dictionaries and Dependencies (#1567)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>", + "tree": { + "sha": "89b9b304e8d66d2929baa463504c0a65f719a1b4", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/89b9b304e8d66d2929baa463504c0a65f719a1b4" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/9653b3ae80fe711be2884be5fc1bf625695f6d64", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJlzzYWCRC1aQ7uu5UhlAAAk6MQAGSmo1vjEJu2vNAXCeItF5TP\nHCJAFCfnsM8dZkOBU+G1ErlO0fTRemm7NPWcQAbgE5kLSiSLoD8rCATiZNGmsMaY\nedTTuxPBJSyDItBCA8tItKKXJnN0UOiuOhQ1g8plBPwn80AaxaFnMRGCHXUhuTta\ndzCsAH6QPpThsFfqhnN8aR4EEJoNSfoblHonJWoZGIiUVSUUKF7gHzxPgEUw49qV\nGyDxhEQLXPFgrsXiFlZBYUSycd/OOX5vQBYejAfwEB+6kyzYdgYoYyxBcrIyBc87\nAjJcZ9SyYsQGz6I30Y06Qc/H+h+kBuPChu7Hn/yA1W9kp28DjbraSROsnlJoxe+Z\n3biTLqfIedEIOr588gfk6qH9ovfNf3l0bvcSqLec+ESGCZMqB6EsiFKUQab1oIm2\n7SUT+X55kiwAOFBoHqGRDA/m8LIh/SKEX25dTJIX50vSu3GhwPd6I9HPlZhkdtDr\nVTd7FvAaiH0tVyasfWLoVKAtnw0W4GXb4wRY9EKpeIh1jH5g69gJzumuzR0vpjLv\nDjfiVZv1Er25sbFrCd/BxiGIc1zbP3X76Tt99N9I/XQ9xGWqoPf0a5uNGeKwUiLl\n+21L6+0d8Sx+5/F54y1wGGBkiNdv0D7Jw4RhneRRlVky+C0Pf91kbO1+Pt0d1H4d\nIM25NTvMJ4pyfD31nKL2\n=4lfL\n-----END PGP SIGNATURE-----\n", + "payload": "tree 89b9b304e8d66d2929baa463504c0a65f719a1b4\nparent 0d214b1ac1374fd944b02bdc05384b6c321fb01f\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1708078614 +0100\ncommitter GitHub 1708078614 +0100\n\nfix: Update Dictionaries and Dependencies (#1567)\n\nCo-authored-by: Jason3S <3740137+Jason3S@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/9653b3ae80fe711be2884be5fc1bf625695f6d64", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/9653b3ae80fe711be2884be5fc1bf625695f6d64", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/9653b3ae80fe711be2884be5fc1bf625695f6d64/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "0d214b1ac1374fd944b02bdc05384b6c321fb01f", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/0d214b1ac1374fd944b02bdc05384b6c321fb01f", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/0d214b1ac1374fd944b02bdc05384b6c321fb01f" + } + ] + }, + { + "sha": "0d214b1ac1374fd944b02bdc05384b6c321fb01f", + "node_id": "C_kwDODohhMtoAKDBkMjE0YjFhYzEzNzRmZDk0NGIwMmJkYzA1Mzg0YjZjMzIxZmIwMWY", + "commit": { + "author": { + "name": "dependabot[bot]", + "email": "49699333+dependabot[bot]@users.noreply.github.com", + "date": "2024-02-03T09:21:41Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-03T09:21:41Z" + }, + "message": "chore(deps): bump codecov/codecov-action from 3.1.5 to 4.0.1 (#1563)\n\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>", + "tree": { + "sha": "84959a0ed98baccec65d57d71683ff9ae079600e", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/84959a0ed98baccec65d57d71683ff9ae079600e" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/0d214b1ac1374fd944b02bdc05384b6c321fb01f", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJlvgWlCRC1aQ7uu5UhlAAAnAMQAIYxnjUSpsClKQcFlyZFCVk8\nAz3El8Kq1ZcnWKlTK9mmOVx4SNkzKEB5sB8VblaR4BSlokl9wDRByZi7BD585/oX\n5R7k9uCHh0Yjb0lnJ9DL1KkVJFjiNbRu9GoCEqYKzEm13HoKBrr09+ZRIpjpC4W3\n0gXmQUzD+78wT5PyFX8mPy/g7ziHV1rI3QUEmQp9joL73y678jZ7Hn5IpV6HJnYf\nCgYMU0ZnvVe83m16WSYPPplvuzmsDGZ2YqzUKfmg44gVW80Ucrdv2oowtAAxhy1x\nXBzd8BkKeLEy74puCSEiY6vAcwQn+K5Y/Gq4Lkr2OrJXk12DrXVertcL7HN05EEq\nYgBYlX2FUncwir6xBCiOU04DWO4sLImQKZbOgjI/BjrXGdgNEseMvQBoDFrJvaBJ\nWfaZTt7Q6/Fnbk+Z8TmqT/WUg/jyxlKnrU2Lw4ULEnw4fIHABJcbfebvnDrNior5\nw3PFw4bL+2uJNyRBBtxP9v6iPBzjiDzsyRAEXwLKtwCZ/R6t+/ZsEXlNNieAl6cV\nujR0tglfUaTwDbdW/h38VDNoQnaicO1INWyna1fvjDcl71099fPTXItpj0EOeWEo\nBASiu6QbSEby57TR1Vz85VGWMaKkns5PUGRFLsB7JVkohqxBOympdfCcV8lxDozN\nWOHGQ8odvrsGmlK0gBWC\n=t7Bp\n-----END PGP SIGNATURE-----\n", + "payload": "tree 84959a0ed98baccec65d57d71683ff9ae079600e\nparent d19948364f7cf0c0e3098c8924f194420afd893a\nauthor dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 1706952101 +0100\ncommitter GitHub 1706952101 +0100\n\nchore(deps): bump codecov/codecov-action from 3.1.5 to 4.0.1 (#1563)\n\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/0d214b1ac1374fd944b02bdc05384b6c321fb01f", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/0d214b1ac1374fd944b02bdc05384b6c321fb01f", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/0d214b1ac1374fd944b02bdc05384b6c321fb01f/comments", + "author": { + "login": "dependabot[bot]", + "id": 49699333, + "node_id": "MDM6Qm90NDk2OTkzMzM=", + "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/dependabot%5Bbot%5D", + "html_url": "https://github.com/apps/dependabot", + "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "d19948364f7cf0c0e3098c8924f194420afd893a", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/d19948364f7cf0c0e3098c8924f194420afd893a", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/d19948364f7cf0c0e3098c8924f194420afd893a" + } + ] + }, + { + "sha": "d19948364f7cf0c0e3098c8924f194420afd893a", + "node_id": "C_kwDODohhMtoAKGQxOTk0ODM2NGY3Y2YwYzBlMzA5OGM4OTI0ZjE5NDQyMGFmZDg5M2E", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-01T11:10:06Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-01T11:10:06Z" + }, + "message": "ci: Workflow Bot -- Update ALL Dependencies (main) (#1560)\n\nCo-authored-by: Jason3S ", + "tree": { + "sha": "2c4c7c0799b6ac60a414a29345bf97ae4d9ddf9d", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/2c4c7c0799b6ac60a414a29345bf97ae4d9ddf9d" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/d19948364f7cf0c0e3098c8924f194420afd893a", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJlu3wOCRC1aQ7uu5UhlAAA+OkQABpdX1J+nnWYq+L/bq9JqFft\nXLYpnXDpjc4xeV/6FaQJdkAR9CiflTA/7yBDj3vfdDHelhNsf0bi3U1ChOKy4qgp\nUmXPLY6KdK6dMO/Jc3nla1xJ/OUhMeZDezPIOxVMi3B5DOJbs6Mg+WZrFP/5iko7\n72jwhlQICnX7qs5swdvjaNwIAG1/wk8vi87T9nM+Itslze/tpVFNBMB76RVLyB7p\n6nQh6oqH8EzUaaPTUAK1jmcsG4rNB8pDcnv0MK04zjX0xFvaaMJn+403kuPyW8Gt\n+zWuA04NoUIoQsj7KTt3gnhA0poPNNsRlSMHwfN9jSj3oMCdRVqgW9I5GrDbRePP\n1Ipl0FxYtDVdfMywJbW9PlToJLFG4+eqe/aaGU4Nt+3a6qgHlObwCNCbUNACOV4y\nvca4giEBnd8pR/rj/BhRJFITC+ntQKcZ7OD0AjGbtoxSqO5RaITOhoqyeHpcapfS\n6ZoYeQFmjI6NBM/a6xFmUXMq+CRnMRHEMLxHSgVzijQn2yMM0Ouy6YujHTUyCV48\nIiWbQPapEBMYIWub9cA78S4IDd6EZwBKPExYS7PQoNbSFHhXa4Nmz5PkspZ6Ydjz\n0OleH+yQ9adwhzNFZG7LBD6pC116BZP6n1CsqDo/ygZqAqwbu1T1wtav5rzXyB5k\ncfBL5Mg+UUEhGx7q7dhS\n=Jmdt\n-----END PGP SIGNATURE-----\n", + "payload": "tree 2c4c7c0799b6ac60a414a29345bf97ae4d9ddf9d\nparent f67b75c4143405fc284bdbd75c8c7a79160abd67\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1706785806 +0100\ncommitter GitHub 1706785806 +0100\n\nci: Workflow Bot -- Update ALL Dependencies (main) (#1560)\n\nCo-authored-by: Jason3S " + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/d19948364f7cf0c0e3098c8924f194420afd893a", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/d19948364f7cf0c0e3098c8924f194420afd893a", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/d19948364f7cf0c0e3098c8924f194420afd893a/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "f67b75c4143405fc284bdbd75c8c7a79160abd67", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/f67b75c4143405fc284bdbd75c8c7a79160abd67", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/f67b75c4143405fc284bdbd75c8c7a79160abd67" + } + ] + }, + { + "sha": "f67b75c4143405fc284bdbd75c8c7a79160abd67", + "node_id": "C_kwDODohhMtoAKGY2N2I3NWM0MTQzNDA1ZmMyODRiZGJkNzVjOGM3YTc5MTYwYWJkNjc", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-01T11:07:28Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-01T11:07:28Z" + }, + "message": "fix: Update Dictionaries and Dependencies (#1561)\n\nCo-authored-by: Jason3S ", + "tree": { + "sha": "ce1a568ce1ff2ea77494d279674a156d1197aedd", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/ce1a568ce1ff2ea77494d279674a156d1197aedd" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/f67b75c4143405fc284bdbd75c8c7a79160abd67", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJlu3twCRC1aQ7uu5UhlAAAnUsQAH5dYoZXw8J/EPkFVkp3UM3t\nBwWJk6tyidHOkIa8F+XsZMsJhJvJjurioWPif5ysDUbSVZax6vWqBTvwX2c7+h/U\nYlNYwmlXTy10CHURCr0FzEtUmIvdg9Qpyap1cbVrBYqnRrzcRZuRkXeejg/U5N7C\nAkYQIbvrHblS1gka4k2VCNF9UfquRvQ+9min7Tf+6UQ9729nUaQtEopSut6Y61kT\nVR0BIHWOP54Z0LDQn75b+hLaygk5xUaWTAZBPRI8T7JS6WXP3p3FDxlUZrs3LE+C\noI8siGP1zO28N7FQlIAcVGrA9xelP8fXa3raPMCeJv6UVgBXUMvIlkBLIxgHnAO1\nRfULPG5E3qwXyzlEto3fuLyb7bXVwT0YYgeTrSPOY3UCDVvrLesn7TsTHCcnSNYe\nelkq3lgj8hjth0jES7DyQtB7HY5rzOfqWL4CiO6mlnB9MQUdYwI5Myf9A+V3c04f\nzFZI1kwqz/P++tq2yobR7i7jDeUr9//jkiNBflXufdjGGc8/yPpcOrdJC3s6nBrb\n4S7cb0fDK4qpss8oMMkpNtDyvTlaBUjZFuXN1KFYBG8M67Su4hU4JUwGaMlGx9fx\nvN2xqNiWzzdUA9N/r0aYKPr6df4oCAKCVcO7VXnpHhX41dGFTgKD8Gxc6SB3hJi7\ntnAn9XhBbQwZq/9J6otf\n=2udW\n-----END PGP SIGNATURE-----\n", + "payload": "tree ce1a568ce1ff2ea77494d279674a156d1197aedd\nparent c4f0d5f850ddb99cec0986cba6d5de26ace947f2\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1706785648 +0100\ncommitter GitHub 1706785648 +0100\n\nfix: Update Dictionaries and Dependencies (#1561)\n\nCo-authored-by: Jason3S " + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/f67b75c4143405fc284bdbd75c8c7a79160abd67", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/f67b75c4143405fc284bdbd75c8c7a79160abd67", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/f67b75c4143405fc284bdbd75c8c7a79160abd67/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "c4f0d5f850ddb99cec0986cba6d5de26ace947f2", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/c4f0d5f850ddb99cec0986cba6d5de26ace947f2", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/c4f0d5f850ddb99cec0986cba6d5de26ace947f2" + } + ] + }, + { + "sha": "c4f0d5f850ddb99cec0986cba6d5de26ace947f2", + "node_id": "C_kwDODohhMtoAKGM0ZjBkNWY4NTBkZGI5OWNlYzA5ODZjYmE2ZDVkZTI2YWNlOTQ3ZjI", + "commit": { + "author": { + "name": "dependabot[bot]", + "email": "49699333+dependabot[bot]@users.noreply.github.com", + "date": "2024-02-01T10:01:30Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-01T10:01:30Z" + }, + "message": "chore(deps-dev): bump esbuild from 0.19.12 to 0.20.0 (#1555)\n\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>", + "tree": { + "sha": "232a580c8a9627c08c10b025c3601f5bb2e47b85", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/232a580c8a9627c08c10b025c3601f5bb2e47b85" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/c4f0d5f850ddb99cec0986cba6d5de26ace947f2", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJlu2v6CRC1aQ7uu5UhlAAABNgQABVokw38LzL2aPdoNtb3WVI2\n1G/BQ7mxACfCydJtagAtv0kps7iRXyPfdbQ3MjmocJUNG9ObTU+Lm2TyrvLt3GXq\n+JlHrBAKMTt9eCxv3jnwDjPzk7x+MLACNNacuMU4XL87ffamaVEONBMd+nbsvD2d\nfJUTJH6zMw+S9RHjNW//SvlT52B83+4KeyUNdErVYs5ujzBRxZmdDQAafZCpPiDb\nM3K8cMxXDvFA8gcOxnpSTRYLf1CZGmbBAcjdMmOloDxabLUHWazXH2+bM5hxGUR8\nXxHttnHLNzAnmHbNpLDtF9lAarmAahE67CsuxQozvcDa5ADsHIDMphDQBviDBB84\n/D1plm5N1P1kLp+dq822NfxT84qT2F/A4/ni9KD3UiQNNI+lX7+mr9aStJQGF3/8\n7YOwi5C1l/HnuJPvrJeDaVdAWVZ3yvR3z8gaLr40Q8ryi+FrrjEUmo2ml/DR3dTX\nQWZGmegf6VwvURJfJ6Va4ZYpknnWDsWV1M4Vh2rzddq2qQivhhRgpD66pJ2c7fWB\nU3kc/xOI0avQ2lTMDk17dskHSeoLVt/+Rj5T4caIb7YctJ1/9PxwQ7EmcorJLcX0\n8BQMC8v15SsP/AnRDfm9QJCZmyR0pRQi8Z2TxLGYvP5LC9ijyiJFMounuQstLPbF\nRwMNN03fjn6KvQALaVhR\n=Exa0\n-----END PGP SIGNATURE-----\n", + "payload": "tree 232a580c8a9627c08c10b025c3601f5bb2e47b85\nparent 345a536fc7098c82ab78bad710571a7022b63321\nauthor dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 1706781690 +0100\ncommitter GitHub 1706781690 +0100\n\nchore(deps-dev): bump esbuild from 0.19.12 to 0.20.0 (#1555)\n\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/c4f0d5f850ddb99cec0986cba6d5de26ace947f2", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/c4f0d5f850ddb99cec0986cba6d5de26ace947f2", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/c4f0d5f850ddb99cec0986cba6d5de26ace947f2/comments", + "author": { + "login": "dependabot[bot]", + "id": 49699333, + "node_id": "MDM6Qm90NDk2OTkzMzM=", + "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/dependabot%5Bbot%5D", + "html_url": "https://github.com/apps/dependabot", + "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "345a536fc7098c82ab78bad710571a7022b63321", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/345a536fc7098c82ab78bad710571a7022b63321", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/345a536fc7098c82ab78bad710571a7022b63321" + } + ] + }, + { + "sha": "345a536fc7098c82ab78bad710571a7022b63321", + "node_id": "C_kwDODohhMtoAKDM0NWE1MzZmYzcwOThjODJhYjc4YmFkNzEwNTcxYTcwMjJiNjMzMjE", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-01T10:00:55Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-01T10:00:55Z" + }, + "message": "fix: Update Dictionaries and Dependencies (#1557)\n\nCo-authored-by: Jason3S ", + "tree": { + "sha": "45ce8d1c40423b6cadbe0e54030651aea271602c", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/45ce8d1c40423b6cadbe0e54030651aea271602c" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/345a536fc7098c82ab78bad710571a7022b63321", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJlu2vXCRC1aQ7uu5UhlAAAp80QACNUx2d2eeWKaEgJStAr6ck2\nhfnnJkMjSP1XnCqHxtizNAkamD5vwxn07YIFligGg/YxjsIPnFzdUuGZzzPq6RxG\nqygMaaB89yRAci8mdWR586weaT+qjiABoLhq9M7UMcmP3nNHhrAnrb3uKZj3plh9\n6IJNekbjhBJy+cNs8URNP7XG1r23Lw0ehUwV9f/EY5WWe/UPoJrh+33Cb75/X8St\nfryhrTui7R8+fkZYsyfIUU35L6ecaWRCKM2QDTjQLqKJmH43Me8UkY/QPnT6jhnh\nophvqo+ObD/rcvCgUUthT6h5+nvYa6rYRNfkkhSRV4yD6TPPNc+WA7dtO0s52IEX\ndNZrCSWrq+0ZhPBAyx8KuF2gRTQyvTY/OcknJcR++VDs/PbW6cTrxHkkgi5Z3bUe\nu8TSNCWzlb7vcdHd5+EAx7MOiXXY0N6D1+ElcxJF9MdJCs96NvPgBVaf/Ktmb4Kv\nEAHbJjP+n3LJfRCs1N3D2hhI7VdNNk5LC4zcW+TOXim5ah20gED0HwdSUYdROenW\nS58Cw8uX3zssvLf2PohvhrMPf21hdqFa2Zf4uWioP6BPrMsATI8p+uTyO79mIc04\nUuRwRnz6xVUPJava6iApLQAT5BrgMcvYF994TVLDv8i/4c84p7DMh6sr4jBgDGmc\ne/eXvHvRTb8oEMDftAc9\n=+FPJ\n-----END PGP SIGNATURE-----\n", + "payload": "tree 45ce8d1c40423b6cadbe0e54030651aea271602c\nparent e76519e11828edfc0ef5566c29f15e777cb25e7c\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1706781655 +0100\ncommitter GitHub 1706781655 +0100\n\nfix: Update Dictionaries and Dependencies (#1557)\n\nCo-authored-by: Jason3S " + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/345a536fc7098c82ab78bad710571a7022b63321", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/345a536fc7098c82ab78bad710571a7022b63321", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/345a536fc7098c82ab78bad710571a7022b63321/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "e76519e11828edfc0ef5566c29f15e777cb25e7c", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/e76519e11828edfc0ef5566c29f15e777cb25e7c", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/e76519e11828edfc0ef5566c29f15e777cb25e7c" + } + ] + }, + { + "sha": "e76519e11828edfc0ef5566c29f15e777cb25e7c", + "node_id": "C_kwDODohhMtoAKGU3NjUxOWUxMTgyOGVkZmMwZWY1NTY2YzI5ZjE1ZTc3N2NiMjVlN2M", + "commit": { + "author": { + "name": "street-side-software-automation[bot]", + "email": "74785433+street-side-software-automation[bot]@users.noreply.github.com", + "date": "2024-02-01T10:00:44Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-02-01T10:00:44Z" + }, + "message": "ci: Workflow Bot -- Update ALL Dependencies (main) (#1556)\n\nCo-authored-by: Jason3S ", + "tree": { + "sha": "afe03e06fa380891ede0eff360c526877ebffc83", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/afe03e06fa380891ede0eff360c526877ebffc83" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/e76519e11828edfc0ef5566c29f15e777cb25e7c", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJlu2vMCRC1aQ7uu5UhlAAA18wQAGMlc3v9wPoZKHSjX/xm5sn2\n367diZTCrTjJgE9ieuv4Yp+HyaWPA0ywb5F1K31p/DvC70UaKnsxubYHqy3hq3yh\nS8HlhgCrg1s9KbUSCT4JlLoRn2s9tHS2y6Q0qk38QXm88xtugHbRU2IzLyiYnB9M\nJWM5IxsExqLRD86sCDbUXfMlPr50PCxD2BhwnVZmZc9Z9PHOZMHQCRMcBH+pVFkn\nQJc+dZ+T9jFEfHDWpJhulRJ/Vp2uoRZxn08dYqQVaXyFzJ/y6YJhkmi8Wou4RAkK\nVhSAAzrNJq+id3/Ft1MCEqH420w4OMmrEOeqvlHOcAvcZRMF7qn1mgiLB9X1ZdN/\nNwNnIa82CAm29fXLX0jh/cE7AQmjEWCzNCONjK0uQH6NArxYclE036btfz6lhfdN\n0az+fvPyuCy7PD/JTkTROFmWi62QdnovTeVGv3Q+MJ8vC3/p3fTjerfQ30VGqKdJ\n6yqJQ9Jk9ZUYMpLdajY7c/TMx/XEIw4ZbH7YstrGHOsdoX1YEU805FbUxMf3cgyB\noXlzaWVwhZ+C5rZ85PxwknPByjx1QtgE9bpktVmb90QLba2Ly93kAhne6Cnjjhgb\n7iSrpNGvgjoTmu9jYeiBdvBK5FQPS2+iNU490PRQmjUadSMwbrXCCTH7rQaPF2B8\neA4pLA5MQXM4YYRmeVj0\n=cjCX\n-----END PGP SIGNATURE-----\n", + "payload": "tree afe03e06fa380891ede0eff360c526877ebffc83\nparent 98e4fc73f348e5eb6b3158047d68b178dffc9b1a\nauthor street-side-software-automation[bot] <74785433+street-side-software-automation[bot]@users.noreply.github.com> 1706781644 +0100\ncommitter GitHub 1706781644 +0100\n\nci: Workflow Bot -- Update ALL Dependencies (main) (#1556)\n\nCo-authored-by: Jason3S " + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/e76519e11828edfc0ef5566c29f15e777cb25e7c", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/e76519e11828edfc0ef5566c29f15e777cb25e7c", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/e76519e11828edfc0ef5566c29f15e777cb25e7c/comments", + "author": { + "login": "street-side-software-automation[bot]", + "id": 74785433, + "node_id": "MDM6Qm90NzQ3ODU0MzM=", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D", + "html_url": "https://github.com/apps/street-side-software-automation", + "followers_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/street-side-software-automation%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "98e4fc73f348e5eb6b3158047d68b178dffc9b1a", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/98e4fc73f348e5eb6b3158047d68b178dffc9b1a", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/98e4fc73f348e5eb6b3158047d68b178dffc9b1a" + } + ] + }, + { + "sha": "98e4fc73f348e5eb6b3158047d68b178dffc9b1a", + "node_id": "C_kwDODohhMtoAKDk4ZTRmYzczZjM0OGU1ZWI2YjMxNTgwNDdkNjhiMTc4ZGZmYzliMWE", + "commit": { + "author": { + "name": "dependabot[bot]", + "email": "49699333+dependabot[bot]@users.noreply.github.com", + "date": "2024-01-29T13:58:56Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2024-01-29T13:58:56Z" + }, + "message": "chore(deps): bump codecov/codecov-action from 3.1.4 to 3.1.5 (#1548)\n\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>", + "tree": { + "sha": "afed28f02191844f9f7e2e56cb9f9e35eded886b", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees/afed28f02191844f9f7e2e56cb9f9e35eded886b" + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits/98e4fc73f348e5eb6b3158047d68b178dffc9b1a", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJlt68gCRC1aQ7uu5UhlAAAOkkQAA/G6CWhyV5WDmiN/IV3/T17\nvSJ6ErChxf/A2SibmkCvaK6txC6GT7O+kY7zW2rLfNJarJF4YQky3w3N7fJDzOTn\nmSkJZgrCQuVYUz7+smC9LAsgx1ToDnYScuqGAPDC2TVXtQtEkTRwlXLA6QKh5P8e\n6dy3KuNOUDwcxuO3OJr5p9+vx7WynFvlWjexaYLdgbYmDzxZQ3/S2PnUH2GNWDpW\n2DoP9dnlJD3N33qjhhOZdIwl/eM6isntc+TRsXAa1tVrmnQ2a6/MP02voFd2OcP1\nDIbvltfPDEjvBX7pOssK5qOVJFbIXSb+3urZDtwUVy0gCEvZg8wa49bWlHBhtsZl\n01NihO3Xq1EyAeNvDZCiMJrXgeNfQSRi1bBpkBr27ezVy0BIM0mzoBRKu8uF589g\n3mma+e2NMT1a2pODSmMoANaQQfTiaNItwZx70lQvC5LaCCQJuQdyy2EmDXYr/PjH\nYzEFuBmUSW2ECPwlgIQwGR+CPX+0VDf7WB+WnWoe+j7MReWODUyklk0119hHlz6N\noGBaNMwQFY/OIiCYMOCUJMZnn1S14Trz2uqLPlSDXMSHAam+ZDpiZd3ePo4Q87Vj\nQp3rtRhldIceNuV67dC4ZU+jjlx775IMQoR9WXj3FdrLfY1+/HBAn16N7a9bzbxx\ncvZWvvfQqBWjDuJvRPT+\n=7V7t\n-----END PGP SIGNATURE-----\n", + "payload": "tree afed28f02191844f9f7e2e56cb9f9e35eded886b\nparent 41faf8075da58513ab997a779074758599693452\nauthor dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 1706536736 +0100\ncommitter GitHub 1706536736 +0100\n\nchore(deps): bump codecov/codecov-action from 3.1.4 to 3.1.5 (#1548)\n\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>" + } + }, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/98e4fc73f348e5eb6b3158047d68b178dffc9b1a", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/98e4fc73f348e5eb6b3158047d68b178dffc9b1a", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/98e4fc73f348e5eb6b3158047d68b178dffc9b1a/comments", + "author": { + "login": "dependabot[bot]", + "id": 49699333, + "node_id": "MDM6Qm90NDk2OTkzMzM=", + "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/dependabot%5Bbot%5D", + "html_url": "https://github.com/apps/dependabot", + "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "41faf8075da58513ab997a779074758599693452", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits/41faf8075da58513ab997a779074758599693452", + "html_url": "https://github.com/streetsidesoftware/cspell-action/commit/41faf8075da58513ab997a779074758599693452" + } + ] + } +] diff --git a/action-src/fixtures/pr_1594_context.json b/action-src/fixtures/pr_1594_context.json new file mode 100644 index 000000000..dc8dc2476 --- /dev/null +++ b/action-src/fixtures/pr_1594_context.json @@ -0,0 +1,396 @@ +{ + "event_name": "pull_request", + "event": { + "action": "synchronize", + "after": "5c5ba0cca65718402a67fbdcfec7097d289620d2", + "before": "3b73d1ab76a9d33d6c947714be2e6b0e58f094c4", + "number": 1594, + "organization": { + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "description": "", + "events_url": "https://api.github.com/orgs/streetsidesoftware/events", + "hooks_url": "https://api.github.com/orgs/streetsidesoftware/hooks", + "id": 50543896, + "issues_url": "https://api.github.com/orgs/streetsidesoftware/issues", + "login": "streetsidesoftware", + "members_url": "https://api.github.com/orgs/streetsidesoftware/members{/member}", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "public_members_url": "https://api.github.com/orgs/streetsidesoftware/public_members{/member}", + "repos_url": "https://api.github.com/orgs/streetsidesoftware/repos", + "url": "https://api.github.com/orgs/streetsidesoftware" + }, + "pull_request": { + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594", + "id": 1745304843, + "node_id": "PR_kwDODohhMs5oBz0L", + "html_url": "https://github.com/streetsidesoftware/cspell-action/pull/1594", + "diff_url": "https://github.com/streetsidesoftware/cspell-action/pull/1594.diff", + "patch_url": "https://github.com/streetsidesoftware/cspell-action/pull/1594.patch", + "issue_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1594", + "number": 1594, + "state": "closed", + "locked": false, + "title": "chore: Convert to ESM Module", + "user": { + "login": "Jason3S", + "id": 3740137, + "node_id": "MDQ6VXNlcjM3NDAxMzc=", + "avatar_url": "https://avatars.githubusercontent.com/u/3740137?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jason3S", + "html_url": "https://github.com/Jason3S", + "followers_url": "https://api.github.com/users/Jason3S/followers", + "following_url": "https://api.github.com/users/Jason3S/following{/other_user}", + "gists_url": "https://api.github.com/users/Jason3S/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jason3S/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jason3S/subscriptions", + "organizations_url": "https://api.github.com/users/Jason3S/orgs", + "repos_url": "https://api.github.com/users/Jason3S/repos", + "events_url": "https://api.github.com/users/Jason3S/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jason3S/received_events", + "type": "User", + "site_admin": false + }, + "body": null, + "created_at": "2024-02-27T10:52:01Z", + "updated_at": "2024-02-27T10:54:33Z", + "closed_at": "2024-02-27T10:54:32Z", + "merged_at": "2024-02-27T10:54:32Z", + "merge_commit_sha": "5c5ba0cca65718402a67fbdcfec7097d289620d2", + "assignee": null, + "assignees": [], + "requested_reviewers": [], + "requested_teams": [], + "labels": [], + "milestone": null, + "draft": false, + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594/commits", + "review_comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594/comments", + "review_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1594/comments", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/5c5ba0cca65718402a67fbdcfec7097d289620d2", + "head": { + "label": "streetsidesoftware:dev-esm", + "ref": "dev-esm", + "sha": "5c5ba0cca65718402a67fbdcfec7097d289620d2", + "user": { + "login": "streetsidesoftware", + "id": 50543896, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/streetsidesoftware", + "html_url": "https://github.com/streetsidesoftware", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 243818802, + "node_id": "MDEwOlJlcG9zaXRvcnkyNDM4MTg4MDI=", + "name": "cspell-action", + "full_name": "streetsidesoftware/cspell-action", + "private": false, + "owner": { + "login": "streetsidesoftware", + "id": 50543896, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/streetsidesoftware", + "html_url": "https://github.com/streetsidesoftware", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/streetsidesoftware/cspell-action", + "description": "GitHub Action: Check Spelling", + "fork": false, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action", + "forks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/forks", + "keys_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/teams", + "hooks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/hooks", + "issue_events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/events{/number}", + "events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/events", + "assignees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/assignees{/user}", + "branches_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/branches{/branch}", + "tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/tags", + "blobs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/{sha}", + "languages_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/languages", + "stargazers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/stargazers", + "contributors_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contributors", + "subscribers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscribers", + "subscription_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscription", + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contents/{+path}", + "compare_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/merges", + "archive_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/downloads", + "issues_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues{/number}", + "pulls_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls{/number}", + "milestones_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/milestones{/number}", + "notifications_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/labels{/name}", + "releases_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/releases{/id}", + "deployments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/deployments", + "created_at": "2020-02-28T17:31:31Z", + "updated_at": "2024-02-28T02:46:47Z", + "pushed_at": "2024-02-28T09:36:46Z", + "git_url": "git://github.com/streetsidesoftware/cspell-action.git", + "ssh_url": "git@github.com:streetsidesoftware/cspell-action.git", + "clone_url": "https://github.com/streetsidesoftware/cspell-action.git", + "svn_url": "https://github.com/streetsidesoftware/cspell-action", + "homepage": null, + "size": 88093, + "stargazers_count": 67, + "watchers_count": 67, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": true, + "forks_count": 6, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 12, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [], + "visibility": "public", + "forks": 6, + "open_issues": 12, + "watchers": 67, + "default_branch": "main" + } + }, + "base": { + "label": "streetsidesoftware:main", + "ref": "main", + "sha": "3b73d1ab76a9d33d6c947714be2e6b0e58f094c4", + "user": { + "login": "streetsidesoftware", + "id": 50543896, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/streetsidesoftware", + "html_url": "https://github.com/streetsidesoftware", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 243818802, + "node_id": "MDEwOlJlcG9zaXRvcnkyNDM4MTg4MDI=", + "name": "cspell-action", + "full_name": "streetsidesoftware/cspell-action", + "private": false, + "owner": { + "login": "streetsidesoftware", + "id": 50543896, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/streetsidesoftware", + "html_url": "https://github.com/streetsidesoftware", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/streetsidesoftware/cspell-action", + "description": "GitHub Action: Check Spelling", + "fork": false, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action", + "forks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/forks", + "keys_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/teams", + "hooks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/hooks", + "issue_events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/events{/number}", + "events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/events", + "assignees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/assignees{/user}", + "branches_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/branches{/branch}", + "tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/tags", + "blobs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/{sha}", + "languages_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/languages", + "stargazers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/stargazers", + "contributors_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contributors", + "subscribers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscribers", + "subscription_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscription", + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contents/{+path}", + "compare_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/merges", + "archive_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/downloads", + "issues_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues{/number}", + "pulls_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls{/number}", + "milestones_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/milestones{/number}", + "notifications_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/labels{/name}", + "releases_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/releases{/id}", + "deployments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/deployments", + "created_at": "2020-02-28T17:31:31Z", + "updated_at": "2024-02-28T02:46:47Z", + "pushed_at": "2024-02-28T09:36:46Z", + "git_url": "git://github.com/streetsidesoftware/cspell-action.git", + "ssh_url": "git@github.com:streetsidesoftware/cspell-action.git", + "clone_url": "https://github.com/streetsidesoftware/cspell-action.git", + "svn_url": "https://github.com/streetsidesoftware/cspell-action", + "homepage": null, + "size": 88093, + "stargazers_count": 67, + "watchers_count": 67, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": true, + "forks_count": 6, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 12, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [], + "visibility": "public", + "forks": 6, + "open_issues": 12, + "watchers": 67, + "default_branch": "main" + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594" + }, + "html": { + "href": "https://github.com/streetsidesoftware/cspell-action/pull/1594" + }, + "issue": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1594" + }, + "comments": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1594/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/5c5ba0cca65718402a67fbdcfec7097d289620d2" + } + }, + "author_association": "MEMBER", + "auto_merge": null, + "active_lock_reason": null, + "merged": true, + "mergeable": null, + "rebaseable": null, + "mergeable_state": "unknown", + "merged_by": { + "login": "Jason3S", + "id": 3740137, + "node_id": "MDQ6VXNlcjM3NDAxMzc=", + "avatar_url": "https://avatars.githubusercontent.com/u/3740137?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jason3S", + "html_url": "https://github.com/Jason3S", + "followers_url": "https://api.github.com/users/Jason3S/followers", + "following_url": "https://api.github.com/users/Jason3S/following{/other_user}", + "gists_url": "https://api.github.com/users/Jason3S/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jason3S/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jason3S/subscriptions", + "organizations_url": "https://api.github.com/users/Jason3S/orgs", + "repos_url": "https://api.github.com/users/Jason3S/repos", + "events_url": "https://api.github.com/users/Jason3S/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jason3S/received_events", + "type": "User", + "site_admin": false + }, + "comments": 1, + "review_comments": 0, + "maintainer_can_modify": false, + "commits": 1, + "additions": 73, + "deletions": 70, + "changed_files": 22 + } + } +} diff --git a/action-src/fixtures/pr_1594_env.json b/action-src/fixtures/pr_1594_env.json new file mode 100644 index 000000000..8b1a00ee2 --- /dev/null +++ b/action-src/fixtures/pr_1594_env.json @@ -0,0 +1,15 @@ +{ + "INPUT_GITHUB_TOKEN": "$GITHUB_TOKEN", + "INPUT_INCREMENTAL_FILES_ONLY": "true", + "INPUT_CONFIG": "./fixtures/cspell.json", + "GITHUB_EVENT_PATH": "./fixtures/pr_1594_event.json", + "GITHUB_EVENT_NAME": "pull_request", + "GITHUB_SHA": "cec275611af23de6ea51492e561d6c9955c8d08d", + "GITHUB_REF": "refs/pull/1594/merge", + "GITHUB_WORKFLOW": "build-test", + "GITHUB_ACTION": "self", + "GITHUB_ACTOR": "Jason3S", + "GITHUB_JOB": "test-action", + "GITHUB_RUN_NUMBER": "1", + "GITHUB_RUN_ID": "8066854052" +} diff --git a/action-src/fixtures/pr_1594_event.json b/action-src/fixtures/pr_1594_event.json new file mode 100644 index 000000000..4b6224d4a --- /dev/null +++ b/action-src/fixtures/pr_1594_event.json @@ -0,0 +1,393 @@ +{ + "action": "synchronize", + "after": "5c5ba0cca65718402a67fbdcfec7097d289620d2", + "before": "3b73d1ab76a9d33d6c947714be2e6b0e58f094c4", + "number": 1594, + "organization": { + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "description": "", + "events_url": "https://api.github.com/orgs/streetsidesoftware/events", + "hooks_url": "https://api.github.com/orgs/streetsidesoftware/hooks", + "id": 50543896, + "issues_url": "https://api.github.com/orgs/streetsidesoftware/issues", + "login": "streetsidesoftware", + "members_url": "https://api.github.com/orgs/streetsidesoftware/members{/member}", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "public_members_url": "https://api.github.com/orgs/streetsidesoftware/public_members{/member}", + "repos_url": "https://api.github.com/orgs/streetsidesoftware/repos", + "url": "https://api.github.com/orgs/streetsidesoftware" + }, + "pull_request": { + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594", + "id": 1745304843, + "node_id": "PR_kwDODohhMs5oBz0L", + "html_url": "https://github.com/streetsidesoftware/cspell-action/pull/1594", + "diff_url": "https://github.com/streetsidesoftware/cspell-action/pull/1594.diff", + "patch_url": "https://github.com/streetsidesoftware/cspell-action/pull/1594.patch", + "issue_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1594", + "number": 1594, + "state": "closed", + "locked": false, + "title": "chore: Convert to ESM Module", + "user": { + "login": "Jason3S", + "id": 3740137, + "node_id": "MDQ6VXNlcjM3NDAxMzc=", + "avatar_url": "https://avatars.githubusercontent.com/u/3740137?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jason3S", + "html_url": "https://github.com/Jason3S", + "followers_url": "https://api.github.com/users/Jason3S/followers", + "following_url": "https://api.github.com/users/Jason3S/following{/other_user}", + "gists_url": "https://api.github.com/users/Jason3S/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jason3S/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jason3S/subscriptions", + "organizations_url": "https://api.github.com/users/Jason3S/orgs", + "repos_url": "https://api.github.com/users/Jason3S/repos", + "events_url": "https://api.github.com/users/Jason3S/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jason3S/received_events", + "type": "User", + "site_admin": false + }, + "body": null, + "created_at": "2024-02-27T10:52:01Z", + "updated_at": "2024-02-27T10:54:33Z", + "closed_at": "2024-02-27T10:54:32Z", + "merged_at": "2024-02-27T10:54:32Z", + "merge_commit_sha": "5c5ba0cca65718402a67fbdcfec7097d289620d2", + "assignee": null, + "assignees": [], + "requested_reviewers": [], + "requested_teams": [], + "labels": [], + "milestone": null, + "draft": false, + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594/commits", + "review_comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594/comments", + "review_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1594/comments", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/5c5ba0cca65718402a67fbdcfec7097d289620d2", + "head": { + "label": "streetsidesoftware:dev-esm", + "ref": "dev-esm", + "sha": "5c5ba0cca65718402a67fbdcfec7097d289620d2", + "user": { + "login": "streetsidesoftware", + "id": 50543896, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/streetsidesoftware", + "html_url": "https://github.com/streetsidesoftware", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 243818802, + "node_id": "MDEwOlJlcG9zaXRvcnkyNDM4MTg4MDI=", + "name": "cspell-action", + "full_name": "streetsidesoftware/cspell-action", + "private": false, + "owner": { + "login": "streetsidesoftware", + "id": 50543896, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/streetsidesoftware", + "html_url": "https://github.com/streetsidesoftware", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/streetsidesoftware/cspell-action", + "description": "GitHub Action: Check Spelling", + "fork": false, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action", + "forks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/forks", + "keys_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/teams", + "hooks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/hooks", + "issue_events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/events{/number}", + "events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/events", + "assignees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/assignees{/user}", + "branches_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/branches{/branch}", + "tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/tags", + "blobs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/{sha}", + "languages_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/languages", + "stargazers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/stargazers", + "contributors_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contributors", + "subscribers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscribers", + "subscription_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscription", + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contents/{+path}", + "compare_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/merges", + "archive_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/downloads", + "issues_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues{/number}", + "pulls_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls{/number}", + "milestones_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/milestones{/number}", + "notifications_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/labels{/name}", + "releases_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/releases{/id}", + "deployments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/deployments", + "created_at": "2020-02-28T17:31:31Z", + "updated_at": "2024-02-28T02:46:47Z", + "pushed_at": "2024-02-28T09:36:46Z", + "git_url": "git://github.com/streetsidesoftware/cspell-action.git", + "ssh_url": "git@github.com:streetsidesoftware/cspell-action.git", + "clone_url": "https://github.com/streetsidesoftware/cspell-action.git", + "svn_url": "https://github.com/streetsidesoftware/cspell-action", + "homepage": null, + "size": 88093, + "stargazers_count": 67, + "watchers_count": 67, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": true, + "forks_count": 6, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 12, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [], + "visibility": "public", + "forks": 6, + "open_issues": 12, + "watchers": 67, + "default_branch": "main" + } + }, + "base": { + "label": "streetsidesoftware:main", + "ref": "main", + "sha": "3b73d1ab76a9d33d6c947714be2e6b0e58f094c4", + "user": { + "login": "streetsidesoftware", + "id": 50543896, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/streetsidesoftware", + "html_url": "https://github.com/streetsidesoftware", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 243818802, + "node_id": "MDEwOlJlcG9zaXRvcnkyNDM4MTg4MDI=", + "name": "cspell-action", + "full_name": "streetsidesoftware/cspell-action", + "private": false, + "owner": { + "login": "streetsidesoftware", + "id": 50543896, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/streetsidesoftware", + "html_url": "https://github.com/streetsidesoftware", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/streetsidesoftware/cspell-action", + "description": "GitHub Action: Check Spelling", + "fork": false, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action", + "forks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/forks", + "keys_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/teams", + "hooks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/hooks", + "issue_events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/events{/number}", + "events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/events", + "assignees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/assignees{/user}", + "branches_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/branches{/branch}", + "tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/tags", + "blobs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/{sha}", + "languages_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/languages", + "stargazers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/stargazers", + "contributors_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contributors", + "subscribers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscribers", + "subscription_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscription", + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contents/{+path}", + "compare_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/merges", + "archive_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/downloads", + "issues_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues{/number}", + "pulls_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls{/number}", + "milestones_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/milestones{/number}", + "notifications_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/labels{/name}", + "releases_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/releases{/id}", + "deployments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/deployments", + "created_at": "2020-02-28T17:31:31Z", + "updated_at": "2024-02-28T02:46:47Z", + "pushed_at": "2024-02-28T09:36:46Z", + "git_url": "git://github.com/streetsidesoftware/cspell-action.git", + "ssh_url": "git@github.com:streetsidesoftware/cspell-action.git", + "clone_url": "https://github.com/streetsidesoftware/cspell-action.git", + "svn_url": "https://github.com/streetsidesoftware/cspell-action", + "homepage": null, + "size": 88093, + "stargazers_count": 67, + "watchers_count": 67, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": true, + "forks_count": 6, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 12, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [], + "visibility": "public", + "forks": 6, + "open_issues": 12, + "watchers": 67, + "default_branch": "main" + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594" + }, + "html": { + "href": "https://github.com/streetsidesoftware/cspell-action/pull/1594" + }, + "issue": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1594" + }, + "comments": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1594/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/5c5ba0cca65718402a67fbdcfec7097d289620d2" + } + }, + "author_association": "MEMBER", + "auto_merge": null, + "active_lock_reason": null, + "merged": true, + "mergeable": null, + "rebaseable": null, + "mergeable_state": "unknown", + "merged_by": { + "login": "Jason3S", + "id": 3740137, + "node_id": "MDQ6VXNlcjM3NDAxMzc=", + "avatar_url": "https://avatars.githubusercontent.com/u/3740137?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jason3S", + "html_url": "https://github.com/Jason3S", + "followers_url": "https://api.github.com/users/Jason3S/followers", + "following_url": "https://api.github.com/users/Jason3S/following{/other_user}", + "gists_url": "https://api.github.com/users/Jason3S/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jason3S/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jason3S/subscriptions", + "organizations_url": "https://api.github.com/users/Jason3S/orgs", + "repos_url": "https://api.github.com/users/Jason3S/repos", + "events_url": "https://api.github.com/users/Jason3S/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jason3S/received_events", + "type": "User", + "site_admin": false + }, + "comments": 1, + "review_comments": 0, + "maintainer_can_modify": false, + "commits": 1, + "additions": 73, + "deletions": 70, + "changed_files": 22 + } +} diff --git a/action-src/fixtures/pr_1594_raw.json b/action-src/fixtures/pr_1594_raw.json new file mode 100644 index 000000000..f092ad1fb --- /dev/null +++ b/action-src/fixtures/pr_1594_raw.json @@ -0,0 +1,373 @@ +{ + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594", + "id": 1745304843, + "node_id": "PR_kwDODohhMs5oBz0L", + "html_url": "https://github.com/streetsidesoftware/cspell-action/pull/1594", + "diff_url": "https://github.com/streetsidesoftware/cspell-action/pull/1594.diff", + "patch_url": "https://github.com/streetsidesoftware/cspell-action/pull/1594.patch", + "issue_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1594", + "number": 1594, + "state": "closed", + "locked": false, + "title": "chore: Convert to ESM Module", + "user": { + "login": "Jason3S", + "id": 3740137, + "node_id": "MDQ6VXNlcjM3NDAxMzc=", + "avatar_url": "https://avatars.githubusercontent.com/u/3740137?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jason3S", + "html_url": "https://github.com/Jason3S", + "followers_url": "https://api.github.com/users/Jason3S/followers", + "following_url": "https://api.github.com/users/Jason3S/following{/other_user}", + "gists_url": "https://api.github.com/users/Jason3S/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jason3S/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jason3S/subscriptions", + "organizations_url": "https://api.github.com/users/Jason3S/orgs", + "repos_url": "https://api.github.com/users/Jason3S/repos", + "events_url": "https://api.github.com/users/Jason3S/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jason3S/received_events", + "type": "User", + "site_admin": false + }, + "body": null, + "created_at": "2024-02-27T10:52:01Z", + "updated_at": "2024-02-27T10:54:33Z", + "closed_at": "2024-02-27T10:54:32Z", + "merged_at": "2024-02-27T10:54:32Z", + "merge_commit_sha": "5c5ba0cca65718402a67fbdcfec7097d289620d2", + "assignee": null, + "assignees": [], + "requested_reviewers": [], + "requested_teams": [], + "labels": [], + "milestone": null, + "draft": false, + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594/commits", + "review_comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594/comments", + "review_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1594/comments", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/5c5ba0cca65718402a67fbdcfec7097d289620d2", + "head": { + "label": "streetsidesoftware:dev-esm", + "ref": "dev-esm", + "sha": "5c5ba0cca65718402a67fbdcfec7097d289620d2", + "user": { + "login": "streetsidesoftware", + "id": 50543896, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/streetsidesoftware", + "html_url": "https://github.com/streetsidesoftware", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 243818802, + "node_id": "MDEwOlJlcG9zaXRvcnkyNDM4MTg4MDI=", + "name": "cspell-action", + "full_name": "streetsidesoftware/cspell-action", + "private": false, + "owner": { + "login": "streetsidesoftware", + "id": 50543896, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/streetsidesoftware", + "html_url": "https://github.com/streetsidesoftware", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/streetsidesoftware/cspell-action", + "description": "GitHub Action: Check Spelling", + "fork": false, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action", + "forks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/forks", + "keys_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/teams", + "hooks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/hooks", + "issue_events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/events{/number}", + "events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/events", + "assignees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/assignees{/user}", + "branches_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/branches{/branch}", + "tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/tags", + "blobs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/{sha}", + "languages_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/languages", + "stargazers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/stargazers", + "contributors_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contributors", + "subscribers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscribers", + "subscription_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscription", + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contents/{+path}", + "compare_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/merges", + "archive_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/downloads", + "issues_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues{/number}", + "pulls_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls{/number}", + "milestones_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/milestones{/number}", + "notifications_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/labels{/name}", + "releases_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/releases{/id}", + "deployments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/deployments", + "created_at": "2020-02-28T17:31:31Z", + "updated_at": "2024-02-28T02:46:47Z", + "pushed_at": "2024-02-28T09:36:46Z", + "git_url": "git://github.com/streetsidesoftware/cspell-action.git", + "ssh_url": "git@github.com:streetsidesoftware/cspell-action.git", + "clone_url": "https://github.com/streetsidesoftware/cspell-action.git", + "svn_url": "https://github.com/streetsidesoftware/cspell-action", + "homepage": null, + "size": 88093, + "stargazers_count": 67, + "watchers_count": 67, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": true, + "forks_count": 6, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 12, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [], + "visibility": "public", + "forks": 6, + "open_issues": 12, + "watchers": 67, + "default_branch": "main" + } + }, + "base": { + "label": "streetsidesoftware:main", + "ref": "main", + "sha": "3b73d1ab76a9d33d6c947714be2e6b0e58f094c4", + "user": { + "login": "streetsidesoftware", + "id": 50543896, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/streetsidesoftware", + "html_url": "https://github.com/streetsidesoftware", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 243818802, + "node_id": "MDEwOlJlcG9zaXRvcnkyNDM4MTg4MDI=", + "name": "cspell-action", + "full_name": "streetsidesoftware/cspell-action", + "private": false, + "owner": { + "login": "streetsidesoftware", + "id": 50543896, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/streetsidesoftware", + "html_url": "https://github.com/streetsidesoftware", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/streetsidesoftware/cspell-action", + "description": "GitHub Action: Check Spelling", + "fork": false, + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action", + "forks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/forks", + "keys_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/teams", + "hooks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/hooks", + "issue_events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/events{/number}", + "events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/events", + "assignees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/assignees{/user}", + "branches_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/branches{/branch}", + "tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/tags", + "blobs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/{sha}", + "languages_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/languages", + "stargazers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/stargazers", + "contributors_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contributors", + "subscribers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscribers", + "subscription_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscription", + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contents/{+path}", + "compare_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/merges", + "archive_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/downloads", + "issues_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues{/number}", + "pulls_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls{/number}", + "milestones_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/milestones{/number}", + "notifications_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/labels{/name}", + "releases_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/releases{/id}", + "deployments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/deployments", + "created_at": "2020-02-28T17:31:31Z", + "updated_at": "2024-02-28T02:46:47Z", + "pushed_at": "2024-02-28T09:36:46Z", + "git_url": "git://github.com/streetsidesoftware/cspell-action.git", + "ssh_url": "git@github.com:streetsidesoftware/cspell-action.git", + "clone_url": "https://github.com/streetsidesoftware/cspell-action.git", + "svn_url": "https://github.com/streetsidesoftware/cspell-action", + "homepage": null, + "size": 88093, + "stargazers_count": 67, + "watchers_count": 67, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": true, + "forks_count": 6, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 12, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [], + "visibility": "public", + "forks": 6, + "open_issues": 12, + "watchers": 67, + "default_branch": "main" + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594" + }, + "html": { + "href": "https://github.com/streetsidesoftware/cspell-action/pull/1594" + }, + "issue": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1594" + }, + "comments": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1594/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1594/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/5c5ba0cca65718402a67fbdcfec7097d289620d2" + } + }, + "author_association": "MEMBER", + "auto_merge": null, + "active_lock_reason": null, + "merged": true, + "mergeable": null, + "rebaseable": null, + "mergeable_state": "unknown", + "merged_by": { + "login": "Jason3S", + "id": 3740137, + "node_id": "MDQ6VXNlcjM3NDAxMzc=", + "avatar_url": "https://avatars.githubusercontent.com/u/3740137?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jason3S", + "html_url": "https://github.com/Jason3S", + "followers_url": "https://api.github.com/users/Jason3S/followers", + "following_url": "https://api.github.com/users/Jason3S/following{/other_user}", + "gists_url": "https://api.github.com/users/Jason3S/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jason3S/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jason3S/subscriptions", + "organizations_url": "https://api.github.com/users/Jason3S/orgs", + "repos_url": "https://api.github.com/users/Jason3S/repos", + "events_url": "https://api.github.com/users/Jason3S/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jason3S/received_events", + "type": "User", + "site_admin": false + }, + "comments": 1, + "review_comments": 0, + "maintainer_can_modify": false, + "commits": 1, + "additions": 73, + "deletions": 70, + "changed_files": 22 +} diff --git a/action-src/fixtures/pull_request_2.json b/action-src/fixtures/pull_request_2.json new file mode 100644 index 000000000..7e006e604 --- /dev/null +++ b/action-src/fixtures/pull_request_2.json @@ -0,0 +1,14 @@ +{ + "INPUT_GITHUB_TOKEN": "$GITHUB_TOKEN", + "INPUT_CONFIG": "./fixtures/cspell.json", + "GITHUB_EVENT_PATH": "./pull_request_2_payload.json", + "GITHUB_EVENT_NAME": "pull_request", + "GITHUB_SHA": "cec275611af23de6ea51492e561d6c9955c8d08d", + "GITHUB_REF": "refs/pull/1587/merge", + "GITHUB_WORKFLOW": "build-test", + "GITHUB_ACTION": "self", + "GITHUB_ACTOR": "Jason3S", + "GITHUB_JOB": "test-action", + "GITHUB_RUN_NUMBER": "1", + "GITHUB_RUN_ID": "8066854052" +} diff --git a/action-src/fixtures/pull_request_2_context.json b/action-src/fixtures/pull_request_2_context.json new file mode 100644 index 000000000..ec6a968b2 --- /dev/null +++ b/action-src/fixtures/pull_request_2_context.json @@ -0,0 +1,578 @@ +{ + "token": "***", + "job": "showContext", + "ref": "refs/pull/1587/merge", + "sha": "cec275611af23de6ea51492e561d6c9955c8d08d", + "repository": "streetsidesoftware/cspell-action", + "repository_owner": "streetsidesoftware", + "repository_owner_id": "50543896", + "repositoryUrl": "git://github.com/streetsidesoftware/cspell-action.git", + "run_id": "8066854052", + "run_number": "4", + "retention_days": "30", + "run_attempt": "1", + "artifact_cache_size_limit": "10", + "repository_visibility": "public", + "repo-self-hosted-runners-disabled": false, + "enterprise-managed-business-id": "", + "repository_id": "243818802", + "actor_id": "3740137", + "actor": "Jason3S", + "triggering_actor": "Jason3S", + "workflow": "Smoke Test Context", + "head_ref": "release-please--branches--main--components--cspell-action", + "base_ref": "main", + "event_name": "pull_request", + "event": { + "action": "synchronize", + "after": "7ea7d5b885b5df07f5a268d5e92c15c1041d7a67", + "before": "4c2036a1311b4ffc8b3851b83c30df7212c6692b", + "number": 1587, + "organization": { + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "description": "", + "events_url": "https://api.github.com/orgs/streetsidesoftware/events", + "hooks_url": "https://api.github.com/orgs/streetsidesoftware/hooks", + "id": 50543896, + "issues_url": "https://api.github.com/orgs/streetsidesoftware/issues", + "login": "streetsidesoftware", + "members_url": "https://api.github.com/orgs/streetsidesoftware/members{/member}", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "public_members_url": "https://api.github.com/orgs/streetsidesoftware/public_members{/member}", + "repos_url": "https://api.github.com/orgs/streetsidesoftware/repos", + "url": "https://api.github.com/orgs/streetsidesoftware" + }, + "pull_request": { + "_links": { + "comments": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1587/comments" + }, + "commits": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1587/commits" + }, + "html": { + "href": "https://github.com/streetsidesoftware/cspell-action/pull/1587" + }, + "issue": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1587" + }, + "review_comment": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1587/comments" + }, + "self": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1587" + }, + "statuses": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/7ea7d5b885b5df07f5a268d5e92c15c1041d7a67" + } + }, + "active_lock_reason": null, + "additions": 10, + "assignee": null, + "assignees": [], + "author_association": "CONTRIBUTOR", + "auto_merge": null, + "base": { + "label": "streetsidesoftware:main", + "ref": "main", + "repo": { + "allow_auto_merge": false, + "allow_forking": true, + "allow_merge_commit": false, + "allow_rebase_merge": true, + "allow_squash_merge": true, + "allow_update_branch": true, + "archive_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/assignees{/user}", + "blobs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/branches{/branch}", + "clone_url": "https://github.com/streetsidesoftware/cspell-action.git", + "collaborators_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/comments{/number}", + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits{/sha}", + "compare_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contents/{+path}", + "contributors_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contributors", + "created_at": "2020-02-28T17:31:31Z", + "default_branch": "main", + "delete_branch_on_merge": true, + "deployments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/deployments", + "description": "GitHub Action: Check Spelling", + "disabled": false, + "downloads_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/downloads", + "events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/events", + "fork": false, + "forks": 6, + "forks_count": 6, + "forks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/forks", + "full_name": "streetsidesoftware/cspell-action", + "git_commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/tags{/sha}", + "git_url": "git://github.com/streetsidesoftware/cspell-action.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": null, + "hooks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/hooks", + "html_url": "https://github.com/streetsidesoftware/cspell-action", + "id": 243818802, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/events{/number}", + "issues_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues{/number}", + "keys_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/keys{/key_id}", + "labels_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/labels{/name}", + "language": "JavaScript", + "languages_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/languages", + "license": { + "key": "mit", + "name": "MIT License", + "node_id": "MDc6TGljZW5zZTEz", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit" + }, + "merge_commit_message": "PR_BODY", + "merge_commit_title": "PR_TITLE", + "merges_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/merges", + "milestones_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/milestones{/number}", + "mirror_url": null, + "name": "cspell-action", + "node_id": "MDEwOlJlcG9zaXRvcnkyNDM4MTg4MDI=", + "notifications_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/notifications{?since,all,participating}", + "open_issues": 11, + "open_issues_count": 11, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/streetsidesoftware", + "id": 50543896, + "login": "streetsidesoftware", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/streetsidesoftware" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls{/number}", + "pushed_at": "2024-02-27T14:39:11Z", + "releases_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/releases{/id}", + "size": 88071, + "squash_merge_commit_message": "BLANK", + "squash_merge_commit_title": "PR_TITLE", + "ssh_url": "git@github.com:streetsidesoftware/cspell-action.git", + "stargazers_count": 66, + "stargazers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/stargazers", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscribers", + "subscription_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscription", + "svn_url": "https://github.com/streetsidesoftware/cspell-action", + "tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/tags", + "teams_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees{/sha}", + "updated_at": "2024-01-23T16:38:26Z", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action", + "use_squash_pr_title_as_default": true, + "visibility": "public", + "watchers": 66, + "watchers_count": 66, + "web_commit_signoff_required": false + }, + "sha": "3fcea606a7709e6aabcdf67801c8b174a32c743c", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/streetsidesoftware", + "id": 50543896, + "login": "streetsidesoftware", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/streetsidesoftware" + } + }, + "body": ":robot: I have created a release *beep* *boop*\n---\n\n\n## [5.4.1](https://github.com/streetsidesoftware/cspell-action/compare/v5.4.0...v5.4.1) (2024-02-27)\n\n\n### Updates and Bug Fixes\n\n* Update Octokit/core to v6 ([#1595](https://github.com/streetsidesoftware/cspell-action/issues/1595)) ([0ab9d54](https://github.com/streetsidesoftware/cspell-action/commit/0ab9d5479b053735a59405cf2f9f938c09e8405f))\n* Workflow Bot -- Update ALL Dependencies (main) ([#1582](https://github.com/streetsidesoftware/cspell-action/issues/1582)) ([234423e](https://github.com/streetsidesoftware/cspell-action/commit/234423edd54c01aff0bd979c9bcc7cc30d267268))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).", + "changed_files": 3, + "closed_at": null, + "comments": 0, + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1587/comments", + "commits": 2, + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1587/commits", + "created_at": "2024-02-26T17:03:23Z", + "deletions": 2, + "diff_url": "https://github.com/streetsidesoftware/cspell-action/pull/1587.diff", + "draft": false, + "head": { + "label": "streetsidesoftware:release-please--branches--main--components--cspell-action", + "ref": "release-please--branches--main--components--cspell-action", + "repo": { + "allow_auto_merge": false, + "allow_forking": true, + "allow_merge_commit": false, + "allow_rebase_merge": true, + "allow_squash_merge": true, + "allow_update_branch": true, + "archive_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/assignees{/user}", + "blobs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/branches{/branch}", + "clone_url": "https://github.com/streetsidesoftware/cspell-action.git", + "collaborators_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/comments{/number}", + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits{/sha}", + "compare_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contents/{+path}", + "contributors_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contributors", + "created_at": "2020-02-28T17:31:31Z", + "default_branch": "main", + "delete_branch_on_merge": true, + "deployments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/deployments", + "description": "GitHub Action: Check Spelling", + "disabled": false, + "downloads_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/downloads", + "events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/events", + "fork": false, + "forks": 6, + "forks_count": 6, + "forks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/forks", + "full_name": "streetsidesoftware/cspell-action", + "git_commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/tags{/sha}", + "git_url": "git://github.com/streetsidesoftware/cspell-action.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": null, + "hooks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/hooks", + "html_url": "https://github.com/streetsidesoftware/cspell-action", + "id": 243818802, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/events{/number}", + "issues_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues{/number}", + "keys_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/keys{/key_id}", + "labels_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/labels{/name}", + "language": "JavaScript", + "languages_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/languages", + "license": { + "key": "mit", + "name": "MIT License", + "node_id": "MDc6TGljZW5zZTEz", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit" + }, + "merge_commit_message": "PR_BODY", + "merge_commit_title": "PR_TITLE", + "merges_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/merges", + "milestones_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/milestones{/number}", + "mirror_url": null, + "name": "cspell-action", + "node_id": "MDEwOlJlcG9zaXRvcnkyNDM4MTg4MDI=", + "notifications_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/notifications{?since,all,participating}", + "open_issues": 11, + "open_issues_count": 11, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/streetsidesoftware", + "id": 50543896, + "login": "streetsidesoftware", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/streetsidesoftware" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls{/number}", + "pushed_at": "2024-02-27T14:39:11Z", + "releases_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/releases{/id}", + "size": 88071, + "squash_merge_commit_message": "BLANK", + "squash_merge_commit_title": "PR_TITLE", + "ssh_url": "git@github.com:streetsidesoftware/cspell-action.git", + "stargazers_count": 66, + "stargazers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/stargazers", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscribers", + "subscription_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscription", + "svn_url": "https://github.com/streetsidesoftware/cspell-action", + "tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/tags", + "teams_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees{/sha}", + "updated_at": "2024-01-23T16:38:26Z", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action", + "use_squash_pr_title_as_default": true, + "visibility": "public", + "watchers": 66, + "watchers_count": 66, + "web_commit_signoff_required": false + }, + "sha": "7ea7d5b885b5df07f5a268d5e92c15c1041d7a67", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/streetsidesoftware", + "id": 50543896, + "login": "streetsidesoftware", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/streetsidesoftware" + } + }, + "html_url": "https://github.com/streetsidesoftware/cspell-action/pull/1587", + "id": 1743854165, + "issue_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1587", + "labels": [ + { + "color": "ededed", + "default": false, + "description": null, + "id": 4308154173, + "name": "autorelease: pending", + "node_id": "LA_kwDODohhMs8AAAABAMk3PQ", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/labels/autorelease:%20pending" + } + ], + "locked": false, + "maintainer_can_modify": false, + "merge_commit_sha": "d933fbfef5be68c0e35453a5ae61a0f8a58bc72d", + "mergeable": null, + "mergeable_state": "unknown", + "merged": false, + "merged_at": null, + "merged_by": null, + "milestone": null, + "node_id": "PR_kwDODohhMs5n8RpV", + "number": 1587, + "patch_url": "https://github.com/streetsidesoftware/cspell-action/pull/1587.patch", + "rebaseable": null, + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/comments{/number}", + "review_comments": 0, + "review_comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1587/comments", + "state": "open", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/7ea7d5b885b5df07f5a268d5e92c15c1041d7a67", + "title": "chore(main): release 5.4.1", + "updated_at": "2024-02-27T15:03:48Z", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1587", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/apps/github-actions", + "id": 41898282, + "login": "github-actions[bot]", + "node_id": "MDM6Qm90NDE4OTgyODI=", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "type": "Bot", + "url": "https://api.github.com/users/github-actions%5Bbot%5D" + } + }, + "repository": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/assignees{/user}", + "blobs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/branches{/branch}", + "clone_url": "https://github.com/streetsidesoftware/cspell-action.git", + "collaborators_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/comments{/number}", + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits{/sha}", + "compare_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contents/{+path}", + "contributors_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contributors", + "created_at": "2020-02-28T17:31:31Z", + "custom_properties": {}, + "default_branch": "main", + "deployments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/deployments", + "description": "GitHub Action: Check Spelling", + "disabled": false, + "downloads_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/downloads", + "events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/events", + "fork": false, + "forks": 6, + "forks_count": 6, + "forks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/forks", + "full_name": "streetsidesoftware/cspell-action", + "git_commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/tags{/sha}", + "git_url": "git://github.com/streetsidesoftware/cspell-action.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": null, + "hooks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/hooks", + "html_url": "https://github.com/streetsidesoftware/cspell-action", + "id": 243818802, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/events{/number}", + "issues_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues{/number}", + "keys_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/keys{/key_id}", + "labels_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/labels{/name}", + "language": "JavaScript", + "languages_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/languages", + "license": { + "key": "mit", + "name": "MIT License", + "node_id": "MDc6TGljZW5zZTEz", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit" + }, + "merges_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/merges", + "milestones_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/milestones{/number}", + "mirror_url": null, + "name": "cspell-action", + "node_id": "MDEwOlJlcG9zaXRvcnkyNDM4MTg4MDI=", + "notifications_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/notifications{?since,all,participating}", + "open_issues": 11, + "open_issues_count": 11, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/streetsidesoftware", + "id": 50543896, + "login": "streetsidesoftware", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/streetsidesoftware" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls{/number}", + "pushed_at": "2024-02-27T14:39:11Z", + "releases_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/releases{/id}", + "size": 88071, + "ssh_url": "git@github.com:streetsidesoftware/cspell-action.git", + "stargazers_count": 66, + "stargazers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/stargazers", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscribers", + "subscription_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscription", + "svn_url": "https://github.com/streetsidesoftware/cspell-action", + "tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/tags", + "teams_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees{/sha}", + "updated_at": "2024-01-23T16:38:26Z", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action", + "visibility": "public", + "watchers": 66, + "watchers_count": 66, + "web_commit_signoff_required": false + }, + "sender": { + "avatar_url": "https://avatars.githubusercontent.com/u/3740137?v=4", + "events_url": "https://api.github.com/users/Jason3S/events{/privacy}", + "followers_url": "https://api.github.com/users/Jason3S/followers", + "following_url": "https://api.github.com/users/Jason3S/following{/other_user}", + "gists_url": "https://api.github.com/users/Jason3S/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Jason3S", + "id": 3740137, + "login": "Jason3S", + "node_id": "MDQ6VXNlcjM3NDAxMzc=", + "organizations_url": "https://api.github.com/users/Jason3S/orgs", + "received_events_url": "https://api.github.com/users/Jason3S/received_events", + "repos_url": "https://api.github.com/users/Jason3S/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Jason3S/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jason3S/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Jason3S" + } + }, + "server_url": "https://github.com", + "api_url": "https://api.github.com", + "graphql_url": "https://api.github.com/graphql", + "ref_name": "1587/merge", + "ref_protected": false, + "ref_type": "branch", + "secret_source": "Actions", + "workflow_ref": "streetsidesoftware/cspell-action/.github/workflows/smoke.yml@refs/pull/1587/merge", + "workflow_sha": "cec275611af23de6ea51492e561d6c9955c8d08d", + "workspace": "/home/runner/work/cspell-action/cspell-action", + "action": "__streetsidesoftware_actions", + "event_path": "/home/runner/work/_temp/_github_workflow/event.json", + "action_repository": "streetsidesoftware/actions", + "action_ref": "v1", + "path": "/home/runner/work/_temp/_runner_file_commands/add_path_fb515793-9d59-4cce-b1ae-45a9c2997977", + "env": "/home/runner/work/_temp/_runner_file_commands/set_env_fb515793-9d59-4cce-b1ae-45a9c2997977", + "step_summary": "/home/runner/work/_temp/_runner_file_commands/step_summary_fb515793-9d59-4cce-b1ae-45a9c2997977", + "state": "/home/runner/work/_temp/_runner_file_commands/save_state_fb515793-9d59-4cce-b1ae-45a9c2997977", + "output": "/home/runner/work/_temp/_runner_file_commands/set_output_fb515793-9d59-4cce-b1ae-45a9c2997977" +} diff --git a/action-src/fixtures/pull_request_2_payload.json b/action-src/fixtures/pull_request_2_payload.json new file mode 100644 index 000000000..890ecd6af --- /dev/null +++ b/action-src/fixtures/pull_request_2_payload.json @@ -0,0 +1,533 @@ +{ + "action": "synchronize", + "after": "7ea7d5b885b5df07f5a268d5e92c15c1041d7a67", + "before": "4c2036a1311b4ffc8b3851b83c30df7212c6692b", + "number": 1587, + "organization": { + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "description": "", + "events_url": "https://api.github.com/orgs/streetsidesoftware/events", + "hooks_url": "https://api.github.com/orgs/streetsidesoftware/hooks", + "id": 50543896, + "issues_url": "https://api.github.com/orgs/streetsidesoftware/issues", + "login": "streetsidesoftware", + "members_url": "https://api.github.com/orgs/streetsidesoftware/members{/member}", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "public_members_url": "https://api.github.com/orgs/streetsidesoftware/public_members{/member}", + "repos_url": "https://api.github.com/orgs/streetsidesoftware/repos", + "url": "https://api.github.com/orgs/streetsidesoftware" + }, + "pull_request": { + "_links": { + "comments": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1587/comments" + }, + "commits": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1587/commits" + }, + "html": { + "href": "https://github.com/streetsidesoftware/cspell-action/pull/1587" + }, + "issue": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1587" + }, + "review_comment": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1587/comments" + }, + "self": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1587" + }, + "statuses": { + "href": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/7ea7d5b885b5df07f5a268d5e92c15c1041d7a67" + } + }, + "active_lock_reason": null, + "additions": 10, + "assignee": null, + "assignees": [], + "author_association": "CONTRIBUTOR", + "auto_merge": null, + "base": { + "label": "streetsidesoftware:main", + "ref": "main", + "repo": { + "allow_auto_merge": false, + "allow_forking": true, + "allow_merge_commit": false, + "allow_rebase_merge": true, + "allow_squash_merge": true, + "allow_update_branch": true, + "archive_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/assignees{/user}", + "blobs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/branches{/branch}", + "clone_url": "https://github.com/streetsidesoftware/cspell-action.git", + "collaborators_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/comments{/number}", + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits{/sha}", + "compare_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contents/{+path}", + "contributors_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contributors", + "created_at": "2020-02-28T17:31:31Z", + "default_branch": "main", + "delete_branch_on_merge": true, + "deployments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/deployments", + "description": "GitHub Action: Check Spelling", + "disabled": false, + "downloads_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/downloads", + "events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/events", + "fork": false, + "forks": 6, + "forks_count": 6, + "forks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/forks", + "full_name": "streetsidesoftware/cspell-action", + "git_commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/tags{/sha}", + "git_url": "git://github.com/streetsidesoftware/cspell-action.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": null, + "hooks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/hooks", + "html_url": "https://github.com/streetsidesoftware/cspell-action", + "id": 243818802, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/events{/number}", + "issues_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues{/number}", + "keys_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/keys{/key_id}", + "labels_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/labels{/name}", + "language": "JavaScript", + "languages_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/languages", + "license": { + "key": "mit", + "name": "MIT License", + "node_id": "MDc6TGljZW5zZTEz", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit" + }, + "merge_commit_message": "PR_BODY", + "merge_commit_title": "PR_TITLE", + "merges_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/merges", + "milestones_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/milestones{/number}", + "mirror_url": null, + "name": "cspell-action", + "node_id": "MDEwOlJlcG9zaXRvcnkyNDM4MTg4MDI=", + "notifications_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/notifications{?since,all,participating}", + "open_issues": 11, + "open_issues_count": 11, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/streetsidesoftware", + "id": 50543896, + "login": "streetsidesoftware", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/streetsidesoftware" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls{/number}", + "pushed_at": "2024-02-27T14:39:11Z", + "releases_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/releases{/id}", + "size": 88071, + "squash_merge_commit_message": "BLANK", + "squash_merge_commit_title": "PR_TITLE", + "ssh_url": "git@github.com:streetsidesoftware/cspell-action.git", + "stargazers_count": 66, + "stargazers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/stargazers", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscribers", + "subscription_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscription", + "svn_url": "https://github.com/streetsidesoftware/cspell-action", + "tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/tags", + "teams_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees{/sha}", + "updated_at": "2024-01-23T16:38:26Z", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action", + "use_squash_pr_title_as_default": true, + "visibility": "public", + "watchers": 66, + "watchers_count": 66, + "web_commit_signoff_required": false + }, + "sha": "3fcea606a7709e6aabcdf67801c8b174a32c743c", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/streetsidesoftware", + "id": 50543896, + "login": "streetsidesoftware", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/streetsidesoftware" + } + }, + "body": ":robot: I have created a release *beep* *boop*\n---\n\n\n## [5.4.1](https://github.com/streetsidesoftware/cspell-action/compare/v5.4.0...v5.4.1) (2024-02-27)\n\n\n### Updates and Bug Fixes\n\n* Update Octokit/core to v6 ([#1595](https://github.com/streetsidesoftware/cspell-action/issues/1595)) ([0ab9d54](https://github.com/streetsidesoftware/cspell-action/commit/0ab9d5479b053735a59405cf2f9f938c09e8405f))\n* Workflow Bot -- Update ALL Dependencies (main) ([#1582](https://github.com/streetsidesoftware/cspell-action/issues/1582)) ([234423e](https://github.com/streetsidesoftware/cspell-action/commit/234423edd54c01aff0bd979c9bcc7cc30d267268))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).", + "changed_files": 3, + "closed_at": null, + "comments": 0, + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1587/comments", + "commits": 2, + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1587/commits", + "created_at": "2024-02-26T17:03:23Z", + "deletions": 2, + "diff_url": "https://github.com/streetsidesoftware/cspell-action/pull/1587.diff", + "draft": false, + "head": { + "label": "streetsidesoftware:release-please--branches--main--components--cspell-action", + "ref": "release-please--branches--main--components--cspell-action", + "repo": { + "allow_auto_merge": false, + "allow_forking": true, + "allow_merge_commit": false, + "allow_rebase_merge": true, + "allow_squash_merge": true, + "allow_update_branch": true, + "archive_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/assignees{/user}", + "blobs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/branches{/branch}", + "clone_url": "https://github.com/streetsidesoftware/cspell-action.git", + "collaborators_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/comments{/number}", + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits{/sha}", + "compare_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contents/{+path}", + "contributors_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contributors", + "created_at": "2020-02-28T17:31:31Z", + "default_branch": "main", + "delete_branch_on_merge": true, + "deployments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/deployments", + "description": "GitHub Action: Check Spelling", + "disabled": false, + "downloads_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/downloads", + "events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/events", + "fork": false, + "forks": 6, + "forks_count": 6, + "forks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/forks", + "full_name": "streetsidesoftware/cspell-action", + "git_commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/tags{/sha}", + "git_url": "git://github.com/streetsidesoftware/cspell-action.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": null, + "hooks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/hooks", + "html_url": "https://github.com/streetsidesoftware/cspell-action", + "id": 243818802, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/events{/number}", + "issues_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues{/number}", + "keys_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/keys{/key_id}", + "labels_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/labels{/name}", + "language": "JavaScript", + "languages_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/languages", + "license": { + "key": "mit", + "name": "MIT License", + "node_id": "MDc6TGljZW5zZTEz", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit" + }, + "merge_commit_message": "PR_BODY", + "merge_commit_title": "PR_TITLE", + "merges_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/merges", + "milestones_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/milestones{/number}", + "mirror_url": null, + "name": "cspell-action", + "node_id": "MDEwOlJlcG9zaXRvcnkyNDM4MTg4MDI=", + "notifications_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/notifications{?since,all,participating}", + "open_issues": 11, + "open_issues_count": 11, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/streetsidesoftware", + "id": 50543896, + "login": "streetsidesoftware", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/streetsidesoftware" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls{/number}", + "pushed_at": "2024-02-27T14:39:11Z", + "releases_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/releases{/id}", + "size": 88071, + "squash_merge_commit_message": "BLANK", + "squash_merge_commit_title": "PR_TITLE", + "ssh_url": "git@github.com:streetsidesoftware/cspell-action.git", + "stargazers_count": 66, + "stargazers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/stargazers", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscribers", + "subscription_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscription", + "svn_url": "https://github.com/streetsidesoftware/cspell-action", + "tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/tags", + "teams_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees{/sha}", + "updated_at": "2024-01-23T16:38:26Z", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action", + "use_squash_pr_title_as_default": true, + "visibility": "public", + "watchers": 66, + "watchers_count": 66, + "web_commit_signoff_required": false + }, + "sha": "7ea7d5b885b5df07f5a268d5e92c15c1041d7a67", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/streetsidesoftware", + "id": 50543896, + "login": "streetsidesoftware", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/streetsidesoftware" + } + }, + "html_url": "https://github.com/streetsidesoftware/cspell-action/pull/1587", + "id": 1743854165, + "issue_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/1587", + "labels": [ + { + "color": "ededed", + "default": false, + "description": null, + "id": 4308154173, + "name": "autorelease: pending", + "node_id": "LA_kwDODohhMs8AAAABAMk3PQ", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/labels/autorelease:%20pending" + } + ], + "locked": false, + "maintainer_can_modify": false, + "merge_commit_sha": "d933fbfef5be68c0e35453a5ae61a0f8a58bc72d", + "mergeable": null, + "mergeable_state": "unknown", + "merged": false, + "merged_at": null, + "merged_by": null, + "milestone": null, + "node_id": "PR_kwDODohhMs5n8RpV", + "number": 1587, + "patch_url": "https://github.com/streetsidesoftware/cspell-action/pull/1587.patch", + "rebaseable": null, + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/comments{/number}", + "review_comments": 0, + "review_comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1587/comments", + "state": "open", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/7ea7d5b885b5df07f5a268d5e92c15c1041d7a67", + "title": "chore(main): release 5.4.1", + "updated_at": "2024-02-27T15:03:48Z", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls/1587", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/apps/github-actions", + "id": 41898282, + "login": "github-actions[bot]", + "node_id": "MDM6Qm90NDE4OTgyODI=", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "type": "Bot", + "url": "https://api.github.com/users/github-actions%5Bbot%5D" + } + }, + "repository": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/assignees{/user}", + "blobs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/branches{/branch}", + "clone_url": "https://github.com/streetsidesoftware/cspell-action.git", + "collaborators_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/comments{/number}", + "commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/commits{/sha}", + "compare_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contents/{+path}", + "contributors_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/contributors", + "created_at": "2020-02-28T17:31:31Z", + "custom_properties": {}, + "default_branch": "main", + "deployments_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/deployments", + "description": "GitHub Action: Check Spelling", + "disabled": false, + "downloads_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/downloads", + "events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/events", + "fork": false, + "forks": 6, + "forks_count": 6, + "forks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/forks", + "full_name": "streetsidesoftware/cspell-action", + "git_commits_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/tags{/sha}", + "git_url": "git://github.com/streetsidesoftware/cspell-action.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": null, + "hooks_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/hooks", + "html_url": "https://github.com/streetsidesoftware/cspell-action", + "id": 243818802, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues/events{/number}", + "issues_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/issues{/number}", + "keys_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/keys{/key_id}", + "labels_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/labels{/name}", + "language": "JavaScript", + "languages_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/languages", + "license": { + "key": "mit", + "name": "MIT License", + "node_id": "MDc6TGljZW5zZTEz", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit" + }, + "merges_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/merges", + "milestones_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/milestones{/number}", + "mirror_url": null, + "name": "cspell-action", + "node_id": "MDEwOlJlcG9zaXRvcnkyNDM4MTg4MDI=", + "notifications_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/notifications{?since,all,participating}", + "open_issues": 11, + "open_issues_count": 11, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/50543896?v=4", + "events_url": "https://api.github.com/users/streetsidesoftware/events{/privacy}", + "followers_url": "https://api.github.com/users/streetsidesoftware/followers", + "following_url": "https://api.github.com/users/streetsidesoftware/following{/other_user}", + "gists_url": "https://api.github.com/users/streetsidesoftware/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/streetsidesoftware", + "id": 50543896, + "login": "streetsidesoftware", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUwNTQzODk2", + "organizations_url": "https://api.github.com/users/streetsidesoftware/orgs", + "received_events_url": "https://api.github.com/users/streetsidesoftware/received_events", + "repos_url": "https://api.github.com/users/streetsidesoftware/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/streetsidesoftware/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/streetsidesoftware/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/streetsidesoftware" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/pulls{/number}", + "pushed_at": "2024-02-27T14:39:11Z", + "releases_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/releases{/id}", + "size": 88071, + "ssh_url": "git@github.com:streetsidesoftware/cspell-action.git", + "stargazers_count": 66, + "stargazers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/stargazers", + "statuses_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscribers", + "subscription_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/subscription", + "svn_url": "https://github.com/streetsidesoftware/cspell-action", + "tags_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/tags", + "teams_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/streetsidesoftware/cspell-action/git/trees{/sha}", + "updated_at": "2024-01-23T16:38:26Z", + "url": "https://api.github.com/repos/streetsidesoftware/cspell-action", + "visibility": "public", + "watchers": 66, + "watchers_count": 66, + "web_commit_signoff_required": false + }, + "sender": { + "avatar_url": "https://avatars.githubusercontent.com/u/3740137?v=4", + "events_url": "https://api.github.com/users/Jason3S/events{/privacy}", + "followers_url": "https://api.github.com/users/Jason3S/followers", + "following_url": "https://api.github.com/users/Jason3S/following{/other_user}", + "gists_url": "https://api.github.com/users/Jason3S/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Jason3S", + "id": 3740137, + "login": "Jason3S", + "node_id": "MDQ6VXNlcjM3NDAxMzc=", + "organizations_url": "https://api.github.com/users/Jason3S/orgs", + "received_events_url": "https://api.github.com/users/Jason3S/received_events", + "repos_url": "https://api.github.com/users/Jason3S/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Jason3S/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jason3S/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Jason3S" + } +} diff --git a/action-src/fixtures/push.json b/action-src/fixtures/push.json index 6e1d1b169..048564c23 100644 --- a/action-src/fixtures/push.json +++ b/action-src/fixtures/push.json @@ -1,6 +1,6 @@ { "INPUT_GITHUB_TOKEN": "$GITHUB_TOKEN", - "GITHUB_EVENT_PATH": "./fixtures/push_payload.json", + "GITHUB_EVENT_PATH": "./push_payload.json", "GITHUB_EVENT_NAME": "push", "GITHUB_SHA": "a16b47a16f6c11b63cfdcf510c15ba26edd0f3d1", "GITHUB_REF": "refs/heads/fix-resolve-path", diff --git a/action-src/fixtures/push_payload.json b/action-src/fixtures/push_payload.json index 7b20536e6..34e55b6c1 100644 --- a/action-src/fixtures/push_payload.json +++ b/action-src/fixtures/push_payload.json @@ -1,7 +1,7 @@ { - "after": "a16b47a16f6c11b63cfdcf510c15ba26edd0f3d1", + "after": "3fcea606a7709e6aabcdf67801c8b174a32c743c", "base_ref": null, - "before": "305de2c9caa6e6484d581eef3eb54c4c0208d24d", + "before": "0ab9d5479b053735a59405cf2f9f938c09e8405f", "commits": [ { "author": { diff --git a/action-src/package.json b/action-src/package.json index 3d4756ded..00f245b08 100644 --- a/action-src/package.json +++ b/action-src/package.json @@ -5,6 +5,7 @@ "type": "module", "scripts": { "build": "node ./build.mjs", + "build:tsc": "tsc -p .", "clean-build": "pnpm clean && pnpm build", "clean": "shx rm -rf ../action/lib dist", "lint": "eslint . --fix", @@ -26,11 +27,15 @@ }, "dependencies": { "@actions/core": "^1.10.1", + "@actions/exec": "^1.1.1", "@actions/github": "^6.0.0", "@cspell/cspell-bundled-dicts": "^8.4.1", "@octokit/core": "^6.0.1", "@octokit/plugin-rest-endpoint-methods": "^11.0.0", "@octokit/rest": "^20.0.2", + "@octokit/webhooks-schemas": "^7.3.2", + "@octokit/webhooks-types": "^7.3.2", + "@types/node": "20", "cspell": "^8.4.1", "cspell-glob": "^8.4.1", "vscode-uri": "^3.0.8" diff --git a/action-src/src/ActionParams.test.ts b/action-src/src/ActionParams.test.ts index 85615fad2..5ad4b5a91 100644 --- a/action-src/src/ActionParams.test.ts +++ b/action-src/src/ActionParams.test.ts @@ -12,7 +12,6 @@ describe('ActionParams', () => { test.each` params | expected - ${{ github_token: '' }} | ${'Missing GITHUB Token'} ${{ incremental_files_only: 'sure' }} | ${'Invalid incremental_files_only setting, must be one of (true, false)'} ${{ config: 'config_not_found' }} | ${'Configuration file "config_not_found" not found.'} ${{ root: 'root_not_found' }} | ${'Root path does not exist: "root_not_found"'} @@ -35,5 +34,5 @@ describe('ActionParams', () => { }); function ap(p: Partial): ActionParamsInput { - return { ...__testing__.defaultActionParams, github_token: 'token', ...p }; + return { ...__testing__.defaultActionParams, ...p }; } diff --git a/action-src/src/ActionParams.ts b/action-src/src/ActionParams.ts index e529e1184..37ce67c0d 100644 --- a/action-src/src/ActionParams.ts +++ b/action-src/src/ActionParams.ts @@ -11,7 +11,6 @@ export type TrueFalse = 'true' | 'false'; export interface ActionParamsInput extends Record {} export interface ActionParams { - github_token: string; files: string; incremental_files_only: TrueFalse; config: string; @@ -42,7 +41,6 @@ export interface ActionParams { } const defaultActionParams: ActionParams = { - github_token: '', files: '', incremental_files_only: 'true', config: '', @@ -64,11 +62,6 @@ export function applyDefaults(params: ActionParamsInput): ActionParamsInput { return results; } -function validateToken(params: ActionParamsInput) { - const token = params.github_token; - return !token ? 'Missing GITHUB Token' : undefined; -} - function validateConfig(params: ActionParamsInput) { const config = params.config; const success = !config || existsSync(config); @@ -117,7 +110,6 @@ export function validateActionParams( logError: (msg: string) => void, ): asserts params is ActionParams { const validations: ValidationFunction[] = [ - validateToken, validateConfig, validateRoot, validateInlineLevel, diff --git a/action-src/src/action.test.ts b/action-src/src/action.test.ts index 61db784e2..d2c558952 100644 --- a/action-src/src/action.test.ts +++ b/action-src/src/action.test.ts @@ -1,21 +1,21 @@ import * as process from 'process'; import * as path from 'path'; -import * as fs from 'fs'; import { Context } from '@actions/github/lib/context.js'; -import * as core from '@actions/core'; -import { Octokit } from '@octokit/rest'; import { action } from './action.js'; import { AppError } from './error.js'; -import { fixturesLocation, root } from './test/helper.js'; -import * as helper from './test/helper.js'; +import { fetchGithubActionFixture, root } from './test/helper.js'; import { beforeEach, describe, expect, test, vi } from 'vitest'; const configFile = path.resolve(root, 'cspell.json'); const timeout = 30000; -const spyLog = vi.spyOn(console, 'log').mockImplementation(() => {}); +const debug = false; + +const log: typeof console.log = debug ? console.log : () => undefined; + const spyWarn = vi.spyOn(console, 'warn').mockImplementation(() => {}); +const spyLog = vi.spyOn(console, 'log').mockImplementation(() => {}); const spyError = vi.spyOn(console, 'error').mockImplementation(() => {}); const spyStdout = vi.spyOn(process.stdout, 'write').mockImplementation(function () { @@ -29,7 +29,6 @@ describe('Validate Action', () => { spyError.mockClear(); spyLog.mockClear(); spyStdout.mockClear(); - process.env.INPUT_GITHUB_TOKEN = process.env['GITHUB_TOKEN']; }); test.each` @@ -43,35 +42,28 @@ describe('Validate Action', () => { '$test', async ({ file, expected }) => { const context = createContextFromFile(file); - const octokit = createOctokit(); expect.assertions(1); - await expect(action(context, octokit)).rejects.toEqual(expected); + await expect(action(context)).rejects.toEqual(expected); }, timeout, ); test.each` testName | file | expected + ${'event pr 1594'} | ${'pr_1594_env.json'} | ${true} ${'event push main.js'} | ${'push.json'} | ${true} ${'event pull_request main.js'} | ${'pull_request.json'} | ${true} ${'event pull_request_with_files main.js'} | ${'pull_request_with_files.json'} | ${true} `( '$testName', - async ({ testName, file, expected }) => { - return helper.pollyRun( - __filename, - testName, - async () => { - const context = createContextFromFile(file); - const octokit = createOctokit(); - expect.assertions(1); - await expect(action(context, octokit)).resolves.toBe(expected); - }, - { recordIfMissing: true }, - ); + async ({ file, expected }) => { + const context = createContextFromFile(file); + expect.assertions(1); + await expect(action(context)).resolves.toBe(expected); }, timeout, ); + test.each` files | expected ${'**'} | ${false} @@ -85,8 +77,7 @@ describe('Validate Action', () => { INPUT_FILES: files, INPUT_INCREMENTAL_FILES_ONLY: 'false', }); - const octokit = createOctokit(); - await expect(action(context, octokit)).resolves.toBe(expected); + await expect(action(context)).resolves.toBe(expected); expect(warnings).toMatchSnapshot(); expect(spyStdout).toHaveBeenCalled(); }, @@ -115,8 +106,7 @@ describe('Validate Action', () => { INPUT_CONFIG: path.resolve(root, 'fixtures/cspell.json'), }; const context = createContextFromFile(contextFile, params); - const octokit = createOctokit(); - await expect(action(context, octokit)).resolves.toBe(expected); + await expect(action(context)).resolves.toBe(expected); expect(warnings).toMatchSnapshot(); expect(spyLog.mock.calls).toMatchSnapshot(); expect(spyStdout.mock.calls).toMatchSnapshot(); @@ -144,22 +134,6 @@ function cleanEnv() { } } -function fetchGithubActionFixture(filename: string): Record { - const githubEnv = JSON.parse(fs.readFileSync(path.resolve(fixturesLocation, filename), 'utf-8')); - if (githubEnv['GITHUB_EVENT_PATH']) { - githubEnv['GITHUB_EVENT_PATH'] = path.resolve(root, githubEnv['GITHUB_EVENT_PATH']); - } - return githubEnv; -} - -function getGithubToken(): string { - const t0 = core.getInput('github_token', { required: true }); - if (t0[0] !== '$') { - return t0; - } - return process.env[t0.slice(1)] || 'undefined'; -} - function createContextFromFile(filename: string, ...params: Record[]): Context { return createContext(fetchGithubActionFixture(filename), ...params); } @@ -170,7 +144,15 @@ function createContext(...params: Record[]): Context { setEnvIfNotExist('INPUT_CONFIG', configFile); process.env.INPUT_CONFIG = path.resolve(root, process.env.INPUT_CONFIG || configFile); - return new Context(); + const context = new Context(); + + log('Create Context: %o', { + env: process.env, + context, + payload: context.payload, + }); + + return context; } function setEnvIfNotExist(key: string, value: string) { @@ -178,10 +160,3 @@ function setEnvIfNotExist(key: string, value: string) { process.env[key] = value; } } - -function createOctokit(): Octokit { - return new Octokit({ - auth: getGithubToken(), - userAgent: 'cspell-action-test', - }); -} diff --git a/action-src/src/action.ts b/action-src/src/action.ts index 45087b8df..aae88ceda 100644 --- a/action-src/src/action.ts +++ b/action-src/src/action.ts @@ -1,20 +1,22 @@ import { debug, info, error, warning, setFailed, setOutput } from '@actions/core'; -import { Context as GitHubContext } from '@actions/github/lib/context.js'; -import { Octokit } from '@octokit/core'; -import { RunResult } from 'cspell'; +import type { Context as GitHubContext } from '@actions/github/lib/context.js'; +import type { RunResult } from 'cspell'; import * as glob from 'cspell-glob'; import * as path from 'path'; import { ActionParams, validateActionParams } from './ActionParams.js'; import { getActionParams } from './getActionParams.js'; -import { fetchFilesForCommits, getPullRequestFiles } from './github.js'; import { CSpellReporterForGithubAction } from './reporter.js'; import { lint, LintOptions } from './spell.js'; +import { gitListFilesForPullRequest, gitListFilesForPush } from './git.js'; + +import type { PushEvent, PullRequestEvent } from '@octokit/webhooks-types'; const core = { debug, error, info, warning }; +const defaultGlob = '**'; + interface Context { githubContext: GitHubContext; - github: Octokit; files: string; useEventFiles: boolean; dot: boolean; @@ -23,29 +25,6 @@ interface Context { type EventNames = 'push' | 'pull_request'; const supportedIncrementalEvents = new Set(['push', 'pull_request']); -async function gatherPullRequestFiles(context: Context): Promise> { - const { github, githubContext } = context; - const pull_number = githubContext.payload.pull_request?.number; - if (!pull_number) return new Set(); - return getPullRequestFiles(github as Octokit, { ...githubContext.repo, pull_number }); -} - -interface Commit { - id: string; -} - -interface PushPayload { - commits?: Commit[]; -} - -async function gatherPushFiles(context: Context): Promise> { - const { github, githubContext } = context; - const push = githubContext.payload as PushPayload; - const commits = push.commits?.map((c) => c.id); - const files = commits && (await fetchFilesForCommits(github as Octokit, githubContext.repo, commits)); - return files || new Set(); -} - const checkDotMap = { true: true, false: false, @@ -110,12 +89,19 @@ async function gatherFilesFromContext(context: Context): Promise> { async function gatherFiles(context: Context): Promise> { const eventName = context.githubContext.eventName; - switch (eventName) { - case 'push': - return gatherPushFiles(context); - case 'pull_request': - return gatherPullRequestFiles(context); + // console.warn('gatherFiles %o', { context: context.githubContext, eventName }); + + try { + switch (eventName) { + case 'push': + return new Set(await gitListFilesForPush(context.githubContext.payload as PushEvent)); + case 'pull_request': + return new Set(await gitListFilesForPullRequest(context.githubContext.payload as PullRequestEvent)); + } + } catch (e) { + core.warning('Unable to determine which files have changed, checking files: ' + defaultGlob); } + return new Set(); } @@ -140,20 +126,19 @@ function filterFiles(globPattern: string, files: Set, dot: boolean): Set * @param octokit * @returns a promise that resolves to `true` if no issues were found. */ -export async function action(githubContext: GitHubContext, octokit: Octokit): Promise { +export async function action(githubContext: GitHubContext): Promise { const params = getActionParams(); validateActionParams(params, core.error); const eventName = githubContext.eventName; if (params.incremental_files_only === 'true' && !isSupportedEvent(eventName)) { - params.files = params.files || '**'; + params.files = params.files || defaultGlob; core.warning('Unable to determine which files have changed, checking files: ' + params.files); params.incremental_files_only = 'false'; } - params.files = params.files || (params.incremental_files_only !== 'true' ? '**' : ''); + params.files = params.files || (params.incremental_files_only !== 'true' ? defaultGlob : ''); const dot = !!checkDotMap[params.check_dot_files]; const context: Context = { githubContext, - github: octokit, files: params.files, useEventFiles: params.incremental_files_only === 'true', dot, diff --git a/action-src/src/getActionParams.ts b/action-src/src/getActionParams.ts index 067e9a490..2962331b3 100644 --- a/action-src/src/getActionParams.ts +++ b/action-src/src/getActionParams.ts @@ -3,7 +3,7 @@ import { ActionParamsInput, applyDefaults, TrueFalse } from './ActionParams.js'; export function getActionParams(): ActionParamsInput { return applyDefaults({ - github_token: getInput('github_token', { required: true }), + // github_token: getInput('github_token', { required: true }), files: getInput('files'), incremental_files_only: tf(getInput('incremental_files_only')), config: getInput('config'), diff --git a/action-src/src/git.test.ts b/action-src/src/git.test.ts new file mode 100644 index 000000000..91ad688d1 --- /dev/null +++ b/action-src/src/git.test.ts @@ -0,0 +1,66 @@ +import { promises as fs } from 'node:fs'; +import { describe, expect, test } from 'vitest'; +import { + Context, + GitError, + gitDeepen, + gitListCommits, + gitListFiles, + gitListFilesForContext, + gitListFilesForPullRequest, + gitListFilesForPush, +} from './git.js'; + +const urlFixtures = new URL('../fixtures/', import.meta.url); + +const ac = expect.arrayContaining; + +describe('git', () => { + test.each` + sha1 | sha2 | expected + ${'92d115716b53a74cbed4757232610c2b56531741'} | ${'3fcea606a7709e6aabcdf67801c8b174a32c743c'} | ${['.github/workflows/smoke.yml']} + ${'0000000000000000000000000000000000000000'} | ${'5c5ba0cca65718402a67fbdcfec7097d289620d2'} | ${ac(['action-src/build.mjs'])} + `('gitListFiles $sha1 $sha2', async ({ sha1, sha2, expected }) => { + const files = await gitListFiles(sha1, sha2); + expect(files).toEqual(expected); + }); + + test.each` + contextFile | expected + ${'./pull_request_2_context.json'} | ${ac(['package.json'])} + ${'./pr_1594_context.json'} | ${ac(['action-src/build.mjs', 'package.json'])} + `('gitListFilesForContext', async ({ contextFile, expected }) => { + const context = await readFixtureFileJSON(contextFile); + const files = await gitListFilesForContext(context); + expect(files).toEqual(expected); + }); + + test('bad Requests', async () => { + await expect(gitListFilesForPullRequest({} as any)).rejects.toThrowError(GitError); + await expect(gitListFilesForPush(undefined as any)).rejects.toThrowError(GitError); + }); + + test('gitListCommits', async () => { + const commits = await gitListCommits(); + // console.log('%o', commits); + expect(commits.length).toBeGreaterThanOrEqual(1); + const hexCommits = commits.filter(isHex); + expect(hexCommits).toEqual(commits); + }); + + test('gitDeepen', async () => { + await expect(gitDeepen(0)).resolves.toBeUndefined(); + }); +}); + +function readFixtureFile(file: string | URL): Promise { + return fs.readFile(new URL(file, urlFixtures), 'utf-8'); +} + +async function readFixtureFileJSON(file: string | URL): Promise { + return JSON.parse(await readFixtureFile(file)); +} + +function isHex(v: string): boolean { + return /^[a-fA-F0-9]+$/.test(v); +} diff --git a/action-src/src/git.ts b/action-src/src/git.ts new file mode 100644 index 000000000..9db3de83c --- /dev/null +++ b/action-src/src/git.ts @@ -0,0 +1,103 @@ +import { promisify } from 'node:util'; +import { exec } from 'node:child_process'; + +import type { PushEvent, PullRequestEvent } from '@octokit/webhooks-types'; + +const execP = promisify(exec); + +export async function gitListCommits(count = 100, _since?: Date): Promise { + const args = ['rev-list', 'HEAD', `-${count}`]; + const cmd = `git ${args.join(' ')}`; + const cmdResult = await execP(cmd); + return cmdResult.stdout + .split('\n') + .map((a) => a.trim()) + .filter((a) => !!a); +} + +export async function gitDeepen(count: number): Promise { + const args = ['fetch', `--deepen=${count}`]; + const cmd = `git ${args.join(' ')}`; + await execP(cmd); +} + +export async function gitListFiles(sha1: string, sha2?: string): Promise { + const SHAs = [sha1, sha2].map(cleanSha).filter((a) => !!a); + if (!SHAs.length) return []; + + const args = ['diff-tree', '--no-commit-id', '--name-only', '-r', ...SHAs]; + const cmd = `git ${args.join(' ')}`; + const cmdResult = await execP(cmd); + return cmdResult.stdout + .split('\n') + .map((a) => a.trim()) + .filter((a) => !!a); +} + +function cleanSha(sha: string | undefined): string { + if (!sha) return ''; + const s = sha.trim().replace(/[^a-fA-F0-9]/g, ''); + return s.replace(/^0+$/, ''); +} + +export async function gitListFilesForPullRequest(pr: PullRequestEvent): Promise { + const event = pr as { before?: undefined; after?: undefined }; + const sha1 = pr?.pull_request?.base?.sha || event?.before; + const sha2 = event?.after || pr?.pull_request?.head?.sha; + if (!sha1 || !sha2 || !pr.pull_request) { + throw new GitError(`Invalid PR event base.sha: ${sha1}, head.sha: ${sha2}`); + } + const commitCount = pr.pull_request.commits || 0; + try { + await deepenIfNecessary(commitCount + 1); + return gitListFiles(sha1, sha2); + } catch (e) { + throw new GitError(`Error getting files for PR ${pr?.number} from git`, e); + } +} + +export async function gitListFilesForPush(push: PushEvent): Promise { + try { + const commitCount = push.commits?.length || 0; + await deepenIfNecessary(commitCount + 1); + return gitListFiles(push.before, push.after); + } catch (e) { + throw new GitError(`Error getting files for Push, (Commit: ${push?.after}) from git`, e); + } +} + +async function deepenIfNecessary(commitCount: number) { + const commits = await gitListCommits(commitCount); + if (commits.length < commitCount) { + await gitDeepen(commitCount); + } +} + +export async function gitListFilesForContext(context: Context): Promise { + if (context.event_name === 'pull_request') { + return gitListFilesForPullRequest(context.event); + } + return gitListFilesForPush(context.event); +} + +export interface ContextPushEvent { + event_name: 'push'; + event: PushEvent; +} + +export interface ContextPullRequestEvent { + event_name: 'pull_request'; + event: PullRequestEvent; +} + +export type Context = ContextPushEvent | ContextPullRequestEvent; + +export class GitError extends Error { + constructor( + message: string, + readonly cause?: unknown, + ) { + super(message); + this.name = 'GitError'; + } +} diff --git a/action-src/src/github.test.ts b/action-src/src/github.test.ts deleted file mode 100644 index e432dc513..000000000 --- a/action-src/src/github.test.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Octokit } from '@octokit/rest'; -import { getPullRequestFiles } from './github.js'; -import { describe, expect, test } from 'vitest'; - -describe('validate github', () => { - const owner = 'streetsidesoftware'; - const repo = 'cspell'; - const timeout = 60000; - - test( - 'getPullRequestFiles', - async () => { - expect(process.env['GITHUB_TOKEN']).not.toBeUndefined(); - const options = { - auth: process.env['GITHUB_TOKEN'], - }; - const octokit = new Octokit(options); - const pull_number = 715; - - const list = await getPullRequestFiles(octokit, { owner, repo, pull_number }); - expect(list.size).toBe(59); - }, - timeout, - ); -}); diff --git a/action-src/src/github.ts b/action-src/src/github.ts deleted file mode 100644 index 0dbe73b4d..000000000 --- a/action-src/src/github.ts +++ /dev/null @@ -1,71 +0,0 @@ -import type { Octokit } from '@octokit/core'; -import { restEndpointMethods } from '@octokit/plugin-rest-endpoint-methods'; - -type RestEndpointMethods = ReturnType['rest']; - -export interface GitContext { - owner: string; - repo: string; -} - -export interface PullRequestRef extends GitContext { - pull_number: number; -} - -export async function getPullRequestFiles(git: Octokit, prRef: PullRequestRef): Promise> { - const { owner, repo, pull_number } = prRef; - const { rest } = restEndpointMethods(git); - - await reportUsage(rest, 'getPullRequestFiles RateLimit start:'); - const commits = await rest.pulls.listCommits({ owner, repo, pull_number }); - - console.time('Fetch file names in commits'); - const files = await fetchFilesForCommits(git, prRef, commits.data.map((c) => c.sha).filter(isString)); - console.timeEnd('Fetch file names in commits'); - // console.log('files %o', files); - - await reportUsage(rest, 'getPullRequestFiles RateLimit end:'); - return files; -} - -function isString(s: string | unknown): s is string { - return typeof s === 'string'; -} - -export async function fetchFilesForCommits( - git: Octokit, - context: GitContext, - commitIds: string[], -): Promise> { - const files: Set = new Set(); - for await (const file of fetchFilesForCommitsX(git, context, commitIds)) { - files.add(file); - } - return files; -} - -async function* fetchFilesForCommitsX( - git: Octokit, - context: GitContext, - commitIds: string[], -): AsyncIterableIterator { - const { owner, repo } = context; - const { rest } = restEndpointMethods(git); - for (const ref of commitIds) { - const commit = await rest.repos.getCommit({ owner, repo, ref }); - const files = commit.data.files; - if (!files) continue; - for (const f of files) { - if (f.filename) { - yield f.filename; - } - } - } -} - -async function reportUsage(rest: RestEndpointMethods, message: string) { - if (!process.env['DEBUG'] && !process.env['TEST'] && !process.env['GITHUB_USAGE']) return; - const rate = (await rest.rateLimit.get()).data.rate; - const now = Math.floor(Date.now() / 1000); - console.info('%s: %o, time until reset: %is', message, rate, rate.reset - now); -} diff --git a/action-src/src/main.test.ts b/action-src/src/main.test.ts index 68cd7b2b6..6b7328205 100644 --- a/action-src/src/main.test.ts +++ b/action-src/src/main.test.ts @@ -18,57 +18,20 @@ describe('Validate Main', () => { vi.resetAllMocks(); }); - test('GITHUB_TOKEN', () => { - expect(process.env['GITHUB_TOKEN']).not.toBeUndefined(); - }); - - test.each` - test | file - ${'event pull_request main.js'} | ${'pull_request.json'} - ${'event pull_request_with_files main.js'} | ${'pull_request_with_files.json'} - ${'event push main.js'} | ${'push.json'} - `( - '$test', - async ({ test: testName, file }) => { - await helper.pollyRun(__filename, testName, async () => { - const env = helper.fetchGithubActionFixture(file); - env.FIXTURE_FILE_NAME = file; - Object.assign(process.env, env); - - await expect(run()).resolves.toBeUndefined(); - }); - }, - timeout, - ); -}); - -describe('Validate Main No Token', () => { - beforeEach(() => { - vi.spyOn(console, 'error').mockImplementation(() => undefined); - }); - - afterEach(() => { - vi.resetAllMocks(); - }); - test.each` test | file + ${'event PR 1594'} | ${'pr_1594_env.json'} ${'event pull_request main.js'} | ${'pull_request.json'} ${'event pull_request_with_files main.js'} | ${'pull_request_with_files.json'} ${'event push main.js'} | ${'push.json'} `( - '$test', - async ({ test: testName, file }) => { - await helper.pollyRun(__filename, testName, async () => { - const env = helper.fetchGithubActionFixture(file); - env.FIXTURE_FILE_NAME = file; - Object.assign(process.env, env); - - process.env['INPUT_GITHUB_TOKEN'] = undefined; - process.env['GITHUB_TOKEN'] = undefined; + 'action test $test $file', + async ({ file }) => { + const env = helper.fetchGithubActionFixture(file); + env.FIXTURE_FILE_NAME = file; + Object.assign(process.env, env); - await expect(run()).resolves.toEqual(expect.any(Error)); - }); + await expect(run()).resolves.toBeUndefined(); }, timeout, ); diff --git a/action-src/src/main.ts b/action-src/src/main.ts index 34ed87690..62552d9ca 100644 --- a/action-src/src/main.ts +++ b/action-src/src/main.ts @@ -1,27 +1,15 @@ -import { info, getInput, setFailed } from '@actions/core'; -import { getOctokit } from '@actions/github'; +import { info, setFailed } from '@actions/core'; import { Context } from '@actions/github/lib/context.js'; -import assert from 'assert'; import { isAppError, isError } from './error.js'; import { action } from './action.js'; import { format } from 'util'; -function getGithubToken(): string | undefined { - const t0 = getInput('github_token', { required: true }); - if (t0[0] !== '$') { - return t0 !== 'undefined' ? t0 : undefined; - } - return process.env[t0.slice(1)] || undefined; -} - export async function run(): Promise { try { info('cspell-action'); const githubContext = new Context(); - const githubToken = getGithubToken(); - assert(githubToken, 'GITHUB_TOKEN is required.'); - await action(githubContext, getOctokit(githubToken)); + await action(githubContext); info('Done.'); return undefined; } catch (error) { diff --git a/action-src/src/test/helper.ts b/action-src/src/test/helper.ts index 75dd92af8..6bbf4bdee 100644 --- a/action-src/src/test/helper.ts +++ b/action-src/src/test/helper.ts @@ -1,28 +1,31 @@ import * as path from 'path'; import * as fs from 'fs'; -import { Polly, PollyConfig } from '@pollyjs/core'; -import NodeHttpAdapter from '@pollyjs/adapter-node-http'; -import FSPersister from '@pollyjs/persister-fs'; +import { fileURLToPath } from 'url'; -Polly.register(NodeHttpAdapter); -Polly.register(FSPersister); +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + +const urlTSConfig = new URL('../../tsconfig.json', import.meta.url); // eslint-disable-next-line @typescript-eslint/no-var-requires -const tsconfig = require('../../tsconfig.json'); +const tsconfig = JSON.parse(fs.readFileSync(urlTSConfig, 'utf-8')); export const sourceDir = path.resolve(path.join(__dirname, '..', '..')); /** Repo Root */ export const root = path.resolve(path.join(sourceDir, '..')); -export const fixturesLocation = path.join(sourceDir, 'fixtures'); +export const fixturesLocation = path.join(sourceDir, './fixtures'); const outputDir = path.resolve(sourceDir, tsconfig.compilerOptions.outDir); export const debugDir = outputDir; export function fetchGithubActionFixture(filename: string): Record { - const githubEnv = JSON.parse(fs.readFileSync(path.resolve(fixturesLocation, filename), 'utf-8')); + const absFixtureFile = path.resolve(fixturesLocation, filename); + const absFixtureDir = path.dirname(absFixtureFile); + const githubEnv = JSON.parse(fs.readFileSync(absFixtureFile, 'utf-8')); if (githubEnv['GITHUB_EVENT_PATH']) { - githubEnv['GITHUB_EVENT_PATH'] = path.resolve(root, githubEnv['GITHUB_EVENT_PATH']); + githubEnv['GITHUB_EVENT_PATH'] = path + .resolve(absFixtureDir, githubEnv['GITHUB_EVENT_PATH']) + .replace(/fixtures[/\\]fixtures/, 'fixtures'); } const env = { ...process.env, @@ -31,58 +34,3 @@ export function fetchGithubActionFixture(filename: string): Record; - -function setupPolly(name: string, dir: string, options?: SetupPolyOptions): Polly { - const polly = new Polly(name, { - adapters: ['node-http'], - persister: 'fs', - persisterOptions: { - fs: { - recordingsDir: dir, - }, - }, - recordIfMissing: options?.recordIfMissing ?? false, - matchRequestsBy: { - method: true, - headers: false, - body: true, - order: false, - - url: { - protocol: true, - username: true, - password: true, - hostname: true, - port: true, - pathname: true, - query: true, - hash: false, - }, - }, - }); - const { server } = polly; - server.any().on('beforePersist', (_req, recording) => { - recording.request.headers = []; - }); - return polly; -} - -export async function pollyRun( - testFile: string, - testName: string, - fn: (poly: Polly) => Promise, - options?: SetupPolyOptions, -): Promise { - const rel = path.relative(sourceDir, testFile); - const dir = path.resolve(fixturesLocation, '__recordings__', rel); - const poly = setupPolly(testName, dir, options); - try { - // console.warn('Poly Context: %o', { testFile, testName, dir }); - poly.replay(); - await fn(poly); - } finally { - poly.stop(); - } -} diff --git a/action-src/tsconfig.json b/action-src/tsconfig.json index e9da4bde6..5145c1b39 100644 --- a/action-src/tsconfig.json +++ b/action-src/tsconfig.json @@ -2,11 +2,10 @@ "$schema": "https://json.schemastore.org/tsconfig", "extends": "@tsconfig/node18/tsconfig.json", "compilerOptions": { - "module": "NodeNext", - "moduleResolution": "NodeNext", "skipLibCheck": true, "noUnusedParameters": true, "noUnusedLocals": true, + "types": ["node"], "outDir": "dist", "rootDir": "./src" }, diff --git a/action.yaml b/action.yaml index df715a242..5fa943760 100644 --- a/action.yaml +++ b/action.yaml @@ -2,16 +2,6 @@ name: "cspell-action" description: "Spell Checker for Code" author: "Street Side Software " inputs: - github_token: - description: > - Personal access token (PAT) used to fetch the repository commits. The PAT is configured - with the local git config, which enables your scripts to run authenticated git - commands. The post-job step removes the PAT. - We recommend using a service account with the least permissions necessary. - Also when generating a new PAT, select the least scopes necessary. - [Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets) - default: ${{ github.token }} - required: false files: description: | Define glob patterns to filter the files to be checked. Use a new line between patterns to define multiple patterns. diff --git a/action/lib/main_root.cjs b/action/lib/main_root.cjs index b78e2def4..9257efa54 100644 --- a/action/lib/main_root.cjs +++ b/action/lib/main_root.cjs @@ -630,7 +630,7 @@ var require_tunnel = __commonJS({ var http = require("http"); var https = require("https"); var events = require("events"); - var assert22 = require("assert"); + var assert21 = require("assert"); var util = require("util"); exports2.httpOverHttp = httpOverHttp; exports2.httpsOverHttp = httpsOverHttp; @@ -1146,7 +1146,7 @@ var require_errors = __commonJS({ var require_util = __commonJS({ "../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/core/util.js"(exports2, module2) { "use strict"; - var assert22 = require("assert"); + var assert21 = require("assert"); var { kDestroyed, kBodyUsed } = require_symbols(); var { IncomingMessage } = require("http"); var stream = require("stream"); @@ -1227,7 +1227,7 @@ var require_util = __commonJS({ function getHostname(host) { if (host[0] === "[") { const idx3 = host.indexOf("]"); - assert22(idx3 !== -1); + assert21(idx3 !== -1); return host.substring(1, idx3); } const idx2 = host.indexOf(":"); @@ -1239,7 +1239,7 @@ var require_util = __commonJS({ if (!host) { return null; } - assert22.strictEqual(typeof host, "string"); + assert21.strictEqual(typeof host, "string"); const servername = getHostname(host); if (net.isIP(servername)) { return ""; @@ -1347,31 +1347,31 @@ var require_util = __commonJS({ function isBuffer(buffer) { return buffer instanceof Uint8Array || Buffer.isBuffer(buffer); } - function validateHandler(handler2, method, upgrade) { - if (!handler2 || typeof handler2 !== "object") { + function validateHandler(handler, method, upgrade) { + if (!handler || typeof handler !== "object") { throw new InvalidArgumentError("handler must be an object"); } - if (typeof handler2.onConnect !== "function") { + if (typeof handler.onConnect !== "function") { throw new InvalidArgumentError("invalid onConnect method"); } - if (typeof handler2.onError !== "function") { + if (typeof handler.onError !== "function") { throw new InvalidArgumentError("invalid onError method"); } - if (typeof handler2.onBodySent !== "function" && handler2.onBodySent !== void 0) { + if (typeof handler.onBodySent !== "function" && handler.onBodySent !== void 0) { throw new InvalidArgumentError("invalid onBodySent method"); } if (upgrade || method === "CONNECT") { - if (typeof handler2.onUpgrade !== "function") { + if (typeof handler.onUpgrade !== "function") { throw new InvalidArgumentError("invalid onUpgrade method"); } } else { - if (typeof handler2.onHeaders !== "function") { + if (typeof handler.onHeaders !== "function") { throw new InvalidArgumentError("invalid onHeaders method"); } - if (typeof handler2.onData !== "function") { + if (typeof handler.onData !== "function") { throw new InvalidArgumentError("invalid onData method"); } - if (typeof handler2.onComplete !== "function") { + if (typeof handler.onComplete !== "function") { throw new InvalidArgumentError("invalid onComplete method"); } } @@ -3838,7 +3838,7 @@ var require_util2 = __commonJS({ var { getGlobalOrigin } = require_global(); var { performance: performance2 } = require("perf_hooks"); var { isBlobLike, toUSVString, ReadableStreamFrom } = require_util(); - var assert22 = require("assert"); + var assert21 = require("assert"); var { isUint8Array } = require("util/types"); var crypto6; try { @@ -4025,7 +4025,7 @@ var require_util2 = __commonJS({ } function determineRequestsReferrer(request) { const policy = request.referrerPolicy; - assert22(policy); + assert21(policy); let referrerSource = null; if (request.referrer === "client") { const globalOrigin = getGlobalOrigin(); @@ -4069,7 +4069,7 @@ var require_util2 = __commonJS({ } } function stripURLForReferrer(url, originOnly) { - assert22(url instanceof URL); + assert21(url instanceof URL); if (url.protocol === "file:" || url.protocol === "about:" || url.protocol === "blank:") { return "no-referrer"; } @@ -4214,7 +4214,7 @@ var require_util2 = __commonJS({ if (result === void 0) { throw new TypeError("Value is not JSON serializable"); } - assert22(typeof result === "string"); + assert21(typeof result === "string"); return result; } var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); @@ -4308,7 +4308,7 @@ var require_util2 = __commonJS({ } function isomorphicEncode(input) { for (let i = 0; i < input.length; i++) { - assert22(input.charCodeAt(i) <= 255); + assert21(input.charCodeAt(i) <= 255); } return input; } @@ -4328,7 +4328,7 @@ var require_util2 = __commonJS({ } } function urlIsLocal(url) { - assert22("protocol" in url); + assert21("protocol" in url); const protocol = url.protocol; return protocol === "about:" || protocol === "blob:" || protocol === "data:"; } @@ -4339,7 +4339,7 @@ var require_util2 = __commonJS({ return url.protocol === "https:"; } function urlIsHttpHttpsScheme(url) { - assert22("protocol" in url); + assert21("protocol" in url); const protocol = url.protocol; return protocol === "http:" || protocol === "https:"; } @@ -4780,7 +4780,7 @@ var require_webidl = __commonJS({ // ../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/fetch/dataURL.js var require_dataURL = __commonJS({ "../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/fetch/dataURL.js"(exports2, module2) { - var assert22 = require("assert"); + var assert21 = require("assert"); var { atob: atob2 } = require("buffer"); var { isomorphicDecode } = require_util2(); var encoder = new TextEncoder(); @@ -4788,7 +4788,7 @@ var require_dataURL = __commonJS({ var HTTP_WHITESPACE_REGEX = /(\u000A|\u000D|\u0009|\u0020)/; var HTTP_QUOTED_STRING_TOKENS = /[\u0009|\u0020-\u007E|\u0080-\u00FF]/; function dataURLProcessor(dataURL) { - assert22(dataURL.protocol === "data:"); + assert21(dataURL.protocol === "data:"); let input = URLSerializer(dataURL, true); input = input.slice(5); const position = { position: 0 }; @@ -4974,7 +4974,7 @@ var require_dataURL = __commonJS({ function collectAnHTTPQuotedString(input, position, extractValue) { const positionStart = position.position; let value = ""; - assert22(input[position.position] === '"'); + assert21(input[position.position] === '"'); position.position++; while (true) { value += collectASequenceOfCodePoints( @@ -4995,7 +4995,7 @@ var require_dataURL = __commonJS({ value += input[position.position]; position.position++; } else { - assert22(quoteOrBackslash === '"'); + assert21(quoteOrBackslash === '"'); break; } } @@ -5005,7 +5005,7 @@ var require_dataURL = __commonJS({ return input.slice(positionStart, position.position); } function serializeAMimeType(mimeType) { - assert22(mimeType !== "failure"); + assert21(mimeType !== "failure"); const { parameters, essence } = mimeType; let serialization = essence; for (let [name, value] of parameters.entries()) { @@ -5428,7 +5428,7 @@ var require_body = __commonJS({ var { DOMException: DOMException2, structuredClone } = require_constants(); var { Blob: Blob2, File: NativeFile } = require("buffer"); var { kBodyUsed } = require_symbols(); - var assert22 = require("assert"); + var assert21 = require("assert"); var { isErrored } = require_util(); var { isUint8Array, isArrayBuffer } = require("util/types"); var { File: UndiciFile } = require_file(); @@ -5459,7 +5459,7 @@ var require_body = __commonJS({ type: void 0 }); } - assert22(isReadableStreamLike(stream)); + assert21(isReadableStreamLike(stream)); let action2 = null; let source = null; let length = null; @@ -5575,8 +5575,8 @@ Content-Type: ${value.type || "application/octet-stream"}\r ReadableStream = require("stream/web").ReadableStream; } if (object instanceof ReadableStream) { - assert22(!util.isDisturbed(object), "The body has already been consumed."); - assert22(!object.locked, "The stream is locked."); + assert21(!util.isDisturbed(object), "The body has already been consumed."); + assert21(!object.locked, "The stream is locked."); } return extractBody(object, keepalive); } @@ -5790,7 +5790,7 @@ var require_request = __commonJS({ InvalidArgumentError, NotSupportedError } = require_errors(); - var assert22 = require("assert"); + var assert21 = require("assert"); var { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = require_symbols(); var util = require_util(); var tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/; @@ -5828,7 +5828,7 @@ var require_request = __commonJS({ reset, throwOnError, expectContinue - }, handler2) { + }, handler) { if (typeof path26 !== "string") { throw new InvalidArgumentError("path must be a string"); } else if (path26[0] !== "/" && !(path26.startsWith("http://") || path26.startsWith("https://")) && method !== "CONNECT") { @@ -5942,9 +5942,9 @@ var require_request = __commonJS({ this.headers += `content-type: ${body.type}\r `; } - util.validateHandler(handler2, method, upgrade); + util.validateHandler(handler, method, upgrade); this.servername = util.getServerName(this.host); - this[kHandler] = handler2; + this[kHandler] = handler; if (channels.create.hasSubscribers) { channels.create.publish({ request: this }); } @@ -5971,8 +5971,8 @@ var require_request = __commonJS({ } } onConnect(abort) { - assert22(!this.aborted); - assert22(!this.completed); + assert21(!this.aborted); + assert21(!this.completed); if (this.error) { abort(this.error); } else { @@ -5981,8 +5981,8 @@ var require_request = __commonJS({ } } onHeaders(statusCode, headers, resume, statusText) { - assert22(!this.aborted); - assert22(!this.completed); + assert21(!this.aborted); + assert21(!this.completed); if (channels.headers.hasSubscribers) { channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }); } @@ -5993,8 +5993,8 @@ var require_request = __commonJS({ } } onData(chunk) { - assert22(!this.aborted); - assert22(!this.completed); + assert21(!this.aborted); + assert21(!this.completed); try { return this[kHandler].onData(chunk); } catch (err) { @@ -6003,13 +6003,13 @@ var require_request = __commonJS({ } } onUpgrade(statusCode, headers, socket) { - assert22(!this.aborted); - assert22(!this.completed); + assert21(!this.aborted); + assert21(!this.completed); return this[kHandler].onUpgrade(statusCode, headers, socket); } onComplete(trailers) { this.onFinally(); - assert22(!this.aborted); + assert21(!this.aborted); this.completed = true; if (channels.trailers.hasSubscribers) { channels.trailers.publish({ request: this, trailers }); @@ -6046,13 +6046,13 @@ var require_request = __commonJS({ processHeader(this, key, value); return this; } - static [kHTTP1BuildRequest](origin, opts, handler2) { - return new _Request(origin, opts, handler2); + static [kHTTP1BuildRequest](origin, opts, handler) { + return new _Request(origin, opts, handler); } - static [kHTTP2BuildRequest](origin, opts, handler2) { + static [kHTTP2BuildRequest](origin, opts, handler) { const headers = opts.headers; opts = { ...opts, headers: null }; - const request = new _Request(origin, opts, handler2); + const request = new _Request(origin, opts, handler); request.headers = {}; if (Array.isArray(headers)) { if (headers.length % 2 !== 0) { @@ -6304,20 +6304,20 @@ var require_dispatcher_base = __commonJS({ queueMicrotask(onDestroyed); }); } - [kInterceptedDispatch](opts, handler2) { + [kInterceptedDispatch](opts, handler) { if (!this[kInterceptors] || this[kInterceptors].length === 0) { this[kInterceptedDispatch] = this[kDispatch]; - return this[kDispatch](opts, handler2); + return this[kDispatch](opts, handler); } let dispatch = this[kDispatch].bind(this); for (let i = this[kInterceptors].length - 1; i >= 0; i--) { dispatch = this[kInterceptors][i](dispatch); } this[kInterceptedDispatch] = dispatch; - return dispatch(opts, handler2); + return dispatch(opts, handler); } - dispatch(opts, handler2) { - if (!handler2 || typeof handler2 !== "object") { + dispatch(opts, handler) { + if (!handler || typeof handler !== "object") { throw new InvalidArgumentError("handler must be an object"); } try { @@ -6330,12 +6330,12 @@ var require_dispatcher_base = __commonJS({ if (this[kClosed]) { throw new ClientClosedError(); } - return this[kInterceptedDispatch](opts, handler2); + return this[kInterceptedDispatch](opts, handler); } catch (err) { - if (typeof handler2.onError !== "function") { + if (typeof handler.onError !== "function") { throw new InvalidArgumentError("invalid onError method"); } - handler2.onError(err); + handler.onError(err); return false; } } @@ -6349,7 +6349,7 @@ var require_connect = __commonJS({ "../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/core/connect.js"(exports2, module2) { "use strict"; var net = require("net"); - var assert22 = require("assert"); + var assert21 = require("assert"); var util = require_util(); var { InvalidArgumentError, ConnectTimeoutError } = require_errors(); var tls; @@ -6419,7 +6419,7 @@ var require_connect = __commonJS({ servername = servername || options.servername || util.getServerName(host) || null; const sessionKey = servername || hostname; const session = sessionCache.get(sessionKey) || null; - assert22(sessionKey); + assert21(sessionKey); socket = tls.connect({ highWaterMark: 16384, // TLS in node can't have bigger HWM anyway... @@ -6438,7 +6438,7 @@ var require_connect = __commonJS({ sessionCache.set(sessionKey, session2); }); } else { - assert22(!httpSocket, "httpSocket can only be sent on TLS update"); + assert21(!httpSocket, "httpSocket can only be sent on TLS update"); socket = net.connect({ highWaterMark: 64 * 1024, // Same as nodejs fs streams. @@ -6847,7 +6847,7 @@ var require_RedirectHandler = __commonJS({ "use strict"; var util = require_util(); var { kBodyUsed } = require_symbols(); - var assert22 = require("assert"); + var assert21 = require("assert"); var { InvalidArgumentError } = require_errors(); var EE = require("events"); var redirectableStatusCodes = [300, 301, 302, 303, 307, 308]; @@ -6858,28 +6858,28 @@ var require_RedirectHandler = __commonJS({ this[kBodyUsed] = false; } async *[Symbol.asyncIterator]() { - assert22(!this[kBodyUsed], "disturbed"); + assert21(!this[kBodyUsed], "disturbed"); this[kBodyUsed] = true; yield* this[kBody]; } }; var RedirectHandler = class { - constructor(dispatch, maxRedirections, opts, handler2) { + constructor(dispatch, maxRedirections, opts, handler) { if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { throw new InvalidArgumentError("maxRedirections must be a positive number"); } - util.validateHandler(handler2, opts.method, opts.upgrade); + util.validateHandler(handler, opts.method, opts.upgrade); this.dispatch = dispatch; this.location = null; this.abort = null; this.opts = { ...opts, maxRedirections: 0 }; this.maxRedirections = maxRedirections; - this.handler = handler2; + this.handler = handler; this.history = []; if (util.isStream(this.opts.body)) { if (util.bodyLength(this.opts.body) === 0) { this.opts.body.on("data", function() { - assert22(false); + assert21(false); }); } if (typeof this.opts.body.readableDidRead !== "boolean") { @@ -6973,7 +6973,7 @@ var require_RedirectHandler = __commonJS({ } } } else { - assert22(headers == null, "headers must be an object or an array"); + assert21(headers == null, "headers must be an object or an array"); } return ret; } @@ -6988,12 +6988,12 @@ var require_redirectInterceptor = __commonJS({ var RedirectHandler = require_RedirectHandler(); function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections }) { return (dispatch) => { - return function Intercept(opts, handler2) { + return function Intercept(opts, handler) { const { maxRedirections = defaultMaxRedirections } = opts; if (!maxRedirections) { - return dispatch(opts, handler2); + return dispatch(opts, handler); } - const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler2); + const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler); opts = { ...opts, maxRedirections: 0 }; return dispatch(opts, redirectHandler); }; @@ -7021,7 +7021,7 @@ var require_llhttp_simd_wasm = __commonJS({ var require_client = __commonJS({ "../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/client.js"(exports2, module2) { "use strict"; - var assert22 = require("assert"); + var assert21 = require("assert"); var net = require("net"); var http = require("http"); var { pipeline: pipeline3 } = require("stream"); @@ -7305,9 +7305,9 @@ var require_client = __commonJS({ connect(this); this.once("connect", cb); } - [kDispatch](opts, handler2) { + [kDispatch](opts, handler) { const origin = opts.origin || this[kUrl].origin; - const request = this[kHTTPConnVersion] === "h2" ? Request[kHTTP2BuildRequest](origin, opts, handler2) : Request[kHTTP1BuildRequest](origin, opts, handler2); + const request = this[kHTTPConnVersion] === "h2" ? Request[kHTTP2BuildRequest](origin, opts, handler) : Request[kHTTP1BuildRequest](origin, opts, handler); this[kQueue].push(request); if (this[kResuming]) { } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) { @@ -7359,7 +7359,7 @@ var require_client = __commonJS({ } }; function onHttp2SessionError(err) { - assert22(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); + assert21(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); this[kSocket][kError] = err; onError(this[kClient], err); } @@ -7380,7 +7380,7 @@ var require_client = __commonJS({ client[kSocket] = null; client[kHTTP2Session] = null; if (client.destroyed) { - assert22(this[kPending] === 0); + assert21(this[kPending] === 0); const requests = client[kQueue].splice(client[kRunningIdx]); for (let i = 0; i < requests.length; i++) { const request = requests[i]; @@ -7392,7 +7392,7 @@ var require_client = __commonJS({ errorRequest(client, request, err); } client[kPendingIdx] = client[kRunningIdx]; - assert22(client[kRunning] === 0); + assert21(client[kRunning] === 0); client.emit( "disconnect", client[kUrl], @@ -7419,35 +7419,35 @@ var require_client = __commonJS({ return 0; }, wasm_on_status: (p, at, len) => { - assert22.strictEqual(currentParser.ptr, p); + assert21.strictEqual(currentParser.ptr, p); const start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_message_begin: (p) => { - assert22.strictEqual(currentParser.ptr, p); + assert21.strictEqual(currentParser.ptr, p); return currentParser.onMessageBegin() || 0; }, wasm_on_header_field: (p, at, len) => { - assert22.strictEqual(currentParser.ptr, p); + assert21.strictEqual(currentParser.ptr, p); const start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_header_value: (p, at, len) => { - assert22.strictEqual(currentParser.ptr, p); + assert21.strictEqual(currentParser.ptr, p); const start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => { - assert22.strictEqual(currentParser.ptr, p); + assert21.strictEqual(currentParser.ptr, p); return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0; }, wasm_on_body: (p, at, len) => { - assert22.strictEqual(currentParser.ptr, p); + assert21.strictEqual(currentParser.ptr, p); const start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_message_complete: (p) => { - assert22.strictEqual(currentParser.ptr, p); + assert21.strictEqual(currentParser.ptr, p); return currentParser.onMessageComplete() || 0; } /* eslint-enable camelcase */ @@ -7466,7 +7466,7 @@ var require_client = __commonJS({ var TIMEOUT_IDLE = 3; var Parser = class { constructor(client, socket, { exports: exports3 }) { - assert22(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0); + assert21(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0); this.llhttp = exports3; this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE); this.client = client; @@ -7512,10 +7512,10 @@ var require_client = __commonJS({ if (this.socket.destroyed || !this.paused) { return; } - assert22(this.ptr != null); - assert22(currentParser == null); + assert21(this.ptr != null); + assert21(currentParser == null); this.llhttp.llhttp_resume(this.ptr); - assert22(this.timeoutType === TIMEOUT_BODY); + assert21(this.timeoutType === TIMEOUT_BODY); if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); @@ -7535,9 +7535,9 @@ var require_client = __commonJS({ } } execute(data) { - assert22(this.ptr != null); - assert22(currentParser == null); - assert22(!this.paused); + assert21(this.ptr != null); + assert21(currentParser == null); + assert21(!this.paused); const { socket, llhttp } = this; if (data.length > currentBufferSize) { if (currentBufferPtr) { @@ -7579,8 +7579,8 @@ var require_client = __commonJS({ } } destroy() { - assert22(this.ptr != null); - assert22(currentParser == null); + assert21(this.ptr != null); + assert21(currentParser == null); this.llhttp.llhttp_free(this.ptr); this.ptr = null; timers.clearTimeout(this.timeout); @@ -7637,17 +7637,17 @@ var require_client = __commonJS({ } onUpgrade(head) { const { upgrade, client, socket, headers, statusCode } = this; - assert22(upgrade); + assert21(upgrade); const request = client[kQueue][client[kRunningIdx]]; - assert22(request); - assert22(!socket.destroyed); - assert22(socket === client[kSocket]); - assert22(!this.paused); - assert22(request.upgrade || request.method === "CONNECT"); + assert21(request); + assert21(!socket.destroyed); + assert21(socket === client[kSocket]); + assert21(!this.paused); + assert21(request.upgrade || request.method === "CONNECT"); this.statusCode = null; this.statusText = ""; this.shouldKeepAlive = null; - assert22(this.headers.length % 2 === 0); + assert21(this.headers.length % 2 === 0); this.headers = []; this.headersSize = 0; socket.unshift(head); @@ -7675,8 +7675,8 @@ var require_client = __commonJS({ if (!request) { return -1; } - assert22(!this.upgrade); - assert22(this.statusCode < 200); + assert21(!this.upgrade); + assert21(this.statusCode < 200); if (statusCode === 100) { util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket))); return -1; @@ -7685,7 +7685,7 @@ var require_client = __commonJS({ util.destroy(socket, new SocketError("bad upgrade", util.getSocketInfo(socket))); return -1; } - assert22.strictEqual(this.timeoutType, TIMEOUT_HEADERS); + assert21.strictEqual(this.timeoutType, TIMEOUT_HEADERS); this.statusCode = statusCode; this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD. request.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive"; @@ -7698,16 +7698,16 @@ var require_client = __commonJS({ } } if (request.method === "CONNECT") { - assert22(client[kRunning] === 1); + assert21(client[kRunning] === 1); this.upgrade = true; return 2; } if (upgrade) { - assert22(client[kRunning] === 1); + assert21(client[kRunning] === 1); this.upgrade = true; return 2; } - assert22(this.headers.length % 2 === 0); + assert21(this.headers.length % 2 === 0); this.headers = []; this.headersSize = 0; if (this.shouldKeepAlive && client[kPipelining]) { @@ -7750,14 +7750,14 @@ var require_client = __commonJS({ return -1; } const request = client[kQueue][client[kRunningIdx]]; - assert22(request); - assert22.strictEqual(this.timeoutType, TIMEOUT_BODY); + assert21(request); + assert21.strictEqual(this.timeoutType, TIMEOUT_BODY); if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } - assert22(statusCode >= 200); + assert21(statusCode >= 200); if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { util.destroy(socket, new ResponseExceededMaxSizeError()); return -1; @@ -7776,15 +7776,15 @@ var require_client = __commonJS({ return; } const request = client[kQueue][client[kRunningIdx]]; - assert22(request); - assert22(statusCode >= 100); + assert21(request); + assert21(statusCode >= 100); this.statusCode = null; this.statusText = ""; this.bytesRead = 0; this.contentLength = ""; this.keepAlive = ""; this.connection = ""; - assert22(this.headers.length % 2 === 0); + assert21(this.headers.length % 2 === 0); this.headers = []; this.headersSize = 0; if (statusCode < 200) { @@ -7797,7 +7797,7 @@ var require_client = __commonJS({ request.onComplete(headers); client[kQueue][client[kRunningIdx]++] = null; if (socket[kWriting]) { - assert22.strictEqual(client[kRunning], 0); + assert21.strictEqual(client[kRunning], 0); util.destroy(socket, new InformationalError("reset")); return constants.ERROR.PAUSED; } else if (!shouldKeepAlive) { @@ -7817,7 +7817,7 @@ var require_client = __commonJS({ const { socket, timeoutType, client } = parser2; if (timeoutType === TIMEOUT_HEADERS) { if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { - assert22(!parser2.paused, "cannot be paused while waiting for headers"); + assert21(!parser2.paused, "cannot be paused while waiting for headers"); util.destroy(socket, new HeadersTimeoutError()); } } else if (timeoutType === TIMEOUT_BODY) { @@ -7825,7 +7825,7 @@ var require_client = __commonJS({ util.destroy(socket, new BodyTimeoutError()); } } else if (timeoutType === TIMEOUT_IDLE) { - assert22(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]); + assert21(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]); util.destroy(socket, new InformationalError("socket idle timeout")); } } @@ -7837,7 +7837,7 @@ var require_client = __commonJS({ } function onSocketError(err) { const { [kClient]: client, [kParser]: parser2 } = this; - assert22(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); + assert21(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); if (client[kHTTPConnVersion] !== "h2") { if (err.code === "ECONNRESET" && parser2.statusCode && !parser2.shouldKeepAlive) { parser2.onMessageComplete(); @@ -7849,13 +7849,13 @@ var require_client = __commonJS({ } function onError(client, err) { if (client[kRunning] === 0 && err.code !== "UND_ERR_INFO" && err.code !== "UND_ERR_SOCKET") { - assert22(client[kPendingIdx] === client[kRunningIdx]); + assert21(client[kPendingIdx] === client[kRunningIdx]); const requests = client[kQueue].splice(client[kRunningIdx]); for (let i = 0; i < requests.length; i++) { const request = requests[i]; errorRequest(client, request, err); } - assert22(client[kSize] === 0); + assert21(client[kSize] === 0); } } function onSocketEnd() { @@ -7880,7 +7880,7 @@ var require_client = __commonJS({ const err = this[kError] || new SocketError("closed", util.getSocketInfo(this)); client[kSocket] = null; if (client.destroyed) { - assert22(client[kPending] === 0); + assert21(client[kPending] === 0); const requests = client[kQueue].splice(client[kRunningIdx]); for (let i = 0; i < requests.length; i++) { const request = requests[i]; @@ -7892,19 +7892,19 @@ var require_client = __commonJS({ errorRequest(client, request, err); } client[kPendingIdx] = client[kRunningIdx]; - assert22(client[kRunning] === 0); + assert21(client[kRunning] === 0); client.emit("disconnect", client[kUrl], [client], err); resume(client); } async function connect(client) { - assert22(!client[kConnecting]); - assert22(!client[kSocket]); + assert21(!client[kConnecting]); + assert21(!client[kSocket]); let { host, hostname, protocol, port } = client[kUrl]; if (hostname[0] === "[") { const idx2 = hostname.indexOf("]"); - assert22(idx2 !== -1); + assert21(idx2 !== -1); const ip = hostname.substring(1, idx2); - assert22(net.isIP(ip)); + assert21(net.isIP(ip)); hostname = ip; } client[kConnecting] = true; @@ -7944,7 +7944,7 @@ var require_client = __commonJS({ return; } client[kConnecting] = false; - assert22(socket); + assert21(socket); const isH2 = socket.alpnProtocol === "h2"; if (isH2) { if (!h2ExperimentalWarned) { @@ -8020,7 +8020,7 @@ var require_client = __commonJS({ }); } if (err.code === "ERR_TLS_CERT_ALTNAME_INVALID") { - assert22(client[kRunning] === 0); + assert21(client[kRunning] === 0); while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) { const request = client[kQueue][client[kPendingIdx]++]; errorRequest(client, request, err); @@ -8052,7 +8052,7 @@ var require_client = __commonJS({ function _resume(client, sync) { while (true) { if (client.destroyed) { - assert22(client[kPending] === 0); + assert21(client[kPending] === 0); return; } if (client[kClosedResolve] && !client[kSize]) { @@ -8224,13 +8224,13 @@ upgrade: ${upgrade}\r \r `, "latin1"); } else { - assert22(contentLength === null, "no body must not have content length"); + assert21(contentLength === null, "no body must not have content length"); socket.write(`${header}\r `, "latin1"); } request.onRequestSent(); } else if (util.isBuffer(body)) { - assert22(contentLength === body.byteLength, "buffer body must have content length"); + assert21(contentLength === body.byteLength, "buffer body must have content length"); socket.cork(); socket.write(`${header}content-length: ${contentLength}\r \r @@ -8253,7 +8253,7 @@ upgrade: ${upgrade}\r } else if (util.isIterable(body)) { writeIterable({ body, client, request, socket, contentLength, header, expectsPayload }); } else { - assert22(false); + assert21(false); } return true; } @@ -8325,7 +8325,7 @@ upgrade: ${upgrade}\r process.emitWarning(new RequestContentLengthMismatchError()); } if (contentLength != null) { - assert22(body, "no body must not have content length"); + assert21(body, "no body must not have content length"); headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`; } session.ref(); @@ -8381,7 +8381,7 @@ upgrade: ${upgrade}\r if (!body) { request.onRequestSent(); } else if (util.isBuffer(body)) { - assert22(contentLength === body.byteLength, "buffer body must have content length"); + assert21(contentLength === body.byteLength, "buffer body must have content length"); stream.cork(); stream.write(body); stream.uncork(); @@ -8435,12 +8435,12 @@ upgrade: ${upgrade}\r socket: client[kSocket] }); } else { - assert22(false); + assert21(false); } } } function writeStream({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert22(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); + assert21(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); if (client[kHTTPConnVersion] === "h2") { let onPipeData = function(chunk) { request.onBodySent(chunk); @@ -8498,7 +8498,7 @@ upgrade: ${upgrade}\r return; } finished = true; - assert22(socket.destroyed || socket[kWriting] && client[kRunning] <= 1); + assert21(socket.destroyed || socket[kWriting] && client[kRunning] <= 1); socket.off("drain", onDrain).off("error", onFinished); body.removeListener("data", onData).removeListener("end", onFinished).removeListener("error", onFinished).removeListener("close", onAbort); if (!err) { @@ -8522,7 +8522,7 @@ upgrade: ${upgrade}\r socket.on("drain", onDrain).on("error", onFinished); } async function writeBlob({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert22(contentLength === body.size, "blob body must have content length"); + assert21(contentLength === body.size, "blob body must have content length"); const isH2 = client[kHTTPConnVersion] === "h2"; try { if (contentLength != null && contentLength !== body.size) { @@ -8552,7 +8552,7 @@ upgrade: ${upgrade}\r } } async function writeIterable({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert22(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); + assert21(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); let callback = null; function onDrain() { if (callback) { @@ -8562,7 +8562,7 @@ upgrade: ${upgrade}\r } } const waitForDrain = () => new Promise((resolve12, reject) => { - assert22(callback === null); + assert21(callback === null); if (socket[kError]) { reject(socket[kError]); } else { @@ -8710,7 +8710,7 @@ ${len.toString(16)}\r const { socket, client } = this; socket[kWriting] = false; if (err) { - assert22(client[kRunning] <= 1, "pipeline should only contain this request"); + assert21(client[kRunning] <= 1, "pipeline should only contain this request"); util.destroy(socket, err); } } @@ -8718,7 +8718,7 @@ ${len.toString(16)}\r function errorRequest(client, request, err) { try { request.onError(err); - assert22(request.aborted); + assert21(request.aborted); } catch (err2) { client.emit("error", err2); } @@ -8926,13 +8926,13 @@ var require_pool_base = __commonJS({ } return Promise.all(this[kClients].map((c) => c.destroy(err))); } - [kDispatch](opts, handler2) { + [kDispatch](opts, handler) { const dispatcher = this[kGetDispatcher](); if (!dispatcher) { this[kNeedDrain] = true; - this[kQueue].push({ opts, handler: handler2 }); + this[kQueue].push({ opts, handler }); this[kQueued]++; - } else if (!dispatcher.dispatch(opts, handler2)) { + } else if (!dispatcher.dispatch(opts, handler)) { dispatcher[kNeedDrain] = true; this[kNeedDrain] = !this[kGetDispatcher](); } @@ -9308,7 +9308,7 @@ var require_agent = __commonJS({ } return ret; } - [kDispatch](opts, handler2) { + [kDispatch](opts, handler) { let key; if (opts.origin && (typeof opts.origin === "string" || opts.origin instanceof URL)) { key = String(opts.origin); @@ -9322,7 +9322,7 @@ var require_agent = __commonJS({ this[kClients].set(key, new WeakRef2(dispatcher)); this[kFinalizer].register(dispatcher, key); } - return dispatcher.dispatch(opts, handler2); + return dispatcher.dispatch(opts, handler); } async [kClose]() { const closePromises = []; @@ -9353,7 +9353,7 @@ var require_agent = __commonJS({ var require_readable = __commonJS({ "../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/api/readable.js"(exports2, module2) { "use strict"; - var assert22 = require("assert"); + var assert21 = require("assert"); var { Readable: Readable2 } = require("stream"); var { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require_errors(); var util = require_util(); @@ -9462,7 +9462,7 @@ var require_readable = __commonJS({ this[kBody] = ReadableStreamFrom(this); if (this[kConsume]) { this[kBody].getReader(); - assert22(this[kBody].locked); + assert21(this[kBody].locked); } } return this[kBody]; @@ -9513,7 +9513,7 @@ var require_readable = __commonJS({ if (isUnusable(stream)) { throw new TypeError("unusable"); } - assert22(!stream[kConsume]); + assert21(!stream[kConsume]); return new Promise((resolve12, reject) => { stream[kConsume] = { type, @@ -9604,13 +9604,13 @@ var require_readable = __commonJS({ // ../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/api/util.js var require_util3 = __commonJS({ "../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/api/util.js"(exports2, module2) { - var assert22 = require("assert"); + var assert21 = require("assert"); var { ResponseStatusCodeError } = require_errors(); var { toUSVString } = require_util(); async function getResolveErrorBodyCallback({ callback, body, contentType, statusCode, statusMessage, headers }) { - assert22(body); + assert21(body); let chunks = []; let limit = 0; for await (const chunk of body) { @@ -10038,7 +10038,7 @@ var require_api_pipeline = __commonJS({ var util = require_util(); var { AsyncResource } = require("async_hooks"); var { addSignal, removeSignal } = require_abort_signal(); - var assert22 = require("assert"); + var assert21 = require("assert"); var kResume = Symbol("resume"); var PipelineRequest = class extends Readable2 { constructor() { @@ -10073,11 +10073,11 @@ var require_api_pipeline = __commonJS({ } }; var PipelineHandler = class extends AsyncResource { - constructor(opts, handler2) { + constructor(opts, handler) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } - if (typeof handler2 !== "function") { + if (typeof handler !== "function") { throw new InvalidArgumentError("invalid handler"); } const { signal, method, opaque, onInfo, responseHeaders } = opts; @@ -10093,7 +10093,7 @@ var require_api_pipeline = __commonJS({ super("UNDICI_PIPELINE"); this.opaque = opaque || null; this.responseHeaders = responseHeaders || null; - this.handler = handler2; + this.handler = handler; this.abort = null; this.context = null; this.onInfo = onInfo || null; @@ -10138,7 +10138,7 @@ var require_api_pipeline = __commonJS({ } onConnect(abort, context) { const { ret, res } = this; - assert22(!res, "pipeline cannot be retried"); + assert21(!res, "pipeline cannot be retried"); if (ret.destroyed) { throw new RequestAbortedError(); } @@ -10146,7 +10146,7 @@ var require_api_pipeline = __commonJS({ this.context = context; } onHeaders(statusCode, rawHeaders, resume) { - const { opaque, handler: handler2, context } = this; + const { opaque, handler, context } = this; if (statusCode < 200) { if (this.onInfo) { const headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); @@ -10159,7 +10159,7 @@ var require_api_pipeline = __commonJS({ try { this.handler = null; const headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - body = this.runInAsyncScope(handler2, null, { + body = this.runInAsyncScope(handler, null, { statusCode, headers, opaque, @@ -10206,9 +10206,9 @@ var require_api_pipeline = __commonJS({ util.destroy(ret, err); } }; - function pipeline3(opts, handler2) { + function pipeline3(opts, handler) { try { - const pipelineHandler = new PipelineHandler(opts, handler2); + const pipelineHandler = new PipelineHandler(opts, handler); this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler); return pipelineHandler.ret; } catch (err) { @@ -10227,7 +10227,7 @@ var require_api_upgrade = __commonJS({ var { AsyncResource } = require("async_hooks"); var util = require_util(); var { addSignal, removeSignal } = require_abort_signal(); - var assert22 = require("assert"); + var assert21 = require("assert"); var UpgradeHandler = class extends AsyncResource { constructor(opts, callback) { if (!opts || typeof opts !== "object") { @@ -10260,7 +10260,7 @@ var require_api_upgrade = __commonJS({ } onUpgrade(statusCode, rawHeaders, socket) { const { callback, opaque, context } = this; - assert22.strictEqual(statusCode, 101); + assert21.strictEqual(statusCode, 101); removeSignal(this); this.callback = null; const headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); @@ -10631,7 +10631,7 @@ var require_mock_utils = __commonJS({ } return Buffer.concat(buffers).toString("utf8"); } - function mockDispatch(opts, handler2) { + function mockDispatch(opts, handler) { const key = buildKey(opts); const mockDispatch2 = getMockDispatch(this[kDispatches], key); mockDispatch2.timesInvoked++; @@ -10644,7 +10644,7 @@ var require_mock_utils = __commonJS({ mockDispatch2.pending = timesInvoked < times; if (error3 !== null) { deleteMockDispatch(this[kDispatches], key); - handler2.onError(error3); + handler.onError(error3); return true; } if (typeof delay === "number" && delay > 0) { @@ -10664,10 +10664,10 @@ var require_mock_utils = __commonJS({ const responseData = getResponseData(body); const responseHeaders = generateKeyValues(headers); const responseTrailers = generateKeyValues(trailers); - handler2.abort = nop; - handler2.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode)); - handler2.onData(Buffer.from(responseData)); - handler2.onComplete(responseTrailers); + handler.abort = nop; + handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode)); + handler.onData(Buffer.from(responseData)); + handler.onComplete(responseTrailers); deleteMockDispatch(mockDispatches, key); } function resume() { @@ -10678,10 +10678,10 @@ var require_mock_utils = __commonJS({ const agent = this[kMockAgent]; const origin = this[kOrigin]; const originalDispatch = this[kOriginalDispatch]; - return function dispatch(opts, handler2) { + return function dispatch(opts, handler) { if (agent.isMockActive) { try { - mockDispatch.call(this, opts, handler2); + mockDispatch.call(this, opts, handler); } catch (error3) { if (error3 instanceof MockNotMatchedError) { const netConnect = agent[kGetNetConnect](); @@ -10689,7 +10689,7 @@ var require_mock_utils = __commonJS({ throw new MockNotMatchedError(`${error3.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`); } if (checkNetConnect(netConnect, origin)) { - originalDispatch.call(this, opts, handler2); + originalDispatch.call(this, opts, handler); } else { throw new MockNotMatchedError(`${error3.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`); } @@ -10698,7 +10698,7 @@ var require_mock_utils = __commonJS({ } } } else { - originalDispatch.call(this, opts, handler2); + originalDispatch.call(this, opts, handler); } }; } @@ -10901,7 +10901,7 @@ var require_mock_interceptor = __commonJS({ var require_mock_client = __commonJS({ "../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/mock/mock-client.js"(exports2, module2) { "use strict"; - var { promisify: promisify4 } = require("util"); + var { promisify: promisify5 } = require("util"); var Client = require_client(); var { buildMockDispatch } = require_mock_utils(); var { @@ -10941,7 +10941,7 @@ var require_mock_client = __commonJS({ return new MockInterceptor(opts, this[kDispatches]); } async [kClose]() { - await promisify4(this[kOriginalClose])(); + await promisify5(this[kOriginalClose])(); this[kConnected] = 0; this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); } @@ -10954,7 +10954,7 @@ var require_mock_client = __commonJS({ var require_mock_pool = __commonJS({ "../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/mock/mock-pool.js"(exports2, module2) { "use strict"; - var { promisify: promisify4 } = require("util"); + var { promisify: promisify5 } = require("util"); var Pool = require_pool(); var { buildMockDispatch } = require_mock_utils(); var { @@ -10994,7 +10994,7 @@ var require_mock_pool = __commonJS({ return new MockInterceptor(opts, this[kDispatches]); } async [kClose]() { - await promisify4(this[kOriginalClose])(); + await promisify5(this[kOriginalClose])(); this[kConnected] = 0; this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); } @@ -11126,9 +11126,9 @@ var require_mock_agent = __commonJS({ } return dispatcher; } - dispatch(opts, handler2) { + dispatch(opts, handler) { this.get(opts.origin); - return this[kAgent].dispatch(opts, handler2); + return this[kAgent].dispatch(opts, handler); } async close() { await this[kAgent].close(); @@ -11320,7 +11320,7 @@ var require_proxy_agent = __commonJS({ } }); } - dispatch(opts, handler2) { + dispatch(opts, handler) { const { host } = new URL5(opts.origin); const headers = buildHeaders(opts.headers); throwIfProxyAuthIsSent(headers); @@ -11332,7 +11332,7 @@ var require_proxy_agent = __commonJS({ host } }, - handler2 + handler ); } async [kClose]() { @@ -11367,7 +11367,7 @@ var require_proxy_agent = __commonJS({ // ../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/handler/RetryHandler.js var require_RetryHandler = __commonJS({ "../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/handler/RetryHandler.js"(exports2, module2) { - var assert22 = require("assert"); + var assert21 = require("assert"); var { kRetryHandlerDefaultRetry } = require_symbols(); var { RequestRetryError } = require_errors(); var { isDisturbed, parseHeaders, parseRangeHeader } = require_util(); @@ -11533,8 +11533,8 @@ var require_RetryHandler = __commonJS({ return false; } const { start, size, end = size } = contentRange; - assert22(this.start === start, "content-range mismatch"); - assert22(this.end == null || this.end === end, "content-range mismatch"); + assert21(this.start === start, "content-range mismatch"); + assert21(this.end == null || this.end === end, "content-range mismatch"); this.resume = resume; return true; } @@ -11550,12 +11550,12 @@ var require_RetryHandler = __commonJS({ ); } const { start, size, end = size } = range; - assert22( + assert21( start != null && Number.isFinite(start) && this.start !== start, "content-range mismatch" ); - assert22(Number.isFinite(start)); - assert22( + assert21(Number.isFinite(start)); + assert21( end != null && Number.isFinite(end) && this.end !== end, "invalid content-length" ); @@ -11566,8 +11566,8 @@ var require_RetryHandler = __commonJS({ const contentLength = headers["content-length"]; this.end = contentLength != null ? Number(contentLength) : null; } - assert22(Number.isFinite(this.start)); - assert22( + assert21(Number.isFinite(this.start)); + assert21( this.end == null || Number.isFinite(this.end), "invalid content-length" ); @@ -11668,8 +11668,8 @@ var require_DecoratorHandler = __commonJS({ "../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/handler/DecoratorHandler.js"(exports2, module2) { "use strict"; module2.exports = class DecoratorHandler { - constructor(handler2) { - this.handler = handler2; + constructor(handler) { + this.handler = handler; } onConnect(...args) { return this.handler.onConnect(...args); @@ -11709,7 +11709,7 @@ var require_headers = __commonJS({ isValidHeaderValue } = require_util2(); var { webidl } = require_webidl(); - var assert22 = require("assert"); + var assert21 = require("assert"); var kHeadersMap = Symbol("headers map"); var kHeadersSortedMap = Symbol("headers map sorted"); function isHTTPWhiteSpaceCharCode(code) { @@ -11969,7 +11969,7 @@ var require_headers = __commonJS({ headers.push([name, cookies[j]]); } } else { - assert22(value !== null); + assert21(value !== null); headers.push([name, value]); } } @@ -12112,7 +12112,7 @@ var require_response = __commonJS({ var { getGlobalOrigin } = require_global(); var { URLSerializer } = require_dataURL(); var { kHeadersList, kConstruct } = require_symbols(); - var assert22 = require("assert"); + var assert21 = require("assert"); var { types } = require("util"); var ReadableStream = globalThis.ReadableStream || require("stream/web").ReadableStream; var textEncoder = new TextEncoder("utf-8"); @@ -12328,7 +12328,7 @@ var require_response = __commonJS({ return p in state ? state[p] : target[p]; }, set(target, p, value) { - assert22(!(p in state)); + assert21(!(p in state)); target[p] = value; return true; } @@ -12362,11 +12362,11 @@ var require_response = __commonJS({ body: null }); } else { - assert22(false); + assert21(false); } } function makeAppropriateNetworkError(fetchParams, err = null) { - assert22(isCancelled(fetchParams)); + assert21(isCancelled(fetchParams)); return isAborted(fetchParams) ? makeNetworkError(Object.assign(new DOMException2("The operation was aborted.", "AbortError"), { cause: err })) : makeNetworkError(Object.assign(new DOMException2("Request was cancelled."), { cause: err })); } function initializeResponse(response, init, body) { @@ -12494,7 +12494,7 @@ var require_request2 = __commonJS({ var { getGlobalOrigin } = require_global(); var { URLSerializer } = require_dataURL(); var { kHeadersList, kConstruct } = require_symbols(); - var assert22 = require("assert"); + var assert21 = require("assert"); var { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require("events"); var TransformStream = globalThis.TransformStream; var kAbortController = Symbol("abortController"); @@ -12538,7 +12538,7 @@ var require_request2 = __commonJS({ request = makeRequest({ urlList: [parsedURL] }); fallbackMode = "cors"; } else { - assert22(input instanceof _Request); + assert21(input instanceof _Request); request = input[kState]; signal = input[kSignal]; } @@ -13147,7 +13147,7 @@ var require_fetch = __commonJS({ urlHasHttpsScheme } = require_util2(); var { kState, kHeaders, kGuard, kRealm } = require_symbols2(); - var assert22 = require("assert"); + var assert21 = require("assert"); var { safelyExtractBody } = require_body(); var { redirectStatusSet, @@ -13227,7 +13227,7 @@ var require_fetch = __commonJS({ requestObject.signal, () => { locallyAborted = true; - assert22(controller != null); + assert21(controller != null); controller.abort(requestObject.signal.reason); abortFetch(p, request, responseObject, requestObject.signal.reason); } @@ -13360,7 +13360,7 @@ var require_fetch = __commonJS({ taskDestination, crossOriginIsolatedCapability }; - assert22(!request.body || request.body.stream); + assert21(!request.body || request.body.stream); if (request.window === "client") { request.window = request.client?.globalObject?.constructor?.name === "Window" ? request.client : "no-window"; } @@ -13453,7 +13453,7 @@ var require_fetch = __commonJS({ } else if (request.responseTainting === "opaque") { response = filterResponse(response, "opaque"); } else { - assert22(false); + assert21(false); } } let internalResponse = response.status === 0 ? response : response.internalResponse; @@ -13645,7 +13645,7 @@ var require_fetch = __commonJS({ } else if (request.redirect === "follow") { response = await httpRedirectFetch(fetchParams, response); } else { - assert22(false); + assert21(false); } } response.timingInfo = timingInfo; @@ -13698,7 +13698,7 @@ var require_fetch = __commonJS({ request.headersList.delete("host"); } if (request.body != null) { - assert22(request.body.source != null); + assert21(request.body.source != null); request.body = safelyExtractBody(request.body.source)[0]; } const timingInfo = fetchParams.timingInfo; @@ -13831,7 +13831,7 @@ var require_fetch = __commonJS({ return response; } async function httpNetworkFetch(fetchParams, includeCredentials = false, forceNewConnection = false) { - assert22(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed); + assert21(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed); fetchParams.controller.connection = { abort: null, destroyed: false, @@ -14966,7 +14966,7 @@ var require_symbols4 = __commonJS({ var require_util5 = __commonJS({ "../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/cache/util.js"(exports2, module2) { "use strict"; - var assert22 = require("assert"); + var assert21 = require("assert"); var { URLSerializer } = require_dataURL(); var { isValidHeaderName } = require_util2(); function urlEquals(A, B, excludeFragment = false) { @@ -14975,7 +14975,7 @@ var require_util5 = __commonJS({ return serializedA === serializedB; } function fieldValues(header) { - assert22(header !== null); + assert21(header !== null); const values = []; for (let value of header.split(",")) { value = value.trim(); @@ -15009,7 +15009,7 @@ var require_cache = __commonJS({ var { kState, kHeaders, kGuard, kRealm } = require_symbols2(); var { fetching } = require_fetch(); var { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require_util2(); - var assert22 = require("assert"); + var assert21 = require("assert"); var { getGlobalDispatcher } = require_global2(); var Cache = class _Cache { /** @@ -15271,7 +15271,7 @@ var require_cache = __commonJS({ return false; } } else { - assert22(typeof request === "string"); + assert21(typeof request === "string"); r = new Request(request)[kState]; } const operations = []; @@ -15381,7 +15381,7 @@ var require_cache = __commonJS({ } for (const requestResponse of requestResponses) { const idx2 = cache4.indexOf(requestResponse); - assert22(idx2 !== -1); + assert21(idx2 !== -1); cache4.splice(idx2, 1); } } else if (operation.type === "put") { @@ -15413,7 +15413,7 @@ var require_cache = __commonJS({ requestResponses = this.#queryCache(operation.request); for (const requestResponse of requestResponses) { const idx2 = cache4.indexOf(requestResponse); - assert22(idx2 !== -1); + assert21(idx2 !== -1); cache4.splice(idx2, 1); } cache4.push([operation.request, operation.response]); @@ -15652,7 +15652,7 @@ var require_constants3 = __commonJS({ var require_util6 = __commonJS({ "../node_modules/.pnpm/undici@5.28.3/node_modules/undici/lib/cookies/util.js"(exports2, module2) { "use strict"; - var assert22 = require("assert"); + var assert21 = require("assert"); var { kHeadersList } = require_symbols(); function isCTLExcludingHtab(value) { if (value.length === 0) { @@ -15793,10 +15793,10 @@ var require_util6 = __commonJS({ kHeadersListNode = Object.getOwnPropertySymbols(headers).find( (symbol) => symbol.description === "headers list" ); - assert22(kHeadersListNode, "Headers cannot be parsed"); + assert21(kHeadersListNode, "Headers cannot be parsed"); } const headersList = headers[kHeadersListNode]; - assert22(headersList); + assert21(headersList); return headersList; } module2.exports = { @@ -15814,7 +15814,7 @@ var require_parse = __commonJS({ var { maxNameValuePairSize, maxAttributeValueSize } = require_constants3(); var { isCTLExcludingHtab } = require_util6(); var { collectASequenceOfCodePointsFast } = require_dataURL(); - var assert22 = require("assert"); + var assert21 = require("assert"); function parseSetCookie(header) { if (isCTLExcludingHtab(header)) { return null; @@ -15856,7 +15856,7 @@ var require_parse = __commonJS({ if (unparsedAttributes.length === 0) { return cookieAttributeList; } - assert22(unparsedAttributes[0] === ";"); + assert21(unparsedAttributes[0] === ";"); unparsedAttributes = unparsedAttributes.slice(1); let cookieAv = ""; if (unparsedAttributes.includes(";")) { @@ -17360,9 +17360,9 @@ var require_undici = __commonJS({ module2.exports.buildConnector = buildConnector; module2.exports.errors = errors; function makeDispatcher(fn) { - return (url, opts, handler2) => { + return (url, opts, handler) => { if (typeof opts === "function") { - handler2 = opts; + handler = opts; opts = null; } if (!url || typeof url !== "string" && typeof url !== "object" && !(url instanceof URL)) { @@ -17395,7 +17395,7 @@ var require_undici = __commonJS({ origin: url.origin, path: url.search ? `${url.pathname}${url.search}` : url.pathname, method: opts.method || (opts.body ? "PUT" : "GET") - }, handler2); + }, handler); }; } module2.exports.setGlobalDispatcher = setGlobalDispatcher; @@ -17764,9 +17764,9 @@ var require_lib = __commonJS({ response = yield this.requestRaw(info4, data); if (response && response.message && response.message.statusCode === HttpCodes.Unauthorized) { let authenticationHandler; - for (const handler2 of this.handlers) { - if (handler2.canHandleAuthentication(response)) { - authenticationHandler = handler2; + for (const handler of this.handlers) { + if (handler.canHandleAuthentication(response)) { + authenticationHandler = handler; break; } } @@ -17924,8 +17924,8 @@ var require_lib = __commonJS({ } info4.options.agent = this._getAgent(info4.parsedUrl); if (this.handlers) { - for (const handler2 of this.handlers) { - handler2.prepareRequest(info4.options); + for (const handler of this.handlers) { + handler.prepareRequest(info4.options); } } return info4; @@ -18723,7 +18723,7 @@ var require_core = __commonJS({ process.env["PATH"] = `${inputPath}${path26.delimiter}${process.env["PATH"]}`; } exports2.addPath = addPath; - function getInput3(name, options) { + function getInput2(name, options) { const val = process.env[`INPUT_${name.replace(/ /g, "_").toUpperCase()}`] || ""; if (options && options.required && !val) { throw new Error(`Input required and not supplied: ${name}`); @@ -18733,9 +18733,9 @@ var require_core = __commonJS({ } return val.trim(); } - exports2.getInput = getInput3; + exports2.getInput = getInput2; function getMultilineInput(name, options) { - const inputs = getInput3(name, options).split("\n").filter((x) => x !== ""); + const inputs = getInput2(name, options).split("\n").filter((x) => x !== ""); if (options && options.trimWhitespace === false) { return inputs; } @@ -18745,7 +18745,7 @@ var require_core = __commonJS({ function getBooleanInput(name, options) { const trueValue = ["true", "True", "TRUE"]; const falseValue = ["false", "False", "FALSE"]; - const val = getInput3(name, options); + const val = getInput2(name, options); if (trueValue.includes(val)) return true; if (falseValue.includes(val)) @@ -18914,6946 +18914,2926 @@ var require_context = __commonJS({ } }); -// ../node_modules/.pnpm/@actions+github@6.0.0/node_modules/@actions/github/lib/internal/utils.js +// ../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/utils.js var require_utils3 = __commonJS({ - "../node_modules/.pnpm/@actions+github@6.0.0/node_modules/@actions/github/lib/internal/utils.js"(exports2) { + "../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/utils.js"(exports2) { "use strict"; - var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; + exports2.isInteger = (num) => { + if (typeof num === "number") { + return Number.isInteger(num); } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = exports2 && exports2.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result, mod, k); + if (typeof num === "string" && num.trim() !== "") { + return Number.isInteger(Number(num)); } - __setModuleDefault(result, mod); - return result; + return false; }; - var __awaiter = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve12) { - resolve12(value); - }); + exports2.find = (node, type) => node.nodes.find((node2) => node2.type === type); + exports2.exceedsLimit = (min3, max4, step = 1, limit) => { + if (limit === false) + return false; + if (!exports2.isInteger(min3) || !exports2.isInteger(max4)) + return false; + return (Number(max4) - Number(min3)) / Number(step) >= limit; + }; + exports2.escapeNode = (block, n = 0, type) => { + let node = block.nodes[n]; + if (!node) + return; + if (type && node.type === type || node.type === "open" || node.type === "close") { + if (node.escaped !== true) { + node.value = "\\" + node.value; + node.escaped = true; + } } - return new (P || (P = Promise))(function(resolve12, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } + }; + exports2.encloseBrace = (node) => { + if (node.type !== "brace") + return false; + if (node.commas >> 0 + node.ranges >> 0 === 0) { + node.invalid = true; + return true; + } + return false; + }; + exports2.isInvalidBrace = (block) => { + if (block.type !== "brace") + return false; + if (block.invalid === true || block.dollar) + return true; + if (block.commas >> 0 + block.ranges >> 0 === 0) { + block.invalid = true; + return true; + } + if (block.open !== true || block.close !== true) { + block.invalid = true; + return true; + } + return false; + }; + exports2.isOpenOrClose = (node) => { + if (node.type === "open" || node.type === "close") { + return true; + } + return node.open === true || node.close === true; + }; + exports2.reduce = (nodes) => nodes.reduce((acc, node) => { + if (node.type === "text") + acc.push(node.value); + if (node.type === "range") + node.type = "text"; + return acc; + }, []); + exports2.flatten = (...args) => { + const result = []; + const flat = (arr) => { + for (let i = 0; i < arr.length; i++) { + let ele = arr[i]; + Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele); } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); + return result; + }; + flat(args); + return result; + }; + } +}); + +// ../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/stringify.js +var require_stringify = __commonJS({ + "../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/stringify.js"(exports2, module2) { + "use strict"; + var utils = require_utils3(); + module2.exports = (ast, options = {}) => { + let stringify4 = (node, parent = {}) => { + let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let output = ""; + if (node.value) { + if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { + return "\\" + node.value; } + return node.value; } - function step(result) { - result.done ? resolve12(result.value) : adopt(result.value).then(fulfilled, rejected); + if (node.value) { + return node.value; } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); + if (node.nodes) { + for (let child of node.nodes) { + output += stringify4(child); + } + } + return output; + }; + return stringify4(ast); }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.getApiBaseUrl = exports2.getProxyFetch = exports2.getProxyAgentDispatcher = exports2.getProxyAgent = exports2.getAuthString = void 0; - var httpClient = __importStar(require_lib()); - var undici_1 = require_undici(); - function getAuthString(token, options) { - if (!token && !options.auth) { - throw new Error("Parameter token or opts.auth is required"); - } else if (token && options.auth) { - throw new Error("Parameters token and opts.auth may not both be specified"); - } - return typeof options.auth === "string" ? options.auth : `token ${token}`; - } - exports2.getAuthString = getAuthString; - function getProxyAgent(destinationUrl) { - const hc = new httpClient.HttpClient(); - return hc.getAgent(destinationUrl); - } - exports2.getProxyAgent = getProxyAgent; - function getProxyAgentDispatcher(destinationUrl) { - const hc = new httpClient.HttpClient(); - return hc.getAgentDispatcher(destinationUrl); - } - exports2.getProxyAgentDispatcher = getProxyAgentDispatcher; - function getProxyFetch(destinationUrl) { - const httpDispatcher = getProxyAgentDispatcher(destinationUrl); - const proxyFetch = (url, opts) => __awaiter(this, void 0, void 0, function* () { - return (0, undici_1.fetch)(url, Object.assign(Object.assign({}, opts), { dispatcher: httpDispatcher })); - }); - return proxyFetch; - } - exports2.getProxyFetch = getProxyFetch; - function getApiBaseUrl() { - return process.env["GITHUB_API_URL"] || "https://api.github.com"; - } - exports2.getApiBaseUrl = getApiBaseUrl; } }); -// ../node_modules/.pnpm/universal-user-agent@6.0.1/node_modules/universal-user-agent/dist-node/index.js -var require_dist_node = __commonJS({ - "../node_modules/.pnpm/universal-user-agent@6.0.1/node_modules/universal-user-agent/dist-node/index.js"(exports2) { +// ../node_modules/.pnpm/is-number@7.0.0/node_modules/is-number/index.js +var require_is_number = __commonJS({ + "../node_modules/.pnpm/is-number@7.0.0/node_modules/is-number/index.js"(exports2, module2) { "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function getUserAgent() { - if (typeof navigator === "object" && "userAgent" in navigator) { - return navigator.userAgent; + module2.exports = function(num) { + if (typeof num === "number") { + return num - num === 0; } - if (typeof process === "object" && process.version !== void 0) { - return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; + if (typeof num === "string" && num.trim() !== "") { + return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); } - return ""; - } - exports2.getUserAgent = getUserAgent; + return false; + }; } }); -// ../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/register.js -var require_register = __commonJS({ - "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/register.js"(exports2, module2) { - module2.exports = register; - function register(state, name, method, options) { - if (typeof method !== "function") { - throw new Error("method for before hook must be a function"); +// ../node_modules/.pnpm/to-regex-range@5.0.1/node_modules/to-regex-range/index.js +var require_to_regex_range = __commonJS({ + "../node_modules/.pnpm/to-regex-range@5.0.1/node_modules/to-regex-range/index.js"(exports2, module2) { + "use strict"; + var isNumber = require_is_number(); + var toRegexRange = (min3, max4, options) => { + if (isNumber(min3) === false) { + throw new TypeError("toRegexRange: expected the first argument to be a number"); } - if (!options) { - options = {}; + if (max4 === void 0 || min3 === max4) { + return String(min3); } - if (Array.isArray(name)) { - return name.reverse().reduce(function(callback, name2) { - return register.bind(null, state, name2, callback, options); - }, method)(); + if (isNumber(max4) === false) { + throw new TypeError("toRegexRange: expected the second argument to be a number."); } - return Promise.resolve().then(function() { - if (!state.registry[name]) { - return method(options); - } - return state.registry[name].reduce(function(method2, registered) { - return registered.hook.bind(null, method2, options); - }, method)(); - }); - } - } -}); - -// ../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/add.js -var require_add = __commonJS({ - "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/add.js"(exports2, module2) { - module2.exports = addHook; - function addHook(state, kind, name, hook) { - var orig = hook; - if (!state.registry[name]) { - state.registry[name] = []; - } - if (kind === "before") { - hook = function(method, options) { - return Promise.resolve().then(orig.bind(null, options)).then(method.bind(null, options)); - }; + let opts = { relaxZeros: true, ...options }; + if (typeof opts.strictZeros === "boolean") { + opts.relaxZeros = opts.strictZeros === false; } - if (kind === "after") { - hook = function(method, options) { - var result; - return Promise.resolve().then(method.bind(null, options)).then(function(result_) { - result = result_; - return orig(result, options); - }).then(function() { - return result; - }); - }; + let relax = String(opts.relaxZeros); + let shorthand = String(opts.shorthand); + let capture = String(opts.capture); + let wrap = String(opts.wrap); + let cacheKey = min3 + ":" + max4 + "=" + relax + shorthand + capture + wrap; + if (toRegexRange.cache.hasOwnProperty(cacheKey)) { + return toRegexRange.cache[cacheKey].result; } - if (kind === "error") { - hook = function(method, options) { - return Promise.resolve().then(method.bind(null, options)).catch(function(error3) { - return orig(error3, options); - }); - }; + let a = Math.min(min3, max4); + let b = Math.max(min3, max4); + if (Math.abs(a - b) === 1) { + let result = min3 + "|" + max4; + if (opts.capture) { + return `(${result})`; + } + if (opts.wrap === false) { + return result; + } + return `(?:${result})`; } - state.registry[name].push({ - hook, - orig - }); - } - } -}); - -// ../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/remove.js -var require_remove = __commonJS({ - "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/remove.js"(exports2, module2) { - module2.exports = removeHook; - function removeHook(state, name, method) { - if (!state.registry[name]) { - return; + let isPadded = hasPadding(min3) || hasPadding(max4); + let state = { min: min3, max: max4, a, b }; + let positives = []; + let negatives = []; + if (isPadded) { + state.isPadded = isPadded; + state.maxLen = String(state.max).length; } - var index = state.registry[name].map(function(registered) { - return registered.orig; - }).indexOf(method); - if (index === -1) { - return; + if (a < 0) { + let newMin = b < 0 ? Math.abs(b) : 1; + negatives = splitToPatterns(newMin, Math.abs(a), state, opts); + a = state.a = 0; } - state.registry[name].splice(index, 1); - } - } -}); - -// ../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/index.js -var require_before_after_hook = __commonJS({ - "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/index.js"(exports2, module2) { - var register = require_register(); - var addHook = require_add(); - var removeHook = require_remove(); - var bind = Function.bind; - var bindable = bind.bind(bind); - function bindApi(hook, state, name) { - var removeHookRef = bindable(removeHook, null).apply( - null, - name ? [state, name] : [state] - ); - hook.api = { remove: removeHookRef }; - hook.remove = removeHookRef; - ["before", "error", "after", "wrap"].forEach(function(kind) { - var args = name ? [state, kind, name] : [state, kind]; - hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args); - }); - } - function HookSingular() { - var singularHookName = "h"; - var singularHookState = { - registry: {} - }; - var singularHook = register.bind(null, singularHookState, singularHookName); - bindApi(singularHook, singularHookState, singularHookName); - return singularHook; - } - function HookCollection() { - var state = { - registry: {} - }; - var hook = register.bind(null, state); - bindApi(hook, state); - return hook; - } - var collectionHookDeprecationMessageDisplayed = false; - function Hook() { - if (!collectionHookDeprecationMessageDisplayed) { - console.warn( - '[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4' - ); - collectionHookDeprecationMessageDisplayed = true; + if (b >= 0) { + positives = splitToPatterns(a, b, state, opts); } - return HookCollection(); - } - Hook.Singular = HookSingular.bind(); - Hook.Collection = HookCollection.bind(); - module2.exports = Hook; - module2.exports.Hook = Hook; - module2.exports.Singular = Hook.Singular; - module2.exports.Collection = Hook.Collection; - } -}); - -// ../node_modules/.pnpm/@octokit+endpoint@9.0.4/node_modules/@octokit/endpoint/dist-node/index.js -var require_dist_node2 = __commonJS({ - "../node_modules/.pnpm/@octokit+endpoint@9.0.4/node_modules/@octokit/endpoint/dist-node/index.js"(exports2, module2) { - "use strict"; - var __defProp2 = Object.defineProperty; - var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; - var __getOwnPropNames2 = Object.getOwnPropertyNames; - var __hasOwnProp2 = Object.prototype.hasOwnProperty; - var __export2 = (target, all3) => { - for (var name in all3) - __defProp2(target, name, { get: all3[name], enumerable: true }); - }; - var __copyProps2 = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames2(from)) - if (!__hasOwnProp2.call(to, key) && key !== except) - __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); - } - return to; - }; - var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); - var dist_src_exports = {}; - __export2(dist_src_exports, { - endpoint: () => endpoint - }); - module2.exports = __toCommonJS2(dist_src_exports); - var import_universal_user_agent = require_dist_node(); - var VERSION2 = "9.0.4"; - var userAgent = `octokit-endpoint.js/${VERSION2} ${(0, import_universal_user_agent.getUserAgent)()}`; - var DEFAULTS = { - method: "GET", - baseUrl: "https://api.github.com", - headers: { - accept: "application/vnd.github.v3+json", - "user-agent": userAgent - }, - mediaType: { - format: "" + state.negatives = negatives; + state.positives = positives; + state.result = collatePatterns(negatives, positives, opts); + if (opts.capture === true) { + state.result = `(${state.result})`; + } else if (opts.wrap !== false && positives.length + negatives.length > 1) { + state.result = `(?:${state.result})`; } + toRegexRange.cache[cacheKey] = state; + return state.result; }; - function lowercaseKeys(object) { - if (!object) { - return {}; + function collatePatterns(neg, pos, options) { + let onlyNegative = filterPatterns(neg, pos, "-", false, options) || []; + let onlyPositive = filterPatterns(pos, neg, "", false, options) || []; + let intersected = filterPatterns(neg, pos, "-?", true, options) || []; + let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); + return subpatterns.join("|"); + } + function splitToRanges(min3, max4) { + let nines = 1; + let zeros = 1; + let stop = countNines(min3, nines); + let stops = /* @__PURE__ */ new Set([max4]); + while (min3 <= stop && stop <= max4) { + stops.add(stop); + nines += 1; + stop = countNines(min3, nines); + } + stop = countZeros(max4 + 1, zeros) - 1; + while (min3 < stop && stop <= max4) { + stops.add(stop); + zeros += 1; + stop = countZeros(max4 + 1, zeros) - 1; } - return Object.keys(object).reduce((newObj, key) => { - newObj[key.toLowerCase()] = object[key]; - return newObj; - }, {}); + stops = [...stops]; + stops.sort(compare4); + return stops; } - function isPlainObject(value) { - if (typeof value !== "object" || value === null) - return false; - if (Object.prototype.toString.call(value) !== "[object Object]") - return false; - const proto2 = Object.getPrototypeOf(value); - if (proto2 === null) - return true; - const Ctor = Object.prototype.hasOwnProperty.call(proto2, "constructor") && proto2.constructor; - return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); - } - function mergeDeep(defaults, options) { - const result = Object.assign({}, defaults); - Object.keys(options).forEach((key) => { - if (isPlainObject(options[key])) { - if (!(key in defaults)) - Object.assign(result, { [key]: options[key] }); - else - result[key] = mergeDeep(defaults[key], options[key]); + function rangeToPattern(start, stop, options) { + if (start === stop) { + return { pattern: start, count: [], digits: 0 }; + } + let zipped = zip(start, stop); + let digits = zipped.length; + let pattern = ""; + let count3 = 0; + for (let i = 0; i < digits; i++) { + let [startDigit, stopDigit] = zipped[i]; + if (startDigit === stopDigit) { + pattern += startDigit; + } else if (startDigit !== "0" || stopDigit !== "9") { + pattern += toCharacterClass(startDigit, stopDigit, options); } else { - Object.assign(result, { [key]: options[key] }); - } - }); - return result; - } - function removeUndefinedProperties(obj) { - for (const key in obj) { - if (obj[key] === void 0) { - delete obj[key]; + count3++; } } - return obj; - } - function merge4(defaults, route, options) { - if (typeof route === "string") { - let [method, url] = route.split(" "); - options = Object.assign(url ? { method, url } : { url: method }, options); - } else { - options = Object.assign({}, route); - } - options.headers = lowercaseKeys(options.headers); - removeUndefinedProperties(options); - removeUndefinedProperties(options.headers); - const mergedOptions = mergeDeep(defaults || {}, options); - if (options.url === "/graphql") { - if (defaults && defaults.mediaType.previews?.length) { - mergedOptions.mediaType.previews = defaults.mediaType.previews.filter( - (preview) => !mergedOptions.mediaType.previews.includes(preview) - ).concat(mergedOptions.mediaType.previews); - } - mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, "")); - } - return mergedOptions; - } - function addQueryParameters(url, parameters) { - const separator = /\?/.test(url) ? "&" : "?"; - const names = Object.keys(parameters); - if (names.length === 0) { - return url; + if (count3) { + pattern += options.shorthand === true ? "\\d" : "[0-9]"; } - return url + separator + names.map((name) => { - if (name === "q") { - return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); - } - return `${name}=${encodeURIComponent(parameters[name])}`; - }).join("&"); - } - var urlVariableRegex = /\{[^}]+\}/g; - function removeNonChars(variableName) { - return variableName.replace(/^\W+|\W+$/g, "").split(/,/); + return { pattern, count: [count3], digits }; } - function extractUrlVariableNames(url) { - const matches = url.match(urlVariableRegex); - if (!matches) { - return []; + function splitToPatterns(min3, max4, tok, options) { + let ranges = splitToRanges(min3, max4); + let tokens = []; + let start = min3; + let prev; + for (let i = 0; i < ranges.length; i++) { + let max5 = ranges[i]; + let obj = rangeToPattern(String(start), String(max5), options); + let zeros = ""; + if (!tok.isPadded && prev && prev.pattern === obj.pattern) { + if (prev.count.length > 1) { + prev.count.pop(); + } + prev.count.push(obj.count[0]); + prev.string = prev.pattern + toQuantifier(prev.count); + start = max5 + 1; + continue; + } + if (tok.isPadded) { + zeros = padZeros(max5, tok, options); + } + obj.string = zeros + obj.pattern + toQuantifier(obj.count); + tokens.push(obj); + start = max5 + 1; + prev = obj; } - return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); + return tokens; } - function omit(object, keysToOmit) { - const result = { __proto__: null }; - for (const key of Object.keys(object)) { - if (keysToOmit.indexOf(key) === -1) { - result[key] = object[key]; + function filterPatterns(arr, comparison, prefix, intersection, options) { + let result = []; + for (let ele of arr) { + let { string } = ele; + if (!intersection && !contains2(comparison, "string", string)) { + result.push(prefix + string); + } + if (intersection && contains2(comparison, "string", string)) { + result.push(prefix + string); } } return result; } - function encodeReserved(str) { - return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) { - if (!/%[0-9A-Fa-f]/.test(part)) { - part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); - } - return part; - }).join(""); + function zip(a, b) { + let arr = []; + for (let i = 0; i < a.length; i++) + arr.push([a[i], b[i]]); + return arr; } - function encodeUnreserved(str) { - return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { - return "%" + c.charCodeAt(0).toString(16).toUpperCase(); - }); + function compare4(a, b) { + return a > b ? 1 : b > a ? -1 : 0; } - function encodeValue(operator, value, key) { - value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); - if (key) { - return encodeUnreserved(key) + "=" + value; - } else { - return value; - } + function contains2(arr, key, val) { + return arr.some((ele) => ele[key] === val); } - function isDefined7(value) { - return value !== void 0 && value !== null; + function countNines(min3, len) { + return Number(String(min3).slice(0, -len) + "9".repeat(len)); } - function isKeyOperator(operator) { - return operator === ";" || operator === "&" || operator === "?"; + function countZeros(integer, zeros) { + return integer - integer % Math.pow(10, zeros); } - function getValues(context, operator, key, modifier) { - var value = context[key], result = []; - if (isDefined7(value) && value !== "") { - if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { - value = value.toString(); - if (modifier && modifier !== "*") { - value = value.substring(0, parseInt(modifier, 10)); - } - result.push( - encodeValue(operator, value, isKeyOperator(operator) ? key : "") - ); - } else { - if (modifier === "*") { - if (Array.isArray(value)) { - value.filter(isDefined7).forEach(function(value2) { - result.push( - encodeValue(operator, value2, isKeyOperator(operator) ? key : "") - ); - }); - } else { - Object.keys(value).forEach(function(k) { - if (isDefined7(value[k])) { - result.push(encodeValue(operator, value[k], k)); - } - }); - } - } else { - const tmp = []; - if (Array.isArray(value)) { - value.filter(isDefined7).forEach(function(value2) { - tmp.push(encodeValue(operator, value2)); - }); - } else { - Object.keys(value).forEach(function(k) { - if (isDefined7(value[k])) { - tmp.push(encodeUnreserved(k)); - tmp.push(encodeValue(operator, value[k].toString())); - } - }); - } - if (isKeyOperator(operator)) { - result.push(encodeUnreserved(key) + "=" + tmp.join(",")); - } else if (tmp.length !== 0) { - result.push(tmp.join(",")); - } - } - } - } else { - if (operator === ";") { - if (isDefined7(value)) { - result.push(encodeUnreserved(key)); - } - } else if (value === "" && (operator === "&" || operator === "?")) { - result.push(encodeUnreserved(key) + "="); - } else if (value === "") { - result.push(""); - } + function toQuantifier(digits) { + let [start = 0, stop = ""] = digits; + if (stop || start > 1) { + return `{${start + (stop ? "," + stop : "")}}`; } - return result; - } - function parseUrl(template3) { - return { - expand: expand.bind(null, template3) - }; + return ""; } - function expand(template3, context) { - var operators2 = ["+", "#", ".", "/", ";", "?", "&"]; - template3 = template3.replace( - /\{([^\{\}]+)\}|([^\{\}]+)/g, - function(_, expression, literal) { - if (expression) { - let operator = ""; - const values = []; - if (operators2.indexOf(expression.charAt(0)) !== -1) { - operator = expression.charAt(0); - expression = expression.substr(1); - } - expression.split(/,/g).forEach(function(variable) { - var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); - values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); - }); - if (operator && operator !== "+") { - var separator = ","; - if (operator === "?") { - separator = "&"; - } else if (operator !== "#") { - separator = operator; - } - return (values.length !== 0 ? operator : "") + values.join(separator); - } else { - return values.join(","); - } - } else { - return encodeReserved(literal); - } - } - ); - if (template3 === "/") { - return template3; - } else { - return template3.replace(/\/$/, ""); - } - } - function parse5(options) { - let method = options.method.toUpperCase(); - let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); - let headers = Object.assign({}, options.headers); - let body; - let parameters = omit(options, [ - "method", - "baseUrl", - "url", - "headers", - "request", - "mediaType" - ]); - const urlVariableNames = extractUrlVariableNames(url); - url = parseUrl(url).expand(parameters); - if (!/^http/.test(url)) { - url = options.baseUrl + url; - } - const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl"); - const remainingParameters = omit(parameters, omittedParameters); - const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); - if (!isBinaryRequest) { - if (options.mediaType.format) { - headers.accept = headers.accept.split(/,/).map( - (format6) => format6.replace( - /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, - `application/vnd$1$2.${options.mediaType.format}` - ) - ).join(","); - } - if (url.endsWith("/graphql")) { - if (options.mediaType.previews?.length) { - const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; - headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => { - const format6 = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; - return `application/vnd.github.${preview}-preview${format6}`; - }).join(","); - } - } - } - if (["GET", "HEAD"].includes(method)) { - url = addQueryParameters(url, remainingParameters); - } else { - if ("data" in remainingParameters) { - body = remainingParameters.data; - } else { - if (Object.keys(remainingParameters).length) { - body = remainingParameters; - } - } - } - if (!headers["content-type"] && typeof body !== "undefined") { - headers["content-type"] = "application/json; charset=utf-8"; - } - if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { - body = ""; - } - return Object.assign( - { method, url, headers }, - typeof body !== "undefined" ? { body } : null, - options.request ? { request: options.request } : null - ); + function toCharacterClass(a, b, options) { + return `[${a}${b - a === 1 ? "" : "-"}${b}]`; } - function endpointWithDefaults(defaults, route, options) { - return parse5(merge4(defaults, route, options)); - } - function withDefaults(oldDefaults, newDefaults) { - const DEFAULTS2 = merge4(oldDefaults, newDefaults); - const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2); - return Object.assign(endpoint2, { - DEFAULTS: DEFAULTS2, - defaults: withDefaults.bind(null, DEFAULTS2), - merge: merge4.bind(null, DEFAULTS2), - parse: parse5 - }); + function hasPadding(str) { + return /^-?(0+)\d/.test(str); } - var endpoint = withDefaults(null, DEFAULTS); - } -}); - -// ../node_modules/.pnpm/deprecation@2.3.1/node_modules/deprecation/dist-node/index.js -var require_dist_node3 = __commonJS({ - "../node_modules/.pnpm/deprecation@2.3.1/node_modules/deprecation/dist-node/index.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var Deprecation = class extends Error { - constructor(message) { - super(message); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - this.name = "Deprecation"; + function padZeros(value, tok, options) { + if (!tok.isPadded) { + return value; } - }; - exports2.Deprecation = Deprecation; - } -}); - -// ../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js -var require_wrappy = __commonJS({ - "../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js"(exports2, module2) { - module2.exports = wrappy; - function wrappy(fn, cb) { - if (fn && cb) - return wrappy(fn)(cb); - if (typeof fn !== "function") - throw new TypeError("need wrapper function"); - Object.keys(fn).forEach(function(k) { - wrapper[k] = fn[k]; - }); - return wrapper; - function wrapper() { - var args = new Array(arguments.length); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i]; - } - var ret = fn.apply(this, args); - var cb2 = args[args.length - 1]; - if (typeof ret === "function" && ret !== cb2) { - Object.keys(cb2).forEach(function(k) { - ret[k] = cb2[k]; - }); + let diff = Math.abs(tok.maxLen - String(value).length); + let relax = options.relaxZeros !== false; + switch (diff) { + case 0: + return ""; + case 1: + return relax ? "0?" : "0"; + case 2: + return relax ? "0{0,2}" : "00"; + default: { + return relax ? `0{0,${diff}}` : `0{${diff}}`; } - return ret; } } + toRegexRange.cache = {}; + toRegexRange.clearCache = () => toRegexRange.cache = {}; + module2.exports = toRegexRange; } }); -// ../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js -var require_once = __commonJS({ - "../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js"(exports2, module2) { - var wrappy = require_wrappy(); - module2.exports = wrappy(once); - module2.exports.strict = wrappy(onceStrict); - once.proto = once(function() { - Object.defineProperty(Function.prototype, "once", { - value: function() { - return once(this); - }, - configurable: true - }); - Object.defineProperty(Function.prototype, "onceStrict", { - value: function() { - return onceStrict(this); - }, - configurable: true - }); - }); - function once(fn) { - var f = function() { - if (f.called) - return f.value; - f.called = true; - return f.value = fn.apply(this, arguments); - }; - f.called = false; - return f; - } - function onceStrict(fn) { - var f = function() { - if (f.called) - throw new Error(f.onceError); - f.called = true; - return f.value = fn.apply(this, arguments); - }; - var name = fn.name || "Function wrapped with `once`"; - f.onceError = name + " shouldn't be called more than once"; - f.called = false; - return f; - } - } -}); - -// ../node_modules/.pnpm/@octokit+request-error@5.0.1/node_modules/@octokit/request-error/dist-node/index.js -var require_dist_node4 = __commonJS({ - "../node_modules/.pnpm/@octokit+request-error@5.0.1/node_modules/@octokit/request-error/dist-node/index.js"(exports2, module2) { +// ../node_modules/.pnpm/fill-range@7.0.1/node_modules/fill-range/index.js +var require_fill_range = __commonJS({ + "../node_modules/.pnpm/fill-range@7.0.1/node_modules/fill-range/index.js"(exports2, module2) { "use strict"; - var __create2 = Object.create; - var __defProp2 = Object.defineProperty; - var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; - var __getOwnPropNames2 = Object.getOwnPropertyNames; - var __getProtoOf2 = Object.getPrototypeOf; - var __hasOwnProp2 = Object.prototype.hasOwnProperty; - var __export2 = (target, all3) => { - for (var name in all3) - __defProp2(target, name, { get: all3[name], enumerable: true }); - }; - var __copyProps2 = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames2(from)) - if (!__hasOwnProp2.call(to, key) && key !== except) - __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); - } - return to; - }; - var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, - mod - )); - var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); - var dist_src_exports = {}; - __export2(dist_src_exports, { - RequestError: () => RequestError - }); - module2.exports = __toCommonJS2(dist_src_exports); - var import_deprecation = require_dist_node3(); - var import_once = __toESM2(require_once()); - var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { - constructor(message, statusCode, options) { - super(message); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - this.name = "HttpError"; - this.status = statusCode; - let headers; - if ("headers" in options && typeof options.headers !== "undefined") { - headers = options.headers; - } - if ("response" in options) { - this.response = options.response; - headers = options.response.headers; - } - const requestCopy = Object.assign({}, options.request); - if (options.request.headers.authorization) { - requestCopy.headers = Object.assign({}, options.request.headers, { - authorization: options.request.headers.authorization.replace( - / .*$/, - " [REDACTED]" - ) - }); - } - requestCopy.url = requestCopy.url.replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]").replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); - this.request = requestCopy; - Object.defineProperty(this, "code", { - get() { - logOnceCode( - new import_deprecation.Deprecation( - "[@octokit/request-error] `error.code` is deprecated, use `error.status`." - ) - ); - return statusCode; - } - }); - Object.defineProperty(this, "headers", { - get() { - logOnceHeaders( - new import_deprecation.Deprecation( - "[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`." - ) - ); - return headers || {}; - } - }); - } + var util = require("util"); + var toRegexRange = require_to_regex_range(); + var isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val); + var transform2 = (toNumber) => { + return (value) => toNumber === true ? Number(value) : String(value); }; - } -}); - -// ../node_modules/.pnpm/@octokit+request@8.2.0/node_modules/@octokit/request/dist-node/index.js -var require_dist_node5 = __commonJS({ - "../node_modules/.pnpm/@octokit+request@8.2.0/node_modules/@octokit/request/dist-node/index.js"(exports2, module2) { - "use strict"; - var __defProp2 = Object.defineProperty; - var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; - var __getOwnPropNames2 = Object.getOwnPropertyNames; - var __hasOwnProp2 = Object.prototype.hasOwnProperty; - var __export2 = (target, all3) => { - for (var name in all3) - __defProp2(target, name, { get: all3[name], enumerable: true }); - }; - var __copyProps2 = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames2(from)) - if (!__hasOwnProp2.call(to, key) && key !== except) - __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); - } - return to; - }; - var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); - var dist_src_exports = {}; - __export2(dist_src_exports, { - request: () => request - }); - module2.exports = __toCommonJS2(dist_src_exports); - var import_endpoint = require_dist_node2(); - var import_universal_user_agent = require_dist_node(); - var VERSION2 = "8.2.0"; - function isPlainObject(value) { - if (typeof value !== "object" || value === null) - return false; - if (Object.prototype.toString.call(value) !== "[object Object]") + var isValidValue = (value) => { + return typeof value === "number" || typeof value === "string" && value !== ""; + }; + var isNumber = (num) => Number.isInteger(+num); + var zeros = (input) => { + let value = `${input}`; + let index = -1; + if (value[0] === "-") + value = value.slice(1); + if (value === "0") return false; - const proto2 = Object.getPrototypeOf(value); - if (proto2 === null) - return true; - const Ctor = Object.prototype.hasOwnProperty.call(proto2, "constructor") && proto2.constructor; - return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); - } - var import_request_error = require_dist_node4(); - function getBufferResponse(response) { - return response.arrayBuffer(); - } - function fetchWrapper(requestOptions) { - var _a, _b, _c; - const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; - const parseSuccessResponseBody = ((_a = requestOptions.request) == null ? void 0 : _a.parseSuccessResponseBody) !== false; - if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { - requestOptions.body = JSON.stringify(requestOptions.body); - } - let headers = {}; - let status; - let url; - let { fetch } = globalThis; - if ((_b = requestOptions.request) == null ? void 0 : _b.fetch) { - fetch = requestOptions.request.fetch; - } - if (!fetch) { - throw new Error( - "fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing" - ); - } - return fetch(requestOptions.url, { - method: requestOptions.method, - body: requestOptions.body, - headers: requestOptions.headers, - signal: (_c = requestOptions.request) == null ? void 0 : _c.signal, - // duplex must be set if request.body is ReadableStream or Async Iterables. - // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex. - ...requestOptions.body && { duplex: "half" } - }).then(async (response) => { - url = response.url; - status = response.status; - for (const keyAndValue of response.headers) { - headers[keyAndValue[0]] = keyAndValue[1]; - } - if ("deprecation" in headers) { - const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); - const deprecationLink = matches && matches.pop(); - log.warn( - `[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}` - ); - } - if (status === 204 || status === 205) { - return; - } - if (requestOptions.method === "HEAD") { - if (status < 400) { - return; - } - throw new import_request_error.RequestError(response.statusText, status, { - response: { - url, - status, - headers, - data: void 0 - }, - request: requestOptions - }); - } - if (status === 304) { - throw new import_request_error.RequestError("Not modified", status, { - response: { - url, - status, - headers, - data: await getResponseData(response) - }, - request: requestOptions - }); - } - if (status >= 400) { - const data = await getResponseData(response); - const error3 = new import_request_error.RequestError(toErrorMessage(data), status, { - response: { - url, - status, - headers, - data - }, - request: requestOptions - }); - throw error3; - } - return parseSuccessResponseBody ? await getResponseData(response) : response.body; - }).then((data) => { - return { - status, - url, - headers, - data - }; - }).catch((error3) => { - if (error3 instanceof import_request_error.RequestError) - throw error3; - else if (error3.name === "AbortError") - throw error3; - let message = error3.message; - if (error3.name === "TypeError" && "cause" in error3) { - if (error3.cause instanceof Error) { - message = error3.cause.message; - } else if (typeof error3.cause === "string") { - message = error3.cause; - } - } - throw new import_request_error.RequestError(message, 500, { - request: requestOptions - }); - }); - } - async function getResponseData(response) { - const contentType = response.headers.get("content-type"); - if (/application\/json/.test(contentType)) { - return response.json().catch(() => response.text()).catch(() => ""); + while (value[++index] === "0") + ; + return index > 0; + }; + var stringify4 = (start, end, options) => { + if (typeof start === "string" || typeof end === "string") { + return true; } - if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { - return response.text(); + return options.stringify === true; + }; + var pad = (input, maxLength, toNumber) => { + if (maxLength > 0) { + let dash = input[0] === "-" ? "-" : ""; + if (dash) + input = input.slice(1); + input = dash + input.padStart(dash ? maxLength - 1 : maxLength, "0"); } - return getBufferResponse(response); - } - function toErrorMessage(data) { - if (typeof data === "string") - return data; - let suffix; - if ("documentation_url" in data) { - suffix = ` - ${data.documentation_url}`; + if (toNumber === false) { + return String(input); + } + return input; + }; + var toMaxLen = (input, maxLength) => { + let negative = input[0] === "-" ? "-" : ""; + if (negative) { + input = input.slice(1); + maxLength--; + } + while (input.length < maxLength) + input = "0" + input; + return negative ? "-" + input : input; + }; + var toSequence = (parts, options) => { + parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + let prefix = options.capture ? "" : "?:"; + let positives = ""; + let negatives = ""; + let result; + if (parts.positives.length) { + positives = parts.positives.join("|"); + } + if (parts.negatives.length) { + negatives = `-(${prefix}${parts.negatives.join("|")})`; + } + if (positives && negatives) { + result = `${positives}|${negatives}`; } else { - suffix = ""; + result = positives || negatives; } - if ("message" in data) { - if (Array.isArray(data.errors)) { - return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}${suffix}`; - } - return `${data.message}${suffix}`; + if (options.wrap) { + return `(${prefix}${result})`; } - return `Unknown error: ${JSON.stringify(data)}`; - } - function withDefaults(oldEndpoint, newDefaults) { - const endpoint2 = oldEndpoint.defaults(newDefaults); - const newApi = function(route, parameters) { - const endpointOptions = endpoint2.merge(route, parameters); - if (!endpointOptions.request || !endpointOptions.request.hook) { - return fetchWrapper(endpoint2.parse(endpointOptions)); - } - const request2 = (route2, parameters2) => { - return fetchWrapper( - endpoint2.parse(endpoint2.merge(route2, parameters2)) - ); - }; - Object.assign(request2, { - endpoint: endpoint2, - defaults: withDefaults.bind(null, endpoint2) - }); - return endpointOptions.request.hook(request2, endpointOptions); - }; - return Object.assign(newApi, { - endpoint: endpoint2, - defaults: withDefaults.bind(null, endpoint2) - }); - } - var request = withDefaults(import_endpoint.endpoint, { - headers: { - "user-agent": `octokit-request.js/${VERSION2} ${(0, import_universal_user_agent.getUserAgent)()}` + return result; + }; + var toRange = (a, b, isNumbers, options) => { + if (isNumbers) { + return toRegexRange(a, b, { wrap: false, ...options }); } - }); - } -}); - -// ../node_modules/.pnpm/@octokit+graphql@7.0.2/node_modules/@octokit/graphql/dist-node/index.js -var require_dist_node6 = __commonJS({ - "../node_modules/.pnpm/@octokit+graphql@7.0.2/node_modules/@octokit/graphql/dist-node/index.js"(exports2, module2) { - "use strict"; - var __defProp2 = Object.defineProperty; - var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; - var __getOwnPropNames2 = Object.getOwnPropertyNames; - var __hasOwnProp2 = Object.prototype.hasOwnProperty; - var __export2 = (target, all3) => { - for (var name in all3) - __defProp2(target, name, { get: all3[name], enumerable: true }); - }; - var __copyProps2 = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames2(from)) - if (!__hasOwnProp2.call(to, key) && key !== except) - __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); - } - return to; - }; - var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); - var dist_src_exports = {}; - __export2(dist_src_exports, { - GraphqlResponseError: () => GraphqlResponseError, - graphql: () => graphql2, - withCustomRequest: () => withCustomRequest - }); - module2.exports = __toCommonJS2(dist_src_exports); - var import_request32 = require_dist_node5(); - var import_universal_user_agent = require_dist_node(); - var VERSION2 = "7.0.2"; - var import_request22 = require_dist_node5(); - var import_request4 = require_dist_node5(); - function _buildMessageForResponseErrors(data) { - return `Request failed due to following response errors: -` + data.errors.map((e) => ` - ${e.message}`).join("\n"); - } - var GraphqlResponseError = class extends Error { - constructor(request2, headers, response) { - super(_buildMessageForResponseErrors(response)); - this.request = request2; - this.headers = headers; - this.response = response; - this.name = "GraphqlResponseError"; - this.errors = response.errors; - this.data = response.data; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - } - }; - var NON_VARIABLE_OPTIONS = [ - "method", - "baseUrl", - "url", - "headers", - "request", - "query", - "mediaType" - ]; - var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; - var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; - function graphql(request2, query, options) { - if (options) { - if (typeof query === "string" && "query" in options) { - return Promise.reject( - new Error(`[@octokit/graphql] "query" cannot be used as variable name`) - ); - } - for (const key in options) { - if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) - continue; - return Promise.reject( - new Error( - `[@octokit/graphql] "${key}" cannot be used as variable name` - ) - ); - } + let start = String.fromCharCode(a); + if (a === b) + return start; + let stop = String.fromCharCode(b); + return `[${start}-${stop}]`; + }; + var toRegex = (start, end, options) => { + if (Array.isArray(start)) { + let wrap = options.wrap === true; + let prefix = options.capture ? "" : "?:"; + return wrap ? `(${prefix}${start.join("|")})` : start.join("|"); } - const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; - const requestOptions = Object.keys( - parsedOptions - ).reduce((result, key) => { - if (NON_VARIABLE_OPTIONS.includes(key)) { - result[key] = parsedOptions[key]; - return result; - } - if (!result.variables) { - result.variables = {}; - } - result.variables[key] = parsedOptions[key]; - return result; - }, {}); - const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl; - if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { - requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); - } - return request2(requestOptions).then((response) => { - if (response.data.errors) { - const headers = {}; - for (const key of Object.keys(response.headers)) { - headers[key] = response.headers[key]; - } - throw new GraphqlResponseError( - requestOptions, - headers, - response.data - ); + return toRegexRange(start, end, options); + }; + var rangeError = (...args) => { + return new RangeError("Invalid range arguments: " + util.inspect(...args)); + }; + var invalidRange = (start, end, options) => { + if (options.strictRanges === true) + throw rangeError([start, end]); + return []; + }; + var invalidStep = (step, options) => { + if (options.strictRanges === true) { + throw new TypeError(`Expected step "${step}" to be a number`); + } + return []; + }; + var fillNumbers = (start, end, step = 1, options = {}) => { + let a = Number(start); + let b = Number(end); + if (!Number.isInteger(a) || !Number.isInteger(b)) { + if (options.strictRanges === true) + throw rangeError([start, end]); + return []; + } + if (a === 0) + a = 0; + if (b === 0) + b = 0; + let descending = a > b; + let startString = String(start); + let endString = String(end); + let stepString = String(step); + step = Math.max(Math.abs(step), 1); + let padded = zeros(startString) || zeros(endString) || zeros(stepString); + let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; + let toNumber = padded === false && stringify4(start, end, options) === false; + let format6 = options.transform || transform2(toNumber); + if (options.toRegex && step === 1) { + return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); + } + let parts = { negatives: [], positives: [] }; + let push = (num) => parts[num < 0 ? "negatives" : "positives"].push(Math.abs(num)); + let range = []; + let index = 0; + while (descending ? a >= b : a <= b) { + if (options.toRegex === true && step > 1) { + push(a); + } else { + range.push(pad(format6(a, index), maxLen, toNumber)); } - return response.data.data; - }); - } - function withDefaults(request2, newDefaults) { - const newRequest = request2.defaults(newDefaults); - const newApi = (query, options) => { - return graphql(newRequest, query, options); - }; - return Object.assign(newApi, { - defaults: withDefaults.bind(null, newRequest), - endpoint: newRequest.endpoint - }); - } - var graphql2 = withDefaults(import_request32.request, { - headers: { - "user-agent": `octokit-graphql.js/${VERSION2} ${(0, import_universal_user_agent.getUserAgent)()}` - }, - method: "POST", - url: "/graphql" - }); - function withCustomRequest(customRequest) { - return withDefaults(customRequest, { - method: "POST", - url: "/graphql" - }); - } - } -}); - -// ../node_modules/.pnpm/@octokit+auth-token@4.0.0/node_modules/@octokit/auth-token/dist-node/index.js -var require_dist_node7 = __commonJS({ - "../node_modules/.pnpm/@octokit+auth-token@4.0.0/node_modules/@octokit/auth-token/dist-node/index.js"(exports2, module2) { - "use strict"; - var __defProp2 = Object.defineProperty; - var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; - var __getOwnPropNames2 = Object.getOwnPropertyNames; - var __hasOwnProp2 = Object.prototype.hasOwnProperty; - var __export2 = (target, all3) => { - for (var name in all3) - __defProp2(target, name, { get: all3[name], enumerable: true }); - }; - var __copyProps2 = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames2(from)) - if (!__hasOwnProp2.call(to, key) && key !== except) - __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); - } - return to; - }; - var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); - var dist_src_exports = {}; - __export2(dist_src_exports, { - createTokenAuth: () => createTokenAuth - }); - module2.exports = __toCommonJS2(dist_src_exports); - var REGEX_IS_INSTALLATION_LEGACY = /^v1\./; - var REGEX_IS_INSTALLATION = /^ghs_/; - var REGEX_IS_USER_TO_SERVER = /^ghu_/; - async function auth(token) { - const isApp = token.split(/\./).length === 3; - const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); - const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); - const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; - return { - type: "token", - token, - tokenType - }; - } - function withAuthorizationPrefix(token) { - if (token.split(/\./).length === 3) { - return `bearer ${token}`; + a = descending ? a - step : a + step; + index++; } - return `token ${token}`; - } - async function hook(token, request, route, parameters) { - const endpoint = request.endpoint.merge( - route, - parameters - ); - endpoint.headers.authorization = withAuthorizationPrefix(token); - return request(endpoint); - } - var createTokenAuth = function createTokenAuth2(token) { - if (!token) { - throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + if (options.toRegex === true) { + return step > 1 ? toSequence(parts, options) : toRegex(range, null, { wrap: false, ...options }); } - if (typeof token !== "string") { - throw new Error( - "[@octokit/auth-token] Token passed to createTokenAuth is not a string" - ); + return range; + }; + var fillLetters = (start, end, step = 1, options = {}) => { + if (!isNumber(start) && start.length > 1 || !isNumber(end) && end.length > 1) { + return invalidRange(start, end, options); } - token = token.replace(/^(token|bearer) +/i, ""); - return Object.assign(auth.bind(null, token), { - hook: hook.bind(null, token) - }); + let format6 = options.transform || ((val) => String.fromCharCode(val)); + let a = `${start}`.charCodeAt(0); + let b = `${end}`.charCodeAt(0); + let descending = a > b; + let min3 = Math.min(a, b); + let max4 = Math.max(a, b); + if (options.toRegex && step === 1) { + return toRange(min3, max4, false, options); + } + let range = []; + let index = 0; + while (descending ? a >= b : a <= b) { + range.push(format6(a, index)); + a = descending ? a - step : a + step; + index++; + } + if (options.toRegex === true) { + return toRegex(range, null, { wrap: false, options }); + } + return range; }; + var fill = (start, end, step, options = {}) => { + if (end == null && isValidValue(start)) { + return [start]; + } + if (!isValidValue(start) || !isValidValue(end)) { + return invalidRange(start, end, options); + } + if (typeof step === "function") { + return fill(start, end, 1, { transform: step }); + } + if (isObject(step)) { + return fill(start, end, 0, step); + } + let opts = { ...options }; + if (opts.capture === true) + opts.wrap = true; + step = step || opts.step || 1; + if (!isNumber(step)) { + if (step != null && !isObject(step)) + return invalidStep(step, opts); + return fill(start, end, 1, step); + } + if (isNumber(start) && isNumber(end)) { + return fillNumbers(start, end, step, opts); + } + return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); + }; + module2.exports = fill; } }); -// ../node_modules/.pnpm/@octokit+core@5.1.0/node_modules/@octokit/core/dist-node/index.js -var require_dist_node8 = __commonJS({ - "../node_modules/.pnpm/@octokit+core@5.1.0/node_modules/@octokit/core/dist-node/index.js"(exports2, module2) { +// ../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/compile.js +var require_compile = __commonJS({ + "../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/compile.js"(exports2, module2) { "use strict"; - var __defProp2 = Object.defineProperty; - var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; - var __getOwnPropNames2 = Object.getOwnPropertyNames; - var __hasOwnProp2 = Object.prototype.hasOwnProperty; - var __export2 = (target, all3) => { - for (var name in all3) - __defProp2(target, name, { get: all3[name], enumerable: true }); - }; - var __copyProps2 = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames2(from)) - if (!__hasOwnProp2.call(to, key) && key !== except) - __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); - } - return to; - }; - var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); - var dist_src_exports = {}; - __export2(dist_src_exports, { - Octokit: () => Octokit - }); - module2.exports = __toCommonJS2(dist_src_exports); - var import_universal_user_agent = require_dist_node(); - var import_before_after_hook = require_before_after_hook(); - var import_request4 = require_dist_node5(); - var import_graphql = require_dist_node6(); - var import_auth_token = require_dist_node7(); - var VERSION2 = "5.1.0"; - var noop = () => { - }; - var consoleWarn = console.warn.bind(console); - var consoleError = console.error.bind(console); - var userAgentTrail = `octokit-core.js/${VERSION2} ${(0, import_universal_user_agent.getUserAgent)()}`; - var Octokit = class { - static { - this.VERSION = VERSION2; - } - static defaults(defaults) { - const OctokitWithDefaults = class extends this { - constructor(...args) { - const options = args[0] || {}; - if (typeof defaults === "function") { - super(defaults(options)); - return; - } - super( - Object.assign( - {}, - defaults, - options, - options.userAgent && defaults.userAgent ? { - userAgent: `${options.userAgent} ${defaults.userAgent}` - } : null - ) - ); - } - }; - return OctokitWithDefaults; - } - static { - this.plugins = []; - } - /** - * Attach a plugin (or many) to your Octokit instance. - * - * @example - * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) - */ - static plugin(...newPlugins) { - const currentPlugins = this.plugins; - const NewOctokit = class extends this { - static { - this.plugins = currentPlugins.concat( - newPlugins.filter((plugin) => !currentPlugins.includes(plugin)) - ); - } - }; - return NewOctokit; - } - constructor(options = {}) { - const hook = new import_before_after_hook.Collection(); - const requestDefaults = { - baseUrl: import_request4.request.endpoint.DEFAULTS.baseUrl, - headers: {}, - request: Object.assign({}, options.request, { - // @ts-ignore internal usage only, no need to type - hook: hook.bind(null, "request") - }), - mediaType: { - previews: [], - format: "" - } - }; - requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; - if (options.baseUrl) { - requestDefaults.baseUrl = options.baseUrl; + var fill = require_fill_range(); + var utils = require_utils3(); + var compile = (ast, options = {}) => { + let walk3 = (node, parent = {}) => { + let invalidBlock = utils.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let invalid = invalidBlock === true || invalidNode === true; + let prefix = options.escapeInvalid === true ? "\\" : ""; + let output = ""; + if (node.isOpen === true) { + return prefix + node.value; + } + if (node.isClose === true) { + return prefix + node.value; } - if (options.previews) { - requestDefaults.mediaType.previews = options.previews; + if (node.type === "open") { + return invalid ? prefix + node.value : "("; } - if (options.timeZone) { - requestDefaults.headers["time-zone"] = options.timeZone; + if (node.type === "close") { + return invalid ? prefix + node.value : ")"; } - this.request = import_request4.request.defaults(requestDefaults); - this.graphql = (0, import_graphql.withCustomRequest)(this.request).defaults(requestDefaults); - this.log = Object.assign( - { - debug: noop, - info: noop, - warn: consoleWarn, - error: consoleError - }, - options.log - ); - this.hook = hook; - if (!options.authStrategy) { - if (!options.auth) { - this.auth = async () => ({ - type: "unauthenticated" - }); - } else { - const auth = (0, import_auth_token.createTokenAuth)(options.auth); - hook.wrap("request", auth.hook); - this.auth = auth; + if (node.type === "comma") { + return node.prev.type === "comma" ? "" : invalid ? node.value : "|"; + } + if (node.value) { + return node.value; + } + if (node.nodes && node.ranges > 0) { + let args = utils.reduce(node.nodes); + let range = fill(...args, { ...options, wrap: false, toRegex: true }); + if (range.length !== 0) { + return args.length > 1 && range.length > 1 ? `(${range})` : range; } - } else { - const { authStrategy, ...otherOptions } = options; - const auth = authStrategy( - Object.assign( - { - request: this.request, - log: this.log, - // we pass the current octokit instance as well as its constructor options - // to allow for authentication strategies that return a new octokit instance - // that shares the same internal state as the current one. The original - // requirement for this was the "event-octokit" authentication strategy - // of https://github.com/probot/octokit-auth-probot. - octokit: this, - octokitOptions: otherOptions - }, - options.auth - ) - ); - hook.wrap("request", auth.hook); - this.auth = auth; } - const classConstructor = this.constructor; - for (let i = 0; i < classConstructor.plugins.length; ++i) { - Object.assign(this, classConstructor.plugins[i](this, options)); + if (node.nodes) { + for (let child of node.nodes) { + output += walk3(child, node); + } } - } + return output; + }; + return walk3(ast); }; + module2.exports = compile; } }); -// ../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.0_@octokit+core@5.1.0/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js -var require_dist_node9 = __commonJS({ - "../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.0_@octokit+core@5.1.0/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js"(exports2, module2) { +// ../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/expand.js +var require_expand = __commonJS({ + "../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/expand.js"(exports2, module2) { "use strict"; - var __defProp2 = Object.defineProperty; - var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; - var __getOwnPropNames2 = Object.getOwnPropertyNames; - var __hasOwnProp2 = Object.prototype.hasOwnProperty; - var __export2 = (target, all3) => { - for (var name in all3) - __defProp2(target, name, { get: all3[name], enumerable: true }); - }; - var __copyProps2 = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames2(from)) - if (!__hasOwnProp2.call(to, key) && key !== except) - __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); - } - return to; - }; - var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); - var dist_src_exports = {}; - __export2(dist_src_exports, { - legacyRestEndpointMethods: () => legacyRestEndpointMethods2, - restEndpointMethods: () => restEndpointMethods2 - }); - module2.exports = __toCommonJS2(dist_src_exports); - var VERSION2 = "10.4.0"; - var Endpoints2 = { - actions: { - addCustomLabelsToSelfHostedRunnerForOrg: [ - "POST /orgs/{org}/actions/runners/{runner_id}/labels" - ], - addCustomLabelsToSelfHostedRunnerForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" - ], - addSelectedRepoToOrgVariable: [ - "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" - ], - approveWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve" - ], - cancelWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel" - ], - createEnvironmentVariable: [ - "POST /repositories/{repository_id}/environments/{environment_name}/variables" - ], - createOrUpdateEnvironmentSecret: [ - "PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}" - ], - createOrgVariable: ["POST /orgs/{org}/actions/variables"], - createRegistrationTokenForOrg: [ - "POST /orgs/{org}/actions/runners/registration-token" - ], - createRegistrationTokenForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/registration-token" - ], - createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], - createRemoveTokenForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/remove-token" - ], - createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"], - createWorkflowDispatch: [ - "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches" - ], - deleteActionsCacheById: [ - "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}" - ], - deleteActionsCacheByKey: [ - "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}" - ], - deleteArtifact: [ - "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}" - ], - deleteEnvironmentSecret: [ - "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - deleteEnvironmentVariable: [ - "DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], - deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}" - ], - deleteRepoVariable: [ - "DELETE /repos/{owner}/{repo}/actions/variables/{name}" - ], - deleteSelfHostedRunnerFromOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}" - ], - deleteSelfHostedRunnerFromRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}" - ], - deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], - deleteWorkflowRunLogs: [ - "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs" - ], - disableSelectedRepositoryGithubActionsOrganization: [ - "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}" - ], - disableWorkflow: [ - "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable" - ], - downloadArtifact: [ - "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}" - ], - downloadJobLogsForWorkflowRun: [ - "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs" - ], - downloadWorkflowRunAttemptLogs: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs" - ], - downloadWorkflowRunLogs: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs" - ], - enableSelectedRepositoryGithubActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}" - ], - enableWorkflow: [ - "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable" - ], - forceCancelWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel" - ], - generateRunnerJitconfigForOrg: [ - "POST /orgs/{org}/actions/runners/generate-jitconfig" - ], - generateRunnerJitconfigForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig" - ], - getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], - getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], - getActionsCacheUsageByRepoForOrg: [ - "GET /orgs/{org}/actions/cache/usage-by-repository" - ], - getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"], - getAllowedActionsOrganization: [ - "GET /orgs/{org}/actions/permissions/selected-actions" - ], - getAllowedActionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/selected-actions" - ], - getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], - getCustomOidcSubClaimForRepo: [ - "GET /repos/{owner}/{repo}/actions/oidc/customization/sub" - ], - getEnvironmentPublicKey: [ - "GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key" - ], - getEnvironmentSecret: [ - "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - getEnvironmentVariable: [ - "GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}" - ], - getGithubActionsDefaultWorkflowPermissionsOrganization: [ - "GET /orgs/{org}/actions/permissions/workflow" - ], - getGithubActionsDefaultWorkflowPermissionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/workflow" - ], - getGithubActionsPermissionsOrganization: [ - "GET /orgs/{org}/actions/permissions" - ], - getGithubActionsPermissionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions" - ], - getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], - getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], - getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"], - getPendingDeploymentsForRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" - ], - getRepoPermissions: [ - "GET /repos/{owner}/{repo}/actions/permissions", - {}, - { renamed: ["actions", "getGithubActionsPermissionsRepository"] } - ], - getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], - getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], - getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"], - getReviewsForRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals" - ], - getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], - getSelfHostedRunnerForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/{runner_id}" - ], - getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], - getWorkflowAccessToRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/access" - ], - getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], - getWorkflowRunAttempt: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}" - ], - getWorkflowRunUsage: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing" - ], - getWorkflowUsage: [ - "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing" - ], - listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], - listEnvironmentSecrets: [ - "GET /repositories/{repository_id}/environments/{environment_name}/secrets" - ], - listEnvironmentVariables: [ - "GET /repositories/{repository_id}/environments/{environment_name}/variables" - ], - listJobsForWorkflowRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs" - ], - listJobsForWorkflowRunAttempt: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs" - ], - listLabelsForSelfHostedRunnerForOrg: [ - "GET /orgs/{org}/actions/runners/{runner_id}/labels" - ], - listLabelsForSelfHostedRunnerForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], - listOrgVariables: ["GET /orgs/{org}/actions/variables"], - listRepoOrganizationSecrets: [ - "GET /repos/{owner}/{repo}/actions/organization-secrets" - ], - listRepoOrganizationVariables: [ - "GET /repos/{owner}/{repo}/actions/organization-variables" - ], - listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], - listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"], - listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], - listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], - listRunnerApplicationsForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/downloads" - ], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/actions/secrets/{secret_name}/repositories" - ], - listSelectedReposForOrgVariable: [ - "GET /orgs/{org}/actions/variables/{name}/repositories" - ], - listSelectedRepositoriesEnabledGithubActionsOrganization: [ - "GET /orgs/{org}/actions/permissions/repositories" - ], - listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], - listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], - listWorkflowRunArtifacts: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts" - ], - listWorkflowRuns: [ - "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs" - ], - listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], - reRunJobForWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun" - ], - reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], - reRunWorkflowFailedJobs: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs" - ], - removeAllCustomLabelsFromSelfHostedRunnerForOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}/labels" - ], - removeAllCustomLabelsFromSelfHostedRunnerForRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - removeCustomLabelFromSelfHostedRunnerForOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}" - ], - removeCustomLabelFromSelfHostedRunnerForRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" - ], - removeSelectedRepoFromOrgVariable: [ - "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" - ], - reviewCustomGatesForRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule" - ], - reviewPendingDeploymentsForRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" - ], - setAllowedActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/selected-actions" - ], - setAllowedActionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions" - ], - setCustomLabelsForSelfHostedRunnerForOrg: [ - "PUT /orgs/{org}/actions/runners/{runner_id}/labels" - ], - setCustomLabelsForSelfHostedRunnerForRepo: [ - "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - setCustomOidcSubClaimForRepo: [ - "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub" - ], - setGithubActionsDefaultWorkflowPermissionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/workflow" - ], - setGithubActionsDefaultWorkflowPermissionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/workflow" - ], - setGithubActionsPermissionsOrganization: [ - "PUT /orgs/{org}/actions/permissions" - ], - setGithubActionsPermissionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories" - ], - setSelectedReposForOrgVariable: [ - "PUT /orgs/{org}/actions/variables/{name}/repositories" - ], - setSelectedRepositoriesEnabledGithubActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/repositories" - ], - setWorkflowAccessToRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/access" - ], - updateEnvironmentVariable: [ - "PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}" - ], - updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"], - updateRepoVariable: [ - "PATCH /repos/{owner}/{repo}/actions/variables/{name}" - ] - }, - activity: { - checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], - deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], - deleteThreadSubscription: [ - "DELETE /notifications/threads/{thread_id}/subscription" - ], - getFeeds: ["GET /feeds"], - getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], - getThread: ["GET /notifications/threads/{thread_id}"], - getThreadSubscriptionForAuthenticatedUser: [ - "GET /notifications/threads/{thread_id}/subscription" - ], - listEventsForAuthenticatedUser: ["GET /users/{username}/events"], - listNotificationsForAuthenticatedUser: ["GET /notifications"], - listOrgEventsForAuthenticatedUser: [ - "GET /users/{username}/events/orgs/{org}" - ], - listPublicEvents: ["GET /events"], - listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], - listPublicEventsForUser: ["GET /users/{username}/events/public"], - listPublicOrgEvents: ["GET /orgs/{org}/events"], - listReceivedEventsForUser: ["GET /users/{username}/received_events"], - listReceivedPublicEventsForUser: [ - "GET /users/{username}/received_events/public" - ], - listRepoEvents: ["GET /repos/{owner}/{repo}/events"], - listRepoNotificationsForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/notifications" - ], - listReposStarredByAuthenticatedUser: ["GET /user/starred"], - listReposStarredByUser: ["GET /users/{username}/starred"], - listReposWatchedByUser: ["GET /users/{username}/subscriptions"], - listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], - listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], - listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], - markNotificationsAsRead: ["PUT /notifications"], - markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], - markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"], - markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], - setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], - setThreadSubscription: [ - "PUT /notifications/threads/{thread_id}/subscription" - ], - starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], - unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] - }, - apps: { - addRepoToInstallation: [ - "PUT /user/installations/{installation_id}/repositories/{repository_id}", - {}, - { renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] } - ], - addRepoToInstallationForAuthenticatedUser: [ - "PUT /user/installations/{installation_id}/repositories/{repository_id}" - ], - checkToken: ["POST /applications/{client_id}/token"], - createFromManifest: ["POST /app-manifests/{code}/conversions"], - createInstallationAccessToken: [ - "POST /app/installations/{installation_id}/access_tokens" - ], - deleteAuthorization: ["DELETE /applications/{client_id}/grant"], - deleteInstallation: ["DELETE /app/installations/{installation_id}"], - deleteToken: ["DELETE /applications/{client_id}/token"], - getAuthenticated: ["GET /app"], - getBySlug: ["GET /apps/{app_slug}"], - getInstallation: ["GET /app/installations/{installation_id}"], - getOrgInstallation: ["GET /orgs/{org}/installation"], - getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], - getSubscriptionPlanForAccount: [ - "GET /marketplace_listing/accounts/{account_id}" - ], - getSubscriptionPlanForAccountStubbed: [ - "GET /marketplace_listing/stubbed/accounts/{account_id}" - ], - getUserInstallation: ["GET /users/{username}/installation"], - getWebhookConfigForApp: ["GET /app/hook/config"], - getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], - listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], - listAccountsForPlanStubbed: [ - "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts" - ], - listInstallationReposForAuthenticatedUser: [ - "GET /user/installations/{installation_id}/repositories" - ], - listInstallationRequestsForAuthenticatedApp: [ - "GET /app/installation-requests" - ], - listInstallations: ["GET /app/installations"], - listInstallationsForAuthenticatedUser: ["GET /user/installations"], - listPlans: ["GET /marketplace_listing/plans"], - listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], - listReposAccessibleToInstallation: ["GET /installation/repositories"], - listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], - listSubscriptionsForAuthenticatedUserStubbed: [ - "GET /user/marketplace_purchases/stubbed" - ], - listWebhookDeliveries: ["GET /app/hook/deliveries"], - redeliverWebhookDelivery: [ - "POST /app/hook/deliveries/{delivery_id}/attempts" - ], - removeRepoFromInstallation: [ - "DELETE /user/installations/{installation_id}/repositories/{repository_id}", - {}, - { renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] } - ], - removeRepoFromInstallationForAuthenticatedUser: [ - "DELETE /user/installations/{installation_id}/repositories/{repository_id}" - ], - resetToken: ["PATCH /applications/{client_id}/token"], - revokeInstallationAccessToken: ["DELETE /installation/token"], - scopeToken: ["POST /applications/{client_id}/token/scoped"], - suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], - unsuspendInstallation: [ - "DELETE /app/installations/{installation_id}/suspended" - ], - updateWebhookConfigForApp: ["PATCH /app/hook/config"] - }, - billing: { - getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], - getGithubActionsBillingUser: [ - "GET /users/{username}/settings/billing/actions" - ], - getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], - getGithubPackagesBillingUser: [ - "GET /users/{username}/settings/billing/packages" - ], - getSharedStorageBillingOrg: [ - "GET /orgs/{org}/settings/billing/shared-storage" - ], - getSharedStorageBillingUser: [ - "GET /users/{username}/settings/billing/shared-storage" - ] - }, - checks: { - create: ["POST /repos/{owner}/{repo}/check-runs"], - createSuite: ["POST /repos/{owner}/{repo}/check-suites"], - get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], - getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], - listAnnotations: [ - "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations" - ], - listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], - listForSuite: [ - "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs" - ], - listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], - rerequestRun: [ - "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest" - ], - rerequestSuite: [ - "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest" - ], - setSuitesPreferences: [ - "PATCH /repos/{owner}/{repo}/check-suites/preferences" - ], - update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] - }, - codeScanning: { - deleteAnalysis: [ - "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" - ], - getAlert: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", - {}, - { renamedParameters: { alert_id: "alert_number" } } - ], - getAnalysis: [ - "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}" - ], - getCodeqlDatabase: [ - "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" - ], - getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"], - getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], - listAlertInstances: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" - ], - listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], - listAlertsInstances: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", - {}, - { renamed: ["codeScanning", "listAlertInstances"] } - ], - listCodeqlDatabases: [ - "GET /repos/{owner}/{repo}/code-scanning/codeql/databases" - ], - listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}" - ], - updateDefaultSetup: [ - "PATCH /repos/{owner}/{repo}/code-scanning/default-setup" - ], - uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] - }, - codesOfConduct: { - getAllCodesOfConduct: ["GET /codes_of_conduct"], - getConductCode: ["GET /codes_of_conduct/{key}"] - }, - codespaces: { - addRepositoryForSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - checkPermissionsForDevcontainer: [ - "GET /repos/{owner}/{repo}/codespaces/permissions_check" - ], - codespaceMachinesForAuthenticatedUser: [ - "GET /user/codespaces/{codespace_name}/machines" - ], - createForAuthenticatedUser: ["POST /user/codespaces"], - createOrUpdateOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}" - ], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - createOrUpdateSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}" - ], - createWithPrForAuthenticatedUser: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces" - ], - createWithRepoForAuthenticatedUser: [ - "POST /repos/{owner}/{repo}/codespaces" - ], - deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"], - deleteFromOrganization: [ - "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - deleteSecretForAuthenticatedUser: [ - "DELETE /user/codespaces/secrets/{secret_name}" - ], - exportForAuthenticatedUser: [ - "POST /user/codespaces/{codespace_name}/exports" - ], - getCodespacesForUserInOrg: [ - "GET /orgs/{org}/members/{username}/codespaces" - ], - getExportDetailsForAuthenticatedUser: [ - "GET /user/codespaces/{codespace_name}/exports/{export_id}" - ], - getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"], - getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"], - getPublicKeyForAuthenticatedUser: [ - "GET /user/codespaces/secrets/public-key" - ], - getRepoPublicKey: [ - "GET /repos/{owner}/{repo}/codespaces/secrets/public-key" - ], - getRepoSecret: [ - "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - getSecretForAuthenticatedUser: [ - "GET /user/codespaces/secrets/{secret_name}" - ], - listDevcontainersInRepositoryForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/devcontainers" - ], - listForAuthenticatedUser: ["GET /user/codespaces"], - listInOrganization: [ - "GET /orgs/{org}/codespaces", - {}, - { renamedParameters: { org_id: "org" } } - ], - listInRepositoryForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces" - ], - listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], - listRepositoriesForSecretForAuthenticatedUser: [ - "GET /user/codespaces/secrets/{secret_name}/repositories" - ], - listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories" - ], - preFlightWithRepoForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/new" - ], - publishForAuthenticatedUser: [ - "POST /user/codespaces/{codespace_name}/publish" - ], - removeRepositoryForSecretForAuthenticatedUser: [ - "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - repoMachinesForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/machines" - ], - setRepositoriesForSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}/repositories" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories" - ], - startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"], - stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"], - stopInOrganization: [ - "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop" - ], - updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"] - }, - copilot: { - addCopilotSeatsForTeams: [ - "POST /orgs/{org}/copilot/billing/selected_teams" - ], - addCopilotSeatsForUsers: [ - "POST /orgs/{org}/copilot/billing/selected_users" - ], - cancelCopilotSeatAssignmentForTeams: [ - "DELETE /orgs/{org}/copilot/billing/selected_teams" - ], - cancelCopilotSeatAssignmentForUsers: [ - "DELETE /orgs/{org}/copilot/billing/selected_users" - ], - getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"], - getCopilotSeatDetailsForUser: [ - "GET /orgs/{org}/members/{username}/copilot" - ], - listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"] - }, - dependabot: { - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" - ], - createOrUpdateOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}" - ], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"], - getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], - getRepoPublicKey: [ - "GET /repos/{owner}/{repo}/dependabot/secrets/public-key" - ], - getRepoSecret: [ - "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - listAlertsForEnterprise: [ - "GET /enterprises/{enterprise}/dependabot/alerts" - ], - listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"], - listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories" - ], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}" - ] - }, - dependencyGraph: { - createRepositorySnapshot: [ - "POST /repos/{owner}/{repo}/dependency-graph/snapshots" - ], - diffRange: [ - "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}" - ], - exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"] - }, - emojis: { get: ["GET /emojis"] }, - gists: { - checkIsStarred: ["GET /gists/{gist_id}/star"], - create: ["POST /gists"], - createComment: ["POST /gists/{gist_id}/comments"], - delete: ["DELETE /gists/{gist_id}"], - deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], - fork: ["POST /gists/{gist_id}/forks"], - get: ["GET /gists/{gist_id}"], - getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], - getRevision: ["GET /gists/{gist_id}/{sha}"], - list: ["GET /gists"], - listComments: ["GET /gists/{gist_id}/comments"], - listCommits: ["GET /gists/{gist_id}/commits"], - listForUser: ["GET /users/{username}/gists"], - listForks: ["GET /gists/{gist_id}/forks"], - listPublic: ["GET /gists/public"], - listStarred: ["GET /gists/starred"], - star: ["PUT /gists/{gist_id}/star"], - unstar: ["DELETE /gists/{gist_id}/star"], - update: ["PATCH /gists/{gist_id}"], - updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] - }, - git: { - createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], - createCommit: ["POST /repos/{owner}/{repo}/git/commits"], - createRef: ["POST /repos/{owner}/{repo}/git/refs"], - createTag: ["POST /repos/{owner}/{repo}/git/tags"], - createTree: ["POST /repos/{owner}/{repo}/git/trees"], - deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], - getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], - getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], - getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], - getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], - getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], - listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], - updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] - }, - gitignore: { - getAllTemplates: ["GET /gitignore/templates"], - getTemplate: ["GET /gitignore/templates/{name}"] - }, - interactions: { - getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], - getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], - getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], - getRestrictionsForYourPublicRepos: [ - "GET /user/interaction-limits", - {}, - { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] } - ], - removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], - removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], - removeRestrictionsForRepo: [ - "DELETE /repos/{owner}/{repo}/interaction-limits" - ], - removeRestrictionsForYourPublicRepos: [ - "DELETE /user/interaction-limits", - {}, - { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] } - ], - setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], - setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], - setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], - setRestrictionsForYourPublicRepos: [ - "PUT /user/interaction-limits", - {}, - { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] } - ] - }, - issues: { - addAssignees: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees" - ], - addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], - checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], - checkUserCanBeAssignedToIssue: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}" - ], - create: ["POST /repos/{owner}/{repo}/issues"], - createComment: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/comments" - ], - createLabel: ["POST /repos/{owner}/{repo}/labels"], - createMilestone: ["POST /repos/{owner}/{repo}/milestones"], - deleteComment: [ - "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}" - ], - deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], - deleteMilestone: [ - "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}" - ], - get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], - getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], - getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], - getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], - getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], - list: ["GET /issues"], - listAssignees: ["GET /repos/{owner}/{repo}/assignees"], - listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], - listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], - listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], - listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], - listEventsForTimeline: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline" - ], - listForAuthenticatedUser: ["GET /user/issues"], - listForOrg: ["GET /orgs/{org}/issues"], - listForRepo: ["GET /repos/{owner}/{repo}/issues"], - listLabelsForMilestone: [ - "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels" - ], - listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], - listLabelsOnIssue: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/labels" - ], - listMilestones: ["GET /repos/{owner}/{repo}/milestones"], - lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], - removeAllLabels: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels" - ], - removeAssignees: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees" - ], - removeLabel: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" - ], - setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], - unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], - update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], - updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], - updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], - updateMilestone: [ - "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}" - ] - }, - licenses: { - get: ["GET /licenses/{license}"], - getAllCommonlyUsed: ["GET /licenses"], - getForRepo: ["GET /repos/{owner}/{repo}/license"] - }, - markdown: { - render: ["POST /markdown"], - renderRaw: [ - "POST /markdown/raw", - { headers: { "content-type": "text/plain; charset=utf-8" } } - ] - }, - meta: { - get: ["GET /meta"], - getAllVersions: ["GET /versions"], - getOctocat: ["GET /octocat"], - getZen: ["GET /zen"], - root: ["GET /"] - }, - migrations: { - cancelImport: [ - "DELETE /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import" - } - ], - deleteArchiveForAuthenticatedUser: [ - "DELETE /user/migrations/{migration_id}/archive" - ], - deleteArchiveForOrg: [ - "DELETE /orgs/{org}/migrations/{migration_id}/archive" - ], - downloadArchiveForOrg: [ - "GET /orgs/{org}/migrations/{migration_id}/archive" - ], - getArchiveForAuthenticatedUser: [ - "GET /user/migrations/{migration_id}/archive" - ], - getCommitAuthors: [ - "GET /repos/{owner}/{repo}/import/authors", - {}, - { - deprecated: "octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors" - } - ], - getImportStatus: [ - "GET /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status" - } - ], - getLargeFiles: [ - "GET /repos/{owner}/{repo}/import/large_files", - {}, - { - deprecated: "octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files" - } - ], - getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"], - getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"], - listForAuthenticatedUser: ["GET /user/migrations"], - listForOrg: ["GET /orgs/{org}/migrations"], - listReposForAuthenticatedUser: [ - "GET /user/migrations/{migration_id}/repositories" - ], - listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"], - listReposForUser: [ - "GET /user/migrations/{migration_id}/repositories", - {}, - { renamed: ["migrations", "listReposForAuthenticatedUser"] } - ], - mapCommitAuthor: [ - "PATCH /repos/{owner}/{repo}/import/authors/{author_id}", - {}, - { - deprecated: "octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author" - } - ], - setLfsPreference: [ - "PATCH /repos/{owner}/{repo}/import/lfs", - {}, - { - deprecated: "octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference" - } - ], - startForAuthenticatedUser: ["POST /user/migrations"], - startForOrg: ["POST /orgs/{org}/migrations"], - startImport: [ - "PUT /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import" - } - ], - unlockRepoForAuthenticatedUser: [ - "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" - ], - unlockRepoForOrg: [ - "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" - ], - updateImport: [ - "PATCH /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import" + var fill = require_fill_range(); + var stringify4 = require_stringify(); + var utils = require_utils3(); + var append = (queue = "", stash = "", enclose = false) => { + let result = []; + queue = [].concat(queue); + stash = [].concat(stash); + if (!stash.length) + return queue; + if (!queue.length) { + return enclose ? utils.flatten(stash).map((ele) => `{${ele}}`) : stash; + } + for (let item of queue) { + if (Array.isArray(item)) { + for (let value of item) { + result.push(append(value, stash, enclose)); } - ] - }, - oidc: { - getOidcCustomSubTemplateForOrg: [ - "GET /orgs/{org}/actions/oidc/customization/sub" - ], - updateOidcCustomSubTemplateForOrg: [ - "PUT /orgs/{org}/actions/oidc/customization/sub" - ] - }, - orgs: { - addSecurityManagerTeam: [ - "PUT /orgs/{org}/security-managers/teams/{team_slug}" - ], - assignTeamToOrgRole: [ - "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" - ], - assignUserToOrgRole: [ - "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}" - ], - blockUser: ["PUT /orgs/{org}/blocks/{username}"], - cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], - checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], - checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], - checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], - convertMemberToOutsideCollaborator: [ - "PUT /orgs/{org}/outside_collaborators/{username}" - ], - createCustomOrganizationRole: ["POST /orgs/{org}/organization-roles"], - createInvitation: ["POST /orgs/{org}/invitations"], - createOrUpdateCustomProperties: ["PATCH /orgs/{org}/properties/schema"], - createOrUpdateCustomPropertiesValuesForRepos: [ - "PATCH /orgs/{org}/properties/values" - ], - createOrUpdateCustomProperty: [ - "PUT /orgs/{org}/properties/schema/{custom_property_name}" - ], - createWebhook: ["POST /orgs/{org}/hooks"], - delete: ["DELETE /orgs/{org}"], - deleteCustomOrganizationRole: [ - "DELETE /orgs/{org}/organization-roles/{role_id}" - ], - deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], - enableOrDisableSecurityProductOnAllOrgRepos: [ - "POST /orgs/{org}/{security_product}/{enablement}" - ], - get: ["GET /orgs/{org}"], - getAllCustomProperties: ["GET /orgs/{org}/properties/schema"], - getCustomProperty: [ - "GET /orgs/{org}/properties/schema/{custom_property_name}" - ], - getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], - getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], - getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"], - getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], - getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], - getWebhookDelivery: [ - "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}" - ], - list: ["GET /organizations"], - listAppInstallations: ["GET /orgs/{org}/installations"], - listBlockedUsers: ["GET /orgs/{org}/blocks"], - listCustomPropertiesValuesForRepos: ["GET /orgs/{org}/properties/values"], - listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], - listForAuthenticatedUser: ["GET /user/orgs"], - listForUser: ["GET /users/{username}/orgs"], - listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], - listMembers: ["GET /orgs/{org}/members"], - listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], - listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"], - listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"], - listOrgRoles: ["GET /orgs/{org}/organization-roles"], - listOrganizationFineGrainedPermissions: [ - "GET /orgs/{org}/organization-fine-grained-permissions" - ], - listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], - listPatGrantRepositories: [ - "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories" - ], - listPatGrantRequestRepositories: [ - "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories" - ], - listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"], - listPatGrants: ["GET /orgs/{org}/personal-access-tokens"], - listPendingInvitations: ["GET /orgs/{org}/invitations"], - listPublicMembers: ["GET /orgs/{org}/public_members"], - listSecurityManagerTeams: ["GET /orgs/{org}/security-managers"], - listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], - listWebhooks: ["GET /orgs/{org}/hooks"], - patchCustomOrganizationRole: [ - "PATCH /orgs/{org}/organization-roles/{role_id}" - ], - pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], - redeliverWebhookDelivery: [ - "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" - ], - removeCustomProperty: [ - "DELETE /orgs/{org}/properties/schema/{custom_property_name}" - ], - removeMember: ["DELETE /orgs/{org}/members/{username}"], - removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], - removeOutsideCollaborator: [ - "DELETE /orgs/{org}/outside_collaborators/{username}" - ], - removePublicMembershipForAuthenticatedUser: [ - "DELETE /orgs/{org}/public_members/{username}" - ], - removeSecurityManagerTeam: [ - "DELETE /orgs/{org}/security-managers/teams/{team_slug}" - ], - reviewPatGrantRequest: [ - "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}" - ], - reviewPatGrantRequestsInBulk: [ - "POST /orgs/{org}/personal-access-token-requests" - ], - revokeAllOrgRolesTeam: [ - "DELETE /orgs/{org}/organization-roles/teams/{team_slug}" - ], - revokeAllOrgRolesUser: [ - "DELETE /orgs/{org}/organization-roles/users/{username}" - ], - revokeOrgRoleTeam: [ - "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" - ], - revokeOrgRoleUser: [ - "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}" - ], - setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], - setPublicMembershipForAuthenticatedUser: [ - "PUT /orgs/{org}/public_members/{username}" - ], - unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], - update: ["PATCH /orgs/{org}"], - updateMembershipForAuthenticatedUser: [ - "PATCH /user/memberships/orgs/{org}" - ], - updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"], - updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"], - updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], - updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] - }, - packages: { - deletePackageForAuthenticatedUser: [ - "DELETE /user/packages/{package_type}/{package_name}" - ], - deletePackageForOrg: [ - "DELETE /orgs/{org}/packages/{package_type}/{package_name}" - ], - deletePackageForUser: [ - "DELETE /users/{username}/packages/{package_type}/{package_name}" - ], - deletePackageVersionForAuthenticatedUser: [ - "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - deletePackageVersionForOrg: [ - "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - deletePackageVersionForUser: [ - "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getAllPackageVersionsForAPackageOwnedByAnOrg: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", - {}, - { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] } - ], - getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions", - {}, - { - renamed: [ - "packages", - "getAllPackageVersionsForPackageOwnedByAuthenticatedUser" - ] + } else { + for (let ele of stash) { + if (enclose === true && typeof ele === "string") + ele = `{${ele}}`; + result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele); } - ], - getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions" - ], - getAllPackageVersionsForPackageOwnedByOrg: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions" - ], - getAllPackageVersionsForPackageOwnedByUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}/versions" - ], - getPackageForAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}" - ], - getPackageForOrganization: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}" - ], - getPackageForUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}" - ], - getPackageVersionForAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getPackageVersionForOrganization: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getPackageVersionForUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - listDockerMigrationConflictingPackagesForAuthenticatedUser: [ - "GET /user/docker/conflicts" - ], - listDockerMigrationConflictingPackagesForOrganization: [ - "GET /orgs/{org}/docker/conflicts" - ], - listDockerMigrationConflictingPackagesForUser: [ - "GET /users/{username}/docker/conflicts" - ], - listPackagesForAuthenticatedUser: ["GET /user/packages"], - listPackagesForOrganization: ["GET /orgs/{org}/packages"], - listPackagesForUser: ["GET /users/{username}/packages"], - restorePackageForAuthenticatedUser: [ - "POST /user/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageForOrg: [ - "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageForUser: [ - "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageVersionForAuthenticatedUser: [ - "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ], - restorePackageVersionForOrg: [ - "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ], - restorePackageVersionForUser: [ - "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ] - }, - projects: { - addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], - createCard: ["POST /projects/columns/{column_id}/cards"], - createColumn: ["POST /projects/{project_id}/columns"], - createForAuthenticatedUser: ["POST /user/projects"], - createForOrg: ["POST /orgs/{org}/projects"], - createForRepo: ["POST /repos/{owner}/{repo}/projects"], - delete: ["DELETE /projects/{project_id}"], - deleteCard: ["DELETE /projects/columns/cards/{card_id}"], - deleteColumn: ["DELETE /projects/columns/{column_id}"], - get: ["GET /projects/{project_id}"], - getCard: ["GET /projects/columns/cards/{card_id}"], - getColumn: ["GET /projects/columns/{column_id}"], - getPermissionForUser: [ - "GET /projects/{project_id}/collaborators/{username}/permission" - ], - listCards: ["GET /projects/columns/{column_id}/cards"], - listCollaborators: ["GET /projects/{project_id}/collaborators"], - listColumns: ["GET /projects/{project_id}/columns"], - listForOrg: ["GET /orgs/{org}/projects"], - listForRepo: ["GET /repos/{owner}/{repo}/projects"], - listForUser: ["GET /users/{username}/projects"], - moveCard: ["POST /projects/columns/cards/{card_id}/moves"], - moveColumn: ["POST /projects/columns/{column_id}/moves"], - removeCollaborator: [ - "DELETE /projects/{project_id}/collaborators/{username}" - ], - update: ["PATCH /projects/{project_id}"], - updateCard: ["PATCH /projects/columns/cards/{card_id}"], - updateColumn: ["PATCH /projects/columns/{column_id}"] - }, - pulls: { - checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], - create: ["POST /repos/{owner}/{repo}/pulls"], - createReplyForReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies" - ], - createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], - createReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments" - ], - deletePendingReview: [ - "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - deleteReviewComment: [ - "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}" - ], - dismissReview: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals" - ], - get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], - getReview: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], - list: ["GET /repos/{owner}/{repo}/pulls"], - listCommentsForReview: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments" - ], - listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], - listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], - listRequestedReviewers: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - listReviewComments: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments" - ], - listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], - listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], - merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], - removeRequestedReviewers: [ - "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - requestReviewers: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - submitReview: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events" - ], - update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], - updateBranch: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch" - ], - updateReview: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - updateReviewComment: [ - "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}" - ] - }, - rateLimit: { get: ["GET /rate_limit"] }, - reactions: { - createForCommitComment: [ - "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions" - ], - createForIssue: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions" - ], - createForIssueComment: [ - "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" - ], - createForPullRequestReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" - ], - createForRelease: [ - "POST /repos/{owner}/{repo}/releases/{release_id}/reactions" - ], - createForTeamDiscussionCommentInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" - ], - createForTeamDiscussionInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" - ], - deleteForCommitComment: [ - "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForIssue: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}" - ], - deleteForIssueComment: [ - "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForPullRequestComment: [ - "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForRelease: [ - "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}" - ], - deleteForTeamDiscussion: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}" - ], - deleteForTeamDiscussionComment: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}" - ], - listForCommitComment: [ - "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions" - ], - listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"], - listForIssueComment: [ - "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" - ], - listForPullRequestReviewComment: [ - "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" - ], - listForRelease: [ - "GET /repos/{owner}/{repo}/releases/{release_id}/reactions" - ], - listForTeamDiscussionCommentInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" - ], - listForTeamDiscussionInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" - ] - }, - repos: { - acceptInvitation: [ - "PATCH /user/repository_invitations/{invitation_id}", - {}, - { renamed: ["repos", "acceptInvitationForAuthenticatedUser"] } - ], - acceptInvitationForAuthenticatedUser: [ - "PATCH /user/repository_invitations/{invitation_id}" - ], - addAppAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], - addStatusCheckContexts: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - addTeamAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - addUserAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - cancelPagesDeployment: [ - "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel" - ], - checkAutomatedSecurityFixes: [ - "GET /repos/{owner}/{repo}/automated-security-fixes" - ], - checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], - checkVulnerabilityAlerts: [ - "GET /repos/{owner}/{repo}/vulnerability-alerts" - ], - codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"], - compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], - compareCommitsWithBasehead: [ - "GET /repos/{owner}/{repo}/compare/{basehead}" - ], - createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], - createCommitComment: [ - "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments" - ], - createCommitSignatureProtection: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], - createDeployKey: ["POST /repos/{owner}/{repo}/keys"], - createDeployment: ["POST /repos/{owner}/{repo}/deployments"], - createDeploymentBranchPolicy: [ - "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" - ], - createDeploymentProtectionRule: [ - "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" - ], - createDeploymentStatus: [ - "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" - ], - createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], - createForAuthenticatedUser: ["POST /user/repos"], - createFork: ["POST /repos/{owner}/{repo}/forks"], - createInOrg: ["POST /orgs/{org}/repos"], - createOrUpdateCustomPropertiesValues: [ - "PATCH /repos/{owner}/{repo}/properties/values" - ], - createOrUpdateEnvironment: [ - "PUT /repos/{owner}/{repo}/environments/{environment_name}" - ], - createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], - createOrgRuleset: ["POST /orgs/{org}/rulesets"], - createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"], - createPagesSite: ["POST /repos/{owner}/{repo}/pages"], - createRelease: ["POST /repos/{owner}/{repo}/releases"], - createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"], - createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], - createUsingTemplate: [ - "POST /repos/{template_owner}/{template_repo}/generate" - ], - createWebhook: ["POST /repos/{owner}/{repo}/hooks"], - declineInvitation: [ - "DELETE /user/repository_invitations/{invitation_id}", - {}, - { renamed: ["repos", "declineInvitationForAuthenticatedUser"] } - ], - declineInvitationForAuthenticatedUser: [ - "DELETE /user/repository_invitations/{invitation_id}" - ], - delete: ["DELETE /repos/{owner}/{repo}"], - deleteAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" - ], - deleteAdminBranchProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - deleteAnEnvironment: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}" - ], - deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], - deleteBranchProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection" - ], - deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], - deleteCommitSignatureProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], - deleteDeployment: [ - "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}" - ], - deleteDeploymentBranchPolicy: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], - deleteInvitation: [ - "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}" - ], - deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"], - deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"], - deletePullRequestReviewProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], - deleteReleaseAsset: [ - "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}" - ], - deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - deleteTagProtection: [ - "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}" - ], - deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], - disableAutomatedSecurityFixes: [ - "DELETE /repos/{owner}/{repo}/automated-security-fixes" - ], - disableDeploymentProtectionRule: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" - ], - disablePrivateVulnerabilityReporting: [ - "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting" - ], - disableVulnerabilityAlerts: [ - "DELETE /repos/{owner}/{repo}/vulnerability-alerts" - ], - downloadArchive: [ - "GET /repos/{owner}/{repo}/zipball/{ref}", - {}, - { renamed: ["repos", "downloadZipballArchive"] } - ], - downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], - downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], - enableAutomatedSecurityFixes: [ - "PUT /repos/{owner}/{repo}/automated-security-fixes" - ], - enablePrivateVulnerabilityReporting: [ - "PUT /repos/{owner}/{repo}/private-vulnerability-reporting" - ], - enableVulnerabilityAlerts: [ - "PUT /repos/{owner}/{repo}/vulnerability-alerts" - ], - generateReleaseNotes: [ - "POST /repos/{owner}/{repo}/releases/generate-notes" - ], - get: ["GET /repos/{owner}/{repo}"], - getAccessRestrictions: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" - ], - getAdminBranchProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - getAllDeploymentProtectionRules: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" - ], - getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], - getAllStatusCheckContexts: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" - ], - getAllTopics: ["GET /repos/{owner}/{repo}/topics"], - getAppsWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" - ], - getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], - getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], - getBranchProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection" - ], - getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"], - getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], - getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], - getCollaboratorPermissionLevel: [ - "GET /repos/{owner}/{repo}/collaborators/{username}/permission" - ], - getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], - getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], - getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], - getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], - getCommitSignatureProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], - getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], - getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], - getCustomDeploymentProtectionRule: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" - ], - getCustomPropertiesValues: ["GET /repos/{owner}/{repo}/properties/values"], - getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], - getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], - getDeploymentBranchPolicy: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - getDeploymentStatus: [ - "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}" - ], - getEnvironment: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}" - ], - getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], - getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], - getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"], - getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"], - getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"], - getOrgRulesets: ["GET /orgs/{org}/rulesets"], - getPages: ["GET /repos/{owner}/{repo}/pages"], - getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], - getPagesDeployment: [ - "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}" - ], - getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], - getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], - getPullRequestReviewProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], - getReadme: ["GET /repos/{owner}/{repo}/readme"], - getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], - getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], - getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], - getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], - getRepoRuleSuite: [ - "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}" - ], - getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"], - getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"], - getStatusChecksProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - getTeamsWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" - ], - getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], - getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], - getUsersWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" - ], - getViews: ["GET /repos/{owner}/{repo}/traffic/views"], - getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], - getWebhookConfigForRepo: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/config" - ], - getWebhookDelivery: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}" - ], - listActivities: ["GET /repos/{owner}/{repo}/activity"], - listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], - listBranches: ["GET /repos/{owner}/{repo}/branches"], - listBranchesForHeadCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head" - ], - listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], - listCommentsForCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments" - ], - listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], - listCommitStatusesForRef: [ - "GET /repos/{owner}/{repo}/commits/{ref}/statuses" - ], - listCommits: ["GET /repos/{owner}/{repo}/commits"], - listContributors: ["GET /repos/{owner}/{repo}/contributors"], - listCustomDeploymentRuleIntegrations: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps" - ], - listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], - listDeploymentBranchPolicies: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" - ], - listDeploymentStatuses: [ - "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" - ], - listDeployments: ["GET /repos/{owner}/{repo}/deployments"], - listForAuthenticatedUser: ["GET /user/repos"], - listForOrg: ["GET /orgs/{org}/repos"], - listForUser: ["GET /users/{username}/repos"], - listForks: ["GET /repos/{owner}/{repo}/forks"], - listInvitations: ["GET /repos/{owner}/{repo}/invitations"], - listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], - listLanguages: ["GET /repos/{owner}/{repo}/languages"], - listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], - listPublic: ["GET /repositories"], - listPullRequestsAssociatedWithCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls" - ], - listReleaseAssets: [ - "GET /repos/{owner}/{repo}/releases/{release_id}/assets" - ], - listReleases: ["GET /repos/{owner}/{repo}/releases"], - listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], - listTags: ["GET /repos/{owner}/{repo}/tags"], - listTeams: ["GET /repos/{owner}/{repo}/teams"], - listWebhookDeliveries: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries" - ], - listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], - merge: ["POST /repos/{owner}/{repo}/merges"], - mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], - pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], - redeliverWebhookDelivery: [ - "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" - ], - removeAppAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - removeCollaborator: [ - "DELETE /repos/{owner}/{repo}/collaborators/{username}" - ], - removeStatusCheckContexts: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - removeStatusCheckProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - removeTeamAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - removeUserAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], - replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"], - requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], - setAdminBranchProtection: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - setAppAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - setStatusCheckContexts: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - setTeamAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - setUserAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], - transfer: ["POST /repos/{owner}/{repo}/transfer"], - update: ["PATCH /repos/{owner}/{repo}"], - updateBranchProtection: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection" - ], - updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], - updateDeploymentBranchPolicy: [ - "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], - updateInvitation: [ - "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}" - ], - updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"], - updatePullRequestReviewProtection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], - updateReleaseAsset: [ - "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}" - ], - updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - updateStatusCheckPotection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", - {}, - { renamed: ["repos", "updateStatusCheckProtection"] } - ], - updateStatusCheckProtection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], - updateWebhookConfigForRepo: [ - "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config" - ], - uploadReleaseAsset: [ - "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", - { baseUrl: "https://uploads.github.com" } - ] - }, - search: { - code: ["GET /search/code"], - commits: ["GET /search/commits"], - issuesAndPullRequests: ["GET /search/issues"], - labels: ["GET /search/labels"], - repos: ["GET /search/repositories"], - topics: ["GET /search/topics"], - users: ["GET /search/users"] - }, - secretScanning: { - getAlert: [ - "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" - ], - listAlertsForEnterprise: [ - "GET /enterprises/{enterprise}/secret-scanning/alerts" - ], - listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], - listLocationsForAlert: [ - "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations" - ], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" - ] - }, - securityAdvisories: { - createFork: [ - "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks" - ], - createPrivateVulnerabilityReport: [ - "POST /repos/{owner}/{repo}/security-advisories/reports" - ], - createRepositoryAdvisory: [ - "POST /repos/{owner}/{repo}/security-advisories" - ], - createRepositoryAdvisoryCveRequest: [ - "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve" - ], - getGlobalAdvisory: ["GET /advisories/{ghsa_id}"], - getRepositoryAdvisory: [ - "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}" - ], - listGlobalAdvisories: ["GET /advisories"], - listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"], - listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"], - updateRepositoryAdvisory: [ - "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}" - ] - }, - teams: { - addOrUpdateMembershipForUserInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - addOrUpdateProjectPermissionsInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - addOrUpdateRepoPermissionsInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - checkPermissionsForProjectInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - checkPermissionsForRepoInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - create: ["POST /orgs/{org}/teams"], - createDiscussionCommentInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" - ], - createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], - deleteDiscussionCommentInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - deleteDiscussionInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], - getByName: ["GET /orgs/{org}/teams/{team_slug}"], - getDiscussionCommentInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - getDiscussionInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - getMembershipForUserInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - list: ["GET /orgs/{org}/teams"], - listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], - listDiscussionCommentsInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" - ], - listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], - listForAuthenticatedUser: ["GET /user/teams"], - listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], - listPendingInvitationsInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/invitations" - ], - listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], - listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], - removeMembershipForUserInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - removeProjectInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - removeRepoInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - updateDiscussionCommentInOrg: [ - "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - updateDiscussionInOrg: [ - "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] - }, - users: { - addEmailForAuthenticated: [ - "POST /user/emails", - {}, - { renamed: ["users", "addEmailForAuthenticatedUser"] } - ], - addEmailForAuthenticatedUser: ["POST /user/emails"], - addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"], - block: ["PUT /user/blocks/{username}"], - checkBlocked: ["GET /user/blocks/{username}"], - checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], - checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], - createGpgKeyForAuthenticated: [ - "POST /user/gpg_keys", - {}, - { renamed: ["users", "createGpgKeyForAuthenticatedUser"] } - ], - createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"], - createPublicSshKeyForAuthenticated: [ - "POST /user/keys", - {}, - { renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] } - ], - createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"], - createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"], - deleteEmailForAuthenticated: [ - "DELETE /user/emails", - {}, - { renamed: ["users", "deleteEmailForAuthenticatedUser"] } - ], - deleteEmailForAuthenticatedUser: ["DELETE /user/emails"], - deleteGpgKeyForAuthenticated: [ - "DELETE /user/gpg_keys/{gpg_key_id}", - {}, - { renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] } - ], - deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"], - deletePublicSshKeyForAuthenticated: [ - "DELETE /user/keys/{key_id}", - {}, - { renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] } - ], - deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"], - deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"], - deleteSshSigningKeyForAuthenticatedUser: [ - "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}" - ], - follow: ["PUT /user/following/{username}"], - getAuthenticated: ["GET /user"], - getByUsername: ["GET /users/{username}"], - getContextForUser: ["GET /users/{username}/hovercard"], - getGpgKeyForAuthenticated: [ - "GET /user/gpg_keys/{gpg_key_id}", - {}, - { renamed: ["users", "getGpgKeyForAuthenticatedUser"] } - ], - getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"], - getPublicSshKeyForAuthenticated: [ - "GET /user/keys/{key_id}", - {}, - { renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] } - ], - getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"], - getSshSigningKeyForAuthenticatedUser: [ - "GET /user/ssh_signing_keys/{ssh_signing_key_id}" - ], - list: ["GET /users"], - listBlockedByAuthenticated: [ - "GET /user/blocks", - {}, - { renamed: ["users", "listBlockedByAuthenticatedUser"] } - ], - listBlockedByAuthenticatedUser: ["GET /user/blocks"], - listEmailsForAuthenticated: [ - "GET /user/emails", - {}, - { renamed: ["users", "listEmailsForAuthenticatedUser"] } - ], - listEmailsForAuthenticatedUser: ["GET /user/emails"], - listFollowedByAuthenticated: [ - "GET /user/following", - {}, - { renamed: ["users", "listFollowedByAuthenticatedUser"] } - ], - listFollowedByAuthenticatedUser: ["GET /user/following"], - listFollowersForAuthenticatedUser: ["GET /user/followers"], - listFollowersForUser: ["GET /users/{username}/followers"], - listFollowingForUser: ["GET /users/{username}/following"], - listGpgKeysForAuthenticated: [ - "GET /user/gpg_keys", - {}, - { renamed: ["users", "listGpgKeysForAuthenticatedUser"] } - ], - listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"], - listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], - listPublicEmailsForAuthenticated: [ - "GET /user/public_emails", - {}, - { renamed: ["users", "listPublicEmailsForAuthenticatedUser"] } - ], - listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"], - listPublicKeysForUser: ["GET /users/{username}/keys"], - listPublicSshKeysForAuthenticated: [ - "GET /user/keys", - {}, - { renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] } - ], - listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"], - listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"], - listSocialAccountsForUser: ["GET /users/{username}/social_accounts"], - listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"], - listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"], - setPrimaryEmailVisibilityForAuthenticated: [ - "PATCH /user/email/visibility", - {}, - { renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] } - ], - setPrimaryEmailVisibilityForAuthenticatedUser: [ - "PATCH /user/email/visibility" - ], - unblock: ["DELETE /user/blocks/{username}"], - unfollow: ["DELETE /user/following/{username}"], - updateAuthenticated: ["PATCH /user"] - } - }; - var endpoints_default2 = Endpoints2; - var endpointMethodsMap2 = /* @__PURE__ */ new Map(); - for (const [scope, endpoints] of Object.entries(endpoints_default2)) { - for (const [methodName, endpoint] of Object.entries(endpoints)) { - const [route, defaults, decorations] = endpoint; - const [method, url] = route.split(/ /); - const endpointDefaults = Object.assign( - { - method, - url - }, - defaults - ); - if (!endpointMethodsMap2.has(scope)) { - endpointMethodsMap2.set(scope, /* @__PURE__ */ new Map()); - } - endpointMethodsMap2.get(scope).set(methodName, { - scope, - methodName, - endpointDefaults, - decorations - }); + } } - } - var handler2 = { - has({ scope }, methodName) { - return endpointMethodsMap2.get(scope).has(methodName); - }, - getOwnPropertyDescriptor(target, methodName) { - return { - value: this.get(target, methodName), - // ensures method is in the cache - configurable: true, - writable: true, - enumerable: true - }; - }, - defineProperty(target, methodName, descriptor) { - Object.defineProperty(target.cache, methodName, descriptor); - return true; - }, - deleteProperty(target, methodName) { - delete target.cache[methodName]; - return true; - }, - ownKeys({ scope }) { - return [...endpointMethodsMap2.get(scope).keys()]; - }, - set(target, methodName, value) { - return target.cache[methodName] = value; - }, - get({ octokit, scope, cache: cache4 }, methodName) { - if (cache4[methodName]) { - return cache4[methodName]; + return utils.flatten(result); + }; + var expand = (ast, options = {}) => { + let rangeLimit = options.rangeLimit === void 0 ? 1e3 : options.rangeLimit; + let walk3 = (node, parent = {}) => { + node.queue = []; + let p = parent; + let q = parent.queue; + while (p.type !== "brace" && p.type !== "root" && p.parent) { + p = p.parent; + q = p.queue; } - const method = endpointMethodsMap2.get(scope).get(methodName); - if (!method) { - return void 0; + if (node.invalid || node.dollar) { + q.push(append(q.pop(), stringify4(node, options))); + return; } - const { endpointDefaults, decorations } = method; - if (decorations) { - cache4[methodName] = decorate2( - octokit, - scope, - methodName, - endpointDefaults, - decorations - ); - } else { - cache4[methodName] = octokit.request.defaults(endpointDefaults); + if (node.type === "brace" && node.invalid !== true && node.nodes.length === 2) { + q.push(append(q.pop(), ["{}"])); + return; } - return cache4[methodName]; - } - }; - function endpointsToMethods2(octokit) { - const newMethods = {}; - for (const scope of endpointMethodsMap2.keys()) { - newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler2); - } - return newMethods; - } - function decorate2(octokit, scope, methodName, defaults, decorations) { - const requestWithDefaults = octokit.request.defaults(defaults); - function withDecorations(...args) { - let options = requestWithDefaults.endpoint.merge(...args); - if (decorations.mapToData) { - options = Object.assign({}, options, { - data: options[decorations.mapToData], - [decorations.mapToData]: void 0 - }); - return requestWithDefaults(options); + if (node.nodes && node.ranges > 0) { + let args = utils.reduce(node.nodes); + if (utils.exceedsLimit(...args, options.step, rangeLimit)) { + throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit."); + } + let range = fill(...args, options); + if (range.length === 0) { + range = stringify4(node, options); + } + q.push(append(q.pop(), range)); + node.nodes = []; + return; } - if (decorations.renamed) { - const [newScope, newMethodName] = decorations.renamed; - octokit.log.warn( - `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()` - ); + let enclose = utils.encloseBrace(node); + let queue = node.queue; + let block = node; + while (block.type !== "brace" && block.type !== "root" && block.parent) { + block = block.parent; + queue = block.queue; } - if (decorations.deprecated) { - octokit.log.warn(decorations.deprecated); - } - if (decorations.renamedParameters) { - const options2 = requestWithDefaults.endpoint.merge(...args); - for (const [name, alias] of Object.entries( - decorations.renamedParameters - )) { - if (name in options2) { - octokit.log.warn( - `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead` - ); - if (!(alias in options2)) { - options2[alias] = options2[name]; - } - delete options2[name]; - } + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i]; + if (child.type === "comma" && node.type === "brace") { + if (i === 1) + queue.push(""); + queue.push(""); + continue; + } + if (child.type === "close") { + q.push(append(q.pop(), queue, enclose)); + continue; + } + if (child.value && child.type !== "open") { + queue.push(append(queue.pop(), child.value)); + continue; + } + if (child.nodes) { + walk3(child, node); } - return requestWithDefaults(options2); } - return requestWithDefaults(...args); - } - return Object.assign(withDecorations, requestWithDefaults); - } - function restEndpointMethods2(octokit) { - const api = endpointsToMethods2(octokit); - return { - rest: api - }; - } - restEndpointMethods2.VERSION = VERSION2; - function legacyRestEndpointMethods2(octokit) { - const api = endpointsToMethods2(octokit); - return { - ...api, - rest: api + return queue; }; - } - legacyRestEndpointMethods2.VERSION = VERSION2; + return utils.flatten(walk3(ast)); + }; + module2.exports = expand; } }); -// ../node_modules/.pnpm/@octokit+plugin-paginate-rest@9.2.0_@octokit+core@5.1.0/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js -var require_dist_node10 = __commonJS({ - "../node_modules/.pnpm/@octokit+plugin-paginate-rest@9.2.0_@octokit+core@5.1.0/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js"(exports2, module2) { +// ../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/constants.js +var require_constants5 = __commonJS({ + "../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/constants.js"(exports2, module2) { "use strict"; - var __defProp2 = Object.defineProperty; - var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; - var __getOwnPropNames2 = Object.getOwnPropertyNames; - var __hasOwnProp2 = Object.prototype.hasOwnProperty; - var __export2 = (target, all3) => { - for (var name in all3) - __defProp2(target, name, { get: all3[name], enumerable: true }); - }; - var __copyProps2 = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames2(from)) - if (!__hasOwnProp2.call(to, key) && key !== except) - __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); - } - return to; - }; - var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); - var dist_src_exports = {}; - __export2(dist_src_exports, { - composePaginateRest: () => composePaginateRest, - isPaginatingEndpoint: () => isPaginatingEndpoint, - paginateRest: () => paginateRest, - paginatingEndpoints: () => paginatingEndpoints - }); - module2.exports = __toCommonJS2(dist_src_exports); - var VERSION2 = "9.2.0"; - function normalizePaginatedListResponse(response) { - if (!response.data) { - return { - ...response, - data: [] - }; - } - const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); - if (!responseNeedsNormalization) - return response; - const incompleteResults = response.data.incomplete_results; - const repositorySelection = response.data.repository_selection; - const totalCount = response.data.total_count; - delete response.data.incomplete_results; - delete response.data.repository_selection; - delete response.data.total_count; - const namespaceKey = Object.keys(response.data)[0]; - const data = response.data[namespaceKey]; - response.data = data; - if (typeof incompleteResults !== "undefined") { - response.data.incomplete_results = incompleteResults; - } - if (typeof repositorySelection !== "undefined") { - response.data.repository_selection = repositorySelection; - } - response.data.total_count = totalCount; - return response; - } - function iterator(octokit, route, parameters) { - const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); - const requestMethod = typeof route === "function" ? route : octokit.request; - const method = options.method; - const headers = options.headers; - let url = options.url; - return { - [Symbol.asyncIterator]: () => ({ - async next() { - if (!url) - return { done: true }; - try { - const response = await requestMethod({ method, url, headers }); - const normalizedResponse = normalizePaginatedListResponse(response); - url = ((normalizedResponse.headers.link || "").match( - /<([^>]+)>;\s*rel="next"/ - ) || [])[1]; - return { value: normalizedResponse }; - } catch (error3) { - if (error3.status !== 409) - throw error3; - url = ""; - return { - value: { - status: 200, - headers: {}, - data: [] - } - }; - } - } - }) - }; - } - function paginate(octokit, route, parameters, mapFn) { - if (typeof parameters === "function") { - mapFn = parameters; - parameters = void 0; - } - return gather( - octokit, - [], - iterator(octokit, route, parameters)[Symbol.asyncIterator](), - mapFn - ); - } - function gather(octokit, results, iterator2, mapFn) { - return iterator2.next().then((result) => { - if (result.done) { - return results; - } - let earlyExit = false; - function done() { - earlyExit = true; - } - results = results.concat( - mapFn ? mapFn(result.value, done) : result.value.data - ); - if (earlyExit) { - return results; - } - return gather(octokit, results, iterator2, mapFn); - }); - } - var composePaginateRest = Object.assign(paginate, { - iterator - }); - var paginatingEndpoints = [ - "GET /advisories", - "GET /app/hook/deliveries", - "GET /app/installation-requests", - "GET /app/installations", - "GET /assignments/{assignment_id}/accepted_assignments", - "GET /classrooms", - "GET /classrooms/{classroom_id}/assignments", - "GET /enterprises/{enterprise}/dependabot/alerts", - "GET /enterprises/{enterprise}/secret-scanning/alerts", - "GET /events", - "GET /gists", - "GET /gists/public", - "GET /gists/starred", - "GET /gists/{gist_id}/comments", - "GET /gists/{gist_id}/commits", - "GET /gists/{gist_id}/forks", - "GET /installation/repositories", - "GET /issues", - "GET /licenses", - "GET /marketplace_listing/plans", - "GET /marketplace_listing/plans/{plan_id}/accounts", - "GET /marketplace_listing/stubbed/plans", - "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", - "GET /networks/{owner}/{repo}/events", - "GET /notifications", - "GET /organizations", - "GET /orgs/{org}/actions/cache/usage-by-repository", - "GET /orgs/{org}/actions/permissions/repositories", - "GET /orgs/{org}/actions/runners", - "GET /orgs/{org}/actions/secrets", - "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", - "GET /orgs/{org}/actions/variables", - "GET /orgs/{org}/actions/variables/{name}/repositories", - "GET /orgs/{org}/blocks", - "GET /orgs/{org}/code-scanning/alerts", - "GET /orgs/{org}/codespaces", - "GET /orgs/{org}/codespaces/secrets", - "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories", - "GET /orgs/{org}/copilot/billing/seats", - "GET /orgs/{org}/dependabot/alerts", - "GET /orgs/{org}/dependabot/secrets", - "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories", - "GET /orgs/{org}/events", - "GET /orgs/{org}/failed_invitations", - "GET /orgs/{org}/hooks", - "GET /orgs/{org}/hooks/{hook_id}/deliveries", - "GET /orgs/{org}/installations", - "GET /orgs/{org}/invitations", - "GET /orgs/{org}/invitations/{invitation_id}/teams", - "GET /orgs/{org}/issues", - "GET /orgs/{org}/members", - "GET /orgs/{org}/members/{username}/codespaces", - "GET /orgs/{org}/migrations", - "GET /orgs/{org}/migrations/{migration_id}/repositories", - "GET /orgs/{org}/organization-roles/{role_id}/teams", - "GET /orgs/{org}/organization-roles/{role_id}/users", - "GET /orgs/{org}/outside_collaborators", - "GET /orgs/{org}/packages", - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", - "GET /orgs/{org}/personal-access-token-requests", - "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories", - "GET /orgs/{org}/personal-access-tokens", - "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories", - "GET /orgs/{org}/projects", - "GET /orgs/{org}/properties/values", - "GET /orgs/{org}/public_members", - "GET /orgs/{org}/repos", - "GET /orgs/{org}/rulesets", - "GET /orgs/{org}/rulesets/rule-suites", - "GET /orgs/{org}/secret-scanning/alerts", - "GET /orgs/{org}/security-advisories", - "GET /orgs/{org}/teams", - "GET /orgs/{org}/teams/{team_slug}/discussions", - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", - "GET /orgs/{org}/teams/{team_slug}/invitations", - "GET /orgs/{org}/teams/{team_slug}/members", - "GET /orgs/{org}/teams/{team_slug}/projects", - "GET /orgs/{org}/teams/{team_slug}/repos", - "GET /orgs/{org}/teams/{team_slug}/teams", - "GET /projects/columns/{column_id}/cards", - "GET /projects/{project_id}/collaborators", - "GET /projects/{project_id}/columns", - "GET /repos/{owner}/{repo}/actions/artifacts", - "GET /repos/{owner}/{repo}/actions/caches", - "GET /repos/{owner}/{repo}/actions/organization-secrets", - "GET /repos/{owner}/{repo}/actions/organization-variables", - "GET /repos/{owner}/{repo}/actions/runners", - "GET /repos/{owner}/{repo}/actions/runs", - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", - "GET /repos/{owner}/{repo}/actions/secrets", - "GET /repos/{owner}/{repo}/actions/variables", - "GET /repos/{owner}/{repo}/actions/workflows", - "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", - "GET /repos/{owner}/{repo}/activity", - "GET /repos/{owner}/{repo}/assignees", - "GET /repos/{owner}/{repo}/branches", - "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", - "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", - "GET /repos/{owner}/{repo}/code-scanning/alerts", - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", - "GET /repos/{owner}/{repo}/code-scanning/analyses", - "GET /repos/{owner}/{repo}/codespaces", - "GET /repos/{owner}/{repo}/codespaces/devcontainers", - "GET /repos/{owner}/{repo}/codespaces/secrets", - "GET /repos/{owner}/{repo}/collaborators", - "GET /repos/{owner}/{repo}/comments", - "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", - "GET /repos/{owner}/{repo}/commits", - "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", - "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", - "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", - "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", - "GET /repos/{owner}/{repo}/commits/{ref}/status", - "GET /repos/{owner}/{repo}/commits/{ref}/statuses", - "GET /repos/{owner}/{repo}/contributors", - "GET /repos/{owner}/{repo}/dependabot/alerts", - "GET /repos/{owner}/{repo}/dependabot/secrets", - "GET /repos/{owner}/{repo}/deployments", - "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", - "GET /repos/{owner}/{repo}/environments", - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies", - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps", - "GET /repos/{owner}/{repo}/events", - "GET /repos/{owner}/{repo}/forks", - "GET /repos/{owner}/{repo}/hooks", - "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", - "GET /repos/{owner}/{repo}/invitations", - "GET /repos/{owner}/{repo}/issues", - "GET /repos/{owner}/{repo}/issues/comments", - "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", - "GET /repos/{owner}/{repo}/issues/events", - "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", - "GET /repos/{owner}/{repo}/issues/{issue_number}/events", - "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", - "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", - "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", - "GET /repos/{owner}/{repo}/keys", - "GET /repos/{owner}/{repo}/labels", - "GET /repos/{owner}/{repo}/milestones", - "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "GET /repos/{owner}/{repo}/notifications", - "GET /repos/{owner}/{repo}/pages/builds", - "GET /repos/{owner}/{repo}/projects", - "GET /repos/{owner}/{repo}/pulls", - "GET /repos/{owner}/{repo}/pulls/comments", - "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", - "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", - "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", - "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", - "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", - "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", - "GET /repos/{owner}/{repo}/releases", - "GET /repos/{owner}/{repo}/releases/{release_id}/assets", - "GET /repos/{owner}/{repo}/releases/{release_id}/reactions", - "GET /repos/{owner}/{repo}/rules/branches/{branch}", - "GET /repos/{owner}/{repo}/rulesets", - "GET /repos/{owner}/{repo}/rulesets/rule-suites", - "GET /repos/{owner}/{repo}/secret-scanning/alerts", - "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", - "GET /repos/{owner}/{repo}/security-advisories", - "GET /repos/{owner}/{repo}/stargazers", - "GET /repos/{owner}/{repo}/subscribers", - "GET /repos/{owner}/{repo}/tags", - "GET /repos/{owner}/{repo}/teams", - "GET /repos/{owner}/{repo}/topics", - "GET /repositories", - "GET /repositories/{repository_id}/environments/{environment_name}/secrets", - "GET /repositories/{repository_id}/environments/{environment_name}/variables", - "GET /search/code", - "GET /search/commits", - "GET /search/issues", - "GET /search/labels", - "GET /search/repositories", - "GET /search/topics", - "GET /search/users", - "GET /teams/{team_id}/discussions", - "GET /teams/{team_id}/discussions/{discussion_number}/comments", - "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", - "GET /teams/{team_id}/discussions/{discussion_number}/reactions", - "GET /teams/{team_id}/invitations", - "GET /teams/{team_id}/members", - "GET /teams/{team_id}/projects", - "GET /teams/{team_id}/repos", - "GET /teams/{team_id}/teams", - "GET /user/blocks", - "GET /user/codespaces", - "GET /user/codespaces/secrets", - "GET /user/emails", - "GET /user/followers", - "GET /user/following", - "GET /user/gpg_keys", - "GET /user/installations", - "GET /user/installations/{installation_id}/repositories", - "GET /user/issues", - "GET /user/keys", - "GET /user/marketplace_purchases", - "GET /user/marketplace_purchases/stubbed", - "GET /user/memberships/orgs", - "GET /user/migrations", - "GET /user/migrations/{migration_id}/repositories", - "GET /user/orgs", - "GET /user/packages", - "GET /user/packages/{package_type}/{package_name}/versions", - "GET /user/public_emails", - "GET /user/repos", - "GET /user/repository_invitations", - "GET /user/social_accounts", - "GET /user/ssh_signing_keys", - "GET /user/starred", - "GET /user/subscriptions", - "GET /user/teams", - "GET /users", - "GET /users/{username}/events", - "GET /users/{username}/events/orgs/{org}", - "GET /users/{username}/events/public", - "GET /users/{username}/followers", - "GET /users/{username}/following", - "GET /users/{username}/gists", - "GET /users/{username}/gpg_keys", - "GET /users/{username}/keys", - "GET /users/{username}/orgs", - "GET /users/{username}/packages", - "GET /users/{username}/projects", - "GET /users/{username}/received_events", - "GET /users/{username}/received_events/public", - "GET /users/{username}/repos", - "GET /users/{username}/social_accounts", - "GET /users/{username}/ssh_signing_keys", - "GET /users/{username}/starred", - "GET /users/{username}/subscriptions" - ]; - function isPaginatingEndpoint(arg) { - if (typeof arg === "string") { - return paginatingEndpoints.includes(arg); - } else { - return false; - } - } - function paginateRest(octokit) { - return { - paginate: Object.assign(paginate.bind(null, octokit), { - iterator: iterator.bind(null, octokit) - }) - }; - } - paginateRest.VERSION = VERSION2; - } -}); - -// ../node_modules/.pnpm/@actions+github@6.0.0/node_modules/@actions/github/lib/utils.js -var require_utils4 = __commonJS({ - "../node_modules/.pnpm/@actions+github@6.0.0/node_modules/@actions/github/lib/utils.js"(exports2) { - "use strict"; - var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = exports2 && exports2.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result, mod, k); - } - __setModuleDefault(result, mod); - return result; + module2.exports = { + MAX_LENGTH: 1024 * 64, + // Digits + CHAR_0: "0", + /* 0 */ + CHAR_9: "9", + /* 9 */ + // Alphabet chars. + CHAR_UPPERCASE_A: "A", + /* A */ + CHAR_LOWERCASE_A: "a", + /* a */ + CHAR_UPPERCASE_Z: "Z", + /* Z */ + CHAR_LOWERCASE_Z: "z", + /* z */ + CHAR_LEFT_PARENTHESES: "(", + /* ( */ + CHAR_RIGHT_PARENTHESES: ")", + /* ) */ + CHAR_ASTERISK: "*", + /* * */ + // Non-alphabetic chars. + CHAR_AMPERSAND: "&", + /* & */ + CHAR_AT: "@", + /* @ */ + CHAR_BACKSLASH: "\\", + /* \ */ + CHAR_BACKTICK: "`", + /* ` */ + CHAR_CARRIAGE_RETURN: "\r", + /* \r */ + CHAR_CIRCUMFLEX_ACCENT: "^", + /* ^ */ + CHAR_COLON: ":", + /* : */ + CHAR_COMMA: ",", + /* , */ + CHAR_DOLLAR: "$", + /* . */ + CHAR_DOT: ".", + /* . */ + CHAR_DOUBLE_QUOTE: '"', + /* " */ + CHAR_EQUAL: "=", + /* = */ + CHAR_EXCLAMATION_MARK: "!", + /* ! */ + CHAR_FORM_FEED: "\f", + /* \f */ + CHAR_FORWARD_SLASH: "/", + /* / */ + CHAR_HASH: "#", + /* # */ + CHAR_HYPHEN_MINUS: "-", + /* - */ + CHAR_LEFT_ANGLE_BRACKET: "<", + /* < */ + CHAR_LEFT_CURLY_BRACE: "{", + /* { */ + CHAR_LEFT_SQUARE_BRACKET: "[", + /* [ */ + CHAR_LINE_FEED: "\n", + /* \n */ + CHAR_NO_BREAK_SPACE: "\xA0", + /* \u00A0 */ + CHAR_PERCENT: "%", + /* % */ + CHAR_PLUS: "+", + /* + */ + CHAR_QUESTION_MARK: "?", + /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: ">", + /* > */ + CHAR_RIGHT_CURLY_BRACE: "}", + /* } */ + CHAR_RIGHT_SQUARE_BRACKET: "]", + /* ] */ + CHAR_SEMICOLON: ";", + /* ; */ + CHAR_SINGLE_QUOTE: "'", + /* ' */ + CHAR_SPACE: " ", + /* */ + CHAR_TAB: " ", + /* \t */ + CHAR_UNDERSCORE: "_", + /* _ */ + CHAR_VERTICAL_LINE: "|", + /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: "\uFEFF" + /* \uFEFF */ }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.getOctokitOptions = exports2.GitHub = exports2.defaults = exports2.context = void 0; - var Context2 = __importStar(require_context()); - var Utils2 = __importStar(require_utils3()); - var core_1 = require_dist_node8(); - var plugin_rest_endpoint_methods_1 = require_dist_node9(); - var plugin_paginate_rest_1 = require_dist_node10(); - exports2.context = new Context2.Context(); - var baseUrl = Utils2.getApiBaseUrl(); - exports2.defaults = { - baseUrl, - request: { - agent: Utils2.getProxyAgent(baseUrl), - fetch: Utils2.getProxyFetch(baseUrl) - } - }; - exports2.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports2.defaults); - function getOctokitOptions(token, options) { - const opts = Object.assign({}, options || {}); - const auth = Utils2.getAuthString(token, opts); - if (auth) { - opts.auth = auth; - } - return opts; - } - exports2.getOctokitOptions = getOctokitOptions; } }); -// ../node_modules/.pnpm/@actions+github@6.0.0/node_modules/@actions/github/lib/github.js -var require_github = __commonJS({ - "../node_modules/.pnpm/@actions+github@6.0.0/node_modules/@actions/github/lib/github.js"(exports2) { +// ../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/parse.js +var require_parse2 = __commonJS({ + "../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/parse.js"(exports2, module2) { "use strict"; - var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; + var stringify4 = require_stringify(); + var { + MAX_LENGTH, + CHAR_BACKSLASH, + /* \ */ + CHAR_BACKTICK, + /* ` */ + CHAR_COMMA, + /* , */ + CHAR_DOT, + /* . */ + CHAR_LEFT_PARENTHESES, + /* ( */ + CHAR_RIGHT_PARENTHESES, + /* ) */ + CHAR_LEFT_CURLY_BRACE, + /* { */ + CHAR_RIGHT_CURLY_BRACE, + /* } */ + CHAR_LEFT_SQUARE_BRACKET, + /* [ */ + CHAR_RIGHT_SQUARE_BRACKET, + /* ] */ + CHAR_DOUBLE_QUOTE, + /* " */ + CHAR_SINGLE_QUOTE, + /* ' */ + CHAR_NO_BREAK_SPACE, + CHAR_ZERO_WIDTH_NOBREAK_SPACE + } = require_constants5(); + var parse5 = (input, options = {}) => { + if (typeof input !== "string") { + throw new TypeError("Expected a string"); } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = exports2 && exports2.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result, mod, k); + let opts = options || {}; + let max4 = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + if (input.length > max4) { + throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max4})`); } - __setModuleDefault(result, mod); - return result; + let ast = { type: "root", input, nodes: [] }; + let stack = [ast]; + let block = ast; + let prev = ast; + let brackets = 0; + let length = input.length; + let index = 0; + let depth = 0; + let value; + let memo = {}; + const advance = () => input[index++]; + const push = (node) => { + if (node.type === "text" && prev.type === "dot") { + prev.type = "text"; + } + if (prev && prev.type === "text" && node.type === "text") { + prev.value += node.value; + return; + } + block.nodes.push(node); + node.parent = block; + node.prev = prev; + prev = node; + return node; + }; + push({ type: "bos" }); + while (index < length) { + block = stack[stack.length - 1]; + value = advance(); + if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { + continue; + } + if (value === CHAR_BACKSLASH) { + push({ type: "text", value: (options.keepEscaping ? value : "") + advance() }); + continue; + } + if (value === CHAR_RIGHT_SQUARE_BRACKET) { + push({ type: "text", value: "\\" + value }); + continue; + } + if (value === CHAR_LEFT_SQUARE_BRACKET) { + brackets++; + let closed = true; + let next; + while (index < length && (next = advance())) { + value += next; + if (next === CHAR_LEFT_SQUARE_BRACKET) { + brackets++; + continue; + } + if (next === CHAR_BACKSLASH) { + value += advance(); + continue; + } + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + brackets--; + if (brackets === 0) { + break; + } + } + } + push({ type: "text", value }); + continue; + } + if (value === CHAR_LEFT_PARENTHESES) { + block = push({ type: "paren", nodes: [] }); + stack.push(block); + push({ type: "text", value }); + continue; + } + if (value === CHAR_RIGHT_PARENTHESES) { + if (block.type !== "paren") { + push({ type: "text", value }); + continue; + } + block = stack.pop(); + push({ type: "text", value }); + block = stack[stack.length - 1]; + continue; + } + if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { + let open = value; + let next; + if (options.keepQuotes !== true) { + value = ""; + } + while (index < length && (next = advance())) { + if (next === CHAR_BACKSLASH) { + value += next + advance(); + continue; + } + if (next === open) { + if (options.keepQuotes === true) + value += next; + break; + } + value += next; + } + push({ type: "text", value }); + continue; + } + if (value === CHAR_LEFT_CURLY_BRACE) { + depth++; + let dollar = prev.value && prev.value.slice(-1) === "$" || block.dollar === true; + let brace = { + type: "brace", + open: true, + close: false, + dollar, + depth, + commas: 0, + ranges: 0, + nodes: [] + }; + block = push(brace); + stack.push(block); + push({ type: "open", value }); + continue; + } + if (value === CHAR_RIGHT_CURLY_BRACE) { + if (block.type !== "brace") { + push({ type: "text", value }); + continue; + } + let type = "close"; + block = stack.pop(); + block.close = true; + push({ type, value }); + depth--; + block = stack[stack.length - 1]; + continue; + } + if (value === CHAR_COMMA && depth > 0) { + if (block.ranges > 0) { + block.ranges = 0; + let open = block.nodes.shift(); + block.nodes = [open, { type: "text", value: stringify4(block) }]; + } + push({ type: "comma", value }); + block.commas++; + continue; + } + if (value === CHAR_DOT && depth > 0 && block.commas === 0) { + let siblings = block.nodes; + if (depth === 0 || siblings.length === 0) { + push({ type: "text", value }); + continue; + } + if (prev.type === "dot") { + block.range = []; + prev.value += value; + prev.type = "range"; + if (block.nodes.length !== 3 && block.nodes.length !== 5) { + block.invalid = true; + block.ranges = 0; + prev.type = "text"; + continue; + } + block.ranges++; + block.args = []; + continue; + } + if (prev.type === "range") { + siblings.pop(); + let before = siblings[siblings.length - 1]; + before.value += prev.value + value; + prev = before; + block.ranges--; + continue; + } + push({ type: "dot", value }); + continue; + } + push({ type: "text", value }); + } + do { + block = stack.pop(); + if (block.type !== "root") { + block.nodes.forEach((node) => { + if (!node.nodes) { + if (node.type === "open") + node.isOpen = true; + if (node.type === "close") + node.isClose = true; + if (!node.nodes) + node.type = "text"; + node.invalid = true; + } + }); + let parent = stack[stack.length - 1]; + let index2 = parent.nodes.indexOf(block); + parent.nodes.splice(index2, 1, ...block.nodes); + } + } while (stack.length > 0); + push({ type: "eos" }); + return ast; }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.getOctokit = exports2.context = void 0; - var Context2 = __importStar(require_context()); - var utils_1 = require_utils4(); - exports2.context = new Context2.Context(); - function getOctokit2(token, options, ...additionalPlugins) { - const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins); - return new GitHubWithPlugins((0, utils_1.getOctokitOptions)(token, options)); - } - exports2.getOctokit = getOctokit2; + module2.exports = parse5; } }); -// ../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/utils.js -var require_utils5 = __commonJS({ - "../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/utils.js"(exports2) { +// ../node_modules/.pnpm/braces@3.0.2/node_modules/braces/index.js +var require_braces = __commonJS({ + "../node_modules/.pnpm/braces@3.0.2/node_modules/braces/index.js"(exports2, module2) { "use strict"; - exports2.isInteger = (num) => { - if (typeof num === "number") { - return Number.isInteger(num); + var stringify4 = require_stringify(); + var compile = require_compile(); + var expand = require_expand(); + var parse5 = require_parse2(); + var braces = (input, options = {}) => { + let output = []; + if (Array.isArray(input)) { + for (let pattern of input) { + let result = braces.create(pattern, options); + if (Array.isArray(result)) { + output.push(...result); + } else { + output.push(result); + } + } + } else { + output = [].concat(braces.create(input, options)); } - if (typeof num === "string" && num.trim() !== "") { - return Number.isInteger(Number(num)); + if (options && options.expand === true && options.nodupes === true) { + output = [...new Set(output)]; } - return false; - }; - exports2.find = (node, type) => node.nodes.find((node2) => node2.type === type); - exports2.exceedsLimit = (min3, max4, step = 1, limit) => { - if (limit === false) - return false; - if (!exports2.isInteger(min3) || !exports2.isInteger(max4)) - return false; - return (Number(max4) - Number(min3)) / Number(step) >= limit; + return output; }; - exports2.escapeNode = (block, n = 0, type) => { - let node = block.nodes[n]; - if (!node) - return; - if (type && node.type === type || node.type === "open" || node.type === "close") { - if (node.escaped !== true) { - node.value = "\\" + node.value; - node.escaped = true; - } + braces.parse = (input, options = {}) => parse5(input, options); + braces.stringify = (input, options = {}) => { + if (typeof input === "string") { + return stringify4(braces.parse(input, options), options); } + return stringify4(input, options); }; - exports2.encloseBrace = (node) => { - if (node.type !== "brace") - return false; - if (node.commas >> 0 + node.ranges >> 0 === 0) { - node.invalid = true; - return true; + braces.compile = (input, options = {}) => { + if (typeof input === "string") { + input = braces.parse(input, options); } - return false; + return compile(input, options); }; - exports2.isInvalidBrace = (block) => { - if (block.type !== "brace") - return false; - if (block.invalid === true || block.dollar) - return true; - if (block.commas >> 0 + block.ranges >> 0 === 0) { - block.invalid = true; - return true; + braces.expand = (input, options = {}) => { + if (typeof input === "string") { + input = braces.parse(input, options); } - if (block.open !== true || block.close !== true) { - block.invalid = true; - return true; + let result = expand(input, options); + if (options.noempty === true) { + result = result.filter(Boolean); } - return false; + if (options.nodupes === true) { + result = [...new Set(result)]; + } + return result; }; - exports2.isOpenOrClose = (node) => { - if (node.type === "open" || node.type === "close") { - return true; + braces.create = (input, options = {}) => { + if (input === "" || input.length < 3) { + return [input]; } - return node.open === true || node.close === true; - }; - exports2.reduce = (nodes) => nodes.reduce((acc, node) => { - if (node.type === "text") - acc.push(node.value); - if (node.type === "range") - node.type = "text"; - return acc; - }, []); - exports2.flatten = (...args) => { - const result = []; - const flat = (arr) => { - for (let i = 0; i < arr.length; i++) { - let ele = arr[i]; - Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele); - } - return result; - }; - flat(args); - return result; + return options.expand !== true ? braces.compile(input, options) : braces.expand(input, options); }; + module2.exports = braces; } }); -// ../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/stringify.js -var require_stringify = __commonJS({ - "../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/stringify.js"(exports2, module2) { +// ../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/constants.js +var require_constants6 = __commonJS({ + "../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/constants.js"(exports2, module2) { "use strict"; - var utils = require_utils5(); - module2.exports = (ast, options = {}) => { - let stringify4 = (node, parent = {}) => { - let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); - let invalidNode = node.invalid === true && options.escapeInvalid === true; - let output = ""; - if (node.value) { - if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { - return "\\" + node.value; - } - return node.value; - } - if (node.value) { - return node.value; - } - if (node.nodes) { - for (let child of node.nodes) { - output += stringify4(child); - } - } - return output; - }; - return stringify4(ast); + var path26 = require("path"); + var WIN_SLASH = "\\\\/"; + var WIN_NO_SLASH = `[^${WIN_SLASH}]`; + var DOT_LITERAL = "\\."; + var PLUS_LITERAL = "\\+"; + var QMARK_LITERAL = "\\?"; + var SLASH_LITERAL = "\\/"; + var ONE_CHAR = "(?=.)"; + var QMARK = "[^/]"; + var END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; + var START_ANCHOR = `(?:^|${SLASH_LITERAL})`; + var DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; + var NO_DOT = `(?!${DOT_LITERAL})`; + var NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; + var NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; + var NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; + var QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; + var STAR = `${QMARK}*?`; + var POSIX_CHARS = { + DOT_LITERAL, + PLUS_LITERAL, + QMARK_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + QMARK, + END_ANCHOR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK_NO_DOT, + STAR, + START_ANCHOR + }; + var WINDOWS_CHARS = { + ...POSIX_CHARS, + SLASH_LITERAL: `[${WIN_SLASH}]`, + QMARK: WIN_NO_SLASH, + STAR: `${WIN_NO_SLASH}*?`, + DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, + NO_DOT: `(?!${DOT_LITERAL})`, + NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, + NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + QMARK_NO_DOT: `[^.${WIN_SLASH}]`, + START_ANCHOR: `(?:^|[${WIN_SLASH}])`, + END_ANCHOR: `(?:[${WIN_SLASH}]|$)` + }; + var POSIX_REGEX_SOURCE = { + alnum: "a-zA-Z0-9", + alpha: "a-zA-Z", + ascii: "\\x00-\\x7F", + blank: " \\t", + cntrl: "\\x00-\\x1F\\x7F", + digit: "0-9", + graph: "\\x21-\\x7E", + lower: "a-z", + print: "\\x20-\\x7E ", + punct: "\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~", + space: " \\t\\r\\n\\v\\f", + upper: "A-Z", + word: "A-Za-z0-9_", + xdigit: "A-Fa-f0-9" + }; + module2.exports = { + MAX_LENGTH: 1024 * 64, + POSIX_REGEX_SOURCE, + // regular expressions + REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, + REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, + REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, + REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, + REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, + REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, + // Replace globs with equivalent patterns to reduce parsing time. + REPLACEMENTS: { + "***": "*", + "**/**": "**", + "**/**/**": "**" + }, + // Digits + CHAR_0: 48, + /* 0 */ + CHAR_9: 57, + /* 9 */ + // Alphabet chars. + CHAR_UPPERCASE_A: 65, + /* A */ + CHAR_LOWERCASE_A: 97, + /* a */ + CHAR_UPPERCASE_Z: 90, + /* Z */ + CHAR_LOWERCASE_Z: 122, + /* z */ + CHAR_LEFT_PARENTHESES: 40, + /* ( */ + CHAR_RIGHT_PARENTHESES: 41, + /* ) */ + CHAR_ASTERISK: 42, + /* * */ + // Non-alphabetic chars. + CHAR_AMPERSAND: 38, + /* & */ + CHAR_AT: 64, + /* @ */ + CHAR_BACKWARD_SLASH: 92, + /* \ */ + CHAR_CARRIAGE_RETURN: 13, + /* \r */ + CHAR_CIRCUMFLEX_ACCENT: 94, + /* ^ */ + CHAR_COLON: 58, + /* : */ + CHAR_COMMA: 44, + /* , */ + CHAR_DOT: 46, + /* . */ + CHAR_DOUBLE_QUOTE: 34, + /* " */ + CHAR_EQUAL: 61, + /* = */ + CHAR_EXCLAMATION_MARK: 33, + /* ! */ + CHAR_FORM_FEED: 12, + /* \f */ + CHAR_FORWARD_SLASH: 47, + /* / */ + CHAR_GRAVE_ACCENT: 96, + /* ` */ + CHAR_HASH: 35, + /* # */ + CHAR_HYPHEN_MINUS: 45, + /* - */ + CHAR_LEFT_ANGLE_BRACKET: 60, + /* < */ + CHAR_LEFT_CURLY_BRACE: 123, + /* { */ + CHAR_LEFT_SQUARE_BRACKET: 91, + /* [ */ + CHAR_LINE_FEED: 10, + /* \n */ + CHAR_NO_BREAK_SPACE: 160, + /* \u00A0 */ + CHAR_PERCENT: 37, + /* % */ + CHAR_PLUS: 43, + /* + */ + CHAR_QUESTION_MARK: 63, + /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: 62, + /* > */ + CHAR_RIGHT_CURLY_BRACE: 125, + /* } */ + CHAR_RIGHT_SQUARE_BRACKET: 93, + /* ] */ + CHAR_SEMICOLON: 59, + /* ; */ + CHAR_SINGLE_QUOTE: 39, + /* ' */ + CHAR_SPACE: 32, + /* */ + CHAR_TAB: 9, + /* \t */ + CHAR_UNDERSCORE: 95, + /* _ */ + CHAR_VERTICAL_LINE: 124, + /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, + /* \uFEFF */ + SEP: path26.sep, + /** + * Create EXTGLOB_CHARS + */ + extglobChars(chars) { + return { + "!": { type: "negate", open: "(?:(?!(?:", close: `))${chars.STAR})` }, + "?": { type: "qmark", open: "(?:", close: ")?" }, + "+": { type: "plus", open: "(?:", close: ")+" }, + "*": { type: "star", open: "(?:", close: ")*" }, + "@": { type: "at", open: "(?:", close: ")" } + }; + }, + /** + * Create GLOB_CHARS + */ + globChars(win32) { + return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; + } }; } }); -// ../node_modules/.pnpm/is-number@7.0.0/node_modules/is-number/index.js -var require_is_number = __commonJS({ - "../node_modules/.pnpm/is-number@7.0.0/node_modules/is-number/index.js"(exports2, module2) { +// ../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/utils.js +var require_utils4 = __commonJS({ + "../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/utils.js"(exports2) { "use strict"; - module2.exports = function(num) { - if (typeof num === "number") { - return num - num === 0; - } - if (typeof num === "string" && num.trim() !== "") { - return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); + var path26 = require("path"); + var win32 = process.platform === "win32"; + var { + REGEX_BACKSLASH, + REGEX_REMOVE_BACKSLASH, + REGEX_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_GLOBAL + } = require_constants6(); + exports2.isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val); + exports2.hasRegexChars = (str) => REGEX_SPECIAL_CHARS.test(str); + exports2.isRegexChar = (str) => str.length === 1 && exports2.hasRegexChars(str); + exports2.escapeRegex = (str) => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, "\\$1"); + exports2.toPosixSlashes = (str) => str.replace(REGEX_BACKSLASH, "/"); + exports2.removeBackslashes = (str) => { + return str.replace(REGEX_REMOVE_BACKSLASH, (match2) => { + return match2 === "\\" ? "" : match2; + }); + }; + exports2.supportsLookbehinds = () => { + const segs = process.version.slice(1).split(".").map(Number); + if (segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10) { + return true; } return false; }; + exports2.isWindows = (options) => { + if (options && typeof options.windows === "boolean") { + return options.windows; + } + return win32 === true || path26.sep === "\\"; + }; + exports2.escapeLast = (input, char, lastIdx) => { + const idx2 = input.lastIndexOf(char, lastIdx); + if (idx2 === -1) + return input; + if (input[idx2 - 1] === "\\") + return exports2.escapeLast(input, char, idx2 - 1); + return `${input.slice(0, idx2)}\\${input.slice(idx2)}`; + }; + exports2.removePrefix = (input, state = {}) => { + let output = input; + if (output.startsWith("./")) { + output = output.slice(2); + state.prefix = "./"; + } + return output; + }; + exports2.wrapOutput = (input, state = {}, options = {}) => { + const prepend = options.contains ? "" : "^"; + const append = options.contains ? "" : "$"; + let output = `${prepend}(?:${input})${append}`; + if (state.negated === true) { + output = `(?:^(?!${output}).*$)`; + } + return output; + }; } }); -// ../node_modules/.pnpm/to-regex-range@5.0.1/node_modules/to-regex-range/index.js -var require_to_regex_range = __commonJS({ - "../node_modules/.pnpm/to-regex-range@5.0.1/node_modules/to-regex-range/index.js"(exports2, module2) { +// ../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/scan.js +var require_scan = __commonJS({ + "../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/scan.js"(exports2, module2) { "use strict"; - var isNumber = require_is_number(); - var toRegexRange = (min3, max4, options) => { - if (isNumber(min3) === false) { - throw new TypeError("toRegexRange: expected the first argument to be a number"); - } - if (max4 === void 0 || min3 === max4) { - return String(min3); - } - if (isNumber(max4) === false) { - throw new TypeError("toRegexRange: expected the second argument to be a number."); - } - let opts = { relaxZeros: true, ...options }; - if (typeof opts.strictZeros === "boolean") { - opts.relaxZeros = opts.strictZeros === false; - } - let relax = String(opts.relaxZeros); - let shorthand = String(opts.shorthand); - let capture = String(opts.capture); - let wrap = String(opts.wrap); - let cacheKey = min3 + ":" + max4 + "=" + relax + shorthand + capture + wrap; - if (toRegexRange.cache.hasOwnProperty(cacheKey)) { - return toRegexRange.cache[cacheKey].result; - } - let a = Math.min(min3, max4); - let b = Math.max(min3, max4); - if (Math.abs(a - b) === 1) { - let result = min3 + "|" + max4; - if (opts.capture) { - return `(${result})`; - } - if (opts.wrap === false) { - return result; - } - return `(?:${result})`; - } - let isPadded = hasPadding(min3) || hasPadding(max4); - let state = { min: min3, max: max4, a, b }; - let positives = []; - let negatives = []; - if (isPadded) { - state.isPadded = isPadded; - state.maxLen = String(state.max).length; - } - if (a < 0) { - let newMin = b < 0 ? Math.abs(b) : 1; - negatives = splitToPatterns(newMin, Math.abs(a), state, opts); - a = state.a = 0; - } - if (b >= 0) { - positives = splitToPatterns(a, b, state, opts); - } - state.negatives = negatives; - state.positives = positives; - state.result = collatePatterns(negatives, positives, opts); - if (opts.capture === true) { - state.result = `(${state.result})`; - } else if (opts.wrap !== false && positives.length + negatives.length > 1) { - state.result = `(?:${state.result})`; - } - toRegexRange.cache[cacheKey] = state; - return state.result; + var utils = require_utils4(); + var { + CHAR_ASTERISK, + /* * */ + CHAR_AT, + /* @ */ + CHAR_BACKWARD_SLASH, + /* \ */ + CHAR_COMMA, + /* , */ + CHAR_DOT, + /* . */ + CHAR_EXCLAMATION_MARK, + /* ! */ + CHAR_FORWARD_SLASH, + /* / */ + CHAR_LEFT_CURLY_BRACE, + /* { */ + CHAR_LEFT_PARENTHESES, + /* ( */ + CHAR_LEFT_SQUARE_BRACKET, + /* [ */ + CHAR_PLUS, + /* + */ + CHAR_QUESTION_MARK, + /* ? */ + CHAR_RIGHT_CURLY_BRACE, + /* } */ + CHAR_RIGHT_PARENTHESES, + /* ) */ + CHAR_RIGHT_SQUARE_BRACKET + /* ] */ + } = require_constants6(); + var isPathSeparator = (code) => { + return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; }; - function collatePatterns(neg, pos, options) { - let onlyNegative = filterPatterns(neg, pos, "-", false, options) || []; - let onlyPositive = filterPatterns(pos, neg, "", false, options) || []; - let intersected = filterPatterns(neg, pos, "-?", true, options) || []; - let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); - return subpatterns.join("|"); - } - function splitToRanges(min3, max4) { - let nines = 1; - let zeros = 1; - let stop = countNines(min3, nines); - let stops = /* @__PURE__ */ new Set([max4]); - while (min3 <= stop && stop <= max4) { - stops.add(stop); - nines += 1; - stop = countNines(min3, nines); - } - stop = countZeros(max4 + 1, zeros) - 1; - while (min3 < stop && stop <= max4) { - stops.add(stop); - zeros += 1; - stop = countZeros(max4 + 1, zeros) - 1; - } - stops = [...stops]; - stops.sort(compare4); - return stops; - } - function rangeToPattern(start, stop, options) { - if (start === stop) { - return { pattern: start, count: [], digits: 0 }; - } - let zipped = zip(start, stop); - let digits = zipped.length; - let pattern = ""; - let count3 = 0; - for (let i = 0; i < digits; i++) { - let [startDigit, stopDigit] = zipped[i]; - if (startDigit === stopDigit) { - pattern += startDigit; - } else if (startDigit !== "0" || stopDigit !== "9") { - pattern += toCharacterClass(startDigit, stopDigit, options); - } else { - count3++; - } - } - if (count3) { - pattern += options.shorthand === true ? "\\d" : "[0-9]"; + var depth = (token) => { + if (token.isPrefix !== true) { + token.depth = token.isGlobstar ? Infinity : 1; } - return { pattern, count: [count3], digits }; - } - function splitToPatterns(min3, max4, tok, options) { - let ranges = splitToRanges(min3, max4); - let tokens = []; - let start = min3; + }; + var scan3 = (input, options) => { + const opts = options || {}; + const length = input.length - 1; + const scanToEnd = opts.parts === true || opts.scanToEnd === true; + const slashes = []; + const tokens = []; + const parts = []; + let str = input; + let index = -1; + let start = 0; + let lastIndex = 0; + let isBrace = false; + let isBracket = false; + let isGlob = false; + let isExtglob = false; + let isGlobstar = false; + let braceEscaped = false; + let backslashes = false; + let negated = false; + let negatedExtglob = false; + let finished = false; + let braces = 0; let prev; - for (let i = 0; i < ranges.length; i++) { - let max5 = ranges[i]; - let obj = rangeToPattern(String(start), String(max5), options); - let zeros = ""; - if (!tok.isPadded && prev && prev.pattern === obj.pattern) { - if (prev.count.length > 1) { - prev.count.pop(); + let code; + let token = { value: "", depth: 0, isGlob: false }; + const eos = () => index >= length; + const peek = () => str.charCodeAt(index + 1); + const advance = () => { + prev = code; + return str.charCodeAt(++index); + }; + while (index < length) { + code = advance(); + let next; + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + if (code === CHAR_LEFT_CURLY_BRACE) { + braceEscaped = true; } - prev.count.push(obj.count[0]); - prev.string = prev.pattern + toQuantifier(prev.count); - start = max5 + 1; continue; } - if (tok.isPadded) { - zeros = padZeros(max5, tok, options); - } - obj.string = zeros + obj.pattern + toQuantifier(obj.count); - tokens.push(obj); - start = max5 + 1; - prev = obj; - } - return tokens; - } - function filterPatterns(arr, comparison, prefix, intersection, options) { - let result = []; - for (let ele of arr) { - let { string } = ele; - if (!intersection && !contains2(comparison, "string", string)) { - result.push(prefix + string); + if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { + braces++; + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } + if (code === CHAR_LEFT_CURLY_BRACE) { + braces++; + continue; + } + if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + if (scanToEnd === true) { + continue; + } + break; + } + if (braceEscaped !== true && code === CHAR_COMMA) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + if (scanToEnd === true) { + continue; + } + break; + } + if (code === CHAR_RIGHT_CURLY_BRACE) { + braces--; + if (braces === 0) { + braceEscaped = false; + isBrace = token.isBrace = true; + finished = true; + break; + } + } + } + if (scanToEnd === true) { + continue; + } + break; } - if (intersection && contains2(comparison, "string", string)) { - result.push(prefix + string); + if (code === CHAR_FORWARD_SLASH) { + slashes.push(index); + tokens.push(token); + token = { value: "", depth: 0, isGlob: false }; + if (finished === true) + continue; + if (prev === CHAR_DOT && index === start + 1) { + start += 2; + continue; + } + lastIndex = index + 1; + continue; } - } - return result; - } - function zip(a, b) { - let arr = []; - for (let i = 0; i < a.length; i++) - arr.push([a[i], b[i]]); - return arr; - } - function compare4(a, b) { - return a > b ? 1 : b > a ? -1 : 0; - } - function contains2(arr, key, val) { - return arr.some((ele) => ele[key] === val); - } - function countNines(min3, len) { - return Number(String(min3).slice(0, -len) + "9".repeat(len)); - } - function countZeros(integer, zeros) { - return integer - integer % Math.pow(10, zeros); - } - function toQuantifier(digits) { - let [start = 0, stop = ""] = digits; - if (stop || start > 1) { - return `{${start + (stop ? "," + stop : "")}}`; - } - return ""; - } - function toCharacterClass(a, b, options) { - return `[${a}${b - a === 1 ? "" : "-"}${b}]`; - } - function hasPadding(str) { - return /^-?(0+)\d/.test(str); - } - function padZeros(value, tok, options) { - if (!tok.isPadded) { - return value; - } - let diff = Math.abs(tok.maxLen - String(value).length); - let relax = options.relaxZeros !== false; - switch (diff) { - case 0: - return ""; - case 1: - return relax ? "0?" : "0"; - case 2: - return relax ? "0{0,2}" : "00"; - default: { - return relax ? `0{0,${diff}}` : `0{${diff}}`; + if (opts.noext !== true) { + const isExtglobChar = code === CHAR_PLUS || code === CHAR_AT || code === CHAR_ASTERISK || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK; + if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + isExtglob = token.isExtglob = true; + finished = true; + if (code === CHAR_EXCLAMATION_MARK && index === start) { + negatedExtglob = true; + } + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + if (code === CHAR_RIGHT_PARENTHESES) { + isGlob = token.isGlob = true; + finished = true; + break; + } + } + continue; + } + break; + } + } + if (code === CHAR_ASTERISK) { + if (prev === CHAR_ASTERISK) + isGlobstar = token.isGlobstar = true; + isGlob = token.isGlob = true; + finished = true; + if (scanToEnd === true) { + continue; + } + break; + } + if (code === CHAR_QUESTION_MARK) { + isGlob = token.isGlob = true; + finished = true; + if (scanToEnd === true) { + continue; + } + break; + } + if (code === CHAR_LEFT_SQUARE_BRACKET) { + while (eos() !== true && (next = advance())) { + if (next === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + isBracket = token.isBracket = true; + isGlob = token.isGlob = true; + finished = true; + break; + } + } + if (scanToEnd === true) { + continue; + } + break; + } + if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { + negated = token.negated = true; + start++; + continue; + } + if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_LEFT_PARENTHESES) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + if (code === CHAR_RIGHT_PARENTHESES) { + finished = true; + break; + } + } + continue; + } + break; + } + if (isGlob === true) { + finished = true; + if (scanToEnd === true) { + continue; + } + break; } } - } - toRegexRange.cache = {}; - toRegexRange.clearCache = () => toRegexRange.cache = {}; - module2.exports = toRegexRange; - } -}); - -// ../node_modules/.pnpm/fill-range@7.0.1/node_modules/fill-range/index.js -var require_fill_range = __commonJS({ - "../node_modules/.pnpm/fill-range@7.0.1/node_modules/fill-range/index.js"(exports2, module2) { - "use strict"; - var util = require("util"); - var toRegexRange = require_to_regex_range(); - var isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val); - var transform2 = (toNumber) => { - return (value) => toNumber === true ? Number(value) : String(value); - }; - var isValidValue = (value) => { - return typeof value === "number" || typeof value === "string" && value !== ""; - }; - var isNumber = (num) => Number.isInteger(+num); - var zeros = (input) => { - let value = `${input}`; - let index = -1; - if (value[0] === "-") - value = value.slice(1); - if (value === "0") - return false; - while (value[++index] === "0") - ; - return index > 0; - }; - var stringify4 = (start, end, options) => { - if (typeof start === "string" || typeof end === "string") { - return true; - } - return options.stringify === true; - }; - var pad = (input, maxLength, toNumber) => { - if (maxLength > 0) { - let dash = input[0] === "-" ? "-" : ""; - if (dash) - input = input.slice(1); - input = dash + input.padStart(dash ? maxLength - 1 : maxLength, "0"); + if (opts.noext === true) { + isExtglob = false; + isGlob = false; } - if (toNumber === false) { - return String(input); + let base = str; + let prefix = ""; + let glob2 = ""; + if (start > 0) { + prefix = str.slice(0, start); + str = str.slice(start); + lastIndex -= start; } - return input; - }; - var toMaxLen = (input, maxLength) => { - let negative = input[0] === "-" ? "-" : ""; - if (negative) { - input = input.slice(1); - maxLength--; + if (base && isGlob === true && lastIndex > 0) { + base = str.slice(0, lastIndex); + glob2 = str.slice(lastIndex); + } else if (isGlob === true) { + base = ""; + glob2 = str; + } else { + base = str; } - while (input.length < maxLength) - input = "0" + input; - return negative ? "-" + input : input; - }; - var toSequence = (parts, options) => { - parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); - parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); - let prefix = options.capture ? "" : "?:"; - let positives = ""; - let negatives = ""; - let result; - if (parts.positives.length) { - positives = parts.positives.join("|"); + if (base && base !== "" && base !== "/" && base !== str) { + if (isPathSeparator(base.charCodeAt(base.length - 1))) { + base = base.slice(0, -1); + } } - if (parts.negatives.length) { - negatives = `-(${prefix}${parts.negatives.join("|")})`; + if (opts.unescape === true) { + if (glob2) + glob2 = utils.removeBackslashes(glob2); + if (base && backslashes === true) { + base = utils.removeBackslashes(base); + } } - if (positives && negatives) { - result = `${positives}|${negatives}`; - } else { - result = positives || negatives; + const state = { + prefix, + input, + start, + base, + glob: glob2, + isBrace, + isBracket, + isGlob, + isExtglob, + isGlobstar, + negated, + negatedExtglob + }; + if (opts.tokens === true) { + state.maxDepth = 0; + if (!isPathSeparator(code)) { + tokens.push(token); + } + state.tokens = tokens; } - if (options.wrap) { - return `(${prefix}${result})`; + if (opts.parts === true || opts.tokens === true) { + let prevIndex; + for (let idx2 = 0; idx2 < slashes.length; idx2++) { + const n = prevIndex ? prevIndex + 1 : start; + const i = slashes[idx2]; + const value = input.slice(n, i); + if (opts.tokens) { + if (idx2 === 0 && start !== 0) { + tokens[idx2].isPrefix = true; + tokens[idx2].value = prefix; + } else { + tokens[idx2].value = value; + } + depth(tokens[idx2]); + state.maxDepth += tokens[idx2].depth; + } + if (idx2 !== 0 || value !== "") { + parts.push(value); + } + prevIndex = i; + } + if (prevIndex && prevIndex + 1 < input.length) { + const value = input.slice(prevIndex + 1); + parts.push(value); + if (opts.tokens) { + tokens[tokens.length - 1].value = value; + depth(tokens[tokens.length - 1]); + state.maxDepth += tokens[tokens.length - 1].depth; + } + } + state.slashes = slashes; + state.parts = parts; } - return result; + return state; }; - var toRange = (a, b, isNumbers, options) => { - if (isNumbers) { - return toRegexRange(a, b, { wrap: false, ...options }); + module2.exports = scan3; + } +}); + +// ../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/parse.js +var require_parse3 = __commonJS({ + "../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/parse.js"(exports2, module2) { + "use strict"; + var constants = require_constants6(); + var utils = require_utils4(); + var { + MAX_LENGTH, + POSIX_REGEX_SOURCE, + REGEX_NON_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_BACKREF, + REPLACEMENTS + } = constants; + var expandRange2 = (args, options) => { + if (typeof options.expandRange === "function") { + return options.expandRange(...args, options); } - let start = String.fromCharCode(a); - if (a === b) - return start; - let stop = String.fromCharCode(b); - return `[${start}-${stop}]`; - }; - var toRegex = (start, end, options) => { - if (Array.isArray(start)) { - let wrap = options.wrap === true; - let prefix = options.capture ? "" : "?:"; - return wrap ? `(${prefix}${start.join("|")})` : start.join("|"); + args.sort(); + const value = `[${args.join("-")}]`; + try { + new RegExp(value); + } catch (ex) { + return args.map((v) => utils.escapeRegex(v)).join(".."); } - return toRegexRange(start, end, options); - }; - var rangeError = (...args) => { - return new RangeError("Invalid range arguments: " + util.inspect(...args)); - }; - var invalidRange = (start, end, options) => { - if (options.strictRanges === true) - throw rangeError([start, end]); - return []; + return value; }; - var invalidStep = (step, options) => { - if (options.strictRanges === true) { - throw new TypeError(`Expected step "${step}" to be a number`); - } - return []; + var syntaxError = (type, char) => { + return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; }; - var fillNumbers = (start, end, step = 1, options = {}) => { - let a = Number(start); - let b = Number(end); - if (!Number.isInteger(a) || !Number.isInteger(b)) { - if (options.strictRanges === true) - throw rangeError([start, end]); - return []; - } - if (a === 0) - a = 0; - if (b === 0) - b = 0; - let descending = a > b; - let startString = String(start); - let endString = String(end); - let stepString = String(step); - step = Math.max(Math.abs(step), 1); - let padded = zeros(startString) || zeros(endString) || zeros(stepString); - let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; - let toNumber = padded === false && stringify4(start, end, options) === false; - let format6 = options.transform || transform2(toNumber); - if (options.toRegex && step === 1) { - return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); - } - let parts = { negatives: [], positives: [] }; - let push = (num) => parts[num < 0 ? "negatives" : "positives"].push(Math.abs(num)); - let range = []; - let index = 0; - while (descending ? a >= b : a <= b) { - if (options.toRegex === true && step > 1) { - push(a); - } else { - range.push(pad(format6(a, index), maxLen, toNumber)); - } - a = descending ? a - step : a + step; - index++; - } - if (options.toRegex === true) { - return step > 1 ? toSequence(parts, options) : toRegex(range, null, { wrap: false, ...options }); + var parse5 = (input, options) => { + if (typeof input !== "string") { + throw new TypeError("Expected a string"); } - return range; - }; - var fillLetters = (start, end, step = 1, options = {}) => { - if (!isNumber(start) && start.length > 1 || !isNumber(end) && end.length > 1) { - return invalidRange(start, end, options); + input = REPLACEMENTS[input] || input; + const opts = { ...options }; + const max4 = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + let len = input.length; + if (len > max4) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max4}`); } - let format6 = options.transform || ((val) => String.fromCharCode(val)); - let a = `${start}`.charCodeAt(0); - let b = `${end}`.charCodeAt(0); - let descending = a > b; - let min3 = Math.min(a, b); - let max4 = Math.max(a, b); - if (options.toRegex && step === 1) { - return toRange(min3, max4, false, options); + const bos = { type: "bos", value: "", output: opts.prepend || "" }; + const tokens = [bos]; + const capture = opts.capture ? "" : "?:"; + const win32 = utils.isWindows(options); + const PLATFORM_CHARS = constants.globChars(win32); + const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS); + const { + DOT_LITERAL, + PLUS_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK, + QMARK_NO_DOT, + STAR, + START_ANCHOR + } = PLATFORM_CHARS; + const globstar = (opts2) => { + return `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + const nodot = opts.dot ? "" : NO_DOT; + const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; + let star = opts.bash === true ? globstar(opts) : STAR; + if (opts.capture) { + star = `(${star})`; } - let range = []; - let index = 0; - while (descending ? a >= b : a <= b) { - range.push(format6(a, index)); - a = descending ? a - step : a + step; - index++; + if (typeof opts.noext === "boolean") { + opts.noextglob = opts.noext; } - if (options.toRegex === true) { - return toRegex(range, null, { wrap: false, options }); - } - return range; - }; - var fill = (start, end, step, options = {}) => { - if (end == null && isValidValue(start)) { - return [start]; - } - if (!isValidValue(start) || !isValidValue(end)) { - return invalidRange(start, end, options); - } - if (typeof step === "function") { - return fill(start, end, 1, { transform: step }); - } - if (isObject(step)) { - return fill(start, end, 0, step); - } - let opts = { ...options }; - if (opts.capture === true) - opts.wrap = true; - step = step || opts.step || 1; - if (!isNumber(step)) { - if (step != null && !isObject(step)) - return invalidStep(step, opts); - return fill(start, end, 1, step); - } - if (isNumber(start) && isNumber(end)) { - return fillNumbers(start, end, step, opts); - } - return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); - }; - module2.exports = fill; - } -}); - -// ../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/compile.js -var require_compile = __commonJS({ - "../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/compile.js"(exports2, module2) { - "use strict"; - var fill = require_fill_range(); - var utils = require_utils5(); - var compile = (ast, options = {}) => { - let walk3 = (node, parent = {}) => { - let invalidBlock = utils.isInvalidBrace(parent); - let invalidNode = node.invalid === true && options.escapeInvalid === true; - let invalid = invalidBlock === true || invalidNode === true; - let prefix = options.escapeInvalid === true ? "\\" : ""; - let output = ""; - if (node.isOpen === true) { - return prefix + node.value; - } - if (node.isClose === true) { - return prefix + node.value; + const state = { + input, + index: -1, + start: 0, + dot: opts.dot === true, + consumed: "", + output: "", + prefix: "", + backtrack: false, + negated: false, + brackets: 0, + braces: 0, + parens: 0, + quotes: 0, + globstar: false, + tokens + }; + input = utils.removePrefix(input, state); + len = input.length; + const extglobs = []; + const braces = []; + const stack = []; + let prev = bos; + let value; + const eos = () => state.index === len - 1; + const peek = state.peek = (n = 1) => input[state.index + n]; + const advance = state.advance = () => input[++state.index] || ""; + const remaining = () => input.slice(state.index + 1); + const consume = (value2 = "", num = 0) => { + state.consumed += value2; + state.index += num; + }; + const append = (token) => { + state.output += token.output != null ? token.output : token.value; + consume(token.value); + }; + const negate = () => { + let count3 = 1; + while (peek() === "!" && (peek(2) !== "(" || peek(3) === "?")) { + advance(); + state.start++; + count3++; } - if (node.type === "open") { - return invalid ? prefix + node.value : "("; + if (count3 % 2 === 0) { + return false; } - if (node.type === "close") { - return invalid ? prefix + node.value : ")"; + state.negated = true; + state.start++; + return true; + }; + const increment = (type) => { + state[type]++; + stack.push(type); + }; + const decrement = (type) => { + state[type]--; + stack.pop(); + }; + const push = (tok) => { + if (prev.type === "globstar") { + const isBrace = state.braces > 0 && (tok.type === "comma" || tok.type === "brace"); + const isExtglob = tok.extglob === true || extglobs.length && (tok.type === "pipe" || tok.type === "paren"); + if (tok.type !== "slash" && tok.type !== "paren" && !isBrace && !isExtglob) { + state.output = state.output.slice(0, -prev.output.length); + prev.type = "star"; + prev.value = "*"; + prev.output = star; + state.output += prev.output; + } } - if (node.type === "comma") { - return node.prev.type === "comma" ? "" : invalid ? node.value : "|"; + if (extglobs.length && tok.type !== "paren") { + extglobs[extglobs.length - 1].inner += tok.value; } - if (node.value) { - return node.value; + if (tok.value || tok.output) + append(tok); + if (prev && prev.type === "text" && tok.type === "text") { + prev.value += tok.value; + prev.output = (prev.output || "") + tok.value; + return; } - if (node.nodes && node.ranges > 0) { - let args = utils.reduce(node.nodes); - let range = fill(...args, { ...options, wrap: false, toRegex: true }); - if (range.length !== 0) { - return args.length > 1 && range.length > 1 ? `(${range})` : range; + tok.prev = prev; + tokens.push(tok); + prev = tok; + }; + const extglobOpen = (type, value2) => { + const token = { ...EXTGLOB_CHARS[value2], conditions: 1, inner: "" }; + token.prev = prev; + token.parens = state.parens; + token.output = state.output; + const output = (opts.capture ? "(" : "") + token.open; + increment("parens"); + push({ type, value: value2, output: state.output ? "" : ONE_CHAR }); + push({ type: "paren", extglob: true, value: advance(), output }); + extglobs.push(token); + }; + const extglobClose = (token) => { + let output = token.close + (opts.capture ? ")" : ""); + let rest; + if (token.type === "negate") { + let extglobStar = star; + if (token.inner && token.inner.length > 1 && token.inner.includes("/")) { + extglobStar = globstar(opts); } - } - if (node.nodes) { - for (let child of node.nodes) { - output += walk3(child, node); + if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { + output = token.close = `)$))${extglobStar}`; + } + if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { + const expression = parse5(rest, { ...options, fastpaths: false }).output; + output = token.close = `)${expression})${extglobStar})`; + } + if (token.prev.type === "bos") { + state.negatedExtglob = true; } } - return output; + push({ type: "paren", extglob: true, value, output }); + decrement("parens"); }; - return walk3(ast); - }; - module2.exports = compile; - } -}); - -// ../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/expand.js -var require_expand = __commonJS({ - "../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/expand.js"(exports2, module2) { - "use strict"; - var fill = require_fill_range(); - var stringify4 = require_stringify(); - var utils = require_utils5(); - var append = (queue = "", stash = "", enclose = false) => { - let result = []; - queue = [].concat(queue); - stash = [].concat(stash); - if (!stash.length) - return queue; - if (!queue.length) { - return enclose ? utils.flatten(stash).map((ele) => `{${ele}}`) : stash; - } - for (let item of queue) { - if (Array.isArray(item)) { - for (let value of item) { - result.push(append(value, stash, enclose)); + if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { + let backslashes = false; + let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first3, rest, index) => { + if (first3 === "\\") { + backslashes = true; + return m; } - } else { - for (let ele of stash) { - if (enclose === true && typeof ele === "string") - ele = `{${ele}}`; - result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele); + if (first3 === "?") { + if (esc) { + return esc + first3 + (rest ? QMARK.repeat(rest.length) : ""); + } + if (index === 0) { + return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ""); + } + return QMARK.repeat(chars.length); + } + if (first3 === ".") { + return DOT_LITERAL.repeat(chars.length); + } + if (first3 === "*") { + if (esc) { + return esc + first3 + (rest ? star : ""); + } + return star; + } + return esc ? m : `\\${m}`; + }); + if (backslashes === true) { + if (opts.unescape === true) { + output = output.replace(/\\/g, ""); + } else { + output = output.replace(/\\+/g, (m) => { + return m.length % 2 === 0 ? "\\\\" : m ? "\\" : ""; + }); } } + if (output === input && opts.contains === true) { + state.output = input; + return state; + } + state.output = utils.wrapOutput(output, state, options); + return state; } - return utils.flatten(result); - }; - var expand = (ast, options = {}) => { - let rangeLimit = options.rangeLimit === void 0 ? 1e3 : options.rangeLimit; - let walk3 = (node, parent = {}) => { - node.queue = []; - let p = parent; - let q = parent.queue; - while (p.type !== "brace" && p.type !== "root" && p.parent) { - p = p.parent; - q = p.queue; + while (!eos()) { + value = advance(); + if (value === "\0") { + continue; } - if (node.invalid || node.dollar) { - q.push(append(q.pop(), stringify4(node, options))); - return; + if (value === "\\") { + const next = peek(); + if (next === "/" && opts.bash !== true) { + continue; + } + if (next === "." || next === ";") { + continue; + } + if (!next) { + value += "\\"; + push({ type: "text", value }); + continue; + } + const match2 = /^\\+/.exec(remaining()); + let slashes = 0; + if (match2 && match2[0].length > 2) { + slashes = match2[0].length; + state.index += slashes; + if (slashes % 2 !== 0) { + value += "\\"; + } + } + if (opts.unescape === true) { + value = advance(); + } else { + value += advance(); + } + if (state.brackets === 0) { + push({ type: "text", value }); + continue; + } } - if (node.type === "brace" && node.invalid !== true && node.nodes.length === 2) { - q.push(append(q.pop(), ["{}"])); - return; + if (state.brackets > 0 && (value !== "]" || prev.value === "[" || prev.value === "[^")) { + if (opts.posix !== false && value === ":") { + const inner = prev.value.slice(1); + if (inner.includes("[")) { + prev.posix = true; + if (inner.includes(":")) { + const idx2 = prev.value.lastIndexOf("["); + const pre = prev.value.slice(0, idx2); + const rest2 = prev.value.slice(idx2 + 2); + const posix4 = POSIX_REGEX_SOURCE[rest2]; + if (posix4) { + prev.value = pre + posix4; + state.backtrack = true; + advance(); + if (!bos.output && tokens.indexOf(prev) === 1) { + bos.output = ONE_CHAR; + } + continue; + } + } + } + } + if (value === "[" && peek() !== ":" || value === "-" && peek() === "]") { + value = `\\${value}`; + } + if (value === "]" && (prev.value === "[" || prev.value === "[^")) { + value = `\\${value}`; + } + if (opts.posix === true && value === "!" && prev.value === "[") { + value = "^"; + } + prev.value += value; + append({ value }); + continue; } - if (node.nodes && node.ranges > 0) { - let args = utils.reduce(node.nodes); - if (utils.exceedsLimit(...args, options.step, rangeLimit)) { - throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit."); + if (state.quotes === 1 && value !== '"') { + value = utils.escapeRegex(value); + prev.value += value; + append({ value }); + continue; + } + if (value === '"') { + state.quotes = state.quotes === 1 ? 0 : 1; + if (opts.keepQuotes === true) { + push({ type: "text", value }); } - let range = fill(...args, options); - if (range.length === 0) { - range = stringify4(node, options); + continue; + } + if (value === "(") { + increment("parens"); + push({ type: "paren", value }); + continue; + } + if (value === ")") { + if (state.parens === 0 && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError("opening", "(")); } - q.push(append(q.pop(), range)); - node.nodes = []; - return; + const extglob = extglobs[extglobs.length - 1]; + if (extglob && state.parens === extglob.parens + 1) { + extglobClose(extglobs.pop()); + continue; + } + push({ type: "paren", value, output: state.parens ? ")" : "\\)" }); + decrement("parens"); + continue; } - let enclose = utils.encloseBrace(node); - let queue = node.queue; - let block = node; - while (block.type !== "brace" && block.type !== "root" && block.parent) { - block = block.parent; - queue = block.queue; + if (value === "[") { + if (opts.nobracket === true || !remaining().includes("]")) { + if (opts.nobracket !== true && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError("closing", "]")); + } + value = `\\${value}`; + } else { + increment("brackets"); + } + push({ type: "bracket", value }); + continue; } - for (let i = 0; i < node.nodes.length; i++) { - let child = node.nodes[i]; - if (child.type === "comma" && node.type === "brace") { - if (i === 1) - queue.push(""); - queue.push(""); + if (value === "]") { + if (opts.nobracket === true || prev && prev.type === "bracket" && prev.value.length === 1) { + push({ type: "text", value, output: `\\${value}` }); continue; } - if (child.type === "close") { - q.push(append(q.pop(), queue, enclose)); + if (state.brackets === 0) { + if (opts.strictBrackets === true) { + throw new SyntaxError(syntaxError("opening", "[")); + } + push({ type: "text", value, output: `\\${value}` }); continue; } - if (child.value && child.type !== "open") { - queue.push(append(queue.pop(), child.value)); + decrement("brackets"); + const prevValue = prev.value.slice(1); + if (prev.posix !== true && prevValue[0] === "^" && !prevValue.includes("/")) { + value = `/${value}`; + } + prev.value += value; + append({ value }); + if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) { continue; } - if (child.nodes) { - walk3(child, node); + const escaped = utils.escapeRegex(prev.value); + state.output = state.output.slice(0, -prev.value.length); + if (opts.literalBrackets === true) { + state.output += escaped; + prev.value = escaped; + continue; } + prev.value = `(${capture}${escaped}|${prev.value})`; + state.output += prev.value; + continue; } - return queue; - }; - return utils.flatten(walk3(ast)); - }; - module2.exports = expand; - } -}); - -// ../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/constants.js -var require_constants5 = __commonJS({ - "../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/constants.js"(exports2, module2) { - "use strict"; - module2.exports = { - MAX_LENGTH: 1024 * 64, - // Digits - CHAR_0: "0", - /* 0 */ - CHAR_9: "9", - /* 9 */ - // Alphabet chars. - CHAR_UPPERCASE_A: "A", - /* A */ - CHAR_LOWERCASE_A: "a", - /* a */ - CHAR_UPPERCASE_Z: "Z", - /* Z */ - CHAR_LOWERCASE_Z: "z", - /* z */ - CHAR_LEFT_PARENTHESES: "(", - /* ( */ - CHAR_RIGHT_PARENTHESES: ")", - /* ) */ - CHAR_ASTERISK: "*", - /* * */ - // Non-alphabetic chars. - CHAR_AMPERSAND: "&", - /* & */ - CHAR_AT: "@", - /* @ */ - CHAR_BACKSLASH: "\\", - /* \ */ - CHAR_BACKTICK: "`", - /* ` */ - CHAR_CARRIAGE_RETURN: "\r", - /* \r */ - CHAR_CIRCUMFLEX_ACCENT: "^", - /* ^ */ - CHAR_COLON: ":", - /* : */ - CHAR_COMMA: ",", - /* , */ - CHAR_DOLLAR: "$", - /* . */ - CHAR_DOT: ".", - /* . */ - CHAR_DOUBLE_QUOTE: '"', - /* " */ - CHAR_EQUAL: "=", - /* = */ - CHAR_EXCLAMATION_MARK: "!", - /* ! */ - CHAR_FORM_FEED: "\f", - /* \f */ - CHAR_FORWARD_SLASH: "/", - /* / */ - CHAR_HASH: "#", - /* # */ - CHAR_HYPHEN_MINUS: "-", - /* - */ - CHAR_LEFT_ANGLE_BRACKET: "<", - /* < */ - CHAR_LEFT_CURLY_BRACE: "{", - /* { */ - CHAR_LEFT_SQUARE_BRACKET: "[", - /* [ */ - CHAR_LINE_FEED: "\n", - /* \n */ - CHAR_NO_BREAK_SPACE: "\xA0", - /* \u00A0 */ - CHAR_PERCENT: "%", - /* % */ - CHAR_PLUS: "+", - /* + */ - CHAR_QUESTION_MARK: "?", - /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: ">", - /* > */ - CHAR_RIGHT_CURLY_BRACE: "}", - /* } */ - CHAR_RIGHT_SQUARE_BRACKET: "]", - /* ] */ - CHAR_SEMICOLON: ";", - /* ; */ - CHAR_SINGLE_QUOTE: "'", - /* ' */ - CHAR_SPACE: " ", - /* */ - CHAR_TAB: " ", - /* \t */ - CHAR_UNDERSCORE: "_", - /* _ */ - CHAR_VERTICAL_LINE: "|", - /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: "\uFEFF" - /* \uFEFF */ - }; - } -}); - -// ../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/parse.js -var require_parse2 = __commonJS({ - "../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/parse.js"(exports2, module2) { - "use strict"; - var stringify4 = require_stringify(); - var { - MAX_LENGTH, - CHAR_BACKSLASH, - /* \ */ - CHAR_BACKTICK, - /* ` */ - CHAR_COMMA, - /* , */ - CHAR_DOT, - /* . */ - CHAR_LEFT_PARENTHESES, - /* ( */ - CHAR_RIGHT_PARENTHESES, - /* ) */ - CHAR_LEFT_CURLY_BRACE, - /* { */ - CHAR_RIGHT_CURLY_BRACE, - /* } */ - CHAR_LEFT_SQUARE_BRACKET, - /* [ */ - CHAR_RIGHT_SQUARE_BRACKET, - /* ] */ - CHAR_DOUBLE_QUOTE, - /* " */ - CHAR_SINGLE_QUOTE, - /* ' */ - CHAR_NO_BREAK_SPACE, - CHAR_ZERO_WIDTH_NOBREAK_SPACE - } = require_constants5(); - var parse5 = (input, options = {}) => { - if (typeof input !== "string") { - throw new TypeError("Expected a string"); - } - let opts = options || {}; - let max4 = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; - if (input.length > max4) { - throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max4})`); - } - let ast = { type: "root", input, nodes: [] }; - let stack = [ast]; - let block = ast; - let prev = ast; - let brackets = 0; - let length = input.length; - let index = 0; - let depth = 0; - let value; - let memo = {}; - const advance = () => input[index++]; - const push = (node) => { - if (node.type === "text" && prev.type === "dot") { - prev.type = "text"; - } - if (prev && prev.type === "text" && node.type === "text") { - prev.value += node.value; - return; - } - block.nodes.push(node); - node.parent = block; - node.prev = prev; - prev = node; - return node; - }; - push({ type: "bos" }); - while (index < length) { - block = stack[stack.length - 1]; - value = advance(); - if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { - continue; - } - if (value === CHAR_BACKSLASH) { - push({ type: "text", value: (options.keepEscaping ? value : "") + advance() }); - continue; - } - if (value === CHAR_RIGHT_SQUARE_BRACKET) { - push({ type: "text", value: "\\" + value }); + if (value === "{" && opts.nobrace !== true) { + increment("braces"); + const open = { + type: "brace", + value, + output: "(", + outputIndex: state.output.length, + tokensIndex: state.tokens.length + }; + braces.push(open); + push(open); continue; } - if (value === CHAR_LEFT_SQUARE_BRACKET) { - brackets++; - let closed = true; - let next; - while (index < length && (next = advance())) { - value += next; - if (next === CHAR_LEFT_SQUARE_BRACKET) { - brackets++; - continue; - } - if (next === CHAR_BACKSLASH) { - value += advance(); - continue; - } - if (next === CHAR_RIGHT_SQUARE_BRACKET) { - brackets--; - if (brackets === 0) { + if (value === "}") { + const brace = braces[braces.length - 1]; + if (opts.nobrace === true || !brace) { + push({ type: "text", value, output: value }); + continue; + } + let output = ")"; + if (brace.dots === true) { + const arr = tokens.slice(); + const range = []; + for (let i = arr.length - 1; i >= 0; i--) { + tokens.pop(); + if (arr[i].type === "brace") { break; } + if (arr[i].type !== "dots") { + range.unshift(arr[i].value); + } } + output = expandRange2(range, opts); + state.backtrack = true; } - push({ type: "text", value }); + if (brace.comma !== true && brace.dots !== true) { + const out = state.output.slice(0, brace.outputIndex); + const toks = state.tokens.slice(brace.tokensIndex); + brace.value = brace.output = "\\{"; + value = output = "\\}"; + state.output = out; + for (const t of toks) { + state.output += t.output || t.value; + } + } + push({ type: "brace", value, output }); + decrement("braces"); + braces.pop(); continue; } - if (value === CHAR_LEFT_PARENTHESES) { - block = push({ type: "paren", nodes: [] }); - stack.push(block); + if (value === "|") { + if (extglobs.length > 0) { + extglobs[extglobs.length - 1].conditions++; + } push({ type: "text", value }); continue; } - if (value === CHAR_RIGHT_PARENTHESES) { - if (block.type !== "paren") { - push({ type: "text", value }); + if (value === ",") { + let output = value; + const brace = braces[braces.length - 1]; + if (brace && stack[stack.length - 1] === "braces") { + brace.comma = true; + output = "|"; + } + push({ type: "comma", value, output }); + continue; + } + if (value === "/") { + if (prev.type === "dot" && state.index === state.start + 1) { + state.start = state.index + 1; + state.consumed = ""; + state.output = ""; + tokens.pop(); + prev = bos; continue; } - block = stack.pop(); - push({ type: "text", value }); - block = stack[stack.length - 1]; + push({ type: "slash", value, output: SLASH_LITERAL }); continue; } - if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { - let open = value; - let next; - if (options.keepQuotes !== true) { - value = ""; + if (value === ".") { + if (state.braces > 0 && prev.type === "dot") { + if (prev.value === ".") + prev.output = DOT_LITERAL; + const brace = braces[braces.length - 1]; + prev.type = "dots"; + prev.output += value; + prev.value += value; + brace.dots = true; + continue; } - while (index < length && (next = advance())) { - if (next === CHAR_BACKSLASH) { - value += next + advance(); - continue; + if (state.braces + state.parens === 0 && prev.type !== "bos" && prev.type !== "slash") { + push({ type: "text", value, output: DOT_LITERAL }); + continue; + } + push({ type: "dot", value, output: DOT_LITERAL }); + continue; + } + if (value === "?") { + const isGroup = prev && prev.value === "("; + if (!isGroup && opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { + extglobOpen("qmark", value); + continue; + } + if (prev && prev.type === "paren") { + const next = peek(); + let output = value; + if (next === "<" && !utils.supportsLookbehinds()) { + throw new Error("Node.js v10 or higher is required for regex lookbehinds"); } - if (next === open) { - if (options.keepQuotes === true) - value += next; - break; + if (prev.value === "(" && !/[!=<:]/.test(next) || next === "<" && !/<([!=]|\w+>)/.test(remaining())) { + output = `\\${value}`; } - value += next; + push({ type: "text", value, output }); + continue; } - push({ type: "text", value }); + if (opts.dot !== true && (prev.type === "slash" || prev.type === "bos")) { + push({ type: "qmark", value, output: QMARK_NO_DOT }); + continue; + } + push({ type: "qmark", value, output: QMARK }); continue; } - if (value === CHAR_LEFT_CURLY_BRACE) { - depth++; - let dollar = prev.value && prev.value.slice(-1) === "$" || block.dollar === true; - let brace = { - type: "brace", - open: true, - close: false, - dollar, - depth, - commas: 0, - ranges: 0, - nodes: [] - }; - block = push(brace); - stack.push(block); - push({ type: "open", value }); + if (value === "!") { + if (opts.noextglob !== true && peek() === "(") { + if (peek(2) !== "?" || !/[!=<:]/.test(peek(3))) { + extglobOpen("negate", value); + continue; + } + } + if (opts.nonegate !== true && state.index === 0) { + negate(); + continue; + } + } + if (value === "+") { + if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { + extglobOpen("plus", value); + continue; + } + if (prev && prev.value === "(" || opts.regex === false) { + push({ type: "plus", value, output: PLUS_LITERAL }); + continue; + } + if (prev && (prev.type === "bracket" || prev.type === "paren" || prev.type === "brace") || state.parens > 0) { + push({ type: "plus", value }); + continue; + } + push({ type: "plus", value: PLUS_LITERAL }); continue; } - if (value === CHAR_RIGHT_CURLY_BRACE) { - if (block.type !== "brace") { - push({ type: "text", value }); + if (value === "@") { + if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { + push({ type: "at", extglob: true, value, output: "" }); continue; } - let type = "close"; - block = stack.pop(); - block.close = true; - push({ type, value }); - depth--; - block = stack[stack.length - 1]; + push({ type: "text", value }); continue; } - if (value === CHAR_COMMA && depth > 0) { - if (block.ranges > 0) { - block.ranges = 0; - let open = block.nodes.shift(); - block.nodes = [open, { type: "text", value: stringify4(block) }]; + if (value !== "*") { + if (value === "$" || value === "^") { + value = `\\${value}`; } - push({ type: "comma", value }); - block.commas++; + const match2 = REGEX_NON_SPECIAL_CHARS.exec(remaining()); + if (match2) { + value += match2[0]; + state.index += match2[0].length; + } + push({ type: "text", value }); continue; } - if (value === CHAR_DOT && depth > 0 && block.commas === 0) { - let siblings = block.nodes; - if (depth === 0 || siblings.length === 0) { - push({ type: "text", value }); + if (prev && (prev.type === "globstar" || prev.star === true)) { + prev.type = "star"; + prev.star = true; + prev.value += value; + prev.output = star; + state.backtrack = true; + state.globstar = true; + consume(value); + continue; + } + let rest = remaining(); + if (opts.noextglob !== true && /^\([^?]/.test(rest)) { + extglobOpen("star", value); + continue; + } + if (prev.type === "star") { + if (opts.noglobstar === true) { + consume(value); continue; } - if (prev.type === "dot") { - block.range = []; - prev.value += value; - prev.type = "range"; - if (block.nodes.length !== 3 && block.nodes.length !== 5) { - block.invalid = true; - block.ranges = 0; - prev.type = "text"; - continue; + const prior = prev.prev; + const before = prior.prev; + const isStart = prior.type === "slash" || prior.type === "bos"; + const afterStar = before && (before.type === "star" || before.type === "globstar"); + if (opts.bash === true && (!isStart || rest[0] && rest[0] !== "/")) { + push({ type: "star", value, output: "" }); + continue; + } + const isBrace = state.braces > 0 && (prior.type === "comma" || prior.type === "brace"); + const isExtglob = extglobs.length && (prior.type === "pipe" || prior.type === "paren"); + if (!isStart && prior.type !== "paren" && !isBrace && !isExtglob) { + push({ type: "star", value, output: "" }); + continue; + } + while (rest.slice(0, 3) === "/**") { + const after = input[state.index + 4]; + if (after && after !== "/") { + break; } - block.ranges++; - block.args = []; + rest = rest.slice(3); + consume("/**", 3); + } + if (prior.type === "bos" && eos()) { + prev.type = "globstar"; + prev.value += value; + prev.output = globstar(opts); + state.output = prev.output; + state.globstar = true; + consume(value); continue; } - if (prev.type === "range") { - siblings.pop(); - let before = siblings[siblings.length - 1]; - before.value += prev.value + value; - prev = before; - block.ranges--; + if (prior.type === "slash" && prior.prev.type !== "bos" && !afterStar && eos()) { + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + prev.type = "globstar"; + prev.output = globstar(opts) + (opts.strictSlashes ? ")" : "|$)"); + prev.value += value; + state.globstar = true; + state.output += prior.output + prev.output; + consume(value); continue; } - push({ type: "dot", value }); + if (prior.type === "slash" && prior.prev.type !== "bos" && rest[0] === "/") { + const end = rest[1] !== void 0 ? "|$" : ""; + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + prev.type = "globstar"; + prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; + prev.value += value; + state.output += prior.output + prev.output; + state.globstar = true; + consume(value + advance()); + push({ type: "slash", value: "/", output: "" }); + continue; + } + if (prior.type === "bos" && rest[0] === "/") { + prev.type = "globstar"; + prev.value += value; + prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; + state.output = prev.output; + state.globstar = true; + consume(value + advance()); + push({ type: "slash", value: "/", output: "" }); + continue; + } + state.output = state.output.slice(0, -prev.output.length); + prev.type = "globstar"; + prev.output = globstar(opts); + prev.value += value; + state.output += prev.output; + state.globstar = true; + consume(value); continue; } - push({ type: "text", value }); - } - do { - block = stack.pop(); - if (block.type !== "root") { - block.nodes.forEach((node) => { - if (!node.nodes) { - if (node.type === "open") - node.isOpen = true; - if (node.type === "close") - node.isClose = true; - if (!node.nodes) - node.type = "text"; - node.invalid = true; - } - }); - let parent = stack[stack.length - 1]; - let index2 = parent.nodes.indexOf(block); - parent.nodes.splice(index2, 1, ...block.nodes); + const token = { type: "star", value, output: star }; + if (opts.bash === true) { + token.output = ".*?"; + if (prev.type === "bos" || prev.type === "slash") { + token.output = nodot + token.output; + } + push(token); + continue; } - } while (stack.length > 0); - push({ type: "eos" }); - return ast; - }; - module2.exports = parse5; - } -}); - -// ../node_modules/.pnpm/braces@3.0.2/node_modules/braces/index.js -var require_braces = __commonJS({ - "../node_modules/.pnpm/braces@3.0.2/node_modules/braces/index.js"(exports2, module2) { - "use strict"; - var stringify4 = require_stringify(); - var compile = require_compile(); - var expand = require_expand(); - var parse5 = require_parse2(); - var braces = (input, options = {}) => { - let output = []; - if (Array.isArray(input)) { - for (let pattern of input) { - let result = braces.create(pattern, options); - if (Array.isArray(result)) { - output.push(...result); + if (prev && (prev.type === "bracket" || prev.type === "paren") && opts.regex === true) { + token.output = value; + push(token); + continue; + } + if (state.index === state.start || prev.type === "slash" || prev.type === "dot") { + if (prev.type === "dot") { + state.output += NO_DOT_SLASH; + prev.output += NO_DOT_SLASH; + } else if (opts.dot === true) { + state.output += NO_DOTS_SLASH; + prev.output += NO_DOTS_SLASH; } else { - output.push(result); + state.output += nodot; + prev.output += nodot; + } + if (peek() !== "*") { + state.output += ONE_CHAR; + prev.output += ONE_CHAR; } } - } else { - output = [].concat(braces.create(input, options)); + push(token); } - if (options && options.expand === true && options.nodupes === true) { - output = [...new Set(output)]; + while (state.brackets > 0) { + if (opts.strictBrackets === true) + throw new SyntaxError(syntaxError("closing", "]")); + state.output = utils.escapeLast(state.output, "["); + decrement("brackets"); } - return output; - }; - braces.parse = (input, options = {}) => parse5(input, options); - braces.stringify = (input, options = {}) => { - if (typeof input === "string") { - return stringify4(braces.parse(input, options), options); - } - return stringify4(input, options); - }; - braces.compile = (input, options = {}) => { - if (typeof input === "string") { - input = braces.parse(input, options); + while (state.parens > 0) { + if (opts.strictBrackets === true) + throw new SyntaxError(syntaxError("closing", ")")); + state.output = utils.escapeLast(state.output, "("); + decrement("parens"); } - return compile(input, options); - }; - braces.expand = (input, options = {}) => { - if (typeof input === "string") { - input = braces.parse(input, options); + while (state.braces > 0) { + if (opts.strictBrackets === true) + throw new SyntaxError(syntaxError("closing", "}")); + state.output = utils.escapeLast(state.output, "{"); + decrement("braces"); } - let result = expand(input, options); - if (options.noempty === true) { - result = result.filter(Boolean); + if (opts.strictSlashes !== true && (prev.type === "star" || prev.type === "bracket")) { + push({ type: "maybe_slash", value: "", output: `${SLASH_LITERAL}?` }); } - if (options.nodupes === true) { - result = [...new Set(result)]; + if (state.backtrack === true) { + state.output = ""; + for (const token of state.tokens) { + state.output += token.output != null ? token.output : token.value; + if (token.suffix) { + state.output += token.suffix; + } + } } - return result; + return state; }; - braces.create = (input, options = {}) => { - if (input === "" || input.length < 3) { - return [input]; + parse5.fastpaths = (input, options) => { + const opts = { ...options }; + const max4 = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + const len = input.length; + if (len > max4) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max4}`); } - return options.expand !== true ? braces.compile(input, options) : braces.expand(input, options); + input = REPLACEMENTS[input] || input; + const win32 = utils.isWindows(options); + const { + DOT_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOTS_SLASH, + STAR, + START_ANCHOR + } = constants.globChars(win32); + const nodot = opts.dot ? NO_DOTS : NO_DOT; + const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; + const capture = opts.capture ? "" : "?:"; + const state = { negated: false, prefix: "" }; + let star = opts.bash === true ? ".*?" : STAR; + if (opts.capture) { + star = `(${star})`; + } + const globstar = (opts2) => { + if (opts2.noglobstar === true) + return star; + return `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + const create = (str) => { + switch (str) { + case "*": + return `${nodot}${ONE_CHAR}${star}`; + case ".*": + return `${DOT_LITERAL}${ONE_CHAR}${star}`; + case "*.*": + return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + case "*/*": + return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; + case "**": + return nodot + globstar(opts); + case "**/*": + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; + case "**/*.*": + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + case "**/.*": + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; + default: { + const match2 = /^(.*?)\.(\w+)$/.exec(str); + if (!match2) + return; + const source2 = create(match2[1]); + if (!source2) + return; + return source2 + DOT_LITERAL + match2[2]; + } + } + }; + const output = utils.removePrefix(input, state); + let source = create(output); + if (source && opts.strictSlashes !== true) { + source += `${SLASH_LITERAL}?`; + } + return source; }; - module2.exports = braces; + module2.exports = parse5; } }); -// ../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/constants.js -var require_constants6 = __commonJS({ - "../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/constants.js"(exports2, module2) { +// ../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/picomatch.js +var require_picomatch = __commonJS({ + "../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/picomatch.js"(exports2, module2) { "use strict"; var path26 = require("path"); - var WIN_SLASH = "\\\\/"; - var WIN_NO_SLASH = `[^${WIN_SLASH}]`; - var DOT_LITERAL = "\\."; - var PLUS_LITERAL = "\\+"; - var QMARK_LITERAL = "\\?"; - var SLASH_LITERAL = "\\/"; - var ONE_CHAR = "(?=.)"; - var QMARK = "[^/]"; - var END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; - var START_ANCHOR = `(?:^|${SLASH_LITERAL})`; - var DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; - var NO_DOT = `(?!${DOT_LITERAL})`; - var NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; - var NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; - var NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; - var QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; - var STAR = `${QMARK}*?`; - var POSIX_CHARS = { - DOT_LITERAL, - PLUS_LITERAL, - QMARK_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - QMARK, - END_ANCHOR, - DOTS_SLASH, - NO_DOT, - NO_DOTS, - NO_DOT_SLASH, - NO_DOTS_SLASH, - QMARK_NO_DOT, - STAR, - START_ANCHOR - }; - var WINDOWS_CHARS = { - ...POSIX_CHARS, - SLASH_LITERAL: `[${WIN_SLASH}]`, - QMARK: WIN_NO_SLASH, - STAR: `${WIN_NO_SLASH}*?`, - DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, - NO_DOT: `(?!${DOT_LITERAL})`, - NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, - NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - QMARK_NO_DOT: `[^.${WIN_SLASH}]`, - START_ANCHOR: `(?:^|[${WIN_SLASH}])`, - END_ANCHOR: `(?:[${WIN_SLASH}]|$)` - }; - var POSIX_REGEX_SOURCE = { - alnum: "a-zA-Z0-9", - alpha: "a-zA-Z", - ascii: "\\x00-\\x7F", - blank: " \\t", - cntrl: "\\x00-\\x1F\\x7F", - digit: "0-9", - graph: "\\x21-\\x7E", - lower: "a-z", - print: "\\x20-\\x7E ", - punct: "\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~", - space: " \\t\\r\\n\\v\\f", - upper: "A-Z", - word: "A-Za-z0-9_", - xdigit: "A-Fa-f0-9" - }; - module2.exports = { - MAX_LENGTH: 1024 * 64, - POSIX_REGEX_SOURCE, - // regular expressions - REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, - REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, - REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, - REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, - REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, - REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, - // Replace globs with equivalent patterns to reduce parsing time. - REPLACEMENTS: { - "***": "*", - "**/**": "**", - "**/**/**": "**" - }, - // Digits - CHAR_0: 48, - /* 0 */ - CHAR_9: 57, - /* 9 */ - // Alphabet chars. - CHAR_UPPERCASE_A: 65, - /* A */ - CHAR_LOWERCASE_A: 97, - /* a */ - CHAR_UPPERCASE_Z: 90, - /* Z */ - CHAR_LOWERCASE_Z: 122, - /* z */ - CHAR_LEFT_PARENTHESES: 40, - /* ( */ - CHAR_RIGHT_PARENTHESES: 41, - /* ) */ - CHAR_ASTERISK: 42, - /* * */ - // Non-alphabetic chars. - CHAR_AMPERSAND: 38, - /* & */ - CHAR_AT: 64, - /* @ */ - CHAR_BACKWARD_SLASH: 92, - /* \ */ - CHAR_CARRIAGE_RETURN: 13, - /* \r */ - CHAR_CIRCUMFLEX_ACCENT: 94, - /* ^ */ - CHAR_COLON: 58, - /* : */ - CHAR_COMMA: 44, - /* , */ - CHAR_DOT: 46, - /* . */ - CHAR_DOUBLE_QUOTE: 34, - /* " */ - CHAR_EQUAL: 61, - /* = */ - CHAR_EXCLAMATION_MARK: 33, - /* ! */ - CHAR_FORM_FEED: 12, - /* \f */ - CHAR_FORWARD_SLASH: 47, - /* / */ - CHAR_GRAVE_ACCENT: 96, - /* ` */ - CHAR_HASH: 35, - /* # */ - CHAR_HYPHEN_MINUS: 45, - /* - */ - CHAR_LEFT_ANGLE_BRACKET: 60, - /* < */ - CHAR_LEFT_CURLY_BRACE: 123, - /* { */ - CHAR_LEFT_SQUARE_BRACKET: 91, - /* [ */ - CHAR_LINE_FEED: 10, - /* \n */ - CHAR_NO_BREAK_SPACE: 160, - /* \u00A0 */ - CHAR_PERCENT: 37, - /* % */ - CHAR_PLUS: 43, - /* + */ - CHAR_QUESTION_MARK: 63, - /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: 62, - /* > */ - CHAR_RIGHT_CURLY_BRACE: 125, - /* } */ - CHAR_RIGHT_SQUARE_BRACKET: 93, - /* ] */ - CHAR_SEMICOLON: 59, - /* ; */ - CHAR_SINGLE_QUOTE: 39, - /* ' */ - CHAR_SPACE: 32, - /* */ - CHAR_TAB: 9, - /* \t */ - CHAR_UNDERSCORE: 95, - /* _ */ - CHAR_VERTICAL_LINE: 124, - /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, - /* \uFEFF */ - SEP: path26.sep, - /** - * Create EXTGLOB_CHARS - */ - extglobChars(chars) { - return { - "!": { type: "negate", open: "(?:(?!(?:", close: `))${chars.STAR})` }, - "?": { type: "qmark", open: "(?:", close: ")?" }, - "+": { type: "plus", open: "(?:", close: ")+" }, - "*": { type: "star", open: "(?:", close: ")*" }, - "@": { type: "at", open: "(?:", close: ")" } + var scan3 = require_scan(); + var parse5 = require_parse3(); + var utils = require_utils4(); + var constants = require_constants6(); + var isObject = (val) => val && typeof val === "object" && !Array.isArray(val); + var picomatch = (glob2, options, returnState = false) => { + if (Array.isArray(glob2)) { + const fns = glob2.map((input) => picomatch(input, options, returnState)); + const arrayMatcher = (str) => { + for (const isMatch of fns) { + const state2 = isMatch(str); + if (state2) + return state2; + } + return false; }; - }, - /** - * Create GLOB_CHARS - */ - globChars(win32) { - return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; + return arrayMatcher; } - }; - } -}); - -// ../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/utils.js -var require_utils6 = __commonJS({ - "../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/utils.js"(exports2) { - "use strict"; - var path26 = require("path"); - var win32 = process.platform === "win32"; - var { - REGEX_BACKSLASH, - REGEX_REMOVE_BACKSLASH, - REGEX_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_GLOBAL - } = require_constants6(); - exports2.isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val); - exports2.hasRegexChars = (str) => REGEX_SPECIAL_CHARS.test(str); - exports2.isRegexChar = (str) => str.length === 1 && exports2.hasRegexChars(str); - exports2.escapeRegex = (str) => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, "\\$1"); - exports2.toPosixSlashes = (str) => str.replace(REGEX_BACKSLASH, "/"); - exports2.removeBackslashes = (str) => { - return str.replace(REGEX_REMOVE_BACKSLASH, (match2) => { - return match2 === "\\" ? "" : match2; - }); - }; - exports2.supportsLookbehinds = () => { - const segs = process.version.slice(1).split(".").map(Number); - if (segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10) { - return true; + const isState = isObject(glob2) && glob2.tokens && glob2.input; + if (glob2 === "" || typeof glob2 !== "string" && !isState) { + throw new TypeError("Expected pattern to be a non-empty string"); } - return false; + const opts = options || {}; + const posix4 = utils.isWindows(options); + const regex = isState ? picomatch.compileRe(glob2, options) : picomatch.makeRe(glob2, options, false, true); + const state = regex.state; + delete regex.state; + let isIgnored = () => false; + if (opts.ignore) { + const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null }; + isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); + } + const matcher = (input, returnObject = false) => { + const { isMatch, match: match2, output } = picomatch.test(input, regex, options, { glob: glob2, posix: posix4 }); + const result = { glob: glob2, state, regex, posix: posix4, input, output, match: match2, isMatch }; + if (typeof opts.onResult === "function") { + opts.onResult(result); + } + if (isMatch === false) { + result.isMatch = false; + return returnObject ? result : false; + } + if (isIgnored(input)) { + if (typeof opts.onIgnore === "function") { + opts.onIgnore(result); + } + result.isMatch = false; + return returnObject ? result : false; + } + if (typeof opts.onMatch === "function") { + opts.onMatch(result); + } + return returnObject ? result : true; + }; + if (returnState) { + matcher.state = state; + } + return matcher; }; - exports2.isWindows = (options) => { - if (options && typeof options.windows === "boolean") { - return options.windows; + picomatch.test = (input, regex, options, { glob: glob2, posix: posix4 } = {}) => { + if (typeof input !== "string") { + throw new TypeError("Expected input to be a string"); } - return win32 === true || path26.sep === "\\"; + if (input === "") { + return { isMatch: false, output: "" }; + } + const opts = options || {}; + const format6 = opts.format || (posix4 ? utils.toPosixSlashes : null); + let match2 = input === glob2; + let output = match2 && format6 ? format6(input) : input; + if (match2 === false) { + output = format6 ? format6(input) : input; + match2 = output === glob2; + } + if (match2 === false || opts.capture === true) { + if (opts.matchBase === true || opts.basename === true) { + match2 = picomatch.matchBase(input, regex, options, posix4); + } else { + match2 = regex.exec(output); + } + } + return { isMatch: Boolean(match2), match: match2, output }; }; - exports2.escapeLast = (input, char, lastIdx) => { - const idx2 = input.lastIndexOf(char, lastIdx); - if (idx2 === -1) - return input; - if (input[idx2 - 1] === "\\") - return exports2.escapeLast(input, char, idx2 - 1); - return `${input.slice(0, idx2)}\\${input.slice(idx2)}`; + picomatch.matchBase = (input, glob2, options, posix4 = utils.isWindows(options)) => { + const regex = glob2 instanceof RegExp ? glob2 : picomatch.makeRe(glob2, options); + return regex.test(path26.basename(input)); }; - exports2.removePrefix = (input, state = {}) => { - let output = input; - if (output.startsWith("./")) { - output = output.slice(2); - state.prefix = "./"; + picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); + picomatch.parse = (pattern, options) => { + if (Array.isArray(pattern)) + return pattern.map((p) => picomatch.parse(p, options)); + return parse5(pattern, { ...options, fastpaths: false }); + }; + picomatch.scan = (input, options) => scan3(input, options); + picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => { + if (returnOutput === true) { + return state.output; } - return output; + const opts = options || {}; + const prepend = opts.contains ? "" : "^"; + const append = opts.contains ? "" : "$"; + let source = `${prepend}(?:${state.output})${append}`; + if (state && state.negated === true) { + source = `^(?!${source}).*$`; + } + const regex = picomatch.toRegex(source, options); + if (returnState === true) { + regex.state = state; + } + return regex; }; - exports2.wrapOutput = (input, state = {}, options = {}) => { - const prepend = options.contains ? "" : "^"; - const append = options.contains ? "" : "$"; - let output = `${prepend}(?:${input})${append}`; - if (state.negated === true) { - output = `(?:^(?!${output}).*$)`; + picomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => { + if (!input || typeof input !== "string") { + throw new TypeError("Expected a non-empty string"); + } + let parsed = { negated: false, fastpaths: true }; + if (options.fastpaths !== false && (input[0] === "." || input[0] === "*")) { + parsed.output = parse5.fastpaths(input, options); + } + if (!parsed.output) { + parsed = parse5(input, options); + } + return picomatch.compileRe(parsed, options, returnOutput, returnState); + }; + picomatch.toRegex = (source, options) => { + try { + const opts = options || {}; + return new RegExp(source, opts.flags || (opts.nocase ? "i" : "")); + } catch (err) { + if (options && options.debug === true) + throw err; + return /$^/; } - return output; }; + picomatch.constants = constants; + module2.exports = picomatch; } }); -// ../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/scan.js -var require_scan = __commonJS({ - "../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/scan.js"(exports2, module2) { +// ../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/index.js +var require_picomatch2 = __commonJS({ + "../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/index.js"(exports2, module2) { "use strict"; - var utils = require_utils6(); - var { - CHAR_ASTERISK, - /* * */ - CHAR_AT, - /* @ */ - CHAR_BACKWARD_SLASH, - /* \ */ - CHAR_COMMA, - /* , */ - CHAR_DOT, - /* . */ - CHAR_EXCLAMATION_MARK, - /* ! */ - CHAR_FORWARD_SLASH, - /* / */ - CHAR_LEFT_CURLY_BRACE, - /* { */ - CHAR_LEFT_PARENTHESES, - /* ( */ - CHAR_LEFT_SQUARE_BRACKET, - /* [ */ - CHAR_PLUS, - /* + */ - CHAR_QUESTION_MARK, - /* ? */ - CHAR_RIGHT_CURLY_BRACE, - /* } */ - CHAR_RIGHT_PARENTHESES, - /* ) */ - CHAR_RIGHT_SQUARE_BRACKET - /* ] */ - } = require_constants6(); - var isPathSeparator = (code) => { - return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; - }; - var depth = (token) => { - if (token.isPrefix !== true) { - token.depth = token.isGlobstar ? Infinity : 1; - } - }; - var scan3 = (input, options) => { - const opts = options || {}; - const length = input.length - 1; - const scanToEnd = opts.parts === true || opts.scanToEnd === true; - const slashes = []; - const tokens = []; - const parts = []; - let str = input; - let index = -1; - let start = 0; - let lastIndex = 0; - let isBrace = false; - let isBracket = false; - let isGlob = false; - let isExtglob = false; - let isGlobstar = false; - let braceEscaped = false; - let backslashes = false; - let negated = false; - let negatedExtglob = false; - let finished = false; - let braces = 0; - let prev; - let code; - let token = { value: "", depth: 0, isGlob: false }; - const eos = () => index >= length; - const peek = () => str.charCodeAt(index + 1); - const advance = () => { - prev = code; - return str.charCodeAt(++index); - }; - while (index < length) { - code = advance(); - let next; - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); - if (code === CHAR_LEFT_CURLY_BRACE) { - braceEscaped = true; - } - continue; - } - if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { - braces++; - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } - if (code === CHAR_LEFT_CURLY_BRACE) { - braces++; - continue; - } - if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { - isBrace = token.isBrace = true; - isGlob = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (braceEscaped !== true && code === CHAR_COMMA) { - isBrace = token.isBrace = true; - isGlob = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_RIGHT_CURLY_BRACE) { - braces--; - if (braces === 0) { - braceEscaped = false; - isBrace = token.isBrace = true; - finished = true; - break; - } - } - } - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_FORWARD_SLASH) { - slashes.push(index); - tokens.push(token); - token = { value: "", depth: 0, isGlob: false }; - if (finished === true) - continue; - if (prev === CHAR_DOT && index === start + 1) { - start += 2; - continue; - } - lastIndex = index + 1; - continue; - } - if (opts.noext !== true) { - const isExtglobChar = code === CHAR_PLUS || code === CHAR_AT || code === CHAR_ASTERISK || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK; - if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { - isGlob = token.isGlob = true; - isExtglob = token.isExtglob = true; - finished = true; - if (code === CHAR_EXCLAMATION_MARK && index === start) { - negatedExtglob = true; - } - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } - if (code === CHAR_RIGHT_PARENTHESES) { - isGlob = token.isGlob = true; - finished = true; - break; - } - } - continue; - } - break; - } - } - if (code === CHAR_ASTERISK) { - if (prev === CHAR_ASTERISK) - isGlobstar = token.isGlobstar = true; - isGlob = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_QUESTION_MARK) { - isGlob = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; + module2.exports = require_picomatch(); + } +}); + +// ../node_modules/.pnpm/micromatch@4.0.5/node_modules/micromatch/index.js +var require_micromatch = __commonJS({ + "../node_modules/.pnpm/micromatch@4.0.5/node_modules/micromatch/index.js"(exports2, module2) { + "use strict"; + var util = require("util"); + var braces = require_braces(); + var picomatch = require_picomatch2(); + var utils = require_utils4(); + var isEmptyString = (val) => val === "" || val === "./"; + var micromatch = (list, patterns, options) => { + patterns = [].concat(patterns); + list = [].concat(list); + let omit = /* @__PURE__ */ new Set(); + let keep = /* @__PURE__ */ new Set(); + let items = /* @__PURE__ */ new Set(); + let negatives = 0; + let onResult = (state) => { + items.add(state.output); + if (options && options.onResult) { + options.onResult(state); } - if (code === CHAR_LEFT_SQUARE_BRACKET) { - while (eos() !== true && (next = advance())) { - if (next === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } - if (next === CHAR_RIGHT_SQUARE_BRACKET) { - isBracket = token.isBracket = true; - isGlob = token.isGlob = true; - finished = true; - break; - } - } - if (scanToEnd === true) { + }; + for (let i = 0; i < patterns.length; i++) { + let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true); + let negated = isMatch.state.negated || isMatch.state.negatedExtglob; + if (negated) + negatives++; + for (let item of list) { + let matched = isMatch(item, true); + let match2 = negated ? !matched.isMatch : matched.isMatch; + if (!match2) continue; + if (negated) { + omit.add(matched.output); + } else { + omit.delete(matched.output); + keep.add(matched.output); } - break; - } - if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { - negated = token.negated = true; - start++; - continue; } - if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { - isGlob = token.isGlob = true; - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_LEFT_PARENTHESES) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } - if (code === CHAR_RIGHT_PARENTHESES) { - finished = true; - break; - } - } - continue; - } - break; + } + let result = negatives === patterns.length ? [...items] : [...keep]; + let matches = result.filter((item) => !omit.has(item)); + if (options && matches.length === 0) { + if (options.failglob === true) { + throw new Error(`No matches found for "${patterns.join(", ")}"`); } - if (isGlob === true) { - finished = true; - if (scanToEnd === true) { - continue; - } - break; + if (options.nonull === true || options.nullglob === true) { + return options.unescape ? patterns.map((p) => p.replace(/\\/g, "")) : patterns; } } - if (opts.noext === true) { - isExtglob = false; - isGlob = false; + return matches; + }; + micromatch.match = micromatch; + micromatch.matcher = (pattern, options) => picomatch(pattern, options); + micromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); + micromatch.any = micromatch.isMatch; + micromatch.not = (list, patterns, options = {}) => { + patterns = [].concat(patterns).map(String); + let result = /* @__PURE__ */ new Set(); + let items = []; + let onResult = (state) => { + if (options.onResult) + options.onResult(state); + items.push(state.output); + }; + let matches = new Set(micromatch(list, patterns, { ...options, onResult })); + for (let item of items) { + if (!matches.has(item)) { + result.add(item); + } } - let base = str; - let prefix = ""; - let glob2 = ""; - if (start > 0) { - prefix = str.slice(0, start); - str = str.slice(start); - lastIndex -= start; + return [...result]; + }; + micromatch.contains = (str, pattern, options) => { + if (typeof str !== "string") { + throw new TypeError(`Expected a string: "${util.inspect(str)}"`); } - if (base && isGlob === true && lastIndex > 0) { - base = str.slice(0, lastIndex); - glob2 = str.slice(lastIndex); - } else if (isGlob === true) { - base = ""; - glob2 = str; - } else { - base = str; + if (Array.isArray(pattern)) { + return pattern.some((p) => micromatch.contains(str, p, options)); } - if (base && base !== "" && base !== "/" && base !== str) { - if (isPathSeparator(base.charCodeAt(base.length - 1))) { - base = base.slice(0, -1); + if (typeof pattern === "string") { + if (isEmptyString(str) || isEmptyString(pattern)) { + return false; } - } - if (opts.unescape === true) { - if (glob2) - glob2 = utils.removeBackslashes(glob2); - if (base && backslashes === true) { - base = utils.removeBackslashes(base); + if (str.includes(pattern) || str.startsWith("./") && str.slice(2).includes(pattern)) { + return true; } } - const state = { - prefix, - input, - start, - base, - glob: glob2, - isBrace, - isBracket, - isGlob, - isExtglob, - isGlobstar, - negated, - negatedExtglob - }; - if (opts.tokens === true) { - state.maxDepth = 0; - if (!isPathSeparator(code)) { - tokens.push(token); - } - state.tokens = tokens; + return micromatch.isMatch(str, pattern, { ...options, contains: true }); + }; + micromatch.matchKeys = (obj, patterns, options) => { + if (!utils.isObject(obj)) { + throw new TypeError("Expected the first argument to be an object"); } - if (opts.parts === true || opts.tokens === true) { - let prevIndex; - for (let idx2 = 0; idx2 < slashes.length; idx2++) { - const n = prevIndex ? prevIndex + 1 : start; - const i = slashes[idx2]; - const value = input.slice(n, i); - if (opts.tokens) { - if (idx2 === 0 && start !== 0) { - tokens[idx2].isPrefix = true; - tokens[idx2].value = prefix; - } else { - tokens[idx2].value = value; - } - depth(tokens[idx2]); - state.maxDepth += tokens[idx2].depth; - } - if (idx2 !== 0 || value !== "") { - parts.push(value); - } - prevIndex = i; + let keys3 = micromatch(Object.keys(obj), patterns, options); + let res = {}; + for (let key of keys3) + res[key] = obj[key]; + return res; + }; + micromatch.some = (list, patterns, options) => { + let items = [].concat(list); + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); + if (items.some((item) => isMatch(item))) { + return true; } - if (prevIndex && prevIndex + 1 < input.length) { - const value = input.slice(prevIndex + 1); - parts.push(value); - if (opts.tokens) { - tokens[tokens.length - 1].value = value; - depth(tokens[tokens.length - 1]); - state.maxDepth += tokens[tokens.length - 1].depth; - } + } + return false; + }; + micromatch.every = (list, patterns, options) => { + let items = [].concat(list); + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); + if (!items.every((item) => isMatch(item))) { + return false; } - state.slashes = slashes; - state.parts = parts; } - return state; + return true; }; - module2.exports = scan3; - } -}); - -// ../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/parse.js -var require_parse3 = __commonJS({ - "../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/parse.js"(exports2, module2) { - "use strict"; - var constants = require_constants6(); - var utils = require_utils6(); - var { - MAX_LENGTH, - POSIX_REGEX_SOURCE, - REGEX_NON_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_BACKREF, - REPLACEMENTS - } = constants; - var expandRange2 = (args, options) => { - if (typeof options.expandRange === "function") { - return options.expandRange(...args, options); + micromatch.all = (str, patterns, options) => { + if (typeof str !== "string") { + throw new TypeError(`Expected a string: "${util.inspect(str)}"`); } - args.sort(); - const value = `[${args.join("-")}]`; - try { - new RegExp(value); - } catch (ex) { - return args.map((v) => utils.escapeRegex(v)).join(".."); + return [].concat(patterns).every((p) => picomatch(p, options)(str)); + }; + micromatch.capture = (glob2, input, options) => { + let posix4 = utils.isWindows(options); + let regex = picomatch.makeRe(String(glob2), { ...options, capture: true }); + let match2 = regex.exec(posix4 ? utils.toPosixSlashes(input) : input); + if (match2) { + return match2.slice(1).map((v) => v === void 0 ? "" : v); } - return value; }; - var syntaxError = (type, char) => { - return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; + micromatch.makeRe = (...args) => picomatch.makeRe(...args); + micromatch.scan = (...args) => picomatch.scan(...args); + micromatch.parse = (patterns, options) => { + let res = []; + for (let pattern of [].concat(patterns || [])) { + for (let str of braces(String(pattern), options)) { + res.push(picomatch.parse(str, options)); + } + } + return res; }; - var parse5 = (input, options) => { - if (typeof input !== "string") { + micromatch.braces = (pattern, options) => { + if (typeof pattern !== "string") throw new TypeError("Expected a string"); + if (options && options.nobrace === true || !/\{.*\}/.test(pattern)) { + return [pattern]; } - input = REPLACEMENTS[input] || input; - const opts = { ...options }; - const max4 = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; - let len = input.length; - if (len > max4) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max4}`); - } - const bos = { type: "bos", value: "", output: opts.prepend || "" }; - const tokens = [bos]; - const capture = opts.capture ? "" : "?:"; - const win32 = utils.isWindows(options); - const PLATFORM_CHARS = constants.globChars(win32); - const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS); - const { - DOT_LITERAL, - PLUS_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - DOTS_SLASH, - NO_DOT, - NO_DOT_SLASH, - NO_DOTS_SLASH, - QMARK, - QMARK_NO_DOT, - STAR, - START_ANCHOR - } = PLATFORM_CHARS; - const globstar = (opts2) => { - return `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; - }; - const nodot = opts.dot ? "" : NO_DOT; - const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; - let star = opts.bash === true ? globstar(opts) : STAR; - if (opts.capture) { - star = `(${star})`; - } - if (typeof opts.noext === "boolean") { - opts.noextglob = opts.noext; - } - const state = { - input, - index: -1, - start: 0, - dot: opts.dot === true, - consumed: "", - output: "", - prefix: "", - backtrack: false, - negated: false, - brackets: 0, - braces: 0, - parens: 0, - quotes: 0, - globstar: false, - tokens - }; - input = utils.removePrefix(input, state); - len = input.length; - const extglobs = []; - const braces = []; - const stack = []; - let prev = bos; - let value; - const eos = () => state.index === len - 1; - const peek = state.peek = (n = 1) => input[state.index + n]; - const advance = state.advance = () => input[++state.index] || ""; - const remaining = () => input.slice(state.index + 1); - const consume = (value2 = "", num = 0) => { - state.consumed += value2; - state.index += num; - }; - const append = (token) => { - state.output += token.output != null ? token.output : token.value; - consume(token.value); - }; - const negate = () => { - let count3 = 1; - while (peek() === "!" && (peek(2) !== "(" || peek(3) === "?")) { - advance(); - state.start++; - count3++; - } - if (count3 % 2 === 0) { - return false; - } - state.negated = true; - state.start++; - return true; - }; - const increment = (type) => { - state[type]++; - stack.push(type); - }; - const decrement = (type) => { - state[type]--; - stack.pop(); - }; - const push = (tok) => { - if (prev.type === "globstar") { - const isBrace = state.braces > 0 && (tok.type === "comma" || tok.type === "brace"); - const isExtglob = tok.extglob === true || extglobs.length && (tok.type === "pipe" || tok.type === "paren"); - if (tok.type !== "slash" && tok.type !== "paren" && !isBrace && !isExtglob) { - state.output = state.output.slice(0, -prev.output.length); - prev.type = "star"; - prev.value = "*"; - prev.output = star; - state.output += prev.output; - } - } - if (extglobs.length && tok.type !== "paren") { - extglobs[extglobs.length - 1].inner += tok.value; - } - if (tok.value || tok.output) - append(tok); - if (prev && prev.type === "text" && tok.type === "text") { - prev.value += tok.value; - prev.output = (prev.output || "") + tok.value; - return; - } - tok.prev = prev; - tokens.push(tok); - prev = tok; - }; - const extglobOpen = (type, value2) => { - const token = { ...EXTGLOB_CHARS[value2], conditions: 1, inner: "" }; - token.prev = prev; - token.parens = state.parens; - token.output = state.output; - const output = (opts.capture ? "(" : "") + token.open; - increment("parens"); - push({ type, value: value2, output: state.output ? "" : ONE_CHAR }); - push({ type: "paren", extglob: true, value: advance(), output }); - extglobs.push(token); - }; - const extglobClose = (token) => { - let output = token.close + (opts.capture ? ")" : ""); - let rest; - if (token.type === "negate") { - let extglobStar = star; - if (token.inner && token.inner.length > 1 && token.inner.includes("/")) { - extglobStar = globstar(opts); - } - if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { - output = token.close = `)$))${extglobStar}`; - } - if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { - const expression = parse5(rest, { ...options, fastpaths: false }).output; - output = token.close = `)${expression})${extglobStar})`; - } - if (token.prev.type === "bos") { - state.negatedExtglob = true; - } - } - push({ type: "paren", extglob: true, value, output }); - decrement("parens"); - }; - if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { - let backslashes = false; - let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first3, rest, index) => { - if (first3 === "\\") { - backslashes = true; - return m; - } - if (first3 === "?") { - if (esc) { - return esc + first3 + (rest ? QMARK.repeat(rest.length) : ""); - } - if (index === 0) { - return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ""); - } - return QMARK.repeat(chars.length); - } - if (first3 === ".") { - return DOT_LITERAL.repeat(chars.length); - } - if (first3 === "*") { - if (esc) { - return esc + first3 + (rest ? star : ""); - } - return star; - } - return esc ? m : `\\${m}`; - }); - if (backslashes === true) { - if (opts.unescape === true) { - output = output.replace(/\\/g, ""); - } else { - output = output.replace(/\\+/g, (m) => { - return m.length % 2 === 0 ? "\\\\" : m ? "\\" : ""; - }); - } - } - if (output === input && opts.contains === true) { - state.output = input; - return state; - } - state.output = utils.wrapOutput(output, state, options); - return state; - } - while (!eos()) { - value = advance(); - if (value === "\0") { - continue; - } - if (value === "\\") { - const next = peek(); - if (next === "/" && opts.bash !== true) { - continue; - } - if (next === "." || next === ";") { - continue; - } - if (!next) { - value += "\\"; - push({ type: "text", value }); - continue; - } - const match2 = /^\\+/.exec(remaining()); - let slashes = 0; - if (match2 && match2[0].length > 2) { - slashes = match2[0].length; - state.index += slashes; - if (slashes % 2 !== 0) { - value += "\\"; - } - } - if (opts.unescape === true) { - value = advance(); - } else { - value += advance(); - } - if (state.brackets === 0) { - push({ type: "text", value }); - continue; + return braces(pattern, options); + }; + micromatch.braceExpand = (pattern, options) => { + if (typeof pattern !== "string") + throw new TypeError("Expected a string"); + return micromatch.braces(pattern, { ...options, expand: true }); + }; + module2.exports = micromatch; + } +}); + +// ../node_modules/.pnpm/esprima@4.0.1/node_modules/esprima/dist/esprima.js +var require_esprima = __commonJS({ + "../node_modules/.pnpm/esprima@4.0.1/node_modules/esprima/dist/esprima.js"(exports2, module2) { + (function webpackUniversalModuleDefinition(root, factory) { + if (typeof exports2 === "object" && typeof module2 === "object") + module2.exports = factory(); + else if (typeof define === "function" && define.amd) + define([], factory); + else if (typeof exports2 === "object") + exports2["esprima"] = factory(); + else + root["esprima"] = factory(); + })(exports2, function() { + return ( + /******/ + function(modules) { + var installedModules = {}; + function __webpack_require__(moduleId) { + if (installedModules[moduleId]) + return installedModules[moduleId].exports; + var module3 = installedModules[moduleId] = { + /******/ + exports: {}, + /******/ + id: moduleId, + /******/ + loaded: false + /******/ + }; + modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__); + module3.loaded = true; + return module3.exports; } - } - if (state.brackets > 0 && (value !== "]" || prev.value === "[" || prev.value === "[^")) { - if (opts.posix !== false && value === ":") { - const inner = prev.value.slice(1); - if (inner.includes("[")) { - prev.posix = true; - if (inner.includes(":")) { - const idx2 = prev.value.lastIndexOf("["); - const pre = prev.value.slice(0, idx2); - const rest2 = prev.value.slice(idx2 + 2); - const posix4 = POSIX_REGEX_SOURCE[rest2]; - if (posix4) { - prev.value = pre + posix4; - state.backtrack = true; - advance(); - if (!bos.output && tokens.indexOf(prev) === 1) { - bos.output = ONE_CHAR; - } - continue; + __webpack_require__.m = modules; + __webpack_require__.c = installedModules; + __webpack_require__.p = ""; + return __webpack_require__(0); + }([ + /* 0 */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + Object.defineProperty(exports3, "__esModule", { value: true }); + var comment_handler_1 = __webpack_require__(1); + var jsx_parser_1 = __webpack_require__(3); + var parser_1 = __webpack_require__(8); + var tokenizer_1 = __webpack_require__(15); + function parse5(code, options, delegate) { + var commentHandler = null; + var proxyDelegate = function(node, metadata) { + if (delegate) { + delegate(node, metadata); + } + if (commentHandler) { + commentHandler.visit(node, metadata); + } + }; + var parserDelegate = typeof delegate === "function" ? proxyDelegate : null; + var collectComment = false; + if (options) { + collectComment = typeof options.comment === "boolean" && options.comment; + var attachComment = typeof options.attachComment === "boolean" && options.attachComment; + if (collectComment || attachComment) { + commentHandler = new comment_handler_1.CommentHandler(); + commentHandler.attach = attachComment; + options.comment = true; + parserDelegate = proxyDelegate; } } - } - } - if (value === "[" && peek() !== ":" || value === "-" && peek() === "]") { - value = `\\${value}`; - } - if (value === "]" && (prev.value === "[" || prev.value === "[^")) { - value = `\\${value}`; - } - if (opts.posix === true && value === "!" && prev.value === "[") { - value = "^"; - } - prev.value += value; - append({ value }); - continue; - } - if (state.quotes === 1 && value !== '"') { - value = utils.escapeRegex(value); - prev.value += value; - append({ value }); - continue; - } - if (value === '"') { - state.quotes = state.quotes === 1 ? 0 : 1; - if (opts.keepQuotes === true) { - push({ type: "text", value }); - } - continue; - } - if (value === "(") { - increment("parens"); - push({ type: "paren", value }); - continue; - } - if (value === ")") { - if (state.parens === 0 && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError("opening", "(")); - } - const extglob = extglobs[extglobs.length - 1]; - if (extglob && state.parens === extglob.parens + 1) { - extglobClose(extglobs.pop()); - continue; - } - push({ type: "paren", value, output: state.parens ? ")" : "\\)" }); - decrement("parens"); - continue; - } - if (value === "[") { - if (opts.nobracket === true || !remaining().includes("]")) { - if (opts.nobracket !== true && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError("closing", "]")); - } - value = `\\${value}`; - } else { - increment("brackets"); - } - push({ type: "bracket", value }); - continue; - } - if (value === "]") { - if (opts.nobracket === true || prev && prev.type === "bracket" && prev.value.length === 1) { - push({ type: "text", value, output: `\\${value}` }); - continue; - } - if (state.brackets === 0) { - if (opts.strictBrackets === true) { - throw new SyntaxError(syntaxError("opening", "[")); - } - push({ type: "text", value, output: `\\${value}` }); - continue; - } - decrement("brackets"); - const prevValue = prev.value.slice(1); - if (prev.posix !== true && prevValue[0] === "^" && !prevValue.includes("/")) { - value = `/${value}`; - } - prev.value += value; - append({ value }); - if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) { - continue; - } - const escaped = utils.escapeRegex(prev.value); - state.output = state.output.slice(0, -prev.value.length); - if (opts.literalBrackets === true) { - state.output += escaped; - prev.value = escaped; - continue; - } - prev.value = `(${capture}${escaped}|${prev.value})`; - state.output += prev.value; - continue; - } - if (value === "{" && opts.nobrace !== true) { - increment("braces"); - const open = { - type: "brace", - value, - output: "(", - outputIndex: state.output.length, - tokensIndex: state.tokens.length - }; - braces.push(open); - push(open); - continue; - } - if (value === "}") { - const brace = braces[braces.length - 1]; - if (opts.nobrace === true || !brace) { - push({ type: "text", value, output: value }); - continue; - } - let output = ")"; - if (brace.dots === true) { - const arr = tokens.slice(); - const range = []; - for (let i = arr.length - 1; i >= 0; i--) { - tokens.pop(); - if (arr[i].type === "brace") { - break; + var isModule = false; + if (options && typeof options.sourceType === "string") { + isModule = options.sourceType === "module"; } - if (arr[i].type !== "dots") { - range.unshift(arr[i].value); + var parser2; + if (options && typeof options.jsx === "boolean" && options.jsx) { + parser2 = new jsx_parser_1.JSXParser(code, options, parserDelegate); + } else { + parser2 = new parser_1.Parser(code, options, parserDelegate); + } + var program = isModule ? parser2.parseModule() : parser2.parseScript(); + var ast = program; + if (collectComment && commentHandler) { + ast.comments = commentHandler.comments; + } + if (parser2.config.tokens) { + ast.tokens = parser2.tokens; + } + if (parser2.config.tolerant) { + ast.errors = parser2.errorHandler.errors; } + return ast; } - output = expandRange2(range, opts); - state.backtrack = true; - } - if (brace.comma !== true && brace.dots !== true) { - const out = state.output.slice(0, brace.outputIndex); - const toks = state.tokens.slice(brace.tokensIndex); - brace.value = brace.output = "\\{"; - value = output = "\\}"; - state.output = out; - for (const t of toks) { - state.output += t.output || t.value; + exports3.parse = parse5; + function parseModule(code, options, delegate) { + var parsingOptions = options || {}; + parsingOptions.sourceType = "module"; + return parse5(code, parsingOptions, delegate); } - } - push({ type: "brace", value, output }); - decrement("braces"); - braces.pop(); - continue; - } - if (value === "|") { - if (extglobs.length > 0) { - extglobs[extglobs.length - 1].conditions++; - } - push({ type: "text", value }); - continue; - } - if (value === ",") { - let output = value; - const brace = braces[braces.length - 1]; - if (brace && stack[stack.length - 1] === "braces") { - brace.comma = true; - output = "|"; - } - push({ type: "comma", value, output }); - continue; - } - if (value === "/") { - if (prev.type === "dot" && state.index === state.start + 1) { - state.start = state.index + 1; - state.consumed = ""; - state.output = ""; - tokens.pop(); - prev = bos; - continue; - } - push({ type: "slash", value, output: SLASH_LITERAL }); - continue; - } - if (value === ".") { - if (state.braces > 0 && prev.type === "dot") { - if (prev.value === ".") - prev.output = DOT_LITERAL; - const brace = braces[braces.length - 1]; - prev.type = "dots"; - prev.output += value; - prev.value += value; - brace.dots = true; - continue; - } - if (state.braces + state.parens === 0 && prev.type !== "bos" && prev.type !== "slash") { - push({ type: "text", value, output: DOT_LITERAL }); - continue; - } - push({ type: "dot", value, output: DOT_LITERAL }); - continue; - } - if (value === "?") { - const isGroup = prev && prev.value === "("; - if (!isGroup && opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { - extglobOpen("qmark", value); - continue; - } - if (prev && prev.type === "paren") { - const next = peek(); - let output = value; - if (next === "<" && !utils.supportsLookbehinds()) { - throw new Error("Node.js v10 or higher is required for regex lookbehinds"); + exports3.parseModule = parseModule; + function parseScript(code, options, delegate) { + var parsingOptions = options || {}; + parsingOptions.sourceType = "script"; + return parse5(code, parsingOptions, delegate); } - if (prev.value === "(" && !/[!=<:]/.test(next) || next === "<" && !/<([!=]|\w+>)/.test(remaining())) { - output = `\\${value}`; - } - push({ type: "text", value, output }); - continue; - } - if (opts.dot !== true && (prev.type === "slash" || prev.type === "bos")) { - push({ type: "qmark", value, output: QMARK_NO_DOT }); - continue; - } - push({ type: "qmark", value, output: QMARK }); - continue; - } - if (value === "!") { - if (opts.noextglob !== true && peek() === "(") { - if (peek(2) !== "?" || !/[!=<:]/.test(peek(3))) { - extglobOpen("negate", value); - continue; - } - } - if (opts.nonegate !== true && state.index === 0) { - negate(); - continue; - } - } - if (value === "+") { - if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { - extglobOpen("plus", value); - continue; - } - if (prev && prev.value === "(" || opts.regex === false) { - push({ type: "plus", value, output: PLUS_LITERAL }); - continue; - } - if (prev && (prev.type === "bracket" || prev.type === "paren" || prev.type === "brace") || state.parens > 0) { - push({ type: "plus", value }); - continue; - } - push({ type: "plus", value: PLUS_LITERAL }); - continue; - } - if (value === "@") { - if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { - push({ type: "at", extglob: true, value, output: "" }); - continue; - } - push({ type: "text", value }); - continue; - } - if (value !== "*") { - if (value === "$" || value === "^") { - value = `\\${value}`; - } - const match2 = REGEX_NON_SPECIAL_CHARS.exec(remaining()); - if (match2) { - value += match2[0]; - state.index += match2[0].length; - } - push({ type: "text", value }); - continue; - } - if (prev && (prev.type === "globstar" || prev.star === true)) { - prev.type = "star"; - prev.star = true; - prev.value += value; - prev.output = star; - state.backtrack = true; - state.globstar = true; - consume(value); - continue; - } - let rest = remaining(); - if (opts.noextglob !== true && /^\([^?]/.test(rest)) { - extglobOpen("star", value); - continue; - } - if (prev.type === "star") { - if (opts.noglobstar === true) { - consume(value); - continue; - } - const prior = prev.prev; - const before = prior.prev; - const isStart = prior.type === "slash" || prior.type === "bos"; - const afterStar = before && (before.type === "star" || before.type === "globstar"); - if (opts.bash === true && (!isStart || rest[0] && rest[0] !== "/")) { - push({ type: "star", value, output: "" }); - continue; - } - const isBrace = state.braces > 0 && (prior.type === "comma" || prior.type === "brace"); - const isExtglob = extglobs.length && (prior.type === "pipe" || prior.type === "paren"); - if (!isStart && prior.type !== "paren" && !isBrace && !isExtglob) { - push({ type: "star", value, output: "" }); - continue; - } - while (rest.slice(0, 3) === "/**") { - const after = input[state.index + 4]; - if (after && after !== "/") { - break; - } - rest = rest.slice(3); - consume("/**", 3); - } - if (prior.type === "bos" && eos()) { - prev.type = "globstar"; - prev.value += value; - prev.output = globstar(opts); - state.output = prev.output; - state.globstar = true; - consume(value); - continue; - } - if (prior.type === "slash" && prior.prev.type !== "bos" && !afterStar && eos()) { - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; - prev.type = "globstar"; - prev.output = globstar(opts) + (opts.strictSlashes ? ")" : "|$)"); - prev.value += value; - state.globstar = true; - state.output += prior.output + prev.output; - consume(value); - continue; - } - if (prior.type === "slash" && prior.prev.type !== "bos" && rest[0] === "/") { - const end = rest[1] !== void 0 ? "|$" : ""; - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; - prev.type = "globstar"; - prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; - prev.value += value; - state.output += prior.output + prev.output; - state.globstar = true; - consume(value + advance()); - push({ type: "slash", value: "/", output: "" }); - continue; - } - if (prior.type === "bos" && rest[0] === "/") { - prev.type = "globstar"; - prev.value += value; - prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; - state.output = prev.output; - state.globstar = true; - consume(value + advance()); - push({ type: "slash", value: "/", output: "" }); - continue; - } - state.output = state.output.slice(0, -prev.output.length); - prev.type = "globstar"; - prev.output = globstar(opts); - prev.value += value; - state.output += prev.output; - state.globstar = true; - consume(value); - continue; - } - const token = { type: "star", value, output: star }; - if (opts.bash === true) { - token.output = ".*?"; - if (prev.type === "bos" || prev.type === "slash") { - token.output = nodot + token.output; - } - push(token); - continue; - } - if (prev && (prev.type === "bracket" || prev.type === "paren") && opts.regex === true) { - token.output = value; - push(token); - continue; - } - if (state.index === state.start || prev.type === "slash" || prev.type === "dot") { - if (prev.type === "dot") { - state.output += NO_DOT_SLASH; - prev.output += NO_DOT_SLASH; - } else if (opts.dot === true) { - state.output += NO_DOTS_SLASH; - prev.output += NO_DOTS_SLASH; - } else { - state.output += nodot; - prev.output += nodot; - } - if (peek() !== "*") { - state.output += ONE_CHAR; - prev.output += ONE_CHAR; - } - } - push(token); - } - while (state.brackets > 0) { - if (opts.strictBrackets === true) - throw new SyntaxError(syntaxError("closing", "]")); - state.output = utils.escapeLast(state.output, "["); - decrement("brackets"); - } - while (state.parens > 0) { - if (opts.strictBrackets === true) - throw new SyntaxError(syntaxError("closing", ")")); - state.output = utils.escapeLast(state.output, "("); - decrement("parens"); - } - while (state.braces > 0) { - if (opts.strictBrackets === true) - throw new SyntaxError(syntaxError("closing", "}")); - state.output = utils.escapeLast(state.output, "{"); - decrement("braces"); - } - if (opts.strictSlashes !== true && (prev.type === "star" || prev.type === "bracket")) { - push({ type: "maybe_slash", value: "", output: `${SLASH_LITERAL}?` }); - } - if (state.backtrack === true) { - state.output = ""; - for (const token of state.tokens) { - state.output += token.output != null ? token.output : token.value; - if (token.suffix) { - state.output += token.suffix; - } - } - } - return state; - }; - parse5.fastpaths = (input, options) => { - const opts = { ...options }; - const max4 = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; - const len = input.length; - if (len > max4) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max4}`); - } - input = REPLACEMENTS[input] || input; - const win32 = utils.isWindows(options); - const { - DOT_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - DOTS_SLASH, - NO_DOT, - NO_DOTS, - NO_DOTS_SLASH, - STAR, - START_ANCHOR - } = constants.globChars(win32); - const nodot = opts.dot ? NO_DOTS : NO_DOT; - const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; - const capture = opts.capture ? "" : "?:"; - const state = { negated: false, prefix: "" }; - let star = opts.bash === true ? ".*?" : STAR; - if (opts.capture) { - star = `(${star})`; - } - const globstar = (opts2) => { - if (opts2.noglobstar === true) - return star; - return `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; - }; - const create = (str) => { - switch (str) { - case "*": - return `${nodot}${ONE_CHAR}${star}`; - case ".*": - return `${DOT_LITERAL}${ONE_CHAR}${star}`; - case "*.*": - return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; - case "*/*": - return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; - case "**": - return nodot + globstar(opts); - case "**/*": - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; - case "**/*.*": - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; - case "**/.*": - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; - default: { - const match2 = /^(.*?)\.(\w+)$/.exec(str); - if (!match2) - return; - const source2 = create(match2[1]); - if (!source2) - return; - return source2 + DOT_LITERAL + match2[2]; - } - } - }; - const output = utils.removePrefix(input, state); - let source = create(output); - if (source && opts.strictSlashes !== true) { - source += `${SLASH_LITERAL}?`; - } - return source; - }; - module2.exports = parse5; - } -}); - -// ../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/picomatch.js -var require_picomatch = __commonJS({ - "../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/picomatch.js"(exports2, module2) { - "use strict"; - var path26 = require("path"); - var scan3 = require_scan(); - var parse5 = require_parse3(); - var utils = require_utils6(); - var constants = require_constants6(); - var isObject = (val) => val && typeof val === "object" && !Array.isArray(val); - var picomatch = (glob2, options, returnState = false) => { - if (Array.isArray(glob2)) { - const fns = glob2.map((input) => picomatch(input, options, returnState)); - const arrayMatcher = (str) => { - for (const isMatch of fns) { - const state2 = isMatch(str); - if (state2) - return state2; - } - return false; - }; - return arrayMatcher; - } - const isState = isObject(glob2) && glob2.tokens && glob2.input; - if (glob2 === "" || typeof glob2 !== "string" && !isState) { - throw new TypeError("Expected pattern to be a non-empty string"); - } - const opts = options || {}; - const posix4 = utils.isWindows(options); - const regex = isState ? picomatch.compileRe(glob2, options) : picomatch.makeRe(glob2, options, false, true); - const state = regex.state; - delete regex.state; - let isIgnored = () => false; - if (opts.ignore) { - const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null }; - isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); - } - const matcher = (input, returnObject = false) => { - const { isMatch, match: match2, output } = picomatch.test(input, regex, options, { glob: glob2, posix: posix4 }); - const result = { glob: glob2, state, regex, posix: posix4, input, output, match: match2, isMatch }; - if (typeof opts.onResult === "function") { - opts.onResult(result); - } - if (isMatch === false) { - result.isMatch = false; - return returnObject ? result : false; - } - if (isIgnored(input)) { - if (typeof opts.onIgnore === "function") { - opts.onIgnore(result); - } - result.isMatch = false; - return returnObject ? result : false; - } - if (typeof opts.onMatch === "function") { - opts.onMatch(result); - } - return returnObject ? result : true; - }; - if (returnState) { - matcher.state = state; - } - return matcher; - }; - picomatch.test = (input, regex, options, { glob: glob2, posix: posix4 } = {}) => { - if (typeof input !== "string") { - throw new TypeError("Expected input to be a string"); - } - if (input === "") { - return { isMatch: false, output: "" }; - } - const opts = options || {}; - const format6 = opts.format || (posix4 ? utils.toPosixSlashes : null); - let match2 = input === glob2; - let output = match2 && format6 ? format6(input) : input; - if (match2 === false) { - output = format6 ? format6(input) : input; - match2 = output === glob2; - } - if (match2 === false || opts.capture === true) { - if (opts.matchBase === true || opts.basename === true) { - match2 = picomatch.matchBase(input, regex, options, posix4); - } else { - match2 = regex.exec(output); - } - } - return { isMatch: Boolean(match2), match: match2, output }; - }; - picomatch.matchBase = (input, glob2, options, posix4 = utils.isWindows(options)) => { - const regex = glob2 instanceof RegExp ? glob2 : picomatch.makeRe(glob2, options); - return regex.test(path26.basename(input)); - }; - picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); - picomatch.parse = (pattern, options) => { - if (Array.isArray(pattern)) - return pattern.map((p) => picomatch.parse(p, options)); - return parse5(pattern, { ...options, fastpaths: false }); - }; - picomatch.scan = (input, options) => scan3(input, options); - picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => { - if (returnOutput === true) { - return state.output; - } - const opts = options || {}; - const prepend = opts.contains ? "" : "^"; - const append = opts.contains ? "" : "$"; - let source = `${prepend}(?:${state.output})${append}`; - if (state && state.negated === true) { - source = `^(?!${source}).*$`; - } - const regex = picomatch.toRegex(source, options); - if (returnState === true) { - regex.state = state; - } - return regex; - }; - picomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => { - if (!input || typeof input !== "string") { - throw new TypeError("Expected a non-empty string"); - } - let parsed = { negated: false, fastpaths: true }; - if (options.fastpaths !== false && (input[0] === "." || input[0] === "*")) { - parsed.output = parse5.fastpaths(input, options); - } - if (!parsed.output) { - parsed = parse5(input, options); - } - return picomatch.compileRe(parsed, options, returnOutput, returnState); - }; - picomatch.toRegex = (source, options) => { - try { - const opts = options || {}; - return new RegExp(source, opts.flags || (opts.nocase ? "i" : "")); - } catch (err) { - if (options && options.debug === true) - throw err; - return /$^/; - } - }; - picomatch.constants = constants; - module2.exports = picomatch; - } -}); - -// ../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/index.js -var require_picomatch2 = __commonJS({ - "../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/index.js"(exports2, module2) { - "use strict"; - module2.exports = require_picomatch(); - } -}); - -// ../node_modules/.pnpm/micromatch@4.0.5/node_modules/micromatch/index.js -var require_micromatch = __commonJS({ - "../node_modules/.pnpm/micromatch@4.0.5/node_modules/micromatch/index.js"(exports2, module2) { - "use strict"; - var util = require("util"); - var braces = require_braces(); - var picomatch = require_picomatch2(); - var utils = require_utils6(); - var isEmptyString = (val) => val === "" || val === "./"; - var micromatch = (list, patterns, options) => { - patterns = [].concat(patterns); - list = [].concat(list); - let omit = /* @__PURE__ */ new Set(); - let keep = /* @__PURE__ */ new Set(); - let items = /* @__PURE__ */ new Set(); - let negatives = 0; - let onResult = (state) => { - items.add(state.output); - if (options && options.onResult) { - options.onResult(state); - } - }; - for (let i = 0; i < patterns.length; i++) { - let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true); - let negated = isMatch.state.negated || isMatch.state.negatedExtglob; - if (negated) - negatives++; - for (let item of list) { - let matched = isMatch(item, true); - let match2 = negated ? !matched.isMatch : matched.isMatch; - if (!match2) - continue; - if (negated) { - omit.add(matched.output); - } else { - omit.delete(matched.output); - keep.add(matched.output); - } - } - } - let result = negatives === patterns.length ? [...items] : [...keep]; - let matches = result.filter((item) => !omit.has(item)); - if (options && matches.length === 0) { - if (options.failglob === true) { - throw new Error(`No matches found for "${patterns.join(", ")}"`); - } - if (options.nonull === true || options.nullglob === true) { - return options.unescape ? patterns.map((p) => p.replace(/\\/g, "")) : patterns; - } - } - return matches; - }; - micromatch.match = micromatch; - micromatch.matcher = (pattern, options) => picomatch(pattern, options); - micromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); - micromatch.any = micromatch.isMatch; - micromatch.not = (list, patterns, options = {}) => { - patterns = [].concat(patterns).map(String); - let result = /* @__PURE__ */ new Set(); - let items = []; - let onResult = (state) => { - if (options.onResult) - options.onResult(state); - items.push(state.output); - }; - let matches = new Set(micromatch(list, patterns, { ...options, onResult })); - for (let item of items) { - if (!matches.has(item)) { - result.add(item); - } - } - return [...result]; - }; - micromatch.contains = (str, pattern, options) => { - if (typeof str !== "string") { - throw new TypeError(`Expected a string: "${util.inspect(str)}"`); - } - if (Array.isArray(pattern)) { - return pattern.some((p) => micromatch.contains(str, p, options)); - } - if (typeof pattern === "string") { - if (isEmptyString(str) || isEmptyString(pattern)) { - return false; - } - if (str.includes(pattern) || str.startsWith("./") && str.slice(2).includes(pattern)) { - return true; - } - } - return micromatch.isMatch(str, pattern, { ...options, contains: true }); - }; - micromatch.matchKeys = (obj, patterns, options) => { - if (!utils.isObject(obj)) { - throw new TypeError("Expected the first argument to be an object"); - } - let keys3 = micromatch(Object.keys(obj), patterns, options); - let res = {}; - for (let key of keys3) - res[key] = obj[key]; - return res; - }; - micromatch.some = (list, patterns, options) => { - let items = [].concat(list); - for (let pattern of [].concat(patterns)) { - let isMatch = picomatch(String(pattern), options); - if (items.some((item) => isMatch(item))) { - return true; - } - } - return false; - }; - micromatch.every = (list, patterns, options) => { - let items = [].concat(list); - for (let pattern of [].concat(patterns)) { - let isMatch = picomatch(String(pattern), options); - if (!items.every((item) => isMatch(item))) { - return false; - } - } - return true; - }; - micromatch.all = (str, patterns, options) => { - if (typeof str !== "string") { - throw new TypeError(`Expected a string: "${util.inspect(str)}"`); - } - return [].concat(patterns).every((p) => picomatch(p, options)(str)); - }; - micromatch.capture = (glob2, input, options) => { - let posix4 = utils.isWindows(options); - let regex = picomatch.makeRe(String(glob2), { ...options, capture: true }); - let match2 = regex.exec(posix4 ? utils.toPosixSlashes(input) : input); - if (match2) { - return match2.slice(1).map((v) => v === void 0 ? "" : v); - } - }; - micromatch.makeRe = (...args) => picomatch.makeRe(...args); - micromatch.scan = (...args) => picomatch.scan(...args); - micromatch.parse = (patterns, options) => { - let res = []; - for (let pattern of [].concat(patterns || [])) { - for (let str of braces(String(pattern), options)) { - res.push(picomatch.parse(str, options)); - } - } - return res; - }; - micromatch.braces = (pattern, options) => { - if (typeof pattern !== "string") - throw new TypeError("Expected a string"); - if (options && options.nobrace === true || !/\{.*\}/.test(pattern)) { - return [pattern]; - } - return braces(pattern, options); - }; - micromatch.braceExpand = (pattern, options) => { - if (typeof pattern !== "string") - throw new TypeError("Expected a string"); - return micromatch.braces(pattern, { ...options, expand: true }); - }; - module2.exports = micromatch; - } -}); - -// ../node_modules/.pnpm/esprima@4.0.1/node_modules/esprima/dist/esprima.js -var require_esprima = __commonJS({ - "../node_modules/.pnpm/esprima@4.0.1/node_modules/esprima/dist/esprima.js"(exports2, module2) { - (function webpackUniversalModuleDefinition(root, factory) { - if (typeof exports2 === "object" && typeof module2 === "object") - module2.exports = factory(); - else if (typeof define === "function" && define.amd) - define([], factory); - else if (typeof exports2 === "object") - exports2["esprima"] = factory(); - else - root["esprima"] = factory(); - })(exports2, function() { - return ( - /******/ - function(modules) { - var installedModules = {}; - function __webpack_require__(moduleId) { - if (installedModules[moduleId]) - return installedModules[moduleId].exports; - var module3 = installedModules[moduleId] = { - /******/ - exports: {}, - /******/ - id: moduleId, - /******/ - loaded: false - /******/ - }; - modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__); - module3.loaded = true; - return module3.exports; - } - __webpack_require__.m = modules; - __webpack_require__.c = installedModules; - __webpack_require__.p = ""; - return __webpack_require__(0); - }([ - /* 0 */ - /***/ - function(module3, exports3, __webpack_require__) { - "use strict"; - Object.defineProperty(exports3, "__esModule", { value: true }); - var comment_handler_1 = __webpack_require__(1); - var jsx_parser_1 = __webpack_require__(3); - var parser_1 = __webpack_require__(8); - var tokenizer_1 = __webpack_require__(15); - function parse5(code, options, delegate) { - var commentHandler = null; - var proxyDelegate = function(node, metadata) { - if (delegate) { - delegate(node, metadata); - } - if (commentHandler) { - commentHandler.visit(node, metadata); - } - }; - var parserDelegate = typeof delegate === "function" ? proxyDelegate : null; - var collectComment = false; - if (options) { - collectComment = typeof options.comment === "boolean" && options.comment; - var attachComment = typeof options.attachComment === "boolean" && options.attachComment; - if (collectComment || attachComment) { - commentHandler = new comment_handler_1.CommentHandler(); - commentHandler.attach = attachComment; - options.comment = true; - parserDelegate = proxyDelegate; - } - } - var isModule = false; - if (options && typeof options.sourceType === "string") { - isModule = options.sourceType === "module"; - } - var parser2; - if (options && typeof options.jsx === "boolean" && options.jsx) { - parser2 = new jsx_parser_1.JSXParser(code, options, parserDelegate); - } else { - parser2 = new parser_1.Parser(code, options, parserDelegate); - } - var program = isModule ? parser2.parseModule() : parser2.parseScript(); - var ast = program; - if (collectComment && commentHandler) { - ast.comments = commentHandler.comments; - } - if (parser2.config.tokens) { - ast.tokens = parser2.tokens; - } - if (parser2.config.tolerant) { - ast.errors = parser2.errorHandler.errors; - } - return ast; - } - exports3.parse = parse5; - function parseModule(code, options, delegate) { - var parsingOptions = options || {}; - parsingOptions.sourceType = "module"; - return parse5(code, parsingOptions, delegate); - } - exports3.parseModule = parseModule; - function parseScript(code, options, delegate) { - var parsingOptions = options || {}; - parsingOptions.sourceType = "script"; - return parse5(code, parsingOptions, delegate); - } - exports3.parseScript = parseScript; - function tokenize(code, options, delegate) { - var tokenizer = new tokenizer_1.Tokenizer(code, options); - var tokens; - tokens = []; - try { - while (true) { - var token = tokenizer.getNextToken(); - if (!token) { - break; - } - if (delegate) { - token = delegate(token); - } - tokens.push(token); - } - } catch (e) { - tokenizer.errorHandler.tolerate(e); - } - if (tokenizer.errorHandler.tolerant) { - tokens.errors = tokenizer.errors(); - } - return tokens; + exports3.parseScript = parseScript; + function tokenize(code, options, delegate) { + var tokenizer = new tokenizer_1.Tokenizer(code, options); + var tokens; + tokens = []; + try { + while (true) { + var token = tokenizer.getNextToken(); + if (!token) { + break; + } + if (delegate) { + token = delegate(token); + } + tokens.push(token); + } + } catch (e) { + tokenizer.errorHandler.tolerate(e); + } + if (tokenizer.errorHandler.tolerant) { + tokens.errors = tokenizer.errors(); + } + return tokens; } exports3.tokenize = tokenize; var syntax_1 = __webpack_require__(2); @@ -27365,10 +23345,10 @@ var require_esprima = __commonJS({ }(); exports3.ThrowStatement = ThrowStatement; var TryStatement = /* @__PURE__ */ function() { - function TryStatement2(block, handler2, finalizer) { + function TryStatement2(block, handler, finalizer) { this.type = syntax_1.Syntax.TryStatement; this.block = block; - this.handler = handler2; + this.handler = handler; this.finalizer = finalizer; } return TryStatement2; @@ -29492,12 +25472,12 @@ var require_esprima = __commonJS({ var node = this.createNode(); this.expectKeyword("try"); var block = this.parseBlock(); - var handler2 = this.matchKeyword("catch") ? this.parseCatchClause() : null; + var handler = this.matchKeyword("catch") ? this.parseCatchClause() : null; var finalizer = this.matchKeyword("finally") ? this.parseFinallyClause() : null; - if (!handler2 && !finalizer) { + if (!handler && !finalizer) { this.throwError(messages_1.Messages.NoCatchOrFinally); } - return this.finalize(node, new Node.TryStatement(block, handler2, finalizer)); + return this.finalize(node, new Node.TryStatement(block, handler, finalizer)); }; Parser2.prototype.parseDebuggerStatement = function() { var node = this.createNode(); @@ -30300,12 +26280,12 @@ var require_esprima = __commonJS({ function(module3, exports3) { "use strict"; Object.defineProperty(exports3, "__esModule", { value: true }); - function assert22(condition, message) { + function assert21(condition, message) { if (!condition) { throw new Error("ASSERT: " + message); } } - exports3.assert = assert22; + exports3.assert = assert21; }, /* 10 */ /***/ @@ -30443,9 +26423,9 @@ var require_esprima = __commonJS({ return "01234567".indexOf(ch); } var Scanner = function() { - function Scanner2(code, handler2) { + function Scanner2(code, handler) { this.source = code; - this.errorHandler = handler2; + this.errorHandler = handler; this.trackComment = false; this.isModule = false; this.length = code.length; @@ -31989,10 +27969,10 @@ var require_util8 = __commonJS({ return typeof arg === "number"; } exports2.isNumber = isNumber; - function isString4(arg) { + function isString3(arg) { return typeof arg === "string"; } - exports2.isString = isString4; + exports2.isString = isString3; function isSymbol(arg) { return typeof arg === "symbol"; } @@ -32762,7 +28742,7 @@ var require_common = __commonJS({ var { isObject, isArray: isArray3, - isString: isString4, + isString: isString3, isNumber } = require_util8(); var PREFIX_BEFORE = "before"; @@ -32848,7 +28828,7 @@ var require_common = __commonJS({ }; var assign3 = (target, source, keys3) => { keys3.forEach((key) => { - if (!isString4(key) && !isNumber(key)) { + if (!isString3(key) && !isNumber(key)) { return; } if (!hasOwnProperty4(source, key)) { @@ -33415,7 +29395,7 @@ var require_stringify2 = __commonJS({ isObject, isFunction, isNumber, - isString: isString4 + isString: isString3 } = require_util8(); var repeat = require_repeat_string(); var { @@ -33575,7 +29555,7 @@ var require_stringify2 = __commonJS({ default: } } - var get_indent = (space) => isString4(space) ? space : isNumber(space) ? repeat(SPACE, space) : EMPTY; + var get_indent = (space) => isString3(space) ? space : isNumber(space) ? repeat(SPACE, space) : EMPTY; var { toString } = Object.prototype; var PRIMITIVE_OBJECT_TYPES = [ "[object Number]", @@ -41988,7 +37968,7 @@ var require_signal_exit = __commonJS({ }; }; } else { - assert22 = require("assert"); + assert21 = require("assert"); signals = require_signals(); isWin = /^win/i.test(process6.platform); EE = require("events"); @@ -42011,7 +37991,7 @@ var require_signal_exit = __commonJS({ return function() { }; } - assert22.equal(typeof cb, "function", "a callback must be provided for exit handler"); + assert21.equal(typeof cb, "function", "a callback must be provided for exit handler"); if (loaded === false) { load2(); } @@ -42117,7 +38097,7 @@ var require_signal_exit = __commonJS({ } }; } - var assert22; + var assert21; var signals; var isWin; var EE; @@ -42196,7 +38176,7 @@ var require_write_file_atomic = __commonJS({ var path26 = require("path"); var isTypedArray2 = require_is_typedarray(); var typedArrayToBuffer = require_typedarray_to_buffer(); - var { promisify: promisify4 } = require("util"); + var { promisify: promisify5 } = require("util"); var activeFiles = {}; var threadId = function getId() { try { @@ -42249,10 +38229,10 @@ var require_write_file_atomic = __commonJS({ const absoluteName = path26.resolve(filename); try { await serializeActiveFile(absoluteName); - const truename = await promisify4(fs11.realpath)(filename).catch(() => filename); + const truename = await promisify5(fs11.realpath)(filename).catch(() => filename); tmpfile = getTmpname(truename); if (!options.mode || !options.chown) { - const stats2 = await promisify4(fs11.stat)(truename).catch(() => { + const stats2 = await promisify5(fs11.stat)(truename).catch(() => { }); if (stats2) { if (options.mode == null) { @@ -42263,7 +38243,7 @@ var require_write_file_atomic = __commonJS({ } } } - fd = await promisify4(fs11.open)(tmpfile, "w", options.mode); + fd = await promisify5(fs11.open)(tmpfile, "w", options.mode); if (options.tmpfileCreated) { await options.tmpfileCreated(tmpfile); } @@ -42271,40 +38251,40 @@ var require_write_file_atomic = __commonJS({ data = typedArrayToBuffer(data); } if (Buffer.isBuffer(data)) { - await promisify4(fs11.write)(fd, data, 0, data.length, 0); + await promisify5(fs11.write)(fd, data, 0, data.length, 0); } else if (data != null) { - await promisify4(fs11.write)(fd, String(data), 0, String(options.encoding || "utf8")); + await promisify5(fs11.write)(fd, String(data), 0, String(options.encoding || "utf8")); } if (options.fsync !== false) { - await promisify4(fs11.fsync)(fd); + await promisify5(fs11.fsync)(fd); } - await promisify4(fs11.close)(fd); + await promisify5(fs11.close)(fd); fd = null; if (options.chown) { - await promisify4(fs11.chown)(tmpfile, options.chown.uid, options.chown.gid).catch((err) => { + await promisify5(fs11.chown)(tmpfile, options.chown.uid, options.chown.gid).catch((err) => { if (!isChownErrOk(err)) { throw err; } }); } if (options.mode) { - await promisify4(fs11.chmod)(tmpfile, options.mode).catch((err) => { + await promisify5(fs11.chmod)(tmpfile, options.mode).catch((err) => { if (!isChownErrOk(err)) { throw err; } }); } - await promisify4(fs11.rename)(tmpfile, truename); + await promisify5(fs11.rename)(tmpfile, truename); } finally { if (fd) { - await promisify4(fs11.close)(fd).catch( + await promisify5(fs11.close)(fd).catch( /* istanbul ignore next */ () => { } ); } removeOnExitHandler(); - await promisify4(fs11.unlink)(tmpfile).catch(() => { + await promisify5(fs11.unlink)(tmpfile).catch(() => { }); activeFiles[absoluteName].shift(); if (activeFiles[absoluteName].length > 0) { @@ -43560,10 +39540,10 @@ var require_string2 = __commonJS({ "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.isEmpty = exports2.isString = void 0; - function isString4(input) { + function isString3(input) { return typeof input === "string"; } - exports2.isString = isString4; + exports2.isString = isString3; function isEmpty2(input) { return input === ""; } @@ -43572,7 +39552,7 @@ var require_string2 = __commonJS({ }); // ../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/utils/index.js -var require_utils7 = __commonJS({ +var require_utils5 = __commonJS({ "../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/utils/index.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); @@ -43600,7 +39580,7 @@ var require_tasks = __commonJS({ "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.convertPatternGroupToTask = exports2.convertPatternGroupsToTasks = exports2.groupPatternsByBaseDirectory = exports2.getNegativePatternsAsPositive = exports2.getPositivePatterns = exports2.convertPatternsToTasks = exports2.generate = void 0; - var utils = require_utils7(); + var utils = require_utils5(); function generate(input, settings) { const patterns = processPatterns(input, settings); const ignore = processPatterns(settings.ignore, settings); @@ -43946,7 +39926,7 @@ var require_fs3 = __commonJS({ }); // ../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/index.js -var require_utils8 = __commonJS({ +var require_utils6 = __commonJS({ "../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/index.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); @@ -43981,7 +39961,7 @@ var require_async2 = __commonJS({ var fsStat = require_out(); var rpl = require_run_parallel(); var constants_1 = require_constants7(); - var utils = require_utils8(); + var utils = require_utils6(); var common = require_common2(); function read2(directory, settings, callback) { if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { @@ -44090,7 +40070,7 @@ var require_sync2 = __commonJS({ exports2.readdir = exports2.readdirWithFileTypes = exports2.read = void 0; var fsStat = require_out(); var constants_1 = require_constants7(); - var utils = require_utils8(); + var utils = require_utils6(); var common = require_common2(); function read2(directory, settings) { if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { @@ -44428,8 +40408,8 @@ var require_queue = __commonJS({ self.drain(); self.drain = noop; } - function error3(handler2) { - errorHandler = handler2; + function error3(handler) { + errorHandler = handler; } } function noop() { @@ -44914,7 +40894,7 @@ var require_reader2 = __commonJS({ Object.defineProperty(exports2, "__esModule", { value: true }); var path26 = require("path"); var fsStat = require_out(); - var utils = require_utils7(); + var utils = require_utils5(); var Reader = class { constructor(_settings) { this._settings = _settings; @@ -45047,7 +41027,7 @@ var require_matcher = __commonJS({ "../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/providers/matchers/matcher.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); - var utils = require_utils7(); + var utils = require_utils5(); var Matcher = class { constructor(_patterns, _settings, _micromatchOptions) { this._patterns = _patterns; @@ -45135,7 +41115,7 @@ var require_deep = __commonJS({ "../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/providers/filters/deep.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); - var utils = require_utils7(); + var utils = require_utils5(); var partial_1 = require_partial(); var DeepFilter = class { constructor(_settings, _micromatchOptions) { @@ -45200,7 +41180,7 @@ var require_entry = __commonJS({ "../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/providers/filters/entry.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); - var utils = require_utils7(); + var utils = require_utils5(); var EntryFilter = class { constructor(_settings, _micromatchOptions) { this._settings = _settings; @@ -45266,7 +41246,7 @@ var require_error = __commonJS({ "../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/providers/filters/error.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); - var utils = require_utils7(); + var utils = require_utils5(); var ErrorFilter = class { constructor(_settings) { this._settings = _settings; @@ -45287,7 +41267,7 @@ var require_entry2 = __commonJS({ "../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/providers/transformers/entry.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); - var utils = require_utils7(); + var utils = require_utils5(); var EntryTransformer = class { constructor(_settings) { this._settings = _settings; @@ -45577,7 +41557,7 @@ var require_out4 = __commonJS({ var stream_1 = require_stream4(); var sync_1 = require_sync6(); var settings_1 = require_settings4(); - var utils = require_utils7(); + var utils = require_utils5(); async function FastGlob(source, options) { assertPatternsInput(source); const works = getWorks(source, async_1.default, options); @@ -46008,7 +41988,7 @@ var require_cjs = __commonJS({ }); // ../node_modules/.pnpm/flat-cache@4.0.0/node_modules/flat-cache/src/utils.js -var require_utils9 = __commonJS({ +var require_utils7 = __commonJS({ "../node_modules/.pnpm/flat-cache@4.0.0/node_modules/flat-cache/src/utils.js"(exports2, module2) { var fs11 = require("fs"); var path26 = require("path"); @@ -49457,8 +45437,8 @@ var require_commonjs2 = __commonJS({ /** * Alias for {@link Minipass#on} */ - addListener(ev, handler2) { - return this.on(ev, handler2); + addListener(ev, handler) { + return this.on(ev, handler); } /** * Mostly identical to `EventEmitter.on`, with the following @@ -49477,8 +45457,8 @@ var require_commonjs2 = __commonJS({ * cause the event to be re-emitted immediately with the error previously * raised. */ - on(ev, handler2) { - const ret = super.on(ev, handler2); + on(ev, handler) { + const ret = super.on(ev, handler); if (ev === "data") { this[DISCARDED] = false; this[DATALISTENERS]++; @@ -49491,7 +45471,7 @@ var require_commonjs2 = __commonJS({ super.emit(ev); this.removeAllListeners(ev); } else if (ev === "error" && this[EMITTED_ERROR]) { - const h = handler2; + const h = handler; if (this[ASYNC]) defer(() => h.call(this, this[EMITTED_ERROR])); else @@ -49502,8 +45482,8 @@ var require_commonjs2 = __commonJS({ /** * Alias for {@link Minipass#off} */ - removeListener(ev, handler2) { - return this.off(ev, handler2); + removeListener(ev, handler) { + return this.off(ev, handler); } /** * Mostly identical to `EventEmitter.off` @@ -49513,8 +45493,8 @@ var require_commonjs2 = __commonJS({ * then the flow of data will stop until there is another consumer or * {@link Minipass#resume} is explicitly called. */ - off(ev, handler2) { - const ret = super.off(ev, handler2); + off(ev, handler) { + const ret = super.off(ev, handler); if (ev === "data") { this[DATALISTENERS] = this.listeners("data").length; if (this[DATALISTENERS] === 0 && !this[DISCARDED] && !this[PIPES].length) { @@ -50039,6738 +46019,4551 @@ var require_cjs3 = __commonJS({ get blocks() { return this.#blocks; } - #atimeMs; - get atimeMs() { - return this.#atimeMs; - } - #mtimeMs; - get mtimeMs() { - return this.#mtimeMs; - } - #ctimeMs; - get ctimeMs() { - return this.#ctimeMs; - } - #birthtimeMs; - get birthtimeMs() { - return this.#birthtimeMs; - } - #atime; - get atime() { - return this.#atime; - } - #mtime; - get mtime() { - return this.#mtime; - } - #ctime; - get ctime() { - return this.#ctime; - } - #birthtime; - get birthtime() { - return this.#birthtime; - } - #matchName; - #depth; - #fullpath; - #fullpathPosix; - #relative; - #relativePosix; - #type; - #children; - #linkTarget; - #realpath; - /** - * This property is for compatibility with the Dirent class as of - * Node v20, where Dirent['path'] refers to the path of the directory - * that was passed to readdir. So, somewhat counterintuitively, this - * property refers to the *parent* path, not the path object itself. - * For root entries, it's the path to the entry itself. - */ - get path() { - return (this.parent || this).fullpath(); - } - /** - * Do not create new Path objects directly. They should always be accessed - * via the PathScurry class or other methods on the Path class. - * - * @internal - */ - constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) { - this.name = name; - this.#matchName = nocase ? normalizeNocase(name) : normalize3(name); - this.#type = type & TYPEMASK; - this.nocase = nocase; - this.roots = roots; - this.root = root || this; - this.#children = children; - this.#fullpath = opts.fullpath; - this.#relative = opts.relative; - this.#relativePosix = opts.relativePosix; - this.parent = opts.parent; - if (this.parent) { - this.#fs = this.parent.#fs; - } else { - this.#fs = fsFromOption(opts.fs); - } - } - /** - * Returns the depth of the Path object from its root. - * - * For example, a path at `/foo/bar` would have a depth of 2. - */ - depth() { - if (this.#depth !== void 0) - return this.#depth; - if (!this.parent) - return this.#depth = 0; - return this.#depth = this.parent.depth() + 1; - } - /** - * @internal - */ - childrenCache() { - return this.#children; - } - /** - * Get the Path object referenced by the string path, resolved from this Path - */ - resolve(path26) { - if (!path26) { - return this; - } - const rootPath = this.getRootString(path26); - const dir = path26.substring(rootPath.length); - const dirParts = dir.split(this.splitSep); - const result = rootPath ? this.getRoot(rootPath).#resolveParts(dirParts) : this.#resolveParts(dirParts); - return result; - } - #resolveParts(dirParts) { - let p = this; - for (const part of dirParts) { - p = p.child(part); - } - return p; - } - /** - * Returns the cached children Path objects, if still available. If they - * have fallen out of the cache, then returns an empty array, and resets the - * READDIR_CALLED bit, so that future calls to readdir() will require an fs - * lookup. - * - * @internal - */ - children() { - const cached = this.#children.get(this); - if (cached) { - return cached; - } - const children = Object.assign([], { provisional: 0 }); - this.#children.set(this, children); - this.#type &= ~READDIR_CALLED; - return children; - } - /** - * Resolves a path portion and returns or creates the child Path. - * - * Returns `this` if pathPart is `''` or `'.'`, or `parent` if pathPart is - * `'..'`. - * - * This should not be called directly. If `pathPart` contains any path - * separators, it will lead to unsafe undefined behavior. - * - * Use `Path.resolve()` instead. - * - * @internal - */ - child(pathPart, opts) { - if (pathPart === "" || pathPart === ".") { - return this; - } - if (pathPart === "..") { - return this.parent || this; - } - const children = this.children(); - const name = this.nocase ? normalizeNocase(pathPart) : normalize3(pathPart); - for (const p of children) { - if (p.#matchName === name) { - return p; - } - } - const s = this.parent ? this.sep : ""; - const fullpath = this.#fullpath ? this.#fullpath + s + pathPart : void 0; - const pchild = this.newChild(pathPart, UNKNOWN, { - ...opts, - parent: this, - fullpath - }); - if (!this.canReaddir()) { - pchild.#type |= ENOENT; - } - children.push(pchild); - return pchild; - } - /** - * The relative path from the cwd. If it does not share an ancestor with - * the cwd, then this ends up being equivalent to the fullpath() - */ - relative() { - if (this.#relative !== void 0) { - return this.#relative; - } - const name = this.name; - const p = this.parent; - if (!p) { - return this.#relative = this.name; - } - const pv = p.relative(); - return pv + (!pv || !p.parent ? "" : this.sep) + name; - } - /** - * The relative path from the cwd, using / as the path separator. - * If it does not share an ancestor with - * the cwd, then this ends up being equivalent to the fullpathPosix() - * On posix systems, this is identical to relative(). - */ - relativePosix() { - if (this.sep === "/") - return this.relative(); - if (this.#relativePosix !== void 0) - return this.#relativePosix; - const name = this.name; - const p = this.parent; - if (!p) { - return this.#relativePosix = this.fullpathPosix(); - } - const pv = p.relativePosix(); - return pv + (!pv || !p.parent ? "" : "/") + name; - } - /** - * The fully resolved path string for this Path entry - */ - fullpath() { - if (this.#fullpath !== void 0) { - return this.#fullpath; - } - const name = this.name; - const p = this.parent; - if (!p) { - return this.#fullpath = this.name; - } - const pv = p.fullpath(); - const fp = pv + (!p.parent ? "" : this.sep) + name; - return this.#fullpath = fp; - } - /** - * On platforms other than windows, this is identical to fullpath. - * - * On windows, this is overridden to return the forward-slash form of the - * full UNC path. - */ - fullpathPosix() { - if (this.#fullpathPosix !== void 0) - return this.#fullpathPosix; - if (this.sep === "/") - return this.#fullpathPosix = this.fullpath(); - if (!this.parent) { - const p2 = this.fullpath().replace(/\\/g, "/"); - if (/^[a-z]:\//i.test(p2)) { - return this.#fullpathPosix = `//?/${p2}`; - } else { - return this.#fullpathPosix = p2; - } - } - const p = this.parent; - const pfpp = p.fullpathPosix(); - const fpp = pfpp + (!pfpp || !p.parent ? "" : "/") + this.name; - return this.#fullpathPosix = fpp; - } - /** - * Is the Path of an unknown type? - * - * Note that we might know *something* about it if there has been a previous - * filesystem operation, for example that it does not exist, or is not a - * link, or whether it has child entries. - */ - isUnknown() { - return (this.#type & IFMT) === UNKNOWN; - } - isType(type) { - return this[`is${type}`](); - } - getType() { - return this.isUnknown() ? "Unknown" : this.isDirectory() ? "Directory" : this.isFile() ? "File" : this.isSymbolicLink() ? "SymbolicLink" : this.isFIFO() ? "FIFO" : this.isCharacterDevice() ? "CharacterDevice" : this.isBlockDevice() ? "BlockDevice" : ( - /* c8 ignore start */ - this.isSocket() ? "Socket" : "Unknown" - ); - } - /** - * Is the Path a regular file? - */ - isFile() { - return (this.#type & IFMT) === IFREG; - } - /** - * Is the Path a directory? - */ - isDirectory() { - return (this.#type & IFMT) === IFDIR; - } - /** - * Is the path a character device? - */ - isCharacterDevice() { - return (this.#type & IFMT) === IFCHR; - } - /** - * Is the path a block device? - */ - isBlockDevice() { - return (this.#type & IFMT) === IFBLK; - } - /** - * Is the path a FIFO pipe? - */ - isFIFO() { - return (this.#type & IFMT) === IFIFO; - } - /** - * Is the path a socket? - */ - isSocket() { - return (this.#type & IFMT) === IFSOCK; - } - /** - * Is the path a symbolic link? - */ - isSymbolicLink() { - return (this.#type & IFLNK) === IFLNK; - } - /** - * Return the entry if it has been subject of a successful lstat, or - * undefined otherwise. - * - * Does not read the filesystem, so an undefined result *could* simply - * mean that we haven't called lstat on it. - */ - lstatCached() { - return this.#type & LSTAT_CALLED ? this : void 0; - } - /** - * Return the cached link target if the entry has been the subject of a - * successful readlink, or undefined otherwise. - * - * Does not read the filesystem, so an undefined result *could* just mean we - * don't have any cached data. Only use it if you are very sure that a - * readlink() has been called at some point. - */ - readlinkCached() { - return this.#linkTarget; - } - /** - * Returns the cached realpath target if the entry has been the subject - * of a successful realpath, or undefined otherwise. - * - * Does not read the filesystem, so an undefined result *could* just mean we - * don't have any cached data. Only use it if you are very sure that a - * realpath() has been called at some point. - */ - realpathCached() { - return this.#realpath; - } - /** - * Returns the cached child Path entries array if the entry has been the - * subject of a successful readdir(), or [] otherwise. - * - * Does not read the filesystem, so an empty array *could* just mean we - * don't have any cached data. Only use it if you are very sure that a - * readdir() has been called recently enough to still be valid. - */ - readdirCached() { - const children = this.children(); - return children.slice(0, children.provisional); - } - /** - * Return true if it's worth trying to readlink. Ie, we don't (yet) have - * any indication that readlink will definitely fail. - * - * Returns false if the path is known to not be a symlink, if a previous - * readlink failed, or if the entry does not exist. - */ - canReadlink() { - if (this.#linkTarget) - return true; - if (!this.parent) - return false; - const ifmt = this.#type & IFMT; - return !(ifmt !== UNKNOWN && ifmt !== IFLNK || this.#type & ENOREADLINK || this.#type & ENOENT); - } - /** - * Return true if readdir has previously been successfully called on this - * path, indicating that cachedReaddir() is likely valid. - */ - calledReaddir() { - return !!(this.#type & READDIR_CALLED); - } - /** - * Returns true if the path is known to not exist. That is, a previous lstat - * or readdir failed to verify its existence when that would have been - * expected, or a parent entry was marked either enoent or enotdir. - */ - isENOENT() { - return !!(this.#type & ENOENT); - } - /** - * Return true if the path is a match for the given path name. This handles - * case sensitivity and unicode normalization. - * - * Note: even on case-sensitive systems, it is **not** safe to test the - * equality of the `.name` property to determine whether a given pathname - * matches, due to unicode normalization mismatches. - * - * Always use this method instead of testing the `path.name` property - * directly. - */ - isNamed(n) { - return !this.nocase ? this.#matchName === normalize3(n) : this.#matchName === normalizeNocase(n); - } - /** - * Return the Path object corresponding to the target of a symbolic link. - * - * If the Path is not a symbolic link, or if the readlink call fails for any - * reason, `undefined` is returned. - * - * Result is cached, and thus may be outdated if the filesystem is mutated. - */ - async readlink() { - const target = this.#linkTarget; - if (target) { - return target; - } - if (!this.canReadlink()) { - return void 0; - } - if (!this.parent) { - return void 0; - } - try { - const read2 = await this.#fs.promises.readlink(this.fullpath()); - const linkTarget = this.parent.resolve(read2); - if (linkTarget) { - return this.#linkTarget = linkTarget; - } - } catch (er) { - this.#readlinkFail(er.code); - return void 0; - } - } - /** - * Synchronous {@link PathBase.readlink} - */ - readlinkSync() { - const target = this.#linkTarget; - if (target) { - return target; - } - if (!this.canReadlink()) { - return void 0; - } - if (!this.parent) { - return void 0; - } - try { - const read2 = this.#fs.readlinkSync(this.fullpath()); - const linkTarget = this.parent.resolve(read2); - if (linkTarget) { - return this.#linkTarget = linkTarget; - } - } catch (er) { - this.#readlinkFail(er.code); - return void 0; - } - } - #readdirSuccess(children) { - this.#type |= READDIR_CALLED; - for (let p = children.provisional; p < children.length; p++) { - children[p].#markENOENT(); - } - } - #markENOENT() { - if (this.#type & ENOENT) - return; - this.#type = (this.#type | ENOENT) & IFMT_UNKNOWN; - this.#markChildrenENOENT(); - } - #markChildrenENOENT() { - const children = this.children(); - children.provisional = 0; - for (const p of children) { - p.#markENOENT(); - } + #atimeMs; + get atimeMs() { + return this.#atimeMs; } - #markENOREALPATH() { - this.#type |= ENOREALPATH; - this.#markENOTDIR(); + #mtimeMs; + get mtimeMs() { + return this.#mtimeMs; } - // save the information when we know the entry is not a dir - #markENOTDIR() { - if (this.#type & ENOTDIR) - return; - let t = this.#type; - if ((t & IFMT) === IFDIR) - t &= IFMT_UNKNOWN; - this.#type = t | ENOTDIR; - this.#markChildrenENOENT(); + #ctimeMs; + get ctimeMs() { + return this.#ctimeMs; } - #readdirFail(code = "") { - if (code === "ENOTDIR" || code === "EPERM") { - this.#markENOTDIR(); - } else if (code === "ENOENT") { - this.#markENOENT(); - } else { - this.children().provisional = 0; - } + #birthtimeMs; + get birthtimeMs() { + return this.#birthtimeMs; } - #lstatFail(code = "") { - if (code === "ENOTDIR") { - const p = this.parent; - p.#markENOTDIR(); - } else if (code === "ENOENT") { - this.#markENOENT(); - } + #atime; + get atime() { + return this.#atime; } - #readlinkFail(code = "") { - let ter = this.#type; - ter |= ENOREADLINK; - if (code === "ENOENT") - ter |= ENOENT; - if (code === "EINVAL" || code === "UNKNOWN") { - ter &= IFMT_UNKNOWN; - } - this.#type = ter; - if (code === "ENOTDIR" && this.parent) { - this.parent.#markENOTDIR(); - } + #mtime; + get mtime() { + return this.#mtime; } - #readdirAddChild(e, c) { - return this.#readdirMaybePromoteChild(e, c) || this.#readdirAddNewChild(e, c); + #ctime; + get ctime() { + return this.#ctime; } - #readdirAddNewChild(e, c) { - const type = entToType(e); - const child = this.newChild(e.name, type, { parent: this }); - const ifmt = child.#type & IFMT; - if (ifmt !== IFDIR && ifmt !== IFLNK && ifmt !== UNKNOWN) { - child.#type |= ENOTDIR; - } - c.unshift(child); - c.provisional++; - return child; + #birthtime; + get birthtime() { + return this.#birthtime; } - #readdirMaybePromoteChild(e, c) { - for (let p = c.provisional; p < c.length; p++) { - const pchild = c[p]; - const name = this.nocase ? normalizeNocase(e.name) : normalize3(e.name); - if (name !== pchild.#matchName) { - continue; - } - return this.#readdirPromoteChild(e, pchild, p, c); - } + #matchName; + #depth; + #fullpath; + #fullpathPosix; + #relative; + #relativePosix; + #type; + #children; + #linkTarget; + #realpath; + /** + * This property is for compatibility with the Dirent class as of + * Node v20, where Dirent['path'] refers to the path of the directory + * that was passed to readdir. So, somewhat counterintuitively, this + * property refers to the *parent* path, not the path object itself. + * For root entries, it's the path to the entry itself. + */ + get path() { + return (this.parent || this).fullpath(); } - #readdirPromoteChild(e, p, index, c) { - const v = p.name; - p.#type = p.#type & IFMT_UNKNOWN | entToType(e); - if (v !== e.name) - p.name = e.name; - if (index !== c.provisional) { - if (index === c.length - 1) - c.pop(); - else - c.splice(index, 1); - c.unshift(p); + /** + * Do not create new Path objects directly. They should always be accessed + * via the PathScurry class or other methods on the Path class. + * + * @internal + */ + constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) { + this.name = name; + this.#matchName = nocase ? normalizeNocase(name) : normalize3(name); + this.#type = type & TYPEMASK; + this.nocase = nocase; + this.roots = roots; + this.root = root || this; + this.#children = children; + this.#fullpath = opts.fullpath; + this.#relative = opts.relative; + this.#relativePosix = opts.relativePosix; + this.parent = opts.parent; + if (this.parent) { + this.#fs = this.parent.#fs; + } else { + this.#fs = fsFromOption(opts.fs); } - c.provisional++; - return p; } /** - * Call lstat() on this Path, and update all known information that can be - * determined. - * - * Note that unlike `fs.lstat()`, the returned value does not contain some - * information, such as `mode`, `dev`, `nlink`, and `ino`. If that - * information is required, you will need to call `fs.lstat` yourself. - * - * If the Path refers to a nonexistent file, or if the lstat call fails for - * any reason, `undefined` is returned. Otherwise the updated Path object is - * returned. + * Returns the depth of the Path object from its root. * - * Results are cached, and thus may be out of date if the filesystem is - * mutated. + * For example, a path at `/foo/bar` would have a depth of 2. */ - async lstat() { - if ((this.#type & ENOENT) === 0) { - try { - this.#applyStat(await this.#fs.promises.lstat(this.fullpath())); - return this; - } catch (er) { - this.#lstatFail(er.code); - } - } + depth() { + if (this.#depth !== void 0) + return this.#depth; + if (!this.parent) + return this.#depth = 0; + return this.#depth = this.parent.depth() + 1; } /** - * synchronous {@link PathBase.lstat} + * @internal */ - lstatSync() { - if ((this.#type & ENOENT) === 0) { - try { - this.#applyStat(this.#fs.lstatSync(this.fullpath())); - return this; - } catch (er) { - this.#lstatFail(er.code); - } - } + childrenCache() { + return this.#children; } - #applyStat(st) { - const { atime, atimeMs, birthtime, birthtimeMs, blksize, blocks, ctime, ctimeMs, dev, gid, ino, mode, mtime, mtimeMs, nlink, rdev, size, uid } = st; - this.#atime = atime; - this.#atimeMs = atimeMs; - this.#birthtime = birthtime; - this.#birthtimeMs = birthtimeMs; - this.#blksize = blksize; - this.#blocks = blocks; - this.#ctime = ctime; - this.#ctimeMs = ctimeMs; - this.#dev = dev; - this.#gid = gid; - this.#ino = ino; - this.#mode = mode; - this.#mtime = mtime; - this.#mtimeMs = mtimeMs; - this.#nlink = nlink; - this.#rdev = rdev; - this.#size = size; - this.#uid = uid; - const ifmt = entToType(st); - this.#type = this.#type & IFMT_UNKNOWN | ifmt | LSTAT_CALLED; - if (ifmt !== UNKNOWN && ifmt !== IFDIR && ifmt !== IFLNK) { - this.#type |= ENOTDIR; + /** + * Get the Path object referenced by the string path, resolved from this Path + */ + resolve(path26) { + if (!path26) { + return this; } + const rootPath = this.getRootString(path26); + const dir = path26.substring(rootPath.length); + const dirParts = dir.split(this.splitSep); + const result = rootPath ? this.getRoot(rootPath).#resolveParts(dirParts) : this.#resolveParts(dirParts); + return result; } - #onReaddirCB = []; - #readdirCBInFlight = false; - #callOnReaddirCB(children) { - this.#readdirCBInFlight = false; - const cbs = this.#onReaddirCB.slice(); - this.#onReaddirCB.length = 0; - cbs.forEach((cb) => cb(null, children)); + #resolveParts(dirParts) { + let p = this; + for (const part of dirParts) { + p = p.child(part); + } + return p; } /** - * Standard node-style callback interface to get list of directory entries. - * - * If the Path cannot or does not contain any children, then an empty array - * is returned. - * - * Results are cached, and thus may be out of date if the filesystem is - * mutated. + * Returns the cached children Path objects, if still available. If they + * have fallen out of the cache, then returns an empty array, and resets the + * READDIR_CALLED bit, so that future calls to readdir() will require an fs + * lookup. * - * @param cb The callback called with (er, entries). Note that the `er` - * param is somewhat extraneous, as all readdir() errors are handled and - * simply result in an empty set of entries being returned. - * @param allowZalgo Boolean indicating that immediately known results should - * *not* be deferred with `queueMicrotask`. Defaults to `false`. Release - * zalgo at your peril, the dark pony lord is devious and unforgiving. + * @internal */ - readdirCB(cb, allowZalgo = false) { - if (!this.canReaddir()) { - if (allowZalgo) - cb(null, []); - else - queueMicrotask(() => cb(null, [])); - return; - } - const children = this.children(); - if (this.calledReaddir()) { - const c = children.slice(0, children.provisional); - if (allowZalgo) - cb(null, c); - else - queueMicrotask(() => cb(null, c)); - return; - } - this.#onReaddirCB.push(cb); - if (this.#readdirCBInFlight) { - return; + children() { + const cached = this.#children.get(this); + if (cached) { + return cached; } - this.#readdirCBInFlight = true; - const fullpath = this.fullpath(); - this.#fs.readdir(fullpath, { withFileTypes: true }, (er, entries) => { - if (er) { - this.#readdirFail(er.code); - children.provisional = 0; - } else { - for (const e of entries) { - this.#readdirAddChild(e, children); - } - this.#readdirSuccess(children); - } - this.#callOnReaddirCB(children.slice(0, children.provisional)); - return; - }); + const children = Object.assign([], { provisional: 0 }); + this.#children.set(this, children); + this.#type &= ~READDIR_CALLED; + return children; } - #asyncReaddirInFlight; /** - * Return an array of known child entries. + * Resolves a path portion and returns or creates the child Path. * - * If the Path cannot or does not contain any children, then an empty array - * is returned. + * Returns `this` if pathPart is `''` or `'.'`, or `parent` if pathPart is + * `'..'`. * - * Results are cached, and thus may be out of date if the filesystem is - * mutated. + * This should not be called directly. If `pathPart` contains any path + * separators, it will lead to unsafe undefined behavior. + * + * Use `Path.resolve()` instead. + * + * @internal */ - async readdir() { - if (!this.canReaddir()) { - return []; + child(pathPart, opts) { + if (pathPart === "" || pathPart === ".") { + return this; } - const children = this.children(); - if (this.calledReaddir()) { - return children.slice(0, children.provisional); + if (pathPart === "..") { + return this.parent || this; } - const fullpath = this.fullpath(); - if (this.#asyncReaddirInFlight) { - await this.#asyncReaddirInFlight; - } else { - let resolve12 = () => { - }; - this.#asyncReaddirInFlight = new Promise((res) => resolve12 = res); - try { - for (const e of await this.#fs.promises.readdir(fullpath, { - withFileTypes: true - })) { - this.#readdirAddChild(e, children); - } - this.#readdirSuccess(children); - } catch (er) { - this.#readdirFail(er.code); - children.provisional = 0; + const children = this.children(); + const name = this.nocase ? normalizeNocase(pathPart) : normalize3(pathPart); + for (const p of children) { + if (p.#matchName === name) { + return p; } - this.#asyncReaddirInFlight = void 0; - resolve12(); } - return children.slice(0, children.provisional); + const s = this.parent ? this.sep : ""; + const fullpath = this.#fullpath ? this.#fullpath + s + pathPart : void 0; + const pchild = this.newChild(pathPart, UNKNOWN, { + ...opts, + parent: this, + fullpath + }); + if (!this.canReaddir()) { + pchild.#type |= ENOENT; + } + children.push(pchild); + return pchild; } /** - * synchronous {@link PathBase.readdir} + * The relative path from the cwd. If it does not share an ancestor with + * the cwd, then this ends up being equivalent to the fullpath() */ - readdirSync() { - if (!this.canReaddir()) { - return []; - } - const children = this.children(); - if (this.calledReaddir()) { - return children.slice(0, children.provisional); - } - const fullpath = this.fullpath(); - try { - for (const e of this.#fs.readdirSync(fullpath, { - withFileTypes: true - })) { - this.#readdirAddChild(e, children); - } - this.#readdirSuccess(children); - } catch (er) { - this.#readdirFail(er.code); - children.provisional = 0; + relative() { + if (this.#relative !== void 0) { + return this.#relative; } - return children.slice(0, children.provisional); - } - canReaddir() { - if (this.#type & ENOCHILD) - return false; - const ifmt = IFMT & this.#type; - if (!(ifmt === UNKNOWN || ifmt === IFDIR || ifmt === IFLNK)) { - return false; + const name = this.name; + const p = this.parent; + if (!p) { + return this.#relative = this.name; } - return true; - } - shouldWalk(dirs, walkFilter) { - return (this.#type & IFDIR) === IFDIR && !(this.#type & ENOCHILD) && !dirs.has(this) && (!walkFilter || walkFilter(this)); + const pv = p.relative(); + return pv + (!pv || !p.parent ? "" : this.sep) + name; } /** - * Return the Path object corresponding to path as resolved - * by realpath(3). - * - * If the realpath call fails for any reason, `undefined` is returned. - * - * Result is cached, and thus may be outdated if the filesystem is mutated. - * On success, returns a Path object. + * The relative path from the cwd, using / as the path separator. + * If it does not share an ancestor with + * the cwd, then this ends up being equivalent to the fullpathPosix() + * On posix systems, this is identical to relative(). */ - async realpath() { - if (this.#realpath) - return this.#realpath; - if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type) - return void 0; - try { - const rp = await this.#fs.promises.realpath(this.fullpath()); - return this.#realpath = this.resolve(rp); - } catch (_) { - this.#markENOREALPATH(); + relativePosix() { + if (this.sep === "/") + return this.relative(); + if (this.#relativePosix !== void 0) + return this.#relativePosix; + const name = this.name; + const p = this.parent; + if (!p) { + return this.#relativePosix = this.fullpathPosix(); } + const pv = p.relativePosix(); + return pv + (!pv || !p.parent ? "" : "/") + name; } /** - * Synchronous {@link realpath} + * The fully resolved path string for this Path entry */ - realpathSync() { - if (this.#realpath) - return this.#realpath; - if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type) - return void 0; - try { - const rp = this.#fs.realpathSync(this.fullpath()); - return this.#realpath = this.resolve(rp); - } catch (_) { - this.#markENOREALPATH(); + fullpath() { + if (this.#fullpath !== void 0) { + return this.#fullpath; } + const name = this.name; + const p = this.parent; + if (!p) { + return this.#fullpath = this.name; + } + const pv = p.fullpath(); + const fp = pv + (!p.parent ? "" : this.sep) + name; + return this.#fullpath = fp; } /** - * Internal method to mark this Path object as the scurry cwd, - * called by {@link PathScurry#chdir} + * On platforms other than windows, this is identical to fullpath. * - * @internal + * On windows, this is overridden to return the forward-slash form of the + * full UNC path. */ - [setAsCwd](oldCwd) { - if (oldCwd === this) - return; - const changed = /* @__PURE__ */ new Set([]); - let rp = []; - let p = this; - while (p && p.parent) { - changed.add(p); - p.#relative = rp.join(this.sep); - p.#relativePosix = rp.join("/"); - p = p.parent; - rp.push(".."); - } - p = oldCwd; - while (p && p.parent && !changed.has(p)) { - p.#relative = void 0; - p.#relativePosix = void 0; - p = p.parent; + fullpathPosix() { + if (this.#fullpathPosix !== void 0) + return this.#fullpathPosix; + if (this.sep === "/") + return this.#fullpathPosix = this.fullpath(); + if (!this.parent) { + const p2 = this.fullpath().replace(/\\/g, "/"); + if (/^[a-z]:\//i.test(p2)) { + return this.#fullpathPosix = `//?/${p2}`; + } else { + return this.#fullpathPosix = p2; + } } + const p = this.parent; + const pfpp = p.fullpathPosix(); + const fpp = pfpp + (!pfpp || !p.parent ? "" : "/") + this.name; + return this.#fullpathPosix = fpp; } - }; - exports2.PathBase = PathBase; - var PathWin32 = class _PathWin32 extends PathBase { - /** - * Separator for generating path strings. - */ - sep = "\\"; - /** - * Separator for parsing path strings. - */ - splitSep = eitherSep; /** - * Do not create new Path objects directly. They should always be accessed - * via the PathScurry class or other methods on the Path class. + * Is the Path of an unknown type? * - * @internal + * Note that we might know *something* about it if there has been a previous + * filesystem operation, for example that it does not exist, or is not a + * link, or whether it has child entries. */ - constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) { - super(name, type, root, roots, nocase, children, opts); + isUnknown() { + return (this.#type & IFMT) === UNKNOWN; + } + isType(type) { + return this[`is${type}`](); + } + getType() { + return this.isUnknown() ? "Unknown" : this.isDirectory() ? "Directory" : this.isFile() ? "File" : this.isSymbolicLink() ? "SymbolicLink" : this.isFIFO() ? "FIFO" : this.isCharacterDevice() ? "CharacterDevice" : this.isBlockDevice() ? "BlockDevice" : ( + /* c8 ignore start */ + this.isSocket() ? "Socket" : "Unknown" + ); } /** - * @internal + * Is the Path a regular file? */ - newChild(name, type = UNKNOWN, opts = {}) { - return new _PathWin32(name, type, this.root, this.roots, this.nocase, this.childrenCache(), opts); + isFile() { + return (this.#type & IFMT) === IFREG; } /** - * @internal + * Is the Path a directory? */ - getRootString(path26) { - return path_1.win32.parse(path26).root; + isDirectory() { + return (this.#type & IFMT) === IFDIR; } /** - * @internal + * Is the path a character device? */ - getRoot(rootPath) { - rootPath = uncToDrive(rootPath.toUpperCase()); - if (rootPath === this.root.name) { - return this.root; - } - for (const [compare4, root] of Object.entries(this.roots)) { - if (this.sameRoot(rootPath, compare4)) { - return this.roots[rootPath] = root; - } - } - return this.roots[rootPath] = new PathScurryWin32(rootPath, this).root; + isCharacterDevice() { + return (this.#type & IFMT) === IFCHR; } /** - * @internal + * Is the path a block device? */ - sameRoot(rootPath, compare4 = this.root.name) { - rootPath = rootPath.toUpperCase().replace(/\//g, "\\").replace(uncDriveRegexp, "$1\\"); - return rootPath === compare4; + isBlockDevice() { + return (this.#type & IFMT) === IFBLK; } - }; - exports2.PathWin32 = PathWin32; - var PathPosix = class _PathPosix extends PathBase { /** - * separator for parsing path strings + * Is the path a FIFO pipe? */ - splitSep = "/"; + isFIFO() { + return (this.#type & IFMT) === IFIFO; + } /** - * separator for generating path strings + * Is the path a socket? */ - sep = "/"; + isSocket() { + return (this.#type & IFMT) === IFSOCK; + } /** - * Do not create new Path objects directly. They should always be accessed - * via the PathScurry class or other methods on the Path class. - * - * @internal + * Is the path a symbolic link? */ - constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) { - super(name, type, root, roots, nocase, children, opts); + isSymbolicLink() { + return (this.#type & IFLNK) === IFLNK; } /** - * @internal + * Return the entry if it has been subject of a successful lstat, or + * undefined otherwise. + * + * Does not read the filesystem, so an undefined result *could* simply + * mean that we haven't called lstat on it. */ - getRootString(path26) { - return path26.startsWith("/") ? "/" : ""; + lstatCached() { + return this.#type & LSTAT_CALLED ? this : void 0; } /** - * @internal + * Return the cached link target if the entry has been the subject of a + * successful readlink, or undefined otherwise. + * + * Does not read the filesystem, so an undefined result *could* just mean we + * don't have any cached data. Only use it if you are very sure that a + * readlink() has been called at some point. */ - getRoot(_rootPath) { - return this.root; + readlinkCached() { + return this.#linkTarget; } /** - * @internal + * Returns the cached realpath target if the entry has been the subject + * of a successful realpath, or undefined otherwise. + * + * Does not read the filesystem, so an undefined result *could* just mean we + * don't have any cached data. Only use it if you are very sure that a + * realpath() has been called at some point. */ - newChild(name, type = UNKNOWN, opts = {}) { - return new _PathPosix(name, type, this.root, this.roots, this.nocase, this.childrenCache(), opts); + realpathCached() { + return this.#realpath; } - }; - exports2.PathPosix = PathPosix; - var PathScurryBase = class { /** - * The root Path entry for the current working directory of this Scurry + * Returns the cached child Path entries array if the entry has been the + * subject of a successful readdir(), or [] otherwise. + * + * Does not read the filesystem, so an empty array *could* just mean we + * don't have any cached data. Only use it if you are very sure that a + * readdir() has been called recently enough to still be valid. */ - root; + readdirCached() { + const children = this.children(); + return children.slice(0, children.provisional); + } /** - * The string path for the root of this Scurry's current working directory + * Return true if it's worth trying to readlink. Ie, we don't (yet) have + * any indication that readlink will definitely fail. + * + * Returns false if the path is known to not be a symlink, if a previous + * readlink failed, or if the entry does not exist. */ - rootPath; + canReadlink() { + if (this.#linkTarget) + return true; + if (!this.parent) + return false; + const ifmt = this.#type & IFMT; + return !(ifmt !== UNKNOWN && ifmt !== IFLNK || this.#type & ENOREADLINK || this.#type & ENOENT); + } /** - * A collection of all roots encountered, referenced by rootPath + * Return true if readdir has previously been successfully called on this + * path, indicating that cachedReaddir() is likely valid. */ - roots; + calledReaddir() { + return !!(this.#type & READDIR_CALLED); + } /** - * The Path entry corresponding to this PathScurry's current working directory. + * Returns true if the path is known to not exist. That is, a previous lstat + * or readdir failed to verify its existence when that would have been + * expected, or a parent entry was marked either enoent or enotdir. */ - cwd; - #resolveCache; - #resolvePosixCache; - #children; + isENOENT() { + return !!(this.#type & ENOENT); + } /** - * Perform path comparisons case-insensitively. + * Return true if the path is a match for the given path name. This handles + * case sensitivity and unicode normalization. * - * Defaults true on Darwin and Windows systems, false elsewhere. + * Note: even on case-sensitive systems, it is **not** safe to test the + * equality of the `.name` property to determine whether a given pathname + * matches, due to unicode normalization mismatches. + * + * Always use this method instead of testing the `path.name` property + * directly. */ - nocase; - #fs; + isNamed(n) { + return !this.nocase ? this.#matchName === normalize3(n) : this.#matchName === normalizeNocase(n); + } /** - * This class should not be instantiated directly. + * Return the Path object corresponding to the target of a symbolic link. * - * Use PathScurryWin32, PathScurryDarwin, PathScurryPosix, or PathScurry + * If the Path is not a symbolic link, or if the readlink call fails for any + * reason, `undefined` is returned. * - * @internal + * Result is cached, and thus may be outdated if the filesystem is mutated. */ - constructor(cwd = process.cwd(), pathImpl, sep7, { nocase, childrenCacheSize = 16 * 1024, fs: fs11 = defaultFS } = {}) { - this.#fs = fsFromOption(fs11); - if (cwd instanceof URL || cwd.startsWith("file://")) { - cwd = (0, url_1.fileURLToPath)(cwd); + async readlink() { + const target = this.#linkTarget; + if (target) { + return target; } - const cwdPath = pathImpl.resolve(cwd); - this.roots = /* @__PURE__ */ Object.create(null); - this.rootPath = this.parseRootPath(cwdPath); - this.#resolveCache = new ResolveCache(); - this.#resolvePosixCache = new ResolveCache(); - this.#children = new ChildrenCache(childrenCacheSize); - const split2 = cwdPath.substring(this.rootPath.length).split(sep7); - if (split2.length === 1 && !split2[0]) { - split2.pop(); + if (!this.canReadlink()) { + return void 0; } - if (nocase === void 0) { - throw new TypeError("must provide nocase setting to PathScurryBase ctor"); + if (!this.parent) { + return void 0; } - this.nocase = nocase; - this.root = this.newRoot(this.#fs); - this.roots[this.rootPath] = this.root; - let prev = this.root; - let len = split2.length - 1; - const joinSep = pathImpl.sep; - let abs = this.rootPath; - let sawFirst = false; - for (const part of split2) { - const l = len--; - prev = prev.child(part, { - relative: new Array(l).fill("..").join(joinSep), - relativePosix: new Array(l).fill("..").join("/"), - fullpath: abs += (sawFirst ? "" : joinSep) + part - }); - sawFirst = true; + try { + const read2 = await this.#fs.promises.readlink(this.fullpath()); + const linkTarget = this.parent.resolve(read2); + if (linkTarget) { + return this.#linkTarget = linkTarget; + } + } catch (er) { + this.#readlinkFail(er.code); + return void 0; } - this.cwd = prev; } /** - * Get the depth of a provided path, string, or the cwd + * Synchronous {@link PathBase.readlink} */ - depth(path26 = this.cwd) { - if (typeof path26 === "string") { - path26 = this.cwd.resolve(path26); + readlinkSync() { + const target = this.#linkTarget; + if (target) { + return target; + } + if (!this.canReadlink()) { + return void 0; + } + if (!this.parent) { + return void 0; + } + try { + const read2 = this.#fs.readlinkSync(this.fullpath()); + const linkTarget = this.parent.resolve(read2); + if (linkTarget) { + return this.#linkTarget = linkTarget; + } + } catch (er) { + this.#readlinkFail(er.code); + return void 0; } - return path26.depth(); } - /** - * Return the cache of child entries. Exposed so subclasses can create - * child Path objects in a platform-specific way. - * - * @internal - */ - childrenCache() { - return this.#children; + #readdirSuccess(children) { + this.#type |= READDIR_CALLED; + for (let p = children.provisional; p < children.length; p++) { + children[p].#markENOENT(); + } } - /** - * Resolve one or more path strings to a resolved string - * - * Same interface as require('path').resolve. - * - * Much faster than path.resolve() when called multiple times for the same - * path, because the resolved Path objects are cached. Much slower - * otherwise. - */ - resolve(...paths) { - let r = ""; - for (let i = paths.length - 1; i >= 0; i--) { - const p = paths[i]; - if (!p || p === ".") - continue; - r = r ? `${p}/${r}` : p; - if (this.isAbsolute(p)) { - break; - } + #markENOENT() { + if (this.#type & ENOENT) + return; + this.#type = (this.#type | ENOENT) & IFMT_UNKNOWN; + this.#markChildrenENOENT(); + } + #markChildrenENOENT() { + const children = this.children(); + children.provisional = 0; + for (const p of children) { + p.#markENOENT(); } - const cached = this.#resolveCache.get(r); - if (cached !== void 0) { - return cached; + } + #markENOREALPATH() { + this.#type |= ENOREALPATH; + this.#markENOTDIR(); + } + // save the information when we know the entry is not a dir + #markENOTDIR() { + if (this.#type & ENOTDIR) + return; + let t = this.#type; + if ((t & IFMT) === IFDIR) + t &= IFMT_UNKNOWN; + this.#type = t | ENOTDIR; + this.#markChildrenENOENT(); + } + #readdirFail(code = "") { + if (code === "ENOTDIR" || code === "EPERM") { + this.#markENOTDIR(); + } else if (code === "ENOENT") { + this.#markENOENT(); + } else { + this.children().provisional = 0; } - const result = this.cwd.resolve(r).fullpath(); - this.#resolveCache.set(r, result); - return result; } - /** - * Resolve one or more path strings to a resolved string, returning - * the posix path. Identical to .resolve() on posix systems, but on - * windows will return a forward-slash separated UNC path. - * - * Same interface as require('path').resolve. - * - * Much faster than path.resolve() when called multiple times for the same - * path, because the resolved Path objects are cached. Much slower - * otherwise. - */ - resolvePosix(...paths) { - let r = ""; - for (let i = paths.length - 1; i >= 0; i--) { - const p = paths[i]; - if (!p || p === ".") - continue; - r = r ? `${p}/${r}` : p; - if (this.isAbsolute(p)) { - break; - } + #lstatFail(code = "") { + if (code === "ENOTDIR") { + const p = this.parent; + p.#markENOTDIR(); + } else if (code === "ENOENT") { + this.#markENOENT(); } - const cached = this.#resolvePosixCache.get(r); - if (cached !== void 0) { - return cached; + } + #readlinkFail(code = "") { + let ter = this.#type; + ter |= ENOREADLINK; + if (code === "ENOENT") + ter |= ENOENT; + if (code === "EINVAL" || code === "UNKNOWN") { + ter &= IFMT_UNKNOWN; + } + this.#type = ter; + if (code === "ENOTDIR" && this.parent) { + this.parent.#markENOTDIR(); } - const result = this.cwd.resolve(r).fullpathPosix(); - this.#resolvePosixCache.set(r, result); - return result; } - /** - * find the relative path from the cwd to the supplied path string or entry - */ - relative(entry = this.cwd) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); + #readdirAddChild(e, c) { + return this.#readdirMaybePromoteChild(e, c) || this.#readdirAddNewChild(e, c); + } + #readdirAddNewChild(e, c) { + const type = entToType(e); + const child = this.newChild(e.name, type, { parent: this }); + const ifmt = child.#type & IFMT; + if (ifmt !== IFDIR && ifmt !== IFLNK && ifmt !== UNKNOWN) { + child.#type |= ENOTDIR; } - return entry.relative(); + c.unshift(child); + c.provisional++; + return child; } - /** - * find the relative path from the cwd to the supplied path string or - * entry, using / as the path delimiter, even on Windows. - */ - relativePosix(entry = this.cwd) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); + #readdirMaybePromoteChild(e, c) { + for (let p = c.provisional; p < c.length; p++) { + const pchild = c[p]; + const name = this.nocase ? normalizeNocase(e.name) : normalize3(e.name); + if (name !== pchild.#matchName) { + continue; + } + return this.#readdirPromoteChild(e, pchild, p, c); } - return entry.relativePosix(); } - /** - * Return the basename for the provided string or Path object - */ - basename(entry = this.cwd) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); + #readdirPromoteChild(e, p, index, c) { + const v = p.name; + p.#type = p.#type & IFMT_UNKNOWN | entToType(e); + if (v !== e.name) + p.name = e.name; + if (index !== c.provisional) { + if (index === c.length - 1) + c.pop(); + else + c.splice(index, 1); + c.unshift(p); } - return entry.name; + c.provisional++; + return p; } /** - * Return the dirname for the provided string or Path object + * Call lstat() on this Path, and update all known information that can be + * determined. + * + * Note that unlike `fs.lstat()`, the returned value does not contain some + * information, such as `mode`, `dev`, `nlink`, and `ino`. If that + * information is required, you will need to call `fs.lstat` yourself. + * + * If the Path refers to a nonexistent file, or if the lstat call fails for + * any reason, `undefined` is returned. Otherwise the updated Path object is + * returned. + * + * Results are cached, and thus may be out of date if the filesystem is + * mutated. */ - dirname(entry = this.cwd) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); + async lstat() { + if ((this.#type & ENOENT) === 0) { + try { + this.#applyStat(await this.#fs.promises.lstat(this.fullpath())); + return this; + } catch (er) { + this.#lstatFail(er.code); + } } - return (entry.parent || entry).fullpath(); } - async readdir(entry = this.cwd, opts = { - withFileTypes: true - }) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - opts = entry; - entry = this.cwd; - } - const { withFileTypes } = opts; - if (!entry.canReaddir()) { - return []; - } else { - const p = await entry.readdir(); - return withFileTypes ? p : p.map((e) => e.name); + /** + * synchronous {@link PathBase.lstat} + */ + lstatSync() { + if ((this.#type & ENOENT) === 0) { + try { + this.#applyStat(this.#fs.lstatSync(this.fullpath())); + return this; + } catch (er) { + this.#lstatFail(er.code); + } } } - readdirSync(entry = this.cwd, opts = { - withFileTypes: true - }) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - opts = entry; - entry = this.cwd; - } - const { withFileTypes = true } = opts; - if (!entry.canReaddir()) { - return []; - } else if (withFileTypes) { - return entry.readdirSync(); - } else { - return entry.readdirSync().map((e) => e.name); + #applyStat(st) { + const { atime, atimeMs, birthtime, birthtimeMs, blksize, blocks, ctime, ctimeMs, dev, gid, ino, mode, mtime, mtimeMs, nlink, rdev, size, uid } = st; + this.#atime = atime; + this.#atimeMs = atimeMs; + this.#birthtime = birthtime; + this.#birthtimeMs = birthtimeMs; + this.#blksize = blksize; + this.#blocks = blocks; + this.#ctime = ctime; + this.#ctimeMs = ctimeMs; + this.#dev = dev; + this.#gid = gid; + this.#ino = ino; + this.#mode = mode; + this.#mtime = mtime; + this.#mtimeMs = mtimeMs; + this.#nlink = nlink; + this.#rdev = rdev; + this.#size = size; + this.#uid = uid; + const ifmt = entToType(st); + this.#type = this.#type & IFMT_UNKNOWN | ifmt | LSTAT_CALLED; + if (ifmt !== UNKNOWN && ifmt !== IFDIR && ifmt !== IFLNK) { + this.#type |= ENOTDIR; } } + #onReaddirCB = []; + #readdirCBInFlight = false; + #callOnReaddirCB(children) { + this.#readdirCBInFlight = false; + const cbs = this.#onReaddirCB.slice(); + this.#onReaddirCB.length = 0; + cbs.forEach((cb) => cb(null, children)); + } /** - * Call lstat() on the string or Path object, and update all known - * information that can be determined. - * - * Note that unlike `fs.lstat()`, the returned value does not contain some - * information, such as `mode`, `dev`, `nlink`, and `ino`. If that - * information is required, you will need to call `fs.lstat` yourself. + * Standard node-style callback interface to get list of directory entries. * - * If the Path refers to a nonexistent file, or if the lstat call fails for - * any reason, `undefined` is returned. Otherwise the updated Path object is - * returned. + * If the Path cannot or does not contain any children, then an empty array + * is returned. * * Results are cached, and thus may be out of date if the filesystem is * mutated. + * + * @param cb The callback called with (er, entries). Note that the `er` + * param is somewhat extraneous, as all readdir() errors are handled and + * simply result in an empty set of entries being returned. + * @param allowZalgo Boolean indicating that immediately known results should + * *not* be deferred with `queueMicrotask`. Defaults to `false`. Release + * zalgo at your peril, the dark pony lord is devious and unforgiving. */ - async lstat(entry = this.cwd) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } - return entry.lstat(); - } - /** - * synchronous {@link PathScurryBase.lstat} - */ - lstatSync(entry = this.cwd) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } - return entry.lstatSync(); - } - async readlink(entry = this.cwd, { withFileTypes } = { - withFileTypes: false - }) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - withFileTypes = entry.withFileTypes; - entry = this.cwd; - } - const e = await entry.readlink(); - return withFileTypes ? e : e?.fullpath(); - } - readlinkSync(entry = this.cwd, { withFileTypes } = { - withFileTypes: false - }) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - withFileTypes = entry.withFileTypes; - entry = this.cwd; - } - const e = entry.readlinkSync(); - return withFileTypes ? e : e?.fullpath(); - } - async realpath(entry = this.cwd, { withFileTypes } = { - withFileTypes: false - }) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - withFileTypes = entry.withFileTypes; - entry = this.cwd; - } - const e = await entry.realpath(); - return withFileTypes ? e : e?.fullpath(); - } - realpathSync(entry = this.cwd, { withFileTypes } = { - withFileTypes: false - }) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - withFileTypes = entry.withFileTypes; - entry = this.cwd; + readdirCB(cb, allowZalgo = false) { + if (!this.canReaddir()) { + if (allowZalgo) + cb(null, []); + else + queueMicrotask(() => cb(null, [])); + return; } - const e = entry.realpathSync(); - return withFileTypes ? e : e?.fullpath(); - } - async walk(entry = this.cwd, opts = {}) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - opts = entry; - entry = this.cwd; + const children = this.children(); + if (this.calledReaddir()) { + const c = children.slice(0, children.provisional); + if (allowZalgo) + cb(null, c); + else + queueMicrotask(() => cb(null, c)); + return; } - const { withFileTypes = true, follow = false, filter: filter3, walkFilter } = opts; - const results = []; - if (!filter3 || filter3(entry)) { - results.push(withFileTypes ? entry : entry.fullpath()); + this.#onReaddirCB.push(cb); + if (this.#readdirCBInFlight) { + return; } - const dirs = /* @__PURE__ */ new Set(); - const walk3 = (dir, cb) => { - dirs.add(dir); - dir.readdirCB((er, entries) => { - if (er) { - return cb(er); - } - let len = entries.length; - if (!len) - return cb(); - const next = () => { - if (--len === 0) { - cb(); - } - }; + this.#readdirCBInFlight = true; + const fullpath = this.fullpath(); + this.#fs.readdir(fullpath, { withFileTypes: true }, (er, entries) => { + if (er) { + this.#readdirFail(er.code); + children.provisional = 0; + } else { for (const e of entries) { - if (!filter3 || filter3(e)) { - results.push(withFileTypes ? e : e.fullpath()); - } - if (follow && e.isSymbolicLink()) { - e.realpath().then((r) => r?.isUnknown() ? r.lstat() : r).then((r) => r?.shouldWalk(dirs, walkFilter) ? walk3(r, next) : next()); - } else { - if (e.shouldWalk(dirs, walkFilter)) { - walk3(e, next); - } else { - next(); - } - } - } - }, true); - }; - const start = entry; - return new Promise((res, rej) => { - walk3(start, (er) => { - if (er) - return rej(er); - res(results); - }); - }); - } - walkSync(entry = this.cwd, opts = {}) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - opts = entry; - entry = this.cwd; - } - const { withFileTypes = true, follow = false, filter: filter3, walkFilter } = opts; - const results = []; - if (!filter3 || filter3(entry)) { - results.push(withFileTypes ? entry : entry.fullpath()); - } - const dirs = /* @__PURE__ */ new Set([entry]); - for (const dir of dirs) { - const entries = dir.readdirSync(); - for (const e of entries) { - if (!filter3 || filter3(e)) { - results.push(withFileTypes ? e : e.fullpath()); - } - let r = e; - if (e.isSymbolicLink()) { - if (!(follow && (r = e.realpathSync()))) - continue; - if (r.isUnknown()) - r.lstatSync(); - } - if (r.shouldWalk(dirs, walkFilter)) { - dirs.add(r); + this.#readdirAddChild(e, children); } + this.#readdirSuccess(children); } - } - return results; + this.#callOnReaddirCB(children.slice(0, children.provisional)); + return; + }); } + #asyncReaddirInFlight; /** - * Support for `for await` - * - * Alias for {@link PathScurryBase.iterate} + * Return an array of known child entries. * - * Note: As of Node 19, this is very slow, compared to other methods of - * walking. Consider using {@link PathScurryBase.stream} if memory overhead - * and backpressure are concerns, or {@link PathScurryBase.walk} if not. - */ - [Symbol.asyncIterator]() { - return this.iterate(); - } - iterate(entry = this.cwd, options = {}) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - options = entry; - entry = this.cwd; - } - return this.stream(entry, options)[Symbol.asyncIterator](); - } - /** - * Iterating over a PathScurry performs a synchronous walk. + * If the Path cannot or does not contain any children, then an empty array + * is returned. * - * Alias for {@link PathScurryBase.iterateSync} + * Results are cached, and thus may be out of date if the filesystem is + * mutated. */ - [Symbol.iterator]() { - return this.iterateSync(); - } - *iterateSync(entry = this.cwd, opts = {}) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - opts = entry; - entry = this.cwd; + async readdir() { + if (!this.canReaddir()) { + return []; } - const { withFileTypes = true, follow = false, filter: filter3, walkFilter } = opts; - if (!filter3 || filter3(entry)) { - yield withFileTypes ? entry : entry.fullpath(); + const children = this.children(); + if (this.calledReaddir()) { + return children.slice(0, children.provisional); } - const dirs = /* @__PURE__ */ new Set([entry]); - for (const dir of dirs) { - const entries = dir.readdirSync(); - for (const e of entries) { - if (!filter3 || filter3(e)) { - yield withFileTypes ? e : e.fullpath(); - } - let r = e; - if (e.isSymbolicLink()) { - if (!(follow && (r = e.realpathSync()))) - continue; - if (r.isUnknown()) - r.lstatSync(); - } - if (r.shouldWalk(dirs, walkFilter)) { - dirs.add(r); + const fullpath = this.fullpath(); + if (this.#asyncReaddirInFlight) { + await this.#asyncReaddirInFlight; + } else { + let resolve12 = () => { + }; + this.#asyncReaddirInFlight = new Promise((res) => resolve12 = res); + try { + for (const e of await this.#fs.promises.readdir(fullpath, { + withFileTypes: true + })) { + this.#readdirAddChild(e, children); } + this.#readdirSuccess(children); + } catch (er) { + this.#readdirFail(er.code); + children.provisional = 0; } + this.#asyncReaddirInFlight = void 0; + resolve12(); } + return children.slice(0, children.provisional); } - stream(entry = this.cwd, opts = {}) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - opts = entry; - entry = this.cwd; + /** + * synchronous {@link PathBase.readdir} + */ + readdirSync() { + if (!this.canReaddir()) { + return []; } - const { withFileTypes = true, follow = false, filter: filter3, walkFilter } = opts; - const results = new minipass_1.Minipass({ objectMode: true }); - if (!filter3 || filter3(entry)) { - results.write(withFileTypes ? entry : entry.fullpath()); + const children = this.children(); + if (this.calledReaddir()) { + return children.slice(0, children.provisional); } - const dirs = /* @__PURE__ */ new Set(); - const queue = [entry]; - let processing = 0; - const process6 = () => { - let paused = false; - while (!paused) { - const dir = queue.shift(); - if (!dir) { - if (processing === 0) - results.end(); - return; - } - processing++; - dirs.add(dir); - const onReaddir = (er, entries, didRealpaths = false) => { - if (er) - return results.emit("error", er); - if (follow && !didRealpaths) { - const promises = []; - for (const e of entries) { - if (e.isSymbolicLink()) { - promises.push(e.realpath().then((r) => r?.isUnknown() ? r.lstat() : r)); - } - } - if (promises.length) { - Promise.all(promises).then(() => onReaddir(null, entries, true)); - return; - } - } - for (const e of entries) { - if (e && (!filter3 || filter3(e))) { - if (!results.write(withFileTypes ? e : e.fullpath())) { - paused = true; - } - } - } - processing--; - for (const e of entries) { - const r = e.realpathCached() || e; - if (r.shouldWalk(dirs, walkFilter)) { - queue.push(r); - } - } - if (paused && !results.flowing) { - results.once("drain", process6); - } else if (!sync) { - process6(); - } - }; - let sync = true; - dir.readdirCB(onReaddir, true); - sync = false; + const fullpath = this.fullpath(); + try { + for (const e of this.#fs.readdirSync(fullpath, { + withFileTypes: true + })) { + this.#readdirAddChild(e, children); } - }; - process6(); - return results; - } - streamSync(entry = this.cwd, opts = {}) { - if (typeof entry === "string") { - entry = this.cwd.resolve(entry); - } else if (!(entry instanceof PathBase)) { - opts = entry; - entry = this.cwd; + this.#readdirSuccess(children); + } catch (er) { + this.#readdirFail(er.code); + children.provisional = 0; } - const { withFileTypes = true, follow = false, filter: filter3, walkFilter } = opts; - const results = new minipass_1.Minipass({ objectMode: true }); - const dirs = /* @__PURE__ */ new Set(); - if (!filter3 || filter3(entry)) { - results.write(withFileTypes ? entry : entry.fullpath()); + return children.slice(0, children.provisional); + } + canReaddir() { + if (this.#type & ENOCHILD) + return false; + const ifmt = IFMT & this.#type; + if (!(ifmt === UNKNOWN || ifmt === IFDIR || ifmt === IFLNK)) { + return false; } - const queue = [entry]; - let processing = 0; - const process6 = () => { - let paused = false; - while (!paused) { - const dir = queue.shift(); - if (!dir) { - if (processing === 0) - results.end(); - return; - } - processing++; - dirs.add(dir); - const entries = dir.readdirSync(); - for (const e of entries) { - if (!filter3 || filter3(e)) { - if (!results.write(withFileTypes ? e : e.fullpath())) { - paused = true; - } - } - } - processing--; - for (const e of entries) { - let r = e; - if (e.isSymbolicLink()) { - if (!(follow && (r = e.realpathSync()))) - continue; - if (r.isUnknown()) - r.lstatSync(); - } - if (r.shouldWalk(dirs, walkFilter)) { - queue.push(r); - } - } - } - if (paused && !results.flowing) - results.once("drain", process6); - }; - process6(); - return results; + return true; } - chdir(path26 = this.cwd) { - const oldCwd = this.cwd; - this.cwd = typeof path26 === "string" ? this.cwd.resolve(path26) : path26; - this.cwd[setAsCwd](oldCwd); + shouldWalk(dirs, walkFilter) { + return (this.#type & IFDIR) === IFDIR && !(this.#type & ENOCHILD) && !dirs.has(this) && (!walkFilter || walkFilter(this)); } - }; - exports2.PathScurryBase = PathScurryBase; - var PathScurryWin32 = class extends PathScurryBase { /** - * separator for generating path strings + * Return the Path object corresponding to path as resolved + * by realpath(3). + * + * If the realpath call fails for any reason, `undefined` is returned. + * + * Result is cached, and thus may be outdated if the filesystem is mutated. + * On success, returns a Path object. */ - sep = "\\"; - constructor(cwd = process.cwd(), opts = {}) { - const { nocase = true } = opts; - super(cwd, path_1.win32, "\\", { ...opts, nocase }); - this.nocase = nocase; - for (let p = this.cwd; p; p = p.parent) { - p.nocase = this.nocase; + async realpath() { + if (this.#realpath) + return this.#realpath; + if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type) + return void 0; + try { + const rp = await this.#fs.promises.realpath(this.fullpath()); + return this.#realpath = this.resolve(rp); + } catch (_) { + this.#markENOREALPATH(); } } /** - * @internal + * Synchronous {@link realpath} */ - parseRootPath(dir) { - return path_1.win32.parse(dir).root.toUpperCase(); + realpathSync() { + if (this.#realpath) + return this.#realpath; + if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type) + return void 0; + try { + const rp = this.#fs.realpathSync(this.fullpath()); + return this.#realpath = this.resolve(rp); + } catch (_) { + this.#markENOREALPATH(); + } } /** + * Internal method to mark this Path object as the scurry cwd, + * called by {@link PathScurry#chdir} + * * @internal */ - newRoot(fs11) { - return new PathWin32(this.rootPath, IFDIR, void 0, this.roots, this.nocase, this.childrenCache(), { fs: fs11 }); + [setAsCwd](oldCwd) { + if (oldCwd === this) + return; + const changed = /* @__PURE__ */ new Set([]); + let rp = []; + let p = this; + while (p && p.parent) { + changed.add(p); + p.#relative = rp.join(this.sep); + p.#relativePosix = rp.join("/"); + p = p.parent; + rp.push(".."); + } + p = oldCwd; + while (p && p.parent && !changed.has(p)) { + p.#relative = void 0; + p.#relativePosix = void 0; + p = p.parent; + } } + }; + exports2.PathBase = PathBase; + var PathWin32 = class _PathWin32 extends PathBase { /** - * Return true if the provided path string is an absolute path + * Separator for generating path strings. */ - isAbsolute(p) { - return p.startsWith("/") || p.startsWith("\\") || /^[a-z]:(\/|\\)/i.test(p); - } - }; - exports2.PathScurryWin32 = PathScurryWin32; - var PathScurryPosix = class extends PathScurryBase { + sep = "\\"; + /** + * Separator for parsing path strings. + */ + splitSep = eitherSep; /** - * separator for generating path strings + * Do not create new Path objects directly. They should always be accessed + * via the PathScurry class or other methods on the Path class. + * + * @internal */ - sep = "/"; - constructor(cwd = process.cwd(), opts = {}) { - const { nocase = false } = opts; - super(cwd, path_1.posix, "/", { ...opts, nocase }); - this.nocase = nocase; + constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) { + super(name, type, root, roots, nocase, children, opts); } /** * @internal */ - parseRootPath(_dir) { - return "/"; + newChild(name, type = UNKNOWN, opts = {}) { + return new _PathWin32(name, type, this.root, this.roots, this.nocase, this.childrenCache(), opts); } /** * @internal */ - newRoot(fs11) { - return new PathPosix(this.rootPath, IFDIR, void 0, this.roots, this.nocase, this.childrenCache(), { fs: fs11 }); + getRootString(path26) { + return path_1.win32.parse(path26).root; } /** - * Return true if the provided path string is an absolute path + * @internal */ - isAbsolute(p) { - return p.startsWith("/"); - } - }; - exports2.PathScurryPosix = PathScurryPosix; - var PathScurryDarwin = class extends PathScurryPosix { - constructor(cwd = process.cwd(), opts = {}) { - const { nocase = true } = opts; - super(cwd, { ...opts, nocase }); - } - }; - exports2.PathScurryDarwin = PathScurryDarwin; - exports2.Path = process.platform === "win32" ? PathWin32 : PathPosix; - exports2.PathScurry = process.platform === "win32" ? PathScurryWin32 : process.platform === "darwin" ? PathScurryDarwin : PathScurryPosix; - } -}); - -// ../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/pattern.js -var require_pattern2 = __commonJS({ - "../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/pattern.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.Pattern = void 0; - var minimatch_1 = require_cjs2(); - var isPatternList = (pl) => pl.length >= 1; - var isGlobList = (gl) => gl.length >= 1; - var Pattern = class _Pattern { - #patternList; - #globList; - #index; - length; - #platform; - #rest; - #globString; - #isDrive; - #isUNC; - #isAbsolute; - #followGlobstar = true; - constructor(patternList, globList, index, platform) { - if (!isPatternList(patternList)) { - throw new TypeError("empty pattern list"); - } - if (!isGlobList(globList)) { - throw new TypeError("empty glob list"); - } - if (globList.length !== patternList.length) { - throw new TypeError("mismatched pattern list and glob list lengths"); - } - this.length = patternList.length; - if (index < 0 || index >= this.length) { - throw new TypeError("index out of range"); + getRoot(rootPath) { + rootPath = uncToDrive(rootPath.toUpperCase()); + if (rootPath === this.root.name) { + return this.root; } - this.#patternList = patternList; - this.#globList = globList; - this.#index = index; - this.#platform = platform; - if (this.#index === 0) { - if (this.isUNC()) { - const [p0, p1, p2, p3, ...prest] = this.#patternList; - const [g0, g1, g2, g3, ...grest] = this.#globList; - if (prest[0] === "") { - prest.shift(); - grest.shift(); - } - const p = [p0, p1, p2, p3, ""].join("/"); - const g = [g0, g1, g2, g3, ""].join("/"); - this.#patternList = [p, ...prest]; - this.#globList = [g, ...grest]; - this.length = this.#patternList.length; - } else if (this.isDrive() || this.isAbsolute()) { - const [p1, ...prest] = this.#patternList; - const [g1, ...grest] = this.#globList; - if (prest[0] === "") { - prest.shift(); - grest.shift(); - } - const p = p1 + "/"; - const g = g1 + "/"; - this.#patternList = [p, ...prest]; - this.#globList = [g, ...grest]; - this.length = this.#patternList.length; + for (const [compare4, root] of Object.entries(this.roots)) { + if (this.sameRoot(rootPath, compare4)) { + return this.roots[rootPath] = root; } } + return this.roots[rootPath] = new PathScurryWin32(rootPath, this).root; } /** - * The first entry in the parsed list of patterns + * @internal */ - pattern() { - return this.#patternList[this.#index]; + sameRoot(rootPath, compare4 = this.root.name) { + rootPath = rootPath.toUpperCase().replace(/\//g, "\\").replace(uncDriveRegexp, "$1\\"); + return rootPath === compare4; } + }; + exports2.PathWin32 = PathWin32; + var PathPosix = class _PathPosix extends PathBase { /** - * true of if pattern() returns a string + * separator for parsing path strings */ - isString() { - return typeof this.#patternList[this.#index] === "string"; - } + splitSep = "/"; /** - * true of if pattern() returns GLOBSTAR + * separator for generating path strings */ - isGlobstar() { - return this.#patternList[this.#index] === minimatch_1.GLOBSTAR; - } + sep = "/"; /** - * true if pattern() returns a regexp + * Do not create new Path objects directly. They should always be accessed + * via the PathScurry class or other methods on the Path class. + * + * @internal */ - isRegExp() { - return this.#patternList[this.#index] instanceof RegExp; + constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) { + super(name, type, root, roots, nocase, children, opts); } /** - * The /-joined set of glob parts that make up this pattern + * @internal */ - globString() { - return this.#globString = this.#globString || (this.#index === 0 ? this.isAbsolute() ? this.#globList[0] + this.#globList.slice(1).join("/") : this.#globList.join("/") : this.#globList.slice(this.#index).join("/")); + getRootString(path26) { + return path26.startsWith("/") ? "/" : ""; } /** - * true if there are more pattern parts after this one + * @internal */ - hasMore() { - return this.length > this.#index + 1; + getRoot(_rootPath) { + return this.root; } /** - * The rest of the pattern after this part, or null if this is the end + * @internal */ - rest() { - if (this.#rest !== void 0) - return this.#rest; - if (!this.hasMore()) - return this.#rest = null; - this.#rest = new _Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform); - this.#rest.#isAbsolute = this.#isAbsolute; - this.#rest.#isUNC = this.#isUNC; - this.#rest.#isDrive = this.#isDrive; - return this.#rest; + newChild(name, type = UNKNOWN, opts = {}) { + return new _PathPosix(name, type, this.root, this.roots, this.nocase, this.childrenCache(), opts); } + }; + exports2.PathPosix = PathPosix; + var PathScurryBase = class { /** - * true if the pattern represents a //unc/path/ on windows + * The root Path entry for the current working directory of this Scurry */ - isUNC() { - const pl = this.#patternList; - return this.#isUNC !== void 0 ? this.#isUNC : this.#isUNC = this.#platform === "win32" && this.#index === 0 && pl[0] === "" && pl[1] === "" && typeof pl[2] === "string" && !!pl[2] && typeof pl[3] === "string" && !!pl[3]; - } - // pattern like C:/... - // split = ['C:', ...] - // XXX: would be nice to handle patterns like `c:*` to test the cwd - // in c: for *, but I don't know of a way to even figure out what that - // cwd is without actually chdir'ing into it? + root; /** - * True if the pattern starts with a drive letter on Windows + * The string path for the root of this Scurry's current working directory */ - isDrive() { - const pl = this.#patternList; - return this.#isDrive !== void 0 ? this.#isDrive : this.#isDrive = this.#platform === "win32" && this.#index === 0 && this.length > 1 && typeof pl[0] === "string" && /^[a-z]:$/i.test(pl[0]); - } - // pattern = '/' or '/...' or '/x/...' - // split = ['', ''] or ['', ...] or ['', 'x', ...] - // Drive and UNC both considered absolute on windows + rootPath; /** - * True if the pattern is rooted on an absolute path + * A collection of all roots encountered, referenced by rootPath */ - isAbsolute() { - const pl = this.#patternList; - return this.#isAbsolute !== void 0 ? this.#isAbsolute : this.#isAbsolute = pl[0] === "" && pl.length > 1 || this.isDrive() || this.isUNC(); - } + roots; /** - * consume the root of the pattern, and return it + * The Path entry corresponding to this PathScurry's current working directory. */ - root() { - const p = this.#patternList[0]; - return typeof p === "string" && this.isAbsolute() && this.#index === 0 ? p : ""; - } + cwd; + #resolveCache; + #resolvePosixCache; + #children; /** - * Check to see if the current globstar pattern is allowed to follow - * a symbolic link. + * Perform path comparisons case-insensitively. + * + * Defaults true on Darwin and Windows systems, false elsewhere. */ - checkFollowGlobstar() { - return !(this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar); - } + nocase; + #fs; /** - * Mark that the current globstar pattern is following a symbolic link + * This class should not be instantiated directly. + * + * Use PathScurryWin32, PathScurryDarwin, PathScurryPosix, or PathScurry + * + * @internal */ - markFollowGlobstar() { - if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar) - return false; - this.#followGlobstar = false; - return true; - } - }; - exports2.Pattern = Pattern; - } -}); - -// ../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/ignore.js -var require_ignore = __commonJS({ - "../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/ignore.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.Ignore = void 0; - var minimatch_1 = require_cjs2(); - var pattern_js_1 = require_pattern2(); - var defaultPlatform = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux"; - var Ignore = class { - relative; - relativeChildren; - absolute; - absoluteChildren; - constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform }) { - this.relative = []; - this.absolute = []; - this.relativeChildren = []; - this.absoluteChildren = []; - const mmopts = { - dot: true, - nobrace, - nocase, - noext, - noglobstar, - optimizationLevel: 2, - platform, - nocomment: true, - nonegate: true - }; - for (const ign of ignored) { - const mm2 = new minimatch_1.Minimatch(ign, mmopts); - for (let i = 0; i < mm2.set.length; i++) { - const parsed = mm2.set[i]; - const globParts = mm2.globParts[i]; - if (!parsed || !globParts) { - throw new Error("invalid pattern object"); - } - const p = new pattern_js_1.Pattern(parsed, globParts, 0, platform); - const m = new minimatch_1.Minimatch(p.globString(), mmopts); - const children = globParts[globParts.length - 1] === "**"; - const absolute = p.isAbsolute(); - if (absolute) - this.absolute.push(m); - else - this.relative.push(m); - if (children) { - if (absolute) - this.absoluteChildren.push(m); - else - this.relativeChildren.push(m); - } - } - } - } - ignored(p) { - const fullpath = p.fullpath(); - const fullpaths = `${fullpath}/`; - const relative8 = p.relative() || "."; - const relatives = `${relative8}/`; - for (const m of this.relative) { - if (m.match(relative8) || m.match(relatives)) - return true; - } - for (const m of this.absolute) { - if (m.match(fullpath) || m.match(fullpaths)) - return true; + constructor(cwd = process.cwd(), pathImpl, sep7, { nocase, childrenCacheSize = 16 * 1024, fs: fs11 = defaultFS } = {}) { + this.#fs = fsFromOption(fs11); + if (cwd instanceof URL || cwd.startsWith("file://")) { + cwd = (0, url_1.fileURLToPath)(cwd); } - return false; - } - childrenIgnored(p) { - const fullpath = p.fullpath() + "/"; - const relative8 = (p.relative() || ".") + "/"; - for (const m of this.relativeChildren) { - if (m.match(relative8)) - return true; + const cwdPath = pathImpl.resolve(cwd); + this.roots = /* @__PURE__ */ Object.create(null); + this.rootPath = this.parseRootPath(cwdPath); + this.#resolveCache = new ResolveCache(); + this.#resolvePosixCache = new ResolveCache(); + this.#children = new ChildrenCache(childrenCacheSize); + const split2 = cwdPath.substring(this.rootPath.length).split(sep7); + if (split2.length === 1 && !split2[0]) { + split2.pop(); } - for (const m of this.absoluteChildren) { - if (m.match(fullpath)) - return true; + if (nocase === void 0) { + throw new TypeError("must provide nocase setting to PathScurryBase ctor"); } - return false; - } - }; - exports2.Ignore = Ignore; - } -}); - -// ../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/processor.js -var require_processor = __commonJS({ - "../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/processor.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.Processor = exports2.SubWalks = exports2.MatchRecord = exports2.HasWalkedCache = void 0; - var minimatch_1 = require_cjs2(); - var HasWalkedCache = class _HasWalkedCache { - store; - constructor(store = /* @__PURE__ */ new Map()) { - this.store = store; - } - copy() { - return new _HasWalkedCache(new Map(this.store)); - } - hasWalked(target, pattern) { - return this.store.get(target.fullpath())?.has(pattern.globString()); - } - storeWalked(target, pattern) { - const fullpath = target.fullpath(); - const cached = this.store.get(fullpath); - if (cached) - cached.add(pattern.globString()); - else - this.store.set(fullpath, /* @__PURE__ */ new Set([pattern.globString()])); - } - }; - exports2.HasWalkedCache = HasWalkedCache; - var MatchRecord = class { - store = /* @__PURE__ */ new Map(); - add(target, absolute, ifDir) { - const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0); - const current = this.store.get(target); - this.store.set(target, current === void 0 ? n : n & current); - } - // match, absolute, ifdir - entries() { - return [...this.store.entries()].map(([path26, n]) => [ - path26, - !!(n & 2), - !!(n & 1) - ]); - } - }; - exports2.MatchRecord = MatchRecord; - var SubWalks = class { - store = /* @__PURE__ */ new Map(); - add(target, pattern) { - if (!target.canReaddir()) { - return; + this.nocase = nocase; + this.root = this.newRoot(this.#fs); + this.roots[this.rootPath] = this.root; + let prev = this.root; + let len = split2.length - 1; + const joinSep = pathImpl.sep; + let abs = this.rootPath; + let sawFirst = false; + for (const part of split2) { + const l = len--; + prev = prev.child(part, { + relative: new Array(l).fill("..").join(joinSep), + relativePosix: new Array(l).fill("..").join("/"), + fullpath: abs += (sawFirst ? "" : joinSep) + part + }); + sawFirst = true; } - const subs = this.store.get(target); - if (subs) { - if (!subs.find((p) => p.globString() === pattern.globString())) { - subs.push(pattern); - } - } else - this.store.set(target, [pattern]); + this.cwd = prev; } - get(target) { - const subs = this.store.get(target); - if (!subs) { - throw new Error("attempting to walk unknown path"); + /** + * Get the depth of a provided path, string, or the cwd + */ + depth(path26 = this.cwd) { + if (typeof path26 === "string") { + path26 = this.cwd.resolve(path26); } - return subs; - } - entries() { - return this.keys().map((k) => [k, this.store.get(k)]); - } - keys() { - return [...this.store.keys()].filter((t) => t.canReaddir()); + return path26.depth(); } - }; - exports2.SubWalks = SubWalks; - var Processor = class _Processor { - hasWalkedCache; - matches = new MatchRecord(); - subwalks = new SubWalks(); - patterns; - follow; - dot; - opts; - constructor(opts, hasWalkedCache) { - this.opts = opts; - this.follow = !!opts.follow; - this.dot = !!opts.dot; - this.hasWalkedCache = hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache(); + /** + * Return the cache of child entries. Exposed so subclasses can create + * child Path objects in a platform-specific way. + * + * @internal + */ + childrenCache() { + return this.#children; } - processPatterns(target, patterns) { - this.patterns = patterns; - const processingSet = patterns.map((p) => [target, p]); - for (let [t, pattern] of processingSet) { - this.hasWalkedCache.storeWalked(t, pattern); - const root = pattern.root(); - const absolute = pattern.isAbsolute() && this.opts.absolute !== false; - if (root) { - t = t.resolve(root === "/" && this.opts.root !== void 0 ? this.opts.root : root); - const rest2 = pattern.rest(); - if (!rest2) { - this.matches.add(t, true, false); - continue; - } else { - pattern = rest2; - } - } - if (t.isENOENT()) - continue; - let p; - let rest; - let changed = false; - while (typeof (p = pattern.pattern()) === "string" && (rest = pattern.rest())) { - const c = t.resolve(p); - t = c; - pattern = rest; - changed = true; - } - p = pattern.pattern(); - rest = pattern.rest(); - if (changed) { - if (this.hasWalkedCache.hasWalked(t, pattern)) - continue; - this.hasWalkedCache.storeWalked(t, pattern); - } - if (typeof p === "string") { - const ifDir = p === ".." || p === "" || p === "."; - this.matches.add(t.resolve(p), absolute, ifDir); - continue; - } else if (p === minimatch_1.GLOBSTAR) { - if (!t.isSymbolicLink() || this.follow || pattern.checkFollowGlobstar()) { - this.subwalks.add(t, pattern); - } - const rp = rest?.pattern(); - const rrest = rest?.rest(); - if (!rest || (rp === "" || rp === ".") && !rrest) { - this.matches.add(t, absolute, rp === "" || rp === "."); - } else { - if (rp === "..") { - const tp = t.parent || t; - if (!rrest) - this.matches.add(tp, absolute, true); - else if (!this.hasWalkedCache.hasWalked(tp, rrest)) { - this.subwalks.add(tp, rrest); - } - } - } - } else if (p instanceof RegExp) { - this.subwalks.add(t, pattern); + /** + * Resolve one or more path strings to a resolved string + * + * Same interface as require('path').resolve. + * + * Much faster than path.resolve() when called multiple times for the same + * path, because the resolved Path objects are cached. Much slower + * otherwise. + */ + resolve(...paths) { + let r = ""; + for (let i = paths.length - 1; i >= 0; i--) { + const p = paths[i]; + if (!p || p === ".") + continue; + r = r ? `${p}/${r}` : p; + if (this.isAbsolute(p)) { + break; } } - return this; - } - subwalkTargets() { - return this.subwalks.keys(); - } - child() { - return new _Processor(this.opts, this.hasWalkedCache); + const cached = this.#resolveCache.get(r); + if (cached !== void 0) { + return cached; + } + const result = this.cwd.resolve(r).fullpath(); + this.#resolveCache.set(r, result); + return result; } - // return a new Processor containing the subwalks for each - // child entry, and a set of matches, and - // a hasWalkedCache that's a copy of this one - // then we're going to call - filterEntries(parent, entries) { - const patterns = this.subwalks.get(parent); - const results = this.child(); - for (const e of entries) { - for (const pattern of patterns) { - const absolute = pattern.isAbsolute(); - const p = pattern.pattern(); - const rest = pattern.rest(); - if (p === minimatch_1.GLOBSTAR) { - results.testGlobstar(e, pattern, rest, absolute); - } else if (p instanceof RegExp) { - results.testRegExp(e, p, rest, absolute); - } else { - results.testString(e, p, rest, absolute); - } + /** + * Resolve one or more path strings to a resolved string, returning + * the posix path. Identical to .resolve() on posix systems, but on + * windows will return a forward-slash separated UNC path. + * + * Same interface as require('path').resolve. + * + * Much faster than path.resolve() when called multiple times for the same + * path, because the resolved Path objects are cached. Much slower + * otherwise. + */ + resolvePosix(...paths) { + let r = ""; + for (let i = paths.length - 1; i >= 0; i--) { + const p = paths[i]; + if (!p || p === ".") + continue; + r = r ? `${p}/${r}` : p; + if (this.isAbsolute(p)) { + break; } } - return results; + const cached = this.#resolvePosixCache.get(r); + if (cached !== void 0) { + return cached; + } + const result = this.cwd.resolve(r).fullpathPosix(); + this.#resolvePosixCache.set(r, result); + return result; } - testGlobstar(e, pattern, rest, absolute) { - if (this.dot || !e.name.startsWith(".")) { - if (!pattern.hasMore()) { - this.matches.add(e, absolute, false); - } - if (e.canReaddir()) { - if (this.follow || !e.isSymbolicLink()) { - this.subwalks.add(e, pattern); - } else if (e.isSymbolicLink()) { - if (rest && pattern.checkFollowGlobstar()) { - this.subwalks.add(e, rest); - } else if (pattern.markFollowGlobstar()) { - this.subwalks.add(e, pattern); - } - } - } + /** + * find the relative path from the cwd to the supplied path string or entry + */ + relative(entry = this.cwd) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); } - if (rest) { - const rp = rest.pattern(); - if (typeof rp === "string" && // dots and empty were handled already - rp !== ".." && rp !== "" && rp !== ".") { - this.testString(e, rp, rest.rest(), absolute); - } else if (rp === "..") { - const ep = e.parent || e; - this.subwalks.add(ep, rest); - } else if (rp instanceof RegExp) { - this.testRegExp(e, rp, rest.rest(), absolute); - } + return entry.relative(); + } + /** + * find the relative path from the cwd to the supplied path string or + * entry, using / as the path delimiter, even on Windows. + */ + relativePosix(entry = this.cwd) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); } + return entry.relativePosix(); } - testRegExp(e, p, rest, absolute) { - if (!p.test(e.name)) - return; - if (!rest) { - this.matches.add(e, absolute, false); - } else { - this.subwalks.add(e, rest); + /** + * Return the basename for the provided string or Path object + */ + basename(entry = this.cwd) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); } + return entry.name; } - testString(e, p, rest, absolute) { - if (!e.isNamed(p)) - return; - if (!rest) { - this.matches.add(e, absolute, false); - } else { - this.subwalks.add(e, rest); + /** + * Return the dirname for the provided string or Path object + */ + dirname(entry = this.cwd) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); } + return (entry.parent || entry).fullpath(); } - }; - exports2.Processor = Processor; - } -}); - -// ../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/walker.js -var require_walker = __commonJS({ - "../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/walker.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.GlobStream = exports2.GlobWalker = exports2.GlobUtil = void 0; - var minipass_1 = require_commonjs2(); - var ignore_js_1 = require_ignore(); - var processor_js_1 = require_processor(); - var makeIgnore = (ignore, opts) => typeof ignore === "string" ? new ignore_js_1.Ignore([ignore], opts) : Array.isArray(ignore) ? new ignore_js_1.Ignore(ignore, opts) : ignore; - var GlobUtil = class { - path; - patterns; - opts; - seen = /* @__PURE__ */ new Set(); - paused = false; - aborted = false; - #onResume = []; - #ignore; - #sep; - signal; - maxDepth; - constructor(patterns, path26, opts) { - this.patterns = patterns; - this.path = path26; - this.opts = opts; - this.#sep = !opts.posix && opts.platform === "win32" ? "\\" : "/"; - if (opts.ignore) { - this.#ignore = makeIgnore(opts.ignore, opts); + async readdir(entry = this.cwd, opts = { + withFileTypes: true + }) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + opts = entry; + entry = this.cwd; } - this.maxDepth = opts.maxDepth || Infinity; - if (opts.signal) { - this.signal = opts.signal; - this.signal.addEventListener("abort", () => { - this.#onResume.length = 0; - }); + const { withFileTypes } = opts; + if (!entry.canReaddir()) { + return []; + } else { + const p = await entry.readdir(); + return withFileTypes ? p : p.map((e) => e.name); } } - #ignored(path26) { - return this.seen.has(path26) || !!this.#ignore?.ignored?.(path26); + readdirSync(entry = this.cwd, opts = { + withFileTypes: true + }) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + opts = entry; + entry = this.cwd; + } + const { withFileTypes = true } = opts; + if (!entry.canReaddir()) { + return []; + } else if (withFileTypes) { + return entry.readdirSync(); + } else { + return entry.readdirSync().map((e) => e.name); + } } - #childrenIgnored(path26) { - return !!this.#ignore?.childrenIgnored?.(path26); + /** + * Call lstat() on the string or Path object, and update all known + * information that can be determined. + * + * Note that unlike `fs.lstat()`, the returned value does not contain some + * information, such as `mode`, `dev`, `nlink`, and `ino`. If that + * information is required, you will need to call `fs.lstat` yourself. + * + * If the Path refers to a nonexistent file, or if the lstat call fails for + * any reason, `undefined` is returned. Otherwise the updated Path object is + * returned. + * + * Results are cached, and thus may be out of date if the filesystem is + * mutated. + */ + async lstat(entry = this.cwd) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } + return entry.lstat(); } - // backpressure mechanism - pause() { - this.paused = true; + /** + * synchronous {@link PathScurryBase.lstat} + */ + lstatSync(entry = this.cwd) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } + return entry.lstatSync(); } - resume() { - if (this.signal?.aborted) - return; - this.paused = false; - let fn = void 0; - while (!this.paused && (fn = this.#onResume.shift())) { - fn(); + async readlink(entry = this.cwd, { withFileTypes } = { + withFileTypes: false + }) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + withFileTypes = entry.withFileTypes; + entry = this.cwd; } + const e = await entry.readlink(); + return withFileTypes ? e : e?.fullpath(); } - onResume(fn) { - if (this.signal?.aborted) - return; - if (!this.paused) { - fn(); - } else { - this.#onResume.push(fn); + readlinkSync(entry = this.cwd, { withFileTypes } = { + withFileTypes: false + }) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + withFileTypes = entry.withFileTypes; + entry = this.cwd; } + const e = entry.readlinkSync(); + return withFileTypes ? e : e?.fullpath(); } - // do the requisite realpath/stat checking, and return the path - // to add or undefined to filter it out. - async matchCheck(e, ifDir) { - if (ifDir && this.opts.nodir) - return void 0; - let rpc; - if (this.opts.realpath) { - rpc = e.realpathCached() || await e.realpath(); - if (!rpc) - return void 0; - e = rpc; + async realpath(entry = this.cwd, { withFileTypes } = { + withFileTypes: false + }) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + withFileTypes = entry.withFileTypes; + entry = this.cwd; } - const needStat = e.isUnknown() || this.opts.stat; - return this.matchCheckTest(needStat ? await e.lstat() : e, ifDir); + const e = await entry.realpath(); + return withFileTypes ? e : e?.fullpath(); } - matchCheckTest(e, ifDir) { - return e && (this.maxDepth === Infinity || e.depth() <= this.maxDepth) && (!ifDir || e.canReaddir()) && (!this.opts.nodir || !e.isDirectory()) && !this.#ignored(e) ? e : void 0; + realpathSync(entry = this.cwd, { withFileTypes } = { + withFileTypes: false + }) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + withFileTypes = entry.withFileTypes; + entry = this.cwd; + } + const e = entry.realpathSync(); + return withFileTypes ? e : e?.fullpath(); } - matchCheckSync(e, ifDir) { - if (ifDir && this.opts.nodir) - return void 0; - let rpc; - if (this.opts.realpath) { - rpc = e.realpathCached() || e.realpathSync(); - if (!rpc) - return void 0; - e = rpc; + async walk(entry = this.cwd, opts = {}) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + opts = entry; + entry = this.cwd; } - const needStat = e.isUnknown() || this.opts.stat; - return this.matchCheckTest(needStat ? e.lstatSync() : e, ifDir); + const { withFileTypes = true, follow = false, filter: filter3, walkFilter } = opts; + const results = []; + if (!filter3 || filter3(entry)) { + results.push(withFileTypes ? entry : entry.fullpath()); + } + const dirs = /* @__PURE__ */ new Set(); + const walk3 = (dir, cb) => { + dirs.add(dir); + dir.readdirCB((er, entries) => { + if (er) { + return cb(er); + } + let len = entries.length; + if (!len) + return cb(); + const next = () => { + if (--len === 0) { + cb(); + } + }; + for (const e of entries) { + if (!filter3 || filter3(e)) { + results.push(withFileTypes ? e : e.fullpath()); + } + if (follow && e.isSymbolicLink()) { + e.realpath().then((r) => r?.isUnknown() ? r.lstat() : r).then((r) => r?.shouldWalk(dirs, walkFilter) ? walk3(r, next) : next()); + } else { + if (e.shouldWalk(dirs, walkFilter)) { + walk3(e, next); + } else { + next(); + } + } + } + }, true); + }; + const start = entry; + return new Promise((res, rej) => { + walk3(start, (er) => { + if (er) + return rej(er); + res(results); + }); + }); } - matchFinish(e, absolute) { - if (this.#ignored(e)) - return; - const abs = this.opts.absolute === void 0 ? absolute : this.opts.absolute; - this.seen.add(e); - const mark = this.opts.mark && e.isDirectory() ? this.#sep : ""; - if (this.opts.withFileTypes) { - this.matchEmit(e); - } else if (abs) { - const abs2 = this.opts.posix ? e.fullpathPosix() : e.fullpath(); - this.matchEmit(abs2 + mark); - } else { - const rel = this.opts.posix ? e.relativePosix() : e.relative(); - const pre = this.opts.dotRelative && !rel.startsWith(".." + this.#sep) ? "." + this.#sep : ""; - this.matchEmit(!rel ? "." + mark : pre + rel + mark); + walkSync(entry = this.cwd, opts = {}) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + opts = entry; + entry = this.cwd; + } + const { withFileTypes = true, follow = false, filter: filter3, walkFilter } = opts; + const results = []; + if (!filter3 || filter3(entry)) { + results.push(withFileTypes ? entry : entry.fullpath()); + } + const dirs = /* @__PURE__ */ new Set([entry]); + for (const dir of dirs) { + const entries = dir.readdirSync(); + for (const e of entries) { + if (!filter3 || filter3(e)) { + results.push(withFileTypes ? e : e.fullpath()); + } + let r = e; + if (e.isSymbolicLink()) { + if (!(follow && (r = e.realpathSync()))) + continue; + if (r.isUnknown()) + r.lstatSync(); + } + if (r.shouldWalk(dirs, walkFilter)) { + dirs.add(r); + } + } } + return results; } - async match(e, absolute, ifDir) { - const p = await this.matchCheck(e, ifDir); - if (p) - this.matchFinish(p, absolute); + /** + * Support for `for await` + * + * Alias for {@link PathScurryBase.iterate} + * + * Note: As of Node 19, this is very slow, compared to other methods of + * walking. Consider using {@link PathScurryBase.stream} if memory overhead + * and backpressure are concerns, or {@link PathScurryBase.walk} if not. + */ + [Symbol.asyncIterator]() { + return this.iterate(); } - matchSync(e, absolute, ifDir) { - const p = this.matchCheckSync(e, ifDir); - if (p) - this.matchFinish(p, absolute); + iterate(entry = this.cwd, options = {}) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + options = entry; + entry = this.cwd; + } + return this.stream(entry, options)[Symbol.asyncIterator](); } - walkCB(target, patterns, cb) { - if (this.signal?.aborted) - cb(); - this.walkCB2(target, patterns, new processor_js_1.Processor(this.opts), cb); + /** + * Iterating over a PathScurry performs a synchronous walk. + * + * Alias for {@link PathScurryBase.iterateSync} + */ + [Symbol.iterator]() { + return this.iterateSync(); } - walkCB2(target, patterns, processor, cb) { - if (this.#childrenIgnored(target)) - return cb(); - if (this.signal?.aborted) - cb(); - if (this.paused) { - this.onResume(() => this.walkCB2(target, patterns, processor, cb)); - return; + *iterateSync(entry = this.cwd, opts = {}) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + opts = entry; + entry = this.cwd; } - processor.processPatterns(target, patterns); - let tasks = 1; - const next = () => { - if (--tasks === 0) - cb(); - }; - for (const [m, absolute, ifDir] of processor.matches.entries()) { - if (this.#ignored(m)) - continue; - tasks++; - this.match(m, absolute, ifDir).then(() => next()); + const { withFileTypes = true, follow = false, filter: filter3, walkFilter } = opts; + if (!filter3 || filter3(entry)) { + yield withFileTypes ? entry : entry.fullpath(); } - for (const t of processor.subwalkTargets()) { - if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) { - continue; - } - tasks++; - const childrenCached = t.readdirCached(); - if (t.calledReaddir()) - this.walkCB3(t, childrenCached, processor, next); - else { - t.readdirCB((_, entries) => this.walkCB3(t, entries, processor, next), true); + const dirs = /* @__PURE__ */ new Set([entry]); + for (const dir of dirs) { + const entries = dir.readdirSync(); + for (const e of entries) { + if (!filter3 || filter3(e)) { + yield withFileTypes ? e : e.fullpath(); + } + let r = e; + if (e.isSymbolicLink()) { + if (!(follow && (r = e.realpathSync()))) + continue; + if (r.isUnknown()) + r.lstatSync(); + } + if (r.shouldWalk(dirs, walkFilter)) { + dirs.add(r); + } } } - next(); } - walkCB3(target, entries, processor, cb) { - processor = processor.filterEntries(target, entries); - let tasks = 1; - const next = () => { - if (--tasks === 0) - cb(); - }; - for (const [m, absolute, ifDir] of processor.matches.entries()) { - if (this.#ignored(m)) - continue; - tasks++; - this.match(m, absolute, ifDir).then(() => next()); + stream(entry = this.cwd, opts = {}) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + opts = entry; + entry = this.cwd; } - for (const [target2, patterns] of processor.subwalks.entries()) { - tasks++; - this.walkCB2(target2, patterns, processor.child(), next); + const { withFileTypes = true, follow = false, filter: filter3, walkFilter } = opts; + const results = new minipass_1.Minipass({ objectMode: true }); + if (!filter3 || filter3(entry)) { + results.write(withFileTypes ? entry : entry.fullpath()); } - next(); - } - walkCBSync(target, patterns, cb) { - if (this.signal?.aborted) - cb(); - this.walkCB2Sync(target, patterns, new processor_js_1.Processor(this.opts), cb); + const dirs = /* @__PURE__ */ new Set(); + const queue = [entry]; + let processing = 0; + const process6 = () => { + let paused = false; + while (!paused) { + const dir = queue.shift(); + if (!dir) { + if (processing === 0) + results.end(); + return; + } + processing++; + dirs.add(dir); + const onReaddir = (er, entries, didRealpaths = false) => { + if (er) + return results.emit("error", er); + if (follow && !didRealpaths) { + const promises = []; + for (const e of entries) { + if (e.isSymbolicLink()) { + promises.push(e.realpath().then((r) => r?.isUnknown() ? r.lstat() : r)); + } + } + if (promises.length) { + Promise.all(promises).then(() => onReaddir(null, entries, true)); + return; + } + } + for (const e of entries) { + if (e && (!filter3 || filter3(e))) { + if (!results.write(withFileTypes ? e : e.fullpath())) { + paused = true; + } + } + } + processing--; + for (const e of entries) { + const r = e.realpathCached() || e; + if (r.shouldWalk(dirs, walkFilter)) { + queue.push(r); + } + } + if (paused && !results.flowing) { + results.once("drain", process6); + } else if (!sync) { + process6(); + } + }; + let sync = true; + dir.readdirCB(onReaddir, true); + sync = false; + } + }; + process6(); + return results; } - walkCB2Sync(target, patterns, processor, cb) { - if (this.#childrenIgnored(target)) - return cb(); - if (this.signal?.aborted) - cb(); - if (this.paused) { - this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb)); - return; + streamSync(entry = this.cwd, opts = {}) { + if (typeof entry === "string") { + entry = this.cwd.resolve(entry); + } else if (!(entry instanceof PathBase)) { + opts = entry; + entry = this.cwd; } - processor.processPatterns(target, patterns); - let tasks = 1; - const next = () => { - if (--tasks === 0) - cb(); - }; - for (const [m, absolute, ifDir] of processor.matches.entries()) { - if (this.#ignored(m)) - continue; - this.matchSync(m, absolute, ifDir); + const { withFileTypes = true, follow = false, filter: filter3, walkFilter } = opts; + const results = new minipass_1.Minipass({ objectMode: true }); + const dirs = /* @__PURE__ */ new Set(); + if (!filter3 || filter3(entry)) { + results.write(withFileTypes ? entry : entry.fullpath()); } - for (const t of processor.subwalkTargets()) { - if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) { - continue; + const queue = [entry]; + let processing = 0; + const process6 = () => { + let paused = false; + while (!paused) { + const dir = queue.shift(); + if (!dir) { + if (processing === 0) + results.end(); + return; + } + processing++; + dirs.add(dir); + const entries = dir.readdirSync(); + for (const e of entries) { + if (!filter3 || filter3(e)) { + if (!results.write(withFileTypes ? e : e.fullpath())) { + paused = true; + } + } + } + processing--; + for (const e of entries) { + let r = e; + if (e.isSymbolicLink()) { + if (!(follow && (r = e.realpathSync()))) + continue; + if (r.isUnknown()) + r.lstatSync(); + } + if (r.shouldWalk(dirs, walkFilter)) { + queue.push(r); + } + } } - tasks++; - const children = t.readdirSync(); - this.walkCB3Sync(t, children, processor, next); - } - next(); - } - walkCB3Sync(target, entries, processor, cb) { - processor = processor.filterEntries(target, entries); - let tasks = 1; - const next = () => { - if (--tasks === 0) - cb(); + if (paused && !results.flowing) + results.once("drain", process6); }; - for (const [m, absolute, ifDir] of processor.matches.entries()) { - if (this.#ignored(m)) - continue; - this.matchSync(m, absolute, ifDir); - } - for (const [target2, patterns] of processor.subwalks.entries()) { - tasks++; - this.walkCB2Sync(target2, patterns, processor.child(), next); - } - next(); + process6(); + return results; + } + chdir(path26 = this.cwd) { + const oldCwd = this.cwd; + this.cwd = typeof path26 === "string" ? this.cwd.resolve(path26) : path26; + this.cwd[setAsCwd](oldCwd); } }; - exports2.GlobUtil = GlobUtil; - var GlobWalker = class extends GlobUtil { - matches; - constructor(patterns, path26, opts) { - super(patterns, path26, opts); - this.matches = /* @__PURE__ */ new Set(); + exports2.PathScurryBase = PathScurryBase; + var PathScurryWin32 = class extends PathScurryBase { + /** + * separator for generating path strings + */ + sep = "\\"; + constructor(cwd = process.cwd(), opts = {}) { + const { nocase = true } = opts; + super(cwd, path_1.win32, "\\", { ...opts, nocase }); + this.nocase = nocase; + for (let p = this.cwd; p; p = p.parent) { + p.nocase = this.nocase; + } } - matchEmit(e) { - this.matches.add(e); + /** + * @internal + */ + parseRootPath(dir) { + return path_1.win32.parse(dir).root.toUpperCase(); } - async walk() { - if (this.signal?.aborted) - throw this.signal.reason; - if (this.path.isUnknown()) { - await this.path.lstat(); - } - await new Promise((res, rej) => { - this.walkCB(this.path, this.patterns, () => { - if (this.signal?.aborted) { - rej(this.signal.reason); - } else { - res(this.matches); - } - }); - }); - return this.matches; + /** + * @internal + */ + newRoot(fs11) { + return new PathWin32(this.rootPath, IFDIR, void 0, this.roots, this.nocase, this.childrenCache(), { fs: fs11 }); } - walkSync() { - if (this.signal?.aborted) - throw this.signal.reason; - if (this.path.isUnknown()) { - this.path.lstatSync(); - } - this.walkCBSync(this.path, this.patterns, () => { - if (this.signal?.aborted) - throw this.signal.reason; - }); - return this.matches; + /** + * Return true if the provided path string is an absolute path + */ + isAbsolute(p) { + return p.startsWith("/") || p.startsWith("\\") || /^[a-z]:(\/|\\)/i.test(p); } }; - exports2.GlobWalker = GlobWalker; - var GlobStream = class extends GlobUtil { - results; - constructor(patterns, path26, opts) { - super(patterns, path26, opts); - this.results = new minipass_1.Minipass({ - signal: this.signal, - objectMode: true - }); - this.results.on("drain", () => this.resume()); - this.results.on("resume", () => this.resume()); + exports2.PathScurryWin32 = PathScurryWin32; + var PathScurryPosix = class extends PathScurryBase { + /** + * separator for generating path strings + */ + sep = "/"; + constructor(cwd = process.cwd(), opts = {}) { + const { nocase = false } = opts; + super(cwd, path_1.posix, "/", { ...opts, nocase }); + this.nocase = nocase; } - matchEmit(e) { - this.results.write(e); - if (!this.results.flowing) - this.pause(); + /** + * @internal + */ + parseRootPath(_dir) { + return "/"; } - stream() { - const target = this.path; - if (target.isUnknown()) { - target.lstat().then(() => { - this.walkCB(target, this.patterns, () => this.results.end()); - }); - } else { - this.walkCB(target, this.patterns, () => this.results.end()); - } - return this.results; + /** + * @internal + */ + newRoot(fs11) { + return new PathPosix(this.rootPath, IFDIR, void 0, this.roots, this.nocase, this.childrenCache(), { fs: fs11 }); } - streamSync() { - if (this.path.isUnknown()) { - this.path.lstatSync(); - } - this.walkCBSync(this.path, this.patterns, () => this.results.end()); - return this.results; + /** + * Return true if the provided path string is an absolute path + */ + isAbsolute(p) { + return p.startsWith("/"); } }; - exports2.GlobStream = GlobStream; + exports2.PathScurryPosix = PathScurryPosix; + var PathScurryDarwin = class extends PathScurryPosix { + constructor(cwd = process.cwd(), opts = {}) { + const { nocase = true } = opts; + super(cwd, { ...opts, nocase }); + } + }; + exports2.PathScurryDarwin = PathScurryDarwin; + exports2.Path = process.platform === "win32" ? PathWin32 : PathPosix; + exports2.PathScurry = process.platform === "win32" ? PathScurryWin32 : process.platform === "darwin" ? PathScurryDarwin : PathScurryPosix; } }); -// ../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/glob.js -var require_glob = __commonJS({ - "../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/glob.js"(exports2) { +// ../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/pattern.js +var require_pattern2 = __commonJS({ + "../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/pattern.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.Glob = void 0; + exports2.Pattern = void 0; var minimatch_1 = require_cjs2(); - var path_scurry_1 = require_cjs3(); - var url_1 = require("url"); - var pattern_js_1 = require_pattern2(); - var walker_js_1 = require_walker(); - var defaultPlatform = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux"; - var Glob = class { - absolute; - cwd; - root; - dot; - dotRelative; - follow; - ignore; - magicalBraces; - mark; - matchBase; - maxDepth; - nobrace; - nocase; - nodir; - noext; - noglobstar; - pattern; - platform; - realpath; - scurry; - stat; - signal; - windowsPathsNoEscape; - withFileTypes; - /** - * The options provided to the constructor. - */ - opts; - /** - * An array of parsed immutable {@link Pattern} objects. - */ - patterns; - /** - * All options are stored as properties on the `Glob` object. - * - * See {@link GlobOptions} for full options descriptions. - * - * Note that a previous `Glob` object can be passed as the - * `GlobOptions` to another `Glob` instantiation to re-use settings - * and caches with a new pattern. - * - * Traversal functions can be called multiple times to run the walk - * again. - */ - constructor(pattern, opts) { - if (!opts) - throw new TypeError("glob options required"); - this.withFileTypes = !!opts.withFileTypes; - this.signal = opts.signal; - this.follow = !!opts.follow; - this.dot = !!opts.dot; - this.dotRelative = !!opts.dotRelative; - this.nodir = !!opts.nodir; - this.mark = !!opts.mark; - if (!opts.cwd) { - this.cwd = ""; - } else if (opts.cwd instanceof URL || opts.cwd.startsWith("file://")) { - opts.cwd = (0, url_1.fileURLToPath)(opts.cwd); - } - this.cwd = opts.cwd || ""; - this.root = opts.root; - this.magicalBraces = !!opts.magicalBraces; - this.nobrace = !!opts.nobrace; - this.noext = !!opts.noext; - this.realpath = !!opts.realpath; - this.absolute = opts.absolute; - this.noglobstar = !!opts.noglobstar; - this.matchBase = !!opts.matchBase; - this.maxDepth = typeof opts.maxDepth === "number" ? opts.maxDepth : Infinity; - this.stat = !!opts.stat; - this.ignore = opts.ignore; - if (this.withFileTypes && this.absolute !== void 0) { - throw new Error("cannot set absolute and withFileTypes:true"); - } - if (typeof pattern === "string") { - pattern = [pattern]; + var isPatternList = (pl) => pl.length >= 1; + var isGlobList = (gl) => gl.length >= 1; + var Pattern = class _Pattern { + #patternList; + #globList; + #index; + length; + #platform; + #rest; + #globString; + #isDrive; + #isUNC; + #isAbsolute; + #followGlobstar = true; + constructor(patternList, globList, index, platform) { + if (!isPatternList(patternList)) { + throw new TypeError("empty pattern list"); } - this.windowsPathsNoEscape = !!opts.windowsPathsNoEscape || opts.allowWindowsEscape === false; - if (this.windowsPathsNoEscape) { - pattern = pattern.map((p) => p.replace(/\\/g, "/")); + if (!isGlobList(globList)) { + throw new TypeError("empty glob list"); } - if (this.matchBase) { - if (opts.noglobstar) { - throw new TypeError("base matching requires globstar"); - } - pattern = pattern.map((p) => p.includes("/") ? p : `./**/${p}`); + if (globList.length !== patternList.length) { + throw new TypeError("mismatched pattern list and glob list lengths"); } - this.pattern = pattern; - this.platform = opts.platform || defaultPlatform; - this.opts = { ...opts, platform: this.platform }; - if (opts.scurry) { - this.scurry = opts.scurry; - if (opts.nocase !== void 0 && opts.nocase !== opts.scurry.nocase) { - throw new Error("nocase option contradicts provided scurry option"); - } - } else { - const Scurry = opts.platform === "win32" ? path_scurry_1.PathScurryWin32 : opts.platform === "darwin" ? path_scurry_1.PathScurryDarwin : opts.platform ? path_scurry_1.PathScurryPosix : path_scurry_1.PathScurry; - this.scurry = new Scurry(this.cwd, { - nocase: opts.nocase, - fs: opts.fs - }); + this.length = patternList.length; + if (index < 0 || index >= this.length) { + throw new TypeError("index out of range"); + } + this.#patternList = patternList; + this.#globList = globList; + this.#index = index; + this.#platform = platform; + if (this.#index === 0) { + if (this.isUNC()) { + const [p0, p1, p2, p3, ...prest] = this.#patternList; + const [g0, g1, g2, g3, ...grest] = this.#globList; + if (prest[0] === "") { + prest.shift(); + grest.shift(); + } + const p = [p0, p1, p2, p3, ""].join("/"); + const g = [g0, g1, g2, g3, ""].join("/"); + this.#patternList = [p, ...prest]; + this.#globList = [g, ...grest]; + this.length = this.#patternList.length; + } else if (this.isDrive() || this.isAbsolute()) { + const [p1, ...prest] = this.#patternList; + const [g1, ...grest] = this.#globList; + if (prest[0] === "") { + prest.shift(); + grest.shift(); + } + const p = p1 + "/"; + const g = g1 + "/"; + this.#patternList = [p, ...prest]; + this.#globList = [g, ...grest]; + this.length = this.#patternList.length; + } } - this.nocase = this.scurry.nocase; - const nocaseMagicOnly = this.platform === "darwin" || this.platform === "win32"; - const mmo = { - // default nocase based on platform - ...opts, - dot: this.dot, - matchBase: this.matchBase, - nobrace: this.nobrace, - nocase: this.nocase, - nocaseMagicOnly, - nocomment: true, - noext: this.noext, - nonegate: true, - optimizationLevel: 2, - platform: this.platform, - windowsPathsNoEscape: this.windowsPathsNoEscape, - debug: !!this.opts.debug - }; - const mms = this.pattern.map((p) => new minimatch_1.Minimatch(p, mmo)); - const [matchSet, globParts] = mms.reduce((set, m) => { - set[0].push(...m.set); - set[1].push(...m.globParts); - return set; - }, [[], []]); - this.patterns = matchSet.map((set, i) => { - const g = globParts[i]; - if (!g) - throw new Error("invalid pattern object"); - return new pattern_js_1.Pattern(set, g, 0, this.platform); - }); } - async walk() { - return [ - ...await new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, { - ...this.opts, - maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, - platform: this.platform, - nocase: this.nocase - }).walk() - ]; + /** + * The first entry in the parsed list of patterns + */ + pattern() { + return this.#patternList[this.#index]; } - walkSync() { - return [ - ...new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, { - ...this.opts, - maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, - platform: this.platform, - nocase: this.nocase - }).walkSync() - ]; + /** + * true of if pattern() returns a string + */ + isString() { + return typeof this.#patternList[this.#index] === "string"; } - stream() { - return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, { - ...this.opts, - maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, - platform: this.platform, - nocase: this.nocase - }).stream(); + /** + * true of if pattern() returns GLOBSTAR + */ + isGlobstar() { + return this.#patternList[this.#index] === minimatch_1.GLOBSTAR; } - streamSync() { - return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, { - ...this.opts, - maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, - platform: this.platform, - nocase: this.nocase - }).streamSync(); + /** + * true if pattern() returns a regexp + */ + isRegExp() { + return this.#patternList[this.#index] instanceof RegExp; } /** - * Default sync iteration function. Returns a Generator that - * iterates over the results. + * The /-joined set of glob parts that make up this pattern */ - iterateSync() { - return this.streamSync()[Symbol.iterator](); + globString() { + return this.#globString = this.#globString || (this.#index === 0 ? this.isAbsolute() ? this.#globList[0] + this.#globList.slice(1).join("/") : this.#globList.join("/") : this.#globList.slice(this.#index).join("/")); } - [Symbol.iterator]() { - return this.iterateSync(); + /** + * true if there are more pattern parts after this one + */ + hasMore() { + return this.length > this.#index + 1; } /** - * Default async iteration function. Returns an AsyncGenerator that - * iterates over the results. + * The rest of the pattern after this part, or null if this is the end */ - iterate() { - return this.stream()[Symbol.asyncIterator](); + rest() { + if (this.#rest !== void 0) + return this.#rest; + if (!this.hasMore()) + return this.#rest = null; + this.#rest = new _Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform); + this.#rest.#isAbsolute = this.#isAbsolute; + this.#rest.#isUNC = this.#isUNC; + this.#rest.#isDrive = this.#isDrive; + return this.#rest; } - [Symbol.asyncIterator]() { - return this.iterate(); + /** + * true if the pattern represents a //unc/path/ on windows + */ + isUNC() { + const pl = this.#patternList; + return this.#isUNC !== void 0 ? this.#isUNC : this.#isUNC = this.#platform === "win32" && this.#index === 0 && pl[0] === "" && pl[1] === "" && typeof pl[2] === "string" && !!pl[2] && typeof pl[3] === "string" && !!pl[3]; + } + // pattern like C:/... + // split = ['C:', ...] + // XXX: would be nice to handle patterns like `c:*` to test the cwd + // in c: for *, but I don't know of a way to even figure out what that + // cwd is without actually chdir'ing into it? + /** + * True if the pattern starts with a drive letter on Windows + */ + isDrive() { + const pl = this.#patternList; + return this.#isDrive !== void 0 ? this.#isDrive : this.#isDrive = this.#platform === "win32" && this.#index === 0 && this.length > 1 && typeof pl[0] === "string" && /^[a-z]:$/i.test(pl[0]); + } + // pattern = '/' or '/...' or '/x/...' + // split = ['', ''] or ['', ...] or ['', 'x', ...] + // Drive and UNC both considered absolute on windows + /** + * True if the pattern is rooted on an absolute path + */ + isAbsolute() { + const pl = this.#patternList; + return this.#isAbsolute !== void 0 ? this.#isAbsolute : this.#isAbsolute = pl[0] === "" && pl.length > 1 || this.isDrive() || this.isUNC(); + } + /** + * consume the root of the pattern, and return it + */ + root() { + const p = this.#patternList[0]; + return typeof p === "string" && this.isAbsolute() && this.#index === 0 ? p : ""; + } + /** + * Check to see if the current globstar pattern is allowed to follow + * a symbolic link. + */ + checkFollowGlobstar() { + return !(this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar); + } + /** + * Mark that the current globstar pattern is following a symbolic link + */ + markFollowGlobstar() { + if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar) + return false; + this.#followGlobstar = false; + return true; } }; - exports2.Glob = Glob; + exports2.Pattern = Pattern; } }); -// ../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/has-magic.js -var require_has_magic = __commonJS({ - "../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/has-magic.js"(exports2) { +// ../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/ignore.js +var require_ignore = __commonJS({ + "../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/ignore.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.hasMagic = void 0; + exports2.Ignore = void 0; var minimatch_1 = require_cjs2(); - var hasMagic = (pattern, options = {}) => { - if (!Array.isArray(pattern)) { - pattern = [pattern]; + var pattern_js_1 = require_pattern2(); + var defaultPlatform = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux"; + var Ignore = class { + relative; + relativeChildren; + absolute; + absoluteChildren; + constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform }) { + this.relative = []; + this.absolute = []; + this.relativeChildren = []; + this.absoluteChildren = []; + const mmopts = { + dot: true, + nobrace, + nocase, + noext, + noglobstar, + optimizationLevel: 2, + platform, + nocomment: true, + nonegate: true + }; + for (const ign of ignored) { + const mm2 = new minimatch_1.Minimatch(ign, mmopts); + for (let i = 0; i < mm2.set.length; i++) { + const parsed = mm2.set[i]; + const globParts = mm2.globParts[i]; + if (!parsed || !globParts) { + throw new Error("invalid pattern object"); + } + const p = new pattern_js_1.Pattern(parsed, globParts, 0, platform); + const m = new minimatch_1.Minimatch(p.globString(), mmopts); + const children = globParts[globParts.length - 1] === "**"; + const absolute = p.isAbsolute(); + if (absolute) + this.absolute.push(m); + else + this.relative.push(m); + if (children) { + if (absolute) + this.absoluteChildren.push(m); + else + this.relativeChildren.push(m); + } + } + } } - for (const p of pattern) { - if (new minimatch_1.Minimatch(p, options).hasMagic()) - return true; + ignored(p) { + const fullpath = p.fullpath(); + const fullpaths = `${fullpath}/`; + const relative8 = p.relative() || "."; + const relatives = `${relative8}/`; + for (const m of this.relative) { + if (m.match(relative8) || m.match(relatives)) + return true; + } + for (const m of this.absolute) { + if (m.match(fullpath) || m.match(fullpaths)) + return true; + } + return false; + } + childrenIgnored(p) { + const fullpath = p.fullpath() + "/"; + const relative8 = (p.relative() || ".") + "/"; + for (const m of this.relativeChildren) { + if (m.match(relative8)) + return true; + } + for (const m of this.absoluteChildren) { + if (m.match(fullpath)) + return true; + } + return false; } - return false; }; - exports2.hasMagic = hasMagic; + exports2.Ignore = Ignore; } }); -// ../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/index.js -var require_commonjs3 = __commonJS({ - "../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/index.js"(exports2) { +// ../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/processor.js +var require_processor = __commonJS({ + "../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/processor.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.glob = exports2.hasMagic = exports2.Glob = exports2.unescape = exports2.escape = exports2.sync = exports2.iterate = exports2.iterateSync = exports2.stream = exports2.streamSync = exports2.globIterate = exports2.globIterateSync = exports2.globSync = exports2.globStream = exports2.globStreamSync = void 0; + exports2.Processor = exports2.SubWalks = exports2.MatchRecord = exports2.HasWalkedCache = void 0; var minimatch_1 = require_cjs2(); - var glob_js_1 = require_glob(); - var has_magic_js_1 = require_has_magic(); - function globStreamSync(pattern, options = {}) { - return new glob_js_1.Glob(pattern, options).streamSync(); - } - exports2.globStreamSync = globStreamSync; - function globStream(pattern, options = {}) { - return new glob_js_1.Glob(pattern, options).stream(); - } - exports2.globStream = globStream; - function globSync(pattern, options = {}) { - return new glob_js_1.Glob(pattern, options).walkSync(); - } - exports2.globSync = globSync; - async function glob_(pattern, options = {}) { - return new glob_js_1.Glob(pattern, options).walk(); - } - function globIterateSync(pattern, options = {}) { - return new glob_js_1.Glob(pattern, options).iterateSync(); - } - exports2.globIterateSync = globIterateSync; - function globIterate(pattern, options = {}) { - return new glob_js_1.Glob(pattern, options).iterate(); - } - exports2.globIterate = globIterate; - exports2.streamSync = globStreamSync; - exports2.stream = Object.assign(globStream, { sync: globStreamSync }); - exports2.iterateSync = globIterateSync; - exports2.iterate = Object.assign(globIterate, { - sync: globIterateSync - }); - exports2.sync = Object.assign(globSync, { - stream: globStreamSync, - iterate: globIterateSync - }); - var minimatch_2 = require_cjs2(); - Object.defineProperty(exports2, "escape", { enumerable: true, get: function() { - return minimatch_2.escape; - } }); - Object.defineProperty(exports2, "unescape", { enumerable: true, get: function() { - return minimatch_2.unescape; - } }); - var glob_js_2 = require_glob(); - Object.defineProperty(exports2, "Glob", { enumerable: true, get: function() { - return glob_js_2.Glob; - } }); - var has_magic_js_2 = require_has_magic(); - Object.defineProperty(exports2, "hasMagic", { enumerable: true, get: function() { - return has_magic_js_2.hasMagic; - } }); - exports2.glob = Object.assign(glob_, { - glob: glob_, - globSync, - sync: exports2.sync, - globStream, - stream: exports2.stream, - globStreamSync, - streamSync: exports2.streamSync, - globIterate, - iterate: exports2.iterate, - globIterateSync, - iterateSync: exports2.iterateSync, - Glob: glob_js_1.Glob, - hasMagic: has_magic_js_1.hasMagic, - escape: minimatch_1.escape, - unescape: minimatch_1.unescape - }); - exports2.glob.glob = exports2.glob; - } -}); - -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/opt-arg.js -var require_opt_arg = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/opt-arg.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.optArgSync = exports2.optArg = exports2.assertRimrafOptions = exports2.isRimrafOptions = void 0; - var typeOrUndef = (val, t) => typeof val === "undefined" || typeof val === t; - var isRimrafOptions = (o) => !!o && typeof o === "object" && typeOrUndef(o.preserveRoot, "boolean") && typeOrUndef(o.tmp, "string") && typeOrUndef(o.maxRetries, "number") && typeOrUndef(o.retryDelay, "number") && typeOrUndef(o.backoff, "number") && typeOrUndef(o.maxBackoff, "number") && (typeOrUndef(o.glob, "boolean") || o.glob && typeof o.glob === "object") && typeOrUndef(o.filter, "function"); - exports2.isRimrafOptions = isRimrafOptions; - var assertRimrafOptions = (o) => { - if (!(0, exports2.isRimrafOptions)(o)) { - throw new Error("invalid rimraf options"); + var HasWalkedCache = class _HasWalkedCache { + store; + constructor(store = /* @__PURE__ */ new Map()) { + this.store = store; + } + copy() { + return new _HasWalkedCache(new Map(this.store)); + } + hasWalked(target, pattern) { + return this.store.get(target.fullpath())?.has(pattern.globString()); + } + storeWalked(target, pattern) { + const fullpath = target.fullpath(); + const cached = this.store.get(fullpath); + if (cached) + cached.add(pattern.globString()); + else + this.store.set(fullpath, /* @__PURE__ */ new Set([pattern.globString()])); } }; - exports2.assertRimrafOptions = assertRimrafOptions; - var optArgT = (opt) => { - (0, exports2.assertRimrafOptions)(opt); - const { glob: glob2, ...options } = opt; - if (!glob2) { - return options; + exports2.HasWalkedCache = HasWalkedCache; + var MatchRecord = class { + store = /* @__PURE__ */ new Map(); + add(target, absolute, ifDir) { + const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0); + const current = this.store.get(target); + this.store.set(target, current === void 0 ? n : n & current); + } + // match, absolute, ifdir + entries() { + return [...this.store.entries()].map(([path26, n]) => [ + path26, + !!(n & 2), + !!(n & 1) + ]); } - const globOpt = glob2 === true ? opt.signal ? { signal: opt.signal } : {} : opt.signal ? { - signal: opt.signal, - ...glob2 - } : glob2; - return { - ...options, - glob: { - ...globOpt, - // always get absolute paths from glob, to ensure - // that we are referencing the correct thing. - absolute: true, - withFileTypes: false - } - }; }; - var optArg = (opt = {}) => optArgT(opt); - exports2.optArg = optArg; - var optArgSync = (opt = {}) => optArgT(opt); - exports2.optArgSync = optArgSync; - } -}); - -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/platform.js -var require_platform = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/platform.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.default = process.env.__TESTING_RIMRAF_PLATFORM__ || process.platform; - } -}); - -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/path-arg.js -var require_path_arg = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/path-arg.js"(exports2) { - "use strict"; - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; + exports2.MatchRecord = MatchRecord; + var SubWalks = class { + store = /* @__PURE__ */ new Map(); + add(target, pattern) { + if (!target.canReaddir()) { + return; + } + const subs = this.store.get(target); + if (subs) { + if (!subs.find((p) => p.globString() === pattern.globString())) { + subs.push(pattern); + } + } else + this.store.set(target, [pattern]); + } + get(target) { + const subs = this.store.get(target); + if (!subs) { + throw new Error("attempting to walk unknown path"); + } + return subs; + } + entries() { + return this.keys().map((k) => [k, this.store.get(k)]); + } + keys() { + return [...this.store.keys()].filter((t) => t.canReaddir()); + } }; - Object.defineProperty(exports2, "__esModule", { value: true }); - var path_1 = require("path"); - var util_1 = require("util"); - var platform_js_1 = __importDefault(require_platform()); - var pathArg = (path26, opt = {}) => { - const type = typeof path26; - if (type !== "string") { - const ctor = path26 && type === "object" && path26.constructor; - const received = ctor && ctor.name ? `an instance of ${ctor.name}` : type === "object" ? (0, util_1.inspect)(path26) : `type ${type} ${path26}`; - const msg = `The "path" argument must be of type string. Received ${received}`; - throw Object.assign(new TypeError(msg), { - path: path26, - code: "ERR_INVALID_ARG_TYPE" - }); + exports2.SubWalks = SubWalks; + var Processor = class _Processor { + hasWalkedCache; + matches = new MatchRecord(); + subwalks = new SubWalks(); + patterns; + follow; + dot; + opts; + constructor(opts, hasWalkedCache) { + this.opts = opts; + this.follow = !!opts.follow; + this.dot = !!opts.dot; + this.hasWalkedCache = hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache(); + } + processPatterns(target, patterns) { + this.patterns = patterns; + const processingSet = patterns.map((p) => [target, p]); + for (let [t, pattern] of processingSet) { + this.hasWalkedCache.storeWalked(t, pattern); + const root = pattern.root(); + const absolute = pattern.isAbsolute() && this.opts.absolute !== false; + if (root) { + t = t.resolve(root === "/" && this.opts.root !== void 0 ? this.opts.root : root); + const rest2 = pattern.rest(); + if (!rest2) { + this.matches.add(t, true, false); + continue; + } else { + pattern = rest2; + } + } + if (t.isENOENT()) + continue; + let p; + let rest; + let changed = false; + while (typeof (p = pattern.pattern()) === "string" && (rest = pattern.rest())) { + const c = t.resolve(p); + t = c; + pattern = rest; + changed = true; + } + p = pattern.pattern(); + rest = pattern.rest(); + if (changed) { + if (this.hasWalkedCache.hasWalked(t, pattern)) + continue; + this.hasWalkedCache.storeWalked(t, pattern); + } + if (typeof p === "string") { + const ifDir = p === ".." || p === "" || p === "."; + this.matches.add(t.resolve(p), absolute, ifDir); + continue; + } else if (p === minimatch_1.GLOBSTAR) { + if (!t.isSymbolicLink() || this.follow || pattern.checkFollowGlobstar()) { + this.subwalks.add(t, pattern); + } + const rp = rest?.pattern(); + const rrest = rest?.rest(); + if (!rest || (rp === "" || rp === ".") && !rrest) { + this.matches.add(t, absolute, rp === "" || rp === "."); + } else { + if (rp === "..") { + const tp = t.parent || t; + if (!rrest) + this.matches.add(tp, absolute, true); + else if (!this.hasWalkedCache.hasWalked(tp, rrest)) { + this.subwalks.add(tp, rrest); + } + } + } + } else if (p instanceof RegExp) { + this.subwalks.add(t, pattern); + } + } + return this; } - if (/\0/.test(path26)) { - const msg = "path must be a string without null bytes"; - throw Object.assign(new TypeError(msg), { - path: path26, - code: "ERR_INVALID_ARG_VALUE" - }); + subwalkTargets() { + return this.subwalks.keys(); } - path26 = (0, path_1.resolve)(path26); - const { root } = (0, path_1.parse)(path26); - if (path26 === root && opt.preserveRoot !== false) { - const msg = "refusing to remove root directory without preserveRoot:false"; - throw Object.assign(new Error(msg), { - path: path26, - code: "ERR_PRESERVE_ROOT" - }); + child() { + return new _Processor(this.opts, this.hasWalkedCache); } - if (platform_js_1.default === "win32") { - const badWinChars = /[*|"<>?:]/; - const { root: root2 } = (0, path_1.parse)(path26); - if (badWinChars.test(path26.substring(root2.length))) { - throw Object.assign(new Error("Illegal characters in path."), { - path: path26, - code: "EINVAL" - }); + // return a new Processor containing the subwalks for each + // child entry, and a set of matches, and + // a hasWalkedCache that's a copy of this one + // then we're going to call + filterEntries(parent, entries) { + const patterns = this.subwalks.get(parent); + const results = this.child(); + for (const e of entries) { + for (const pattern of patterns) { + const absolute = pattern.isAbsolute(); + const p = pattern.pattern(); + const rest = pattern.rest(); + if (p === minimatch_1.GLOBSTAR) { + results.testGlobstar(e, pattern, rest, absolute); + } else if (p instanceof RegExp) { + results.testRegExp(e, p, rest, absolute); + } else { + results.testString(e, p, rest, absolute); + } + } } + return results; } - return path26; - }; - exports2.default = pathArg; - } -}); - -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/fs.js -var require_fs5 = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/fs.js"(exports2) { - "use strict"; - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.promises = exports2.readdirSync = exports2.unlinkSync = exports2.lstatSync = exports2.statSync = exports2.rmSync = exports2.rmdirSync = exports2.renameSync = exports2.mkdirSync = exports2.chmodSync = void 0; - var fs_1 = __importDefault(require("fs")); - var fs_2 = require("fs"); - Object.defineProperty(exports2, "chmodSync", { enumerable: true, get: function() { - return fs_2.chmodSync; - } }); - Object.defineProperty(exports2, "mkdirSync", { enumerable: true, get: function() { - return fs_2.mkdirSync; - } }); - Object.defineProperty(exports2, "renameSync", { enumerable: true, get: function() { - return fs_2.renameSync; - } }); - Object.defineProperty(exports2, "rmdirSync", { enumerable: true, get: function() { - return fs_2.rmdirSync; - } }); - Object.defineProperty(exports2, "rmSync", { enumerable: true, get: function() { - return fs_2.rmSync; - } }); - Object.defineProperty(exports2, "statSync", { enumerable: true, get: function() { - return fs_2.statSync; - } }); - Object.defineProperty(exports2, "lstatSync", { enumerable: true, get: function() { - return fs_2.lstatSync; - } }); - Object.defineProperty(exports2, "unlinkSync", { enumerable: true, get: function() { - return fs_2.unlinkSync; - } }); - var fs_3 = require("fs"); - var readdirSync = (path26) => (0, fs_3.readdirSync)(path26, { withFileTypes: true }); - exports2.readdirSync = readdirSync; - var chmod = (path26, mode) => new Promise((res, rej) => fs_1.default.chmod(path26, mode, (er, ...d) => er ? rej(er) : res(...d))); - var mkdir = (path26, options) => new Promise((res, rej) => fs_1.default.mkdir(path26, options, (er, made) => er ? rej(er) : res(made))); - var readdir = (path26) => new Promise((res, rej) => fs_1.default.readdir(path26, { withFileTypes: true }, (er, data) => er ? rej(er) : res(data))); - var rename = (oldPath, newPath) => new Promise((res, rej) => fs_1.default.rename(oldPath, newPath, (er, ...d) => er ? rej(er) : res(...d))); - var rm = (path26, options) => new Promise((res, rej) => fs_1.default.rm(path26, options, (er, ...d) => er ? rej(er) : res(...d))); - var rmdir = (path26) => new Promise((res, rej) => fs_1.default.rmdir(path26, (er, ...d) => er ? rej(er) : res(...d))); - var stat3 = (path26) => new Promise((res, rej) => fs_1.default.stat(path26, (er, data) => er ? rej(er) : res(data))); - var lstat = (path26) => new Promise((res, rej) => fs_1.default.lstat(path26, (er, data) => er ? rej(er) : res(data))); - var unlink = (path26) => new Promise((res, rej) => fs_1.default.unlink(path26, (er, ...d) => er ? rej(er) : res(...d))); - exports2.promises = { - chmod, - mkdir, - readdir, - rename, - rm, - rmdir, - stat: stat3, - lstat, - unlink - }; - } -}); - -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/readdir-or-error.js -var require_readdir_or_error = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/readdir-or-error.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.readdirOrErrorSync = exports2.readdirOrError = void 0; - var fs_js_1 = require_fs5(); - var { readdir } = fs_js_1.promises; - var readdirOrError = (path26) => readdir(path26).catch((er) => er); - exports2.readdirOrError = readdirOrError; - var readdirOrErrorSync = (path26) => { - try { - return (0, fs_js_1.readdirSync)(path26); - } catch (er) { - return er; + testGlobstar(e, pattern, rest, absolute) { + if (this.dot || !e.name.startsWith(".")) { + if (!pattern.hasMore()) { + this.matches.add(e, absolute, false); + } + if (e.canReaddir()) { + if (this.follow || !e.isSymbolicLink()) { + this.subwalks.add(e, pattern); + } else if (e.isSymbolicLink()) { + if (rest && pattern.checkFollowGlobstar()) { + this.subwalks.add(e, rest); + } else if (pattern.markFollowGlobstar()) { + this.subwalks.add(e, pattern); + } + } + } + } + if (rest) { + const rp = rest.pattern(); + if (typeof rp === "string" && // dots and empty were handled already + rp !== ".." && rp !== "" && rp !== ".") { + this.testString(e, rp, rest.rest(), absolute); + } else if (rp === "..") { + const ep = e.parent || e; + this.subwalks.add(ep, rest); + } else if (rp instanceof RegExp) { + this.testRegExp(e, rp, rest.rest(), absolute); + } + } } - }; - exports2.readdirOrErrorSync = readdirOrErrorSync; - } -}); - -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/ignore-enoent.js -var require_ignore_enoent = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/ignore-enoent.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.ignoreENOENTSync = exports2.ignoreENOENT = void 0; - var ignoreENOENT = async (p) => p.catch((er) => { - if (er.code !== "ENOENT") { - throw er; + testRegExp(e, p, rest, absolute) { + if (!p.test(e.name)) + return; + if (!rest) { + this.matches.add(e, absolute, false); + } else { + this.subwalks.add(e, rest); + } } - }); - exports2.ignoreENOENT = ignoreENOENT; - var ignoreENOENTSync = (fn) => { - try { - return fn(); - } catch (er) { - if (er?.code !== "ENOENT") { - throw er; + testString(e, p, rest, absolute) { + if (!e.isNamed(p)) + return; + if (!rest) { + this.matches.add(e, absolute, false); + } else { + this.subwalks.add(e, rest); } } }; - exports2.ignoreENOENTSync = ignoreENOENTSync; + exports2.Processor = Processor; } }); -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-posix.js -var require_rimraf_posix = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-posix.js"(exports2) { +// ../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/walker.js +var require_walker = __commonJS({ + "../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/walker.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.rimrafPosixSync = exports2.rimrafPosix = void 0; - var fs_js_1 = require_fs5(); - var { lstat, rmdir, unlink } = fs_js_1.promises; - var path_1 = require("path"); - var readdir_or_error_js_1 = require_readdir_or_error(); - var ignore_enoent_js_1 = require_ignore_enoent(); - var rimrafPosix = async (path26, opt) => { - if (opt?.signal?.aborted) { - throw opt.signal.reason; + exports2.GlobStream = exports2.GlobWalker = exports2.GlobUtil = void 0; + var minipass_1 = require_commonjs2(); + var ignore_js_1 = require_ignore(); + var processor_js_1 = require_processor(); + var makeIgnore = (ignore, opts) => typeof ignore === "string" ? new ignore_js_1.Ignore([ignore], opts) : Array.isArray(ignore) ? new ignore_js_1.Ignore(ignore, opts) : ignore; + var GlobUtil = class { + path; + patterns; + opts; + seen = /* @__PURE__ */ new Set(); + paused = false; + aborted = false; + #onResume = []; + #ignore; + #sep; + signal; + maxDepth; + constructor(patterns, path26, opts) { + this.patterns = patterns; + this.path = path26; + this.opts = opts; + this.#sep = !opts.posix && opts.platform === "win32" ? "\\" : "/"; + if (opts.ignore) { + this.#ignore = makeIgnore(opts.ignore, opts); + } + this.maxDepth = opts.maxDepth || Infinity; + if (opts.signal) { + this.signal = opts.signal; + this.signal.addEventListener("abort", () => { + this.#onResume.length = 0; + }); + } } - try { - return await rimrafPosixDir(path26, opt, await lstat(path26)); - } catch (er) { - if (er?.code === "ENOENT") - return true; - throw er; + #ignored(path26) { + return this.seen.has(path26) || !!this.#ignore?.ignored?.(path26); } - }; - exports2.rimrafPosix = rimrafPosix; - var rimrafPosixSync = (path26, opt) => { - if (opt?.signal?.aborted) { - throw opt.signal.reason; + #childrenIgnored(path26) { + return !!this.#ignore?.childrenIgnored?.(path26); } - try { - return rimrafPosixDirSync(path26, opt, (0, fs_js_1.lstatSync)(path26)); - } catch (er) { - if (er?.code === "ENOENT") - return true; - throw er; + // backpressure mechanism + pause() { + this.paused = true; } - }; - exports2.rimrafPosixSync = rimrafPosixSync; - var rimrafPosixDir = async (path26, opt, ent) => { - if (opt?.signal?.aborted) { - throw opt.signal.reason; + resume() { + if (this.signal?.aborted) + return; + this.paused = false; + let fn = void 0; + while (!this.paused && (fn = this.#onResume.shift())) { + fn(); + } } - const entries = ent.isDirectory() ? await (0, readdir_or_error_js_1.readdirOrError)(path26) : null; - if (!Array.isArray(entries)) { - if (entries) { - if (entries.code === "ENOENT") { - return true; - } - if (entries.code !== "ENOTDIR") { - throw entries; - } + onResume(fn) { + if (this.signal?.aborted) + return; + if (!this.paused) { + fn(); + } else { + this.#onResume.push(fn); } - if (opt.filter && !await opt.filter(path26, ent)) { - return false; + } + // do the requisite realpath/stat checking, and return the path + // to add or undefined to filter it out. + async matchCheck(e, ifDir) { + if (ifDir && this.opts.nodir) + return void 0; + let rpc; + if (this.opts.realpath) { + rpc = e.realpathCached() || await e.realpath(); + if (!rpc) + return void 0; + e = rpc; } - await (0, ignore_enoent_js_1.ignoreENOENT)(unlink(path26)); - return true; + const needStat = e.isUnknown() || this.opts.stat; + return this.matchCheckTest(needStat ? await e.lstat() : e, ifDir); } - const removedAll = (await Promise.all(entries.map((ent2) => rimrafPosixDir((0, path_1.resolve)(path26, ent2.name), opt, ent2)))).reduce((a, b) => a && b, true); - if (!removedAll) { - return false; + matchCheckTest(e, ifDir) { + return e && (this.maxDepth === Infinity || e.depth() <= this.maxDepth) && (!ifDir || e.canReaddir()) && (!this.opts.nodir || !e.isDirectory()) && !this.#ignored(e) ? e : void 0; } - if (opt.preserveRoot === false && path26 === (0, path_1.parse)(path26).root) { - return false; + matchCheckSync(e, ifDir) { + if (ifDir && this.opts.nodir) + return void 0; + let rpc; + if (this.opts.realpath) { + rpc = e.realpathCached() || e.realpathSync(); + if (!rpc) + return void 0; + e = rpc; + } + const needStat = e.isUnknown() || this.opts.stat; + return this.matchCheckTest(needStat ? e.lstatSync() : e, ifDir); } - if (opt.filter && !await opt.filter(path26, ent)) { - return false; + matchFinish(e, absolute) { + if (this.#ignored(e)) + return; + const abs = this.opts.absolute === void 0 ? absolute : this.opts.absolute; + this.seen.add(e); + const mark = this.opts.mark && e.isDirectory() ? this.#sep : ""; + if (this.opts.withFileTypes) { + this.matchEmit(e); + } else if (abs) { + const abs2 = this.opts.posix ? e.fullpathPosix() : e.fullpath(); + this.matchEmit(abs2 + mark); + } else { + const rel = this.opts.posix ? e.relativePosix() : e.relative(); + const pre = this.opts.dotRelative && !rel.startsWith(".." + this.#sep) ? "." + this.#sep : ""; + this.matchEmit(!rel ? "." + mark : pre + rel + mark); + } } - await (0, ignore_enoent_js_1.ignoreENOENT)(rmdir(path26)); - return true; - }; - var rimrafPosixDirSync = (path26, opt, ent) => { - if (opt?.signal?.aborted) { - throw opt.signal.reason; + async match(e, absolute, ifDir) { + const p = await this.matchCheck(e, ifDir); + if (p) + this.matchFinish(p, absolute); } - const entries = ent.isDirectory() ? (0, readdir_or_error_js_1.readdirOrErrorSync)(path26) : null; - if (!Array.isArray(entries)) { - if (entries) { - if (entries.code === "ENOENT") { - return true; + matchSync(e, absolute, ifDir) { + const p = this.matchCheckSync(e, ifDir); + if (p) + this.matchFinish(p, absolute); + } + walkCB(target, patterns, cb) { + if (this.signal?.aborted) + cb(); + this.walkCB2(target, patterns, new processor_js_1.Processor(this.opts), cb); + } + walkCB2(target, patterns, processor, cb) { + if (this.#childrenIgnored(target)) + return cb(); + if (this.signal?.aborted) + cb(); + if (this.paused) { + this.onResume(() => this.walkCB2(target, patterns, processor, cb)); + return; + } + processor.processPatterns(target, patterns); + let tasks = 1; + const next = () => { + if (--tasks === 0) + cb(); + }; + for (const [m, absolute, ifDir] of processor.matches.entries()) { + if (this.#ignored(m)) + continue; + tasks++; + this.match(m, absolute, ifDir).then(() => next()); + } + for (const t of processor.subwalkTargets()) { + if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) { + continue; } - if (entries.code !== "ENOTDIR") { - throw entries; + tasks++; + const childrenCached = t.readdirCached(); + if (t.calledReaddir()) + this.walkCB3(t, childrenCached, processor, next); + else { + t.readdirCB((_, entries) => this.walkCB3(t, entries, processor, next), true); } } - if (opt.filter && !opt.filter(path26, ent)) { - return false; - } - (0, ignore_enoent_js_1.ignoreENOENTSync)(() => (0, fs_js_1.unlinkSync)(path26)); - return true; - } - let removedAll = true; - for (const ent2 of entries) { - const p = (0, path_1.resolve)(path26, ent2.name); - removedAll = rimrafPosixDirSync(p, opt, ent2) && removedAll; - } - if (opt.preserveRoot === false && path26 === (0, path_1.parse)(path26).root) { - return false; + next(); } - if (!removedAll) { - return false; + walkCB3(target, entries, processor, cb) { + processor = processor.filterEntries(target, entries); + let tasks = 1; + const next = () => { + if (--tasks === 0) + cb(); + }; + for (const [m, absolute, ifDir] of processor.matches.entries()) { + if (this.#ignored(m)) + continue; + tasks++; + this.match(m, absolute, ifDir).then(() => next()); + } + for (const [target2, patterns] of processor.subwalks.entries()) { + tasks++; + this.walkCB2(target2, patterns, processor.child(), next); + } + next(); } - if (opt.filter && !opt.filter(path26, ent)) { - return false; + walkCBSync(target, patterns, cb) { + if (this.signal?.aborted) + cb(); + this.walkCB2Sync(target, patterns, new processor_js_1.Processor(this.opts), cb); } - (0, ignore_enoent_js_1.ignoreENOENTSync)(() => (0, fs_js_1.rmdirSync)(path26)); - return true; - }; - } -}); - -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/fix-eperm.js -var require_fix_eperm = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/fix-eperm.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.fixEPERMSync = exports2.fixEPERM = void 0; - var fs_js_1 = require_fs5(); - var { chmod } = fs_js_1.promises; - var fixEPERM = (fn) => async (path26) => { - try { - return await fn(path26); - } catch (er) { - const fer = er; - if (fer?.code === "ENOENT") { + walkCB2Sync(target, patterns, processor, cb) { + if (this.#childrenIgnored(target)) + return cb(); + if (this.signal?.aborted) + cb(); + if (this.paused) { + this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb)); return; } - if (fer?.code === "EPERM") { - try { - await chmod(path26, 438); - } catch (er2) { - const fer2 = er2; - if (fer2?.code === "ENOENT") { - return; - } - throw er; + processor.processPatterns(target, patterns); + let tasks = 1; + const next = () => { + if (--tasks === 0) + cb(); + }; + for (const [m, absolute, ifDir] of processor.matches.entries()) { + if (this.#ignored(m)) + continue; + this.matchSync(m, absolute, ifDir); + } + for (const t of processor.subwalkTargets()) { + if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) { + continue; } - return await fn(path26); + tasks++; + const children = t.readdirSync(); + this.walkCB3Sync(t, children, processor, next); } - throw er; + next(); } - }; - exports2.fixEPERM = fixEPERM; - var fixEPERMSync = (fn) => (path26) => { - try { - return fn(path26); - } catch (er) { - const fer = er; - if (fer?.code === "ENOENT") { - return; + walkCB3Sync(target, entries, processor, cb) { + processor = processor.filterEntries(target, entries); + let tasks = 1; + const next = () => { + if (--tasks === 0) + cb(); + }; + for (const [m, absolute, ifDir] of processor.matches.entries()) { + if (this.#ignored(m)) + continue; + this.matchSync(m, absolute, ifDir); } - if (fer?.code === "EPERM") { - try { - (0, fs_js_1.chmodSync)(path26, 438); - } catch (er2) { - const fer2 = er2; - if (fer2?.code === "ENOENT") { - return; - } - throw er; - } - return fn(path26); + for (const [target2, patterns] of processor.subwalks.entries()) { + tasks++; + this.walkCB2Sync(target2, patterns, processor.child(), next); } - throw er; + next(); } }; - exports2.fixEPERMSync = fixEPERMSync; - } -}); - -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/retry-busy.js -var require_retry_busy = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/retry-busy.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.retryBusySync = exports2.retryBusy = exports2.codes = exports2.MAXRETRIES = exports2.RATE = exports2.MAXBACKOFF = void 0; - exports2.MAXBACKOFF = 200; - exports2.RATE = 1.2; - exports2.MAXRETRIES = 10; - exports2.codes = /* @__PURE__ */ new Set(["EMFILE", "ENFILE", "EBUSY"]); - var retryBusy = (fn) => { - const method = async (path26, opt, backoff = 1, total = 0) => { - const mbo = opt.maxBackoff || exports2.MAXBACKOFF; - const rate = opt.backoff || exports2.RATE; - const max4 = opt.maxRetries || exports2.MAXRETRIES; - let retries = 0; - while (true) { - try { - return await fn(path26); - } catch (er) { - const fer = er; - if (fer?.path === path26 && fer?.code && exports2.codes.has(fer.code)) { - backoff = Math.ceil(backoff * rate); - total = backoff + total; - if (total < mbo) { - return new Promise((res, rej) => { - setTimeout(() => { - method(path26, opt, backoff, total).then(res, rej); - }, backoff); - }); - } - if (retries < max4) { - retries++; - continue; - } - } - throw er; - } + exports2.GlobUtil = GlobUtil; + var GlobWalker = class extends GlobUtil { + matches; + constructor(patterns, path26, opts) { + super(patterns, path26, opts); + this.matches = /* @__PURE__ */ new Set(); + } + matchEmit(e) { + this.matches.add(e); + } + async walk() { + if (this.signal?.aborted) + throw this.signal.reason; + if (this.path.isUnknown()) { + await this.path.lstat(); } - }; - return method; - }; - exports2.retryBusy = retryBusy; - var retryBusySync = (fn) => { - const method = (path26, opt) => { - const max4 = opt.maxRetries || exports2.MAXRETRIES; - let retries = 0; - while (true) { - try { - return fn(path26); - } catch (er) { - const fer = er; - if (fer?.path === path26 && fer?.code && exports2.codes.has(fer.code) && retries < max4) { - retries++; - continue; + await new Promise((res, rej) => { + this.walkCB(this.path, this.patterns, () => { + if (this.signal?.aborted) { + rej(this.signal.reason); + } else { + res(this.matches); } - throw er; - } + }); + }); + return this.matches; + } + walkSync() { + if (this.signal?.aborted) + throw this.signal.reason; + if (this.path.isUnknown()) { + this.path.lstatSync(); } - }; - return method; - }; - exports2.retryBusySync = retryBusySync; - } -}); - -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/default-tmp.js -var require_default_tmp = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/default-tmp.js"(exports2) { - "use strict"; - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.defaultTmpSync = exports2.defaultTmp = void 0; - var os_1 = require("os"); - var path_1 = require("path"); - var fs_js_1 = require_fs5(); - var platform_js_1 = __importDefault(require_platform()); - var { stat: stat3 } = fs_js_1.promises; - var isDirSync = (path26) => { - try { - return (0, fs_js_1.statSync)(path26).isDirectory(); - } catch (er) { - return false; + this.walkCBSync(this.path, this.patterns, () => { + if (this.signal?.aborted) + throw this.signal.reason; + }); + return this.matches; } }; - var isDir2 = (path26) => stat3(path26).then((st) => st.isDirectory(), () => false); - var win32DefaultTmp = async (path26) => { - const { root } = (0, path_1.parse)(path26); - const tmp = (0, os_1.tmpdir)(); - const { root: tmpRoot } = (0, path_1.parse)(tmp); - if (root.toLowerCase() === tmpRoot.toLowerCase()) { - return tmp; + exports2.GlobWalker = GlobWalker; + var GlobStream = class extends GlobUtil { + results; + constructor(patterns, path26, opts) { + super(patterns, path26, opts); + this.results = new minipass_1.Minipass({ + signal: this.signal, + objectMode: true + }); + this.results.on("drain", () => this.resume()); + this.results.on("resume", () => this.resume()); } - const driveTmp = (0, path_1.resolve)(root, "/temp"); - if (await isDir2(driveTmp)) { - return driveTmp; + matchEmit(e) { + this.results.write(e); + if (!this.results.flowing) + this.pause(); } - return root; - }; - var win32DefaultTmpSync = (path26) => { - const { root } = (0, path_1.parse)(path26); - const tmp = (0, os_1.tmpdir)(); - const { root: tmpRoot } = (0, path_1.parse)(tmp); - if (root.toLowerCase() === tmpRoot.toLowerCase()) { - return tmp; + stream() { + const target = this.path; + if (target.isUnknown()) { + target.lstat().then(() => { + this.walkCB(target, this.patterns, () => this.results.end()); + }); + } else { + this.walkCB(target, this.patterns, () => this.results.end()); + } + return this.results; } - const driveTmp = (0, path_1.resolve)(root, "/temp"); - if (isDirSync(driveTmp)) { - return driveTmp; + streamSync() { + if (this.path.isUnknown()) { + this.path.lstatSync(); + } + this.walkCBSync(this.path, this.patterns, () => this.results.end()); + return this.results; } - return root; }; - var posixDefaultTmp = async () => (0, os_1.tmpdir)(); - var posixDefaultTmpSync = () => (0, os_1.tmpdir)(); - exports2.defaultTmp = platform_js_1.default === "win32" ? win32DefaultTmp : posixDefaultTmp; - exports2.defaultTmpSync = platform_js_1.default === "win32" ? win32DefaultTmpSync : posixDefaultTmpSync; + exports2.GlobStream = GlobStream; } }); -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js -var require_rimraf_move_remove = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js"(exports2) { +// ../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/glob.js +var require_glob = __commonJS({ + "../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/glob.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.rimrafMoveRemoveSync = exports2.rimrafMoveRemove = void 0; - var path_1 = require("path"); - var default_tmp_js_1 = require_default_tmp(); - var ignore_enoent_js_1 = require_ignore_enoent(); - var fs_js_1 = require_fs5(); - var { lstat, rename, unlink, rmdir, chmod } = fs_js_1.promises; - var readdir_or_error_js_1 = require_readdir_or_error(); - var uniqueFilename = (path26) => `.${(0, path_1.basename)(path26)}.${Math.random()}`; - var unlinkFixEPERM = async (path26) => unlink(path26).catch((er) => { - if (er.code === "EPERM") { - return chmod(path26, 438).then(() => unlink(path26), (er2) => { - if (er2.code === "ENOENT") { - return; - } - throw er; - }); - } else if (er.code === "ENOENT") { - return; - } - throw er; - }); - var unlinkFixEPERMSync = (path26) => { - try { - (0, fs_js_1.unlinkSync)(path26); - } catch (er) { - if (er?.code === "EPERM") { - try { - return (0, fs_js_1.chmodSync)(path26, 438); - } catch (er2) { - if (er2?.code === "ENOENT") { - return; - } - throw er; - } - } else if (er?.code === "ENOENT") { - return; + exports2.Glob = void 0; + var minimatch_1 = require_cjs2(); + var path_scurry_1 = require_cjs3(); + var url_1 = require("url"); + var pattern_js_1 = require_pattern2(); + var walker_js_1 = require_walker(); + var defaultPlatform = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux"; + var Glob = class { + absolute; + cwd; + root; + dot; + dotRelative; + follow; + ignore; + magicalBraces; + mark; + matchBase; + maxDepth; + nobrace; + nocase; + nodir; + noext; + noglobstar; + pattern; + platform; + realpath; + scurry; + stat; + signal; + windowsPathsNoEscape; + withFileTypes; + /** + * The options provided to the constructor. + */ + opts; + /** + * An array of parsed immutable {@link Pattern} objects. + */ + patterns; + /** + * All options are stored as properties on the `Glob` object. + * + * See {@link GlobOptions} for full options descriptions. + * + * Note that a previous `Glob` object can be passed as the + * `GlobOptions` to another `Glob` instantiation to re-use settings + * and caches with a new pattern. + * + * Traversal functions can be called multiple times to run the walk + * again. + */ + constructor(pattern, opts) { + if (!opts) + throw new TypeError("glob options required"); + this.withFileTypes = !!opts.withFileTypes; + this.signal = opts.signal; + this.follow = !!opts.follow; + this.dot = !!opts.dot; + this.dotRelative = !!opts.dotRelative; + this.nodir = !!opts.nodir; + this.mark = !!opts.mark; + if (!opts.cwd) { + this.cwd = ""; + } else if (opts.cwd instanceof URL || opts.cwd.startsWith("file://")) { + opts.cwd = (0, url_1.fileURLToPath)(opts.cwd); } - throw er; - } - }; - var rimrafMoveRemove = async (path26, opt) => { - if (opt?.signal?.aborted) { - throw opt.signal.reason; - } - try { - return await rimrafMoveRemoveDir(path26, opt, await lstat(path26)); - } catch (er) { - if (er?.code === "ENOENT") - return true; - throw er; - } - }; - exports2.rimrafMoveRemove = rimrafMoveRemove; - var rimrafMoveRemoveDir = async (path26, opt, ent) => { - if (opt?.signal?.aborted) { - throw opt.signal.reason; - } - if (!opt.tmp) { - return rimrafMoveRemoveDir(path26, { ...opt, tmp: await (0, default_tmp_js_1.defaultTmp)(path26) }, ent); - } - if (path26 === opt.tmp && (0, path_1.parse)(path26).root !== path26) { - throw new Error("cannot delete temp directory used for deletion"); - } - const entries = ent.isDirectory() ? await (0, readdir_or_error_js_1.readdirOrError)(path26) : null; - if (!Array.isArray(entries)) { - if (entries) { - if (entries.code === "ENOENT") { - return true; - } - if (entries.code !== "ENOTDIR") { - throw entries; - } + this.cwd = opts.cwd || ""; + this.root = opts.root; + this.magicalBraces = !!opts.magicalBraces; + this.nobrace = !!opts.nobrace; + this.noext = !!opts.noext; + this.realpath = !!opts.realpath; + this.absolute = opts.absolute; + this.noglobstar = !!opts.noglobstar; + this.matchBase = !!opts.matchBase; + this.maxDepth = typeof opts.maxDepth === "number" ? opts.maxDepth : Infinity; + this.stat = !!opts.stat; + this.ignore = opts.ignore; + if (this.withFileTypes && this.absolute !== void 0) { + throw new Error("cannot set absolute and withFileTypes:true"); } - if (opt.filter && !await opt.filter(path26, ent)) { - return false; + if (typeof pattern === "string") { + pattern = [pattern]; } - await (0, ignore_enoent_js_1.ignoreENOENT)(tmpUnlink(path26, opt.tmp, unlinkFixEPERM)); - return true; - } - const removedAll = (await Promise.all(entries.map((ent2) => rimrafMoveRemoveDir((0, path_1.resolve)(path26, ent2.name), opt, ent2)))).reduce((a, b) => a && b, true); - if (!removedAll) { - return false; - } - if (opt.preserveRoot === false && path26 === (0, path_1.parse)(path26).root) { - return false; - } - if (opt.filter && !await opt.filter(path26, ent)) { - return false; - } - await (0, ignore_enoent_js_1.ignoreENOENT)(tmpUnlink(path26, opt.tmp, rmdir)); - return true; - }; - var tmpUnlink = async (path26, tmp, rm) => { - const tmpFile = (0, path_1.resolve)(tmp, uniqueFilename(path26)); - await rename(path26, tmpFile); - return await rm(tmpFile); - }; - var rimrafMoveRemoveSync = (path26, opt) => { - if (opt?.signal?.aborted) { - throw opt.signal.reason; - } - try { - return rimrafMoveRemoveDirSync(path26, opt, (0, fs_js_1.lstatSync)(path26)); - } catch (er) { - if (er?.code === "ENOENT") - return true; - throw er; - } - }; - exports2.rimrafMoveRemoveSync = rimrafMoveRemoveSync; - var rimrafMoveRemoveDirSync = (path26, opt, ent) => { - if (opt?.signal?.aborted) { - throw opt.signal.reason; - } - if (!opt.tmp) { - return rimrafMoveRemoveDirSync(path26, { ...opt, tmp: (0, default_tmp_js_1.defaultTmpSync)(path26) }, ent); - } - const tmp = opt.tmp; - if (path26 === opt.tmp && (0, path_1.parse)(path26).root !== path26) { - throw new Error("cannot delete temp directory used for deletion"); - } - const entries = ent.isDirectory() ? (0, readdir_or_error_js_1.readdirOrErrorSync)(path26) : null; - if (!Array.isArray(entries)) { - if (entries) { - if (entries.code === "ENOENT") { - return true; - } - if (entries.code !== "ENOTDIR") { - throw entries; + this.windowsPathsNoEscape = !!opts.windowsPathsNoEscape || opts.allowWindowsEscape === false; + if (this.windowsPathsNoEscape) { + pattern = pattern.map((p) => p.replace(/\\/g, "/")); + } + if (this.matchBase) { + if (opts.noglobstar) { + throw new TypeError("base matching requires globstar"); } + pattern = pattern.map((p) => p.includes("/") ? p : `./**/${p}`); } - if (opt.filter && !opt.filter(path26, ent)) { - return false; + this.pattern = pattern; + this.platform = opts.platform || defaultPlatform; + this.opts = { ...opts, platform: this.platform }; + if (opts.scurry) { + this.scurry = opts.scurry; + if (opts.nocase !== void 0 && opts.nocase !== opts.scurry.nocase) { + throw new Error("nocase option contradicts provided scurry option"); + } + } else { + const Scurry = opts.platform === "win32" ? path_scurry_1.PathScurryWin32 : opts.platform === "darwin" ? path_scurry_1.PathScurryDarwin : opts.platform ? path_scurry_1.PathScurryPosix : path_scurry_1.PathScurry; + this.scurry = new Scurry(this.cwd, { + nocase: opts.nocase, + fs: opts.fs + }); } - (0, ignore_enoent_js_1.ignoreENOENTSync)(() => tmpUnlinkSync(path26, tmp, unlinkFixEPERMSync)); - return true; + this.nocase = this.scurry.nocase; + const nocaseMagicOnly = this.platform === "darwin" || this.platform === "win32"; + const mmo = { + // default nocase based on platform + ...opts, + dot: this.dot, + matchBase: this.matchBase, + nobrace: this.nobrace, + nocase: this.nocase, + nocaseMagicOnly, + nocomment: true, + noext: this.noext, + nonegate: true, + optimizationLevel: 2, + platform: this.platform, + windowsPathsNoEscape: this.windowsPathsNoEscape, + debug: !!this.opts.debug + }; + const mms = this.pattern.map((p) => new minimatch_1.Minimatch(p, mmo)); + const [matchSet, globParts] = mms.reduce((set, m) => { + set[0].push(...m.set); + set[1].push(...m.globParts); + return set; + }, [[], []]); + this.patterns = matchSet.map((set, i) => { + const g = globParts[i]; + if (!g) + throw new Error("invalid pattern object"); + return new pattern_js_1.Pattern(set, g, 0, this.platform); + }); + } + async walk() { + return [ + ...await new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, { + ...this.opts, + maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, + platform: this.platform, + nocase: this.nocase + }).walk() + ]; + } + walkSync() { + return [ + ...new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, { + ...this.opts, + maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, + platform: this.platform, + nocase: this.nocase + }).walkSync() + ]; } - let removedAll = true; - for (const ent2 of entries) { - const p = (0, path_1.resolve)(path26, ent2.name); - removedAll = rimrafMoveRemoveDirSync(p, opt, ent2) && removedAll; + stream() { + return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, { + ...this.opts, + maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, + platform: this.platform, + nocase: this.nocase + }).stream(); } - if (!removedAll) { - return false; + streamSync() { + return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, { + ...this.opts, + maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity, + platform: this.platform, + nocase: this.nocase + }).streamSync(); } - if (opt.preserveRoot === false && path26 === (0, path_1.parse)(path26).root) { - return false; + /** + * Default sync iteration function. Returns a Generator that + * iterates over the results. + */ + iterateSync() { + return this.streamSync()[Symbol.iterator](); } - if (opt.filter && !opt.filter(path26, ent)) { - return false; + [Symbol.iterator]() { + return this.iterateSync(); + } + /** + * Default async iteration function. Returns an AsyncGenerator that + * iterates over the results. + */ + iterate() { + return this.stream()[Symbol.asyncIterator](); + } + [Symbol.asyncIterator]() { + return this.iterate(); } - (0, ignore_enoent_js_1.ignoreENOENTSync)(() => tmpUnlinkSync(path26, tmp, fs_js_1.rmdirSync)); - return true; - }; - var tmpUnlinkSync = (path26, tmp, rmSync) => { - const tmpFile = (0, path_1.resolve)(tmp, uniqueFilename(path26)); - (0, fs_js_1.renameSync)(path26, tmpFile); - return rmSync(tmpFile); }; + exports2.Glob = Glob; } }); -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-windows.js -var require_rimraf_windows = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-windows.js"(exports2) { +// ../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/has-magic.js +var require_has_magic = __commonJS({ + "../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/has-magic.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.rimrafWindowsSync = exports2.rimrafWindows = void 0; - var path_1 = require("path"); - var fix_eperm_js_1 = require_fix_eperm(); - var fs_js_1 = require_fs5(); - var ignore_enoent_js_1 = require_ignore_enoent(); - var readdir_or_error_js_1 = require_readdir_or_error(); - var retry_busy_js_1 = require_retry_busy(); - var rimraf_move_remove_js_1 = require_rimraf_move_remove(); - var { unlink, rmdir, lstat } = fs_js_1.promises; - var rimrafWindowsFile = (0, retry_busy_js_1.retryBusy)((0, fix_eperm_js_1.fixEPERM)(unlink)); - var rimrafWindowsFileSync = (0, retry_busy_js_1.retryBusySync)((0, fix_eperm_js_1.fixEPERMSync)(fs_js_1.unlinkSync)); - var rimrafWindowsDirRetry = (0, retry_busy_js_1.retryBusy)((0, fix_eperm_js_1.fixEPERM)(rmdir)); - var rimrafWindowsDirRetrySync = (0, retry_busy_js_1.retryBusySync)((0, fix_eperm_js_1.fixEPERMSync)(fs_js_1.rmdirSync)); - var rimrafWindowsDirMoveRemoveFallback = async (path26, opt) => { - if (opt?.signal?.aborted) { - throw opt.signal.reason; - } - const { filter: filter3, ...options } = opt; - try { - return await rimrafWindowsDirRetry(path26, options); - } catch (er) { - if (er?.code === "ENOTEMPTY") { - return await (0, rimraf_move_remove_js_1.rimrafMoveRemove)(path26, options); - } - throw er; - } - }; - var rimrafWindowsDirMoveRemoveFallbackSync = (path26, opt) => { - if (opt?.signal?.aborted) { - throw opt.signal.reason; - } - const { filter: filter3, ...options } = opt; - try { - return rimrafWindowsDirRetrySync(path26, options); - } catch (er) { - const fer = er; - if (fer?.code === "ENOTEMPTY") { - return (0, rimraf_move_remove_js_1.rimrafMoveRemoveSync)(path26, options); - } - throw er; - } - }; - var START = Symbol("start"); - var CHILD = Symbol("child"); - var FINISH = Symbol("finish"); - var rimrafWindows = async (path26, opt) => { - if (opt?.signal?.aborted) { - throw opt.signal.reason; - } - try { - return await rimrafWindowsDir(path26, opt, await lstat(path26), START); - } catch (er) { - if (er?.code === "ENOENT") - return true; - throw er; - } - }; - exports2.rimrafWindows = rimrafWindows; - var rimrafWindowsSync = (path26, opt) => { - if (opt?.signal?.aborted) { - throw opt.signal.reason; + exports2.hasMagic = void 0; + var minimatch_1 = require_cjs2(); + var hasMagic = (pattern, options = {}) => { + if (!Array.isArray(pattern)) { + pattern = [pattern]; } - try { - return rimrafWindowsDirSync(path26, opt, (0, fs_js_1.lstatSync)(path26), START); - } catch (er) { - if (er?.code === "ENOENT") + for (const p of pattern) { + if (new minimatch_1.Minimatch(p, options).hasMagic()) return true; - throw er; - } - }; - exports2.rimrafWindowsSync = rimrafWindowsSync; - var rimrafWindowsDir = async (path26, opt, ent, state = START) => { - if (opt?.signal?.aborted) { - throw opt.signal.reason; - } - const entries = ent.isDirectory() ? await (0, readdir_or_error_js_1.readdirOrError)(path26) : null; - if (!Array.isArray(entries)) { - if (entries) { - if (entries.code === "ENOENT") { - return true; - } - if (entries.code !== "ENOTDIR") { - throw entries; - } - } - if (opt.filter && !await opt.filter(path26, ent)) { - return false; - } - await (0, ignore_enoent_js_1.ignoreENOENT)(rimrafWindowsFile(path26, opt)); - return true; - } - const s = state === START ? CHILD : state; - const removedAll = (await Promise.all(entries.map((ent2) => rimrafWindowsDir((0, path_1.resolve)(path26, ent2.name), opt, ent2, s)))).reduce((a, b) => a && b, true); - if (state === START) { - return rimrafWindowsDir(path26, opt, ent, FINISH); - } else if (state === FINISH) { - if (opt.preserveRoot === false && path26 === (0, path_1.parse)(path26).root) { - return false; - } - if (!removedAll) { - return false; - } - if (opt.filter && !await opt.filter(path26, ent)) { - return false; - } - await (0, ignore_enoent_js_1.ignoreENOENT)(rimrafWindowsDirMoveRemoveFallback(path26, opt)); - } - return true; - }; - var rimrafWindowsDirSync = (path26, opt, ent, state = START) => { - const entries = ent.isDirectory() ? (0, readdir_or_error_js_1.readdirOrErrorSync)(path26) : null; - if (!Array.isArray(entries)) { - if (entries) { - if (entries.code === "ENOENT") { - return true; - } - if (entries.code !== "ENOTDIR") { - throw entries; - } - } - if (opt.filter && !opt.filter(path26, ent)) { - return false; - } - (0, ignore_enoent_js_1.ignoreENOENTSync)(() => rimrafWindowsFileSync(path26, opt)); - return true; - } - let removedAll = true; - for (const ent2 of entries) { - const s = state === START ? CHILD : state; - const p = (0, path_1.resolve)(path26, ent2.name); - removedAll = rimrafWindowsDirSync(p, opt, ent2, s) && removedAll; } - if (state === START) { - return rimrafWindowsDirSync(path26, opt, ent, FINISH); - } else if (state === FINISH) { - if (opt.preserveRoot === false && path26 === (0, path_1.parse)(path26).root) { - return false; - } - if (!removedAll) { - return false; - } - if (opt.filter && !opt.filter(path26, ent)) { - return false; - } - (0, ignore_enoent_js_1.ignoreENOENTSync)(() => { - rimrafWindowsDirMoveRemoveFallbackSync(path26, opt); - }); - } - return true; + return false; }; + exports2.hasMagic = hasMagic; } }); -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-manual.js -var require_rimraf_manual = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-manual.js"(exports2) { +// ../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/index.js +var require_commonjs3 = __commonJS({ + "../node_modules/.pnpm/glob@10.3.10/node_modules/glob/dist/commonjs/index.js"(exports2) { "use strict"; - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.rimrafManualSync = exports2.rimrafManual = void 0; - var platform_js_1 = __importDefault(require_platform()); - var rimraf_posix_js_1 = require_rimraf_posix(); - var rimraf_windows_js_1 = require_rimraf_windows(); - exports2.rimrafManual = platform_js_1.default === "win32" ? rimraf_windows_js_1.rimrafWindows : rimraf_posix_js_1.rimrafPosix; - exports2.rimrafManualSync = platform_js_1.default === "win32" ? rimraf_windows_js_1.rimrafWindowsSync : rimraf_posix_js_1.rimrafPosixSync; + exports2.glob = exports2.hasMagic = exports2.Glob = exports2.unescape = exports2.escape = exports2.sync = exports2.iterate = exports2.iterateSync = exports2.stream = exports2.streamSync = exports2.globIterate = exports2.globIterateSync = exports2.globSync = exports2.globStream = exports2.globStreamSync = void 0; + var minimatch_1 = require_cjs2(); + var glob_js_1 = require_glob(); + var has_magic_js_1 = require_has_magic(); + function globStreamSync(pattern, options = {}) { + return new glob_js_1.Glob(pattern, options).streamSync(); + } + exports2.globStreamSync = globStreamSync; + function globStream(pattern, options = {}) { + return new glob_js_1.Glob(pattern, options).stream(); + } + exports2.globStream = globStream; + function globSync(pattern, options = {}) { + return new glob_js_1.Glob(pattern, options).walkSync(); + } + exports2.globSync = globSync; + async function glob_(pattern, options = {}) { + return new glob_js_1.Glob(pattern, options).walk(); + } + function globIterateSync(pattern, options = {}) { + return new glob_js_1.Glob(pattern, options).iterateSync(); + } + exports2.globIterateSync = globIterateSync; + function globIterate(pattern, options = {}) { + return new glob_js_1.Glob(pattern, options).iterate(); + } + exports2.globIterate = globIterate; + exports2.streamSync = globStreamSync; + exports2.stream = Object.assign(globStream, { sync: globStreamSync }); + exports2.iterateSync = globIterateSync; + exports2.iterate = Object.assign(globIterate, { + sync: globIterateSync + }); + exports2.sync = Object.assign(globSync, { + stream: globStreamSync, + iterate: globIterateSync + }); + var minimatch_2 = require_cjs2(); + Object.defineProperty(exports2, "escape", { enumerable: true, get: function() { + return minimatch_2.escape; + } }); + Object.defineProperty(exports2, "unescape", { enumerable: true, get: function() { + return minimatch_2.unescape; + } }); + var glob_js_2 = require_glob(); + Object.defineProperty(exports2, "Glob", { enumerable: true, get: function() { + return glob_js_2.Glob; + } }); + var has_magic_js_2 = require_has_magic(); + Object.defineProperty(exports2, "hasMagic", { enumerable: true, get: function() { + return has_magic_js_2.hasMagic; + } }); + exports2.glob = Object.assign(glob_, { + glob: glob_, + globSync, + sync: exports2.sync, + globStream, + stream: exports2.stream, + globStreamSync, + streamSync: exports2.streamSync, + globIterate, + iterate: exports2.iterate, + globIterateSync, + iterateSync: exports2.iterateSync, + Glob: glob_js_1.Glob, + hasMagic: has_magic_js_1.hasMagic, + escape: minimatch_1.escape, + unescape: minimatch_1.unescape + }); + exports2.glob.glob = exports2.glob; } }); -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-native.js -var require_rimraf_native = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-native.js"(exports2) { +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/opt-arg.js +var require_opt_arg = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/opt-arg.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.rimrafNativeSync = exports2.rimrafNative = void 0; - var fs_js_1 = require_fs5(); - var { rm } = fs_js_1.promises; - var rimrafNative = async (path26, opt) => { - await rm(path26, { - ...opt, - force: true, - recursive: true - }); - return true; + exports2.optArgSync = exports2.optArg = exports2.assertRimrafOptions = exports2.isRimrafOptions = void 0; + var typeOrUndef = (val, t) => typeof val === "undefined" || typeof val === t; + var isRimrafOptions = (o) => !!o && typeof o === "object" && typeOrUndef(o.preserveRoot, "boolean") && typeOrUndef(o.tmp, "string") && typeOrUndef(o.maxRetries, "number") && typeOrUndef(o.retryDelay, "number") && typeOrUndef(o.backoff, "number") && typeOrUndef(o.maxBackoff, "number") && (typeOrUndef(o.glob, "boolean") || o.glob && typeof o.glob === "object") && typeOrUndef(o.filter, "function"); + exports2.isRimrafOptions = isRimrafOptions; + var assertRimrafOptions = (o) => { + if (!(0, exports2.isRimrafOptions)(o)) { + throw new Error("invalid rimraf options"); + } }; - exports2.rimrafNative = rimrafNative; - var rimrafNativeSync = (path26, opt) => { - (0, fs_js_1.rmSync)(path26, { - ...opt, - force: true, - recursive: true - }); - return true; + exports2.assertRimrafOptions = assertRimrafOptions; + var optArgT = (opt) => { + (0, exports2.assertRimrafOptions)(opt); + const { glob: glob2, ...options } = opt; + if (!glob2) { + return options; + } + const globOpt = glob2 === true ? opt.signal ? { signal: opt.signal } : {} : opt.signal ? { + signal: opt.signal, + ...glob2 + } : glob2; + return { + ...options, + glob: { + ...globOpt, + // always get absolute paths from glob, to ensure + // that we are referencing the correct thing. + absolute: true, + withFileTypes: false + } + }; }; - exports2.rimrafNativeSync = rimrafNativeSync; + var optArg = (opt = {}) => optArgT(opt); + exports2.optArg = optArg; + var optArgSync = (opt = {}) => optArgT(opt); + exports2.optArgSync = optArgSync; } }); -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/use-native.js -var require_use_native = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/use-native.js"(exports2) { +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/platform.js +var require_platform = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/platform.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.default = process.env.__TESTING_RIMRAF_PLATFORM__ || process.platform; + } +}); + +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/path-arg.js +var require_path_arg = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/path-arg.js"(exports2) { "use strict"; var __importDefault = exports2 && exports2.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.useNativeSync = exports2.useNative = void 0; + var path_1 = require("path"); + var util_1 = require("util"); var platform_js_1 = __importDefault(require_platform()); - var version4 = process.env.__TESTING_RIMRAF_NODE_VERSION__ || process.version; - var versArr = version4.replace(/^v/, "").split("."); - var [major = 0, minor = 0] = versArr.map((v) => parseInt(v, 10)); - var hasNative = major > 14 || major === 14 && minor >= 14; - exports2.useNative = !hasNative || platform_js_1.default === "win32" ? () => false : (opt) => !opt?.signal && !opt?.filter; - exports2.useNativeSync = !hasNative || platform_js_1.default === "win32" ? () => false : (opt) => !opt?.signal && !opt?.filter; + var pathArg = (path26, opt = {}) => { + const type = typeof path26; + if (type !== "string") { + const ctor = path26 && type === "object" && path26.constructor; + const received = ctor && ctor.name ? `an instance of ${ctor.name}` : type === "object" ? (0, util_1.inspect)(path26) : `type ${type} ${path26}`; + const msg = `The "path" argument must be of type string. Received ${received}`; + throw Object.assign(new TypeError(msg), { + path: path26, + code: "ERR_INVALID_ARG_TYPE" + }); + } + if (/\0/.test(path26)) { + const msg = "path must be a string without null bytes"; + throw Object.assign(new TypeError(msg), { + path: path26, + code: "ERR_INVALID_ARG_VALUE" + }); + } + path26 = (0, path_1.resolve)(path26); + const { root } = (0, path_1.parse)(path26); + if (path26 === root && opt.preserveRoot !== false) { + const msg = "refusing to remove root directory without preserveRoot:false"; + throw Object.assign(new Error(msg), { + path: path26, + code: "ERR_PRESERVE_ROOT" + }); + } + if (platform_js_1.default === "win32") { + const badWinChars = /[*|"<>?:]/; + const { root: root2 } = (0, path_1.parse)(path26); + if (badWinChars.test(path26.substring(root2.length))) { + throw Object.assign(new Error("Illegal characters in path."), { + path: path26, + code: "EINVAL" + }); + } + } + return path26; + }; + exports2.default = pathArg; } }); -// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/index.js -var require_commonjs4 = __commonJS({ - "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/index.js"(exports2) { +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/fs.js +var require_fs5 = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/fs.js"(exports2) { "use strict"; var __importDefault = exports2 && exports2.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.rimraf = exports2.sync = exports2.rimrafSync = exports2.moveRemove = exports2.moveRemoveSync = exports2.posix = exports2.posixSync = exports2.windows = exports2.windowsSync = exports2.manual = exports2.manualSync = exports2.native = exports2.nativeSync = exports2.isRimrafOptions = exports2.assertRimrafOptions = void 0; - var glob_1 = require_commonjs3(); - var opt_arg_js_1 = require_opt_arg(); - var path_arg_js_1 = __importDefault(require_path_arg()); - var rimraf_manual_js_1 = require_rimraf_manual(); - var rimraf_move_remove_js_1 = require_rimraf_move_remove(); - var rimraf_native_js_1 = require_rimraf_native(); - var rimraf_posix_js_1 = require_rimraf_posix(); - var rimraf_windows_js_1 = require_rimraf_windows(); - var use_native_js_1 = require_use_native(); - var opt_arg_js_2 = require_opt_arg(); - Object.defineProperty(exports2, "assertRimrafOptions", { enumerable: true, get: function() { - return opt_arg_js_2.assertRimrafOptions; + exports2.promises = exports2.readdirSync = exports2.unlinkSync = exports2.lstatSync = exports2.statSync = exports2.rmSync = exports2.rmdirSync = exports2.renameSync = exports2.mkdirSync = exports2.chmodSync = void 0; + var fs_1 = __importDefault(require("fs")); + var fs_2 = require("fs"); + Object.defineProperty(exports2, "chmodSync", { enumerable: true, get: function() { + return fs_2.chmodSync; } }); - Object.defineProperty(exports2, "isRimrafOptions", { enumerable: true, get: function() { - return opt_arg_js_2.isRimrafOptions; + Object.defineProperty(exports2, "mkdirSync", { enumerable: true, get: function() { + return fs_2.mkdirSync; } }); - var wrap = (fn) => async (path26, opt) => { - const options = (0, opt_arg_js_1.optArg)(opt); - if (options.glob) { - path26 = await (0, glob_1.glob)(path26, options.glob); - } - if (Array.isArray(path26)) { - return !!(await Promise.all(path26.map((p) => fn((0, path_arg_js_1.default)(p, options), options)))).reduce((a, b) => a && b, true); - } else { - return !!await fn((0, path_arg_js_1.default)(path26, options), options); - } - }; - var wrapSync = (fn) => (path26, opt) => { - const options = (0, opt_arg_js_1.optArgSync)(opt); - if (options.glob) { - path26 = (0, glob_1.globSync)(path26, options.glob); - } - if (Array.isArray(path26)) { - return !!path26.map((p) => fn((0, path_arg_js_1.default)(p, options), options)).reduce((a, b) => a && b, true); - } else { - return !!fn((0, path_arg_js_1.default)(path26, options), options); - } - }; - exports2.nativeSync = wrapSync(rimraf_native_js_1.rimrafNativeSync); - exports2.native = Object.assign(wrap(rimraf_native_js_1.rimrafNative), { sync: exports2.nativeSync }); - exports2.manualSync = wrapSync(rimraf_manual_js_1.rimrafManualSync); - exports2.manual = Object.assign(wrap(rimraf_manual_js_1.rimrafManual), { sync: exports2.manualSync }); - exports2.windowsSync = wrapSync(rimraf_windows_js_1.rimrafWindowsSync); - exports2.windows = Object.assign(wrap(rimraf_windows_js_1.rimrafWindows), { sync: exports2.windowsSync }); - exports2.posixSync = wrapSync(rimraf_posix_js_1.rimrafPosixSync); - exports2.posix = Object.assign(wrap(rimraf_posix_js_1.rimrafPosix), { sync: exports2.posixSync }); - exports2.moveRemoveSync = wrapSync(rimraf_move_remove_js_1.rimrafMoveRemoveSync); - exports2.moveRemove = Object.assign(wrap(rimraf_move_remove_js_1.rimrafMoveRemove), { - sync: exports2.moveRemoveSync - }); - exports2.rimrafSync = wrapSync((path26, opt) => (0, use_native_js_1.useNativeSync)(opt) ? (0, rimraf_native_js_1.rimrafNativeSync)(path26, opt) : (0, rimraf_manual_js_1.rimrafManualSync)(path26, opt)); - exports2.sync = exports2.rimrafSync; - var rimraf_ = wrap((path26, opt) => (0, use_native_js_1.useNative)(opt) ? (0, rimraf_native_js_1.rimrafNative)(path26, opt) : (0, rimraf_manual_js_1.rimrafManual)(path26, opt)); - exports2.rimraf = Object.assign(rimraf_, { - rimraf: rimraf_, - sync: exports2.rimrafSync, - rimrafSync: exports2.rimrafSync, - manual: exports2.manual, - manualSync: exports2.manualSync, - native: exports2.native, - nativeSync: exports2.nativeSync, - posix: exports2.posix, - posixSync: exports2.posixSync, - windows: exports2.windows, - windowsSync: exports2.windowsSync, - moveRemove: exports2.moveRemove, - moveRemoveSync: exports2.moveRemoveSync - }); - exports2.rimraf.rimraf = exports2.rimraf; + Object.defineProperty(exports2, "renameSync", { enumerable: true, get: function() { + return fs_2.renameSync; + } }); + Object.defineProperty(exports2, "rmdirSync", { enumerable: true, get: function() { + return fs_2.rmdirSync; + } }); + Object.defineProperty(exports2, "rmSync", { enumerable: true, get: function() { + return fs_2.rmSync; + } }); + Object.defineProperty(exports2, "statSync", { enumerable: true, get: function() { + return fs_2.statSync; + } }); + Object.defineProperty(exports2, "lstatSync", { enumerable: true, get: function() { + return fs_2.lstatSync; + } }); + Object.defineProperty(exports2, "unlinkSync", { enumerable: true, get: function() { + return fs_2.unlinkSync; + } }); + var fs_3 = require("fs"); + var readdirSync = (path26) => (0, fs_3.readdirSync)(path26, { withFileTypes: true }); + exports2.readdirSync = readdirSync; + var chmod = (path26, mode) => new Promise((res, rej) => fs_1.default.chmod(path26, mode, (er, ...d) => er ? rej(er) : res(...d))); + var mkdir = (path26, options) => new Promise((res, rej) => fs_1.default.mkdir(path26, options, (er, made) => er ? rej(er) : res(made))); + var readdir = (path26) => new Promise((res, rej) => fs_1.default.readdir(path26, { withFileTypes: true }, (er, data) => er ? rej(er) : res(data))); + var rename = (oldPath, newPath) => new Promise((res, rej) => fs_1.default.rename(oldPath, newPath, (er, ...d) => er ? rej(er) : res(...d))); + var rm = (path26, options) => new Promise((res, rej) => fs_1.default.rm(path26, options, (er, ...d) => er ? rej(er) : res(...d))); + var rmdir = (path26) => new Promise((res, rej) => fs_1.default.rmdir(path26, (er, ...d) => er ? rej(er) : res(...d))); + var stat3 = (path26) => new Promise((res, rej) => fs_1.default.stat(path26, (er, data) => er ? rej(er) : res(data))); + var lstat = (path26) => new Promise((res, rej) => fs_1.default.lstat(path26, (er, data) => er ? rej(er) : res(data))); + var unlink = (path26) => new Promise((res, rej) => fs_1.default.unlink(path26, (er, ...d) => er ? rej(er) : res(...d))); + exports2.promises = { + chmod, + mkdir, + readdir, + rename, + rm, + rmdir, + stat: stat3, + lstat, + unlink + }; } }); -// ../node_modules/.pnpm/flat-cache@4.0.0/node_modules/flat-cache/src/del.js -var require_del = __commonJS({ - "../node_modules/.pnpm/flat-cache@4.0.0/node_modules/flat-cache/src/del.js"(exports2, module2) { - var rimraf = require_commonjs4().sync; - var fs11 = require("fs"); - module2.exports = function del(file) { - if (fs11.existsSync(file)) { - rimraf(file, { - glob: false - }); - return true; +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/readdir-or-error.js +var require_readdir_or_error = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/readdir-or-error.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.readdirOrErrorSync = exports2.readdirOrError = void 0; + var fs_js_1 = require_fs5(); + var { readdir } = fs_js_1.promises; + var readdirOrError = (path26) => readdir(path26).catch((er) => er); + exports2.readdirOrError = readdirOrError; + var readdirOrErrorSync = (path26) => { + try { + return (0, fs_js_1.readdirSync)(path26); + } catch (er) { + return er; } - return false; }; + exports2.readdirOrErrorSync = readdirOrErrorSync; } }); -// ../node_modules/.pnpm/flat-cache@4.0.0/node_modules/flat-cache/src/cache.js -var require_cache2 = __commonJS({ - "../node_modules/.pnpm/flat-cache@4.0.0/node_modules/flat-cache/src/cache.js"(exports2, module2) { - var path26 = require("path"); - var fs11 = require("fs"); - var Keyv = require_src3(); - var utils = require_utils9(); - var del = require_del(); - var writeJSON = utils.writeJSON; - var cache4 = { - /** - * Load a cache identified by the given Id. If the element does not exists, then initialize an empty - * cache storage. If specified `cacheDir` will be used as the directory to persist the data to. If omitted - * then the cache module directory `./cache` will be used instead - * - * @method load - * @param docId {String} the id of the cache, would also be used as the name of the file cache - * @param [cacheDir] {String} directory for the cache entry - */ - load: function(docId, cacheDir) { - var me = this; - me.keyv = new Keyv(); - me.__visited = {}; - me.__persisted = {}; - me._pathToFile = cacheDir ? path26.resolve(cacheDir, docId) : path26.resolve(__dirname, "../.cache/", docId); - if (fs11.existsSync(me._pathToFile)) { - me._persisted = utils.tryParse(me._pathToFile, {}); - } - }, - get _persisted() { - return this.__persisted; - }, - set _persisted(value) { - this.__persisted = value; - this.keyv.set("persisted", value); - }, - get _visited() { - return this.__visited; - }, - set _visited(value) { - this.__visited = value; - this.keyv.set("visited", value); - }, - /** - * Load the cache from the provided file - * @method loadFile - * @param {String} pathToFile the path to the file containing the info for the cache - */ - loadFile: function(pathToFile) { - var me = this; - var dir = path26.dirname(pathToFile); - var fName = path26.basename(pathToFile); - me.load(fName, dir); - }, - /** - * Returns the entire persisted object - * @method all - * @returns {*} - */ - all: function() { - return this._persisted; - }, - keys: function() { - return Object.keys(this._persisted); - }, - /** - * sets a key to a given value - * @method setKey - * @param key {string} the key to set - * @param value {object} the value of the key. Could be any object that can be serialized with JSON.stringify - */ - setKey: function(key, value) { - this._visited[key] = true; - this._persisted[key] = value; - }, - /** - * remove a given key from the cache - * @method removeKey - * @param key {String} the key to remove from the object - */ - removeKey: function(key) { - delete this._visited[key]; - delete this._persisted[key]; - }, - /** - * Return the value of the provided key - * @method getKey - * @param key {String} the name of the key to retrieve - * @returns {*} the value from the key - */ - getKey: function(key) { - this._visited[key] = true; - return this._persisted[key]; - }, - /** - * Remove keys that were not accessed/set since the - * last time the `prune` method was called. - * @method _prune - * @private - */ - _prune: function() { - var me = this; - var obj = {}; - var keys3 = Object.keys(me._visited); - if (keys3.length === 0) { - return; - } - keys3.forEach(function(key) { - obj[key] = me._persisted[key]; - }); - me._visited = {}; - me._persisted = obj; - }, - /** - * Save the state of the cache identified by the docId to disk - * as a JSON structure - * @param [noPrune=false] {Boolean} whether to remove from cache the non visited files - * @method save - */ - save: function(noPrune) { - var me = this; - !noPrune && me._prune(); - writeJSON(me._pathToFile, me._persisted); - }, - /** - * remove the file where the cache is persisted - * @method removeCacheFile - * @return {Boolean} true or false if the file was successfully deleted - */ - removeCacheFile: function() { - return del(this._pathToFile); - }, - /** - * Destroy the file cache and cache content. - * @method destroy - */ - destroy: function() { - var me = this; - me._visited = {}; - me._persisted = {}; - me.removeCacheFile(); +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/ignore-enoent.js +var require_ignore_enoent = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/ignore-enoent.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ignoreENOENTSync = exports2.ignoreENOENT = void 0; + var ignoreENOENT = async (p) => p.catch((er) => { + if (er.code !== "ENOENT") { + throw er; } - }; - module2.exports = { - /** - * Alias for create. Should be considered depreacted. Will be removed in next releases - * - * @method load - * @param docId {String} the id of the cache, would also be used as the name of the file cache - * @param [cacheDir] {String} directory for the cache entry - * @returns {cache} cache instance - */ - load: function(docId, cacheDir) { - return this.create(docId, cacheDir); - }, - /** - * Load a cache identified by the given Id. If the element does not exists, then initialize an empty - * cache storage. - * - * @method create - * @param docId {String} the id of the cache, would also be used as the name of the file cache - * @param [cacheDir] {String} directory for the cache entry - * @returns {cache} cache instance - */ - create: function(docId, cacheDir) { - var obj = Object.create(cache4); - obj.load(docId, cacheDir); - return obj; - }, - createFromFile: function(filePath) { - var obj = Object.create(cache4); - obj.loadFile(filePath); - return obj; - }, - /** - * Clear the cache identified by the given id. Caches stored in a different cache directory can be deleted directly - * - * @method clearCache - * @param docId {String} the id of the cache, would also be used as the name of the file cache - * @param cacheDir {String} the directory where the cache file was written - * @returns {Boolean} true if the cache folder was deleted. False otherwise - */ - clearCacheById: function(docId, cacheDir) { - var filePath = cacheDir ? path26.resolve(cacheDir, docId) : path26.resolve(__dirname, "../.cache/", docId); - return del(filePath); - }, - /** - * Remove all cache stored in the cache directory - * @method clearAll - * @returns {Boolean} true if the cache folder was deleted. False otherwise - */ - clearAll: function(cacheDir) { - var filePath = cacheDir ? path26.resolve(cacheDir) : path26.resolve(__dirname, "../.cache/"); - return del(filePath); + }); + exports2.ignoreENOENT = ignoreENOENT; + var ignoreENOENTSync = (fn) => { + try { + return fn(); + } catch (er) { + if (er?.code !== "ENOENT") { + throw er; + } } }; + exports2.ignoreENOENTSync = ignoreENOENTSync; } }); -// ../node_modules/.pnpm/file-entry-cache@8.0.0/node_modules/file-entry-cache/cache.js -var require_cache3 = __commonJS({ - "../node_modules/.pnpm/file-entry-cache@8.0.0/node_modules/file-entry-cache/cache.js"(exports2, module2) { - var path26 = require("path"); - var crypto6 = require("crypto"); - module2.exports = { - createFromFile: function(filePath, useChecksum) { - var fname = path26.basename(filePath); - var dir = path26.dirname(filePath); - return this.create(fname, dir, useChecksum); - }, - create: function(cacheId, _path, useChecksum) { - var fs11 = require("fs"); - var flatCache = require_cache2(); - var cache4 = flatCache.load(cacheId, _path); - var normalizedEntries = {}; - var removeNotFoundFiles = function removeNotFoundFiles2() { - const cachedEntries = cache4.keys(); - cachedEntries.forEach(function remover(fPath) { - try { - fs11.statSync(fPath); - } catch (err) { - if (err.code === "ENOENT") { - cache4.removeKey(fPath); - } - } - }); - }; - removeNotFoundFiles(); - return { - /** - * the flat cache storage used to persist the metadata of the `files - * @type {Object} - */ - cache: cache4, - /** - * Given a buffer, calculate md5 hash of its content. - * @method getHash - * @param {Buffer} buffer buffer to calculate hash on - * @return {String} content hash digest - */ - getHash: function(buffer) { - return crypto6.createHash("md5").update(buffer).digest("hex"); - }, - /** - * Return whether or not a file has changed since last time reconcile was called. - * @method hasFileChanged - * @param {String} file the filepath to check - * @return {Boolean} wheter or not the file has changed - */ - hasFileChanged: function(file) { - return this.getFileDescriptor(file).changed; - }, - /** - * given an array of file paths it return and object with three arrays: - * - changedFiles: Files that changed since previous run - * - notChangedFiles: Files that haven't change - * - notFoundFiles: Files that were not found, probably deleted - * - * @param {Array} files the files to analyze and compare to the previous seen files - * @return {[type]} [description] - */ - analyzeFiles: function(files) { - var me = this; - files = files || []; - var res = { - changedFiles: [], - notFoundFiles: [], - notChangedFiles: [] - }; - me.normalizeEntries(files).forEach(function(entry) { - if (entry.changed) { - res.changedFiles.push(entry.key); - return; - } - if (entry.notFound) { - res.notFoundFiles.push(entry.key); - return; - } - res.notChangedFiles.push(entry.key); - }); - return res; - }, - getFileDescriptor: function(file) { - var fstat; - try { - fstat = fs11.statSync(file); - } catch (ex) { - this.removeEntry(file); - return { key: file, notFound: true, err: ex }; - } - if (useChecksum) { - return this._getFileDescriptorUsingChecksum(file); - } - return this._getFileDescriptorUsingMtimeAndSize(file, fstat); - }, - _getFileDescriptorUsingMtimeAndSize: function(file, fstat) { - var meta = cache4.getKey(file); - var cacheExists = !!meta; - var cSize = fstat.size; - var cTime = fstat.mtime.getTime(); - var isDifferentDate; - var isDifferentSize; - if (!meta) { - meta = { size: cSize, mtime: cTime }; - } else { - isDifferentDate = cTime !== meta.mtime; - isDifferentSize = cSize !== meta.size; - } - var nEntry = normalizedEntries[file] = { - key: file, - changed: !cacheExists || isDifferentDate || isDifferentSize, - meta - }; - return nEntry; - }, - _getFileDescriptorUsingChecksum: function(file) { - var meta = cache4.getKey(file); - var cacheExists = !!meta; - var contentBuffer; - try { - contentBuffer = fs11.readFileSync(file); - } catch (ex) { - contentBuffer = ""; - } - var isDifferent = true; - var hash = this.getHash(contentBuffer); - if (!meta) { - meta = { hash }; - } else { - isDifferent = hash !== meta.hash; - } - var nEntry = normalizedEntries[file] = { - key: file, - changed: !cacheExists || isDifferent, - meta - }; - return nEntry; - }, - /** - * Return the list o the files that changed compared - * against the ones stored in the cache - * - * @method getUpdated - * @param files {Array} the array of files to compare against the ones in the cache - * @returns {Array} - */ - getUpdatedFiles: function(files) { - var me = this; - files = files || []; - return me.normalizeEntries(files).filter(function(entry) { - return entry.changed; - }).map(function(entry) { - return entry.key; - }); - }, - /** - * return the list of files - * @method normalizeEntries - * @param files - * @returns {*} - */ - normalizeEntries: function(files) { - files = files || []; - var me = this; - var nEntries = files.map(function(file) { - return me.getFileDescriptor(file); - }); - return nEntries; - }, - /** - * Remove an entry from the file-entry-cache. Useful to force the file to still be considered - * modified the next time the process is run - * - * @method removeEntry - * @param entryName - */ - removeEntry: function(entryName) { - delete normalizedEntries[entryName]; - cache4.removeKey(entryName); - }, - /** - * Delete the cache file from the disk - * @method deleteCacheFile - */ - deleteCacheFile: function() { - cache4.removeCacheFile(); - }, - /** - * remove the cache from the file and clear the memory cache - */ - destroy: function() { - normalizedEntries = {}; - cache4.destroy(); - }, - _getMetaForFileUsingCheckSum: function(cacheEntry) { - var contentBuffer = fs11.readFileSync(cacheEntry.key); - var hash = this.getHash(contentBuffer); - var meta = Object.assign(cacheEntry.meta, { hash }); - delete meta.size; - delete meta.mtime; - return meta; - }, - _getMetaForFileUsingMtimeAndSize: function(cacheEntry) { - var stat3 = fs11.statSync(cacheEntry.key); - var meta = Object.assign(cacheEntry.meta, { - size: stat3.size, - mtime: stat3.mtime.getTime() - }); - delete meta.hash; - return meta; - }, - /** - * Sync the files and persist them to the cache - * @method reconcile - */ - reconcile: function(noPrune) { - removeNotFoundFiles(); - noPrune = typeof noPrune === "undefined" ? true : noPrune; - var entries = normalizedEntries; - var keys3 = Object.keys(entries); - if (keys3.length === 0) { - return; - } - var me = this; - keys3.forEach(function(entryName) { - var cacheEntry = entries[entryName]; - try { - var meta = useChecksum ? me._getMetaForFileUsingCheckSum(cacheEntry) : me._getMetaForFileUsingMtimeAndSize(cacheEntry); - cache4.setKey(entryName, meta); - } catch (err) { - if (err.code !== "ENOENT") { - throw err; - } - } - }); - cache4.save(noPrune); +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-posix.js +var require_rimraf_posix = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-posix.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.rimrafPosixSync = exports2.rimrafPosix = void 0; + var fs_js_1 = require_fs5(); + var { lstat, rmdir, unlink } = fs_js_1.promises; + var path_1 = require("path"); + var readdir_or_error_js_1 = require_readdir_or_error(); + var ignore_enoent_js_1 = require_ignore_enoent(); + var rimrafPosix = async (path26, opt) => { + if (opt?.signal?.aborted) { + throw opt.signal.reason; + } + try { + return await rimrafPosixDir(path26, opt, await lstat(path26)); + } catch (er) { + if (er?.code === "ENOENT") + return true; + throw er; + } + }; + exports2.rimrafPosix = rimrafPosix; + var rimrafPosixSync = (path26, opt) => { + if (opt?.signal?.aborted) { + throw opt.signal.reason; + } + try { + return rimrafPosixDirSync(path26, opt, (0, fs_js_1.lstatSync)(path26)); + } catch (er) { + if (er?.code === "ENOENT") + return true; + throw er; + } + }; + exports2.rimrafPosixSync = rimrafPosixSync; + var rimrafPosixDir = async (path26, opt, ent) => { + if (opt?.signal?.aborted) { + throw opt.signal.reason; + } + const entries = ent.isDirectory() ? await (0, readdir_or_error_js_1.readdirOrError)(path26) : null; + if (!Array.isArray(entries)) { + if (entries) { + if (entries.code === "ENOENT") { + return true; } - }; + if (entries.code !== "ENOTDIR") { + throw entries; + } + } + if (opt.filter && !await opt.filter(path26, ent)) { + return false; + } + await (0, ignore_enoent_js_1.ignoreENOENT)(unlink(path26)); + return true; + } + const removedAll = (await Promise.all(entries.map((ent2) => rimrafPosixDir((0, path_1.resolve)(path26, ent2.name), opt, ent2)))).reduce((a, b) => a && b, true); + if (!removedAll) { + return false; + } + if (opt.preserveRoot === false && path26 === (0, path_1.parse)(path26).root) { + return false; + } + if (opt.filter && !await opt.filter(path26, ent)) { + return false; + } + await (0, ignore_enoent_js_1.ignoreENOENT)(rmdir(path26)); + return true; + }; + var rimrafPosixDirSync = (path26, opt, ent) => { + if (opt?.signal?.aborted) { + throw opt.signal.reason; + } + const entries = ent.isDirectory() ? (0, readdir_or_error_js_1.readdirOrErrorSync)(path26) : null; + if (!Array.isArray(entries)) { + if (entries) { + if (entries.code === "ENOENT") { + return true; + } + if (entries.code !== "ENOTDIR") { + throw entries; + } + } + if (opt.filter && !opt.filter(path26, ent)) { + return false; + } + (0, ignore_enoent_js_1.ignoreENOENTSync)(() => (0, fs_js_1.unlinkSync)(path26)); + return true; + } + let removedAll = true; + for (const ent2 of entries) { + const p = (0, path_1.resolve)(path26, ent2.name); + removedAll = rimrafPosixDirSync(p, opt, ent2) && removedAll; + } + if (opt.preserveRoot === false && path26 === (0, path_1.parse)(path26).root) { + return false; + } + if (!removedAll) { + return false; } + if (opt.filter && !opt.filter(path26, ent)) { + return false; + } + (0, ignore_enoent_js_1.ignoreENOENTSync)(() => (0, fs_js_1.rmdirSync)(path26)); + return true; }; } }); -// ../node_modules/.pnpm/cspell@8.4.1/node_modules/cspell/dist/lib/file-entry-cache.cjs -var require_file_entry_cache = __commonJS({ - "../node_modules/.pnpm/cspell@8.4.1/node_modules/cspell/dist/lib/file-entry-cache.cjs"(exports2) { +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/fix-eperm.js +var require_fix_eperm = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/fix-eperm.js"(exports2) { "use strict"; - var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fixEPERMSync = exports2.fixEPERM = void 0; + var fs_js_1 = require_fs5(); + var { chmod } = fs_js_1.promises; + var fixEPERM = (fn) => async (path26) => { + try { + return await fn(path26); + } catch (er) { + const fer = er; + if (fer?.code === "ENOENT") { + return; + } + if (fer?.code === "EPERM") { + try { + await chmod(path26, 438); + } catch (er2) { + const fer2 = er2; + if (fer2?.code === "ENOENT") { + return; + } + throw er; + } + return await fn(path26); + } + throw er; } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = exports2 && exports2.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result, mod, k); + }; + exports2.fixEPERM = fixEPERM; + var fixEPERMSync = (fn) => (path26) => { + try { + return fn(path26); + } catch (er) { + const fer = er; + if (fer?.code === "ENOENT") { + return; + } + if (fer?.code === "EPERM") { + try { + (0, fs_js_1.chmodSync)(path26, 438); + } catch (er2) { + const fer2 = er2; + if (fer2?.code === "ENOENT") { + return; + } + throw er; + } + return fn(path26); + } + throw er; } - __setModuleDefault(result, mod); - return result; }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.createFromFile = void 0; - var fileEntryCache = __importStar(require_cache3()); - function createFromFile3(pathToCache, useChecksum) { - return fileEntryCache.createFromFile(pathToCache, useChecksum); - } - exports2.createFromFile = createFromFile3; + exports2.fixEPERMSync = fixEPERMSync; } }); -// src/main.ts -var import_core4 = __toESM(require_core(), 1); -var import_github2 = __toESM(require_github(), 1); -var import_context = __toESM(require_context(), 1); -var import_assert20 = __toESM(require("assert"), 1); - -// src/error.ts -var AppError = class extends Error { - constructor(message) { - super(message); +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/retry-busy.js +var require_retry_busy = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/retry-busy.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.retryBusySync = exports2.retryBusy = exports2.codes = exports2.MAXRETRIES = exports2.RATE = exports2.MAXBACKOFF = void 0; + exports2.MAXBACKOFF = 200; + exports2.RATE = 1.2; + exports2.MAXRETRIES = 10; + exports2.codes = /* @__PURE__ */ new Set(["EMFILE", "ENFILE", "EBUSY"]); + var retryBusy = (fn) => { + const method = async (path26, opt, backoff = 1, total = 0) => { + const mbo = opt.maxBackoff || exports2.MAXBACKOFF; + const rate = opt.backoff || exports2.RATE; + const max4 = opt.maxRetries || exports2.MAXRETRIES; + let retries = 0; + while (true) { + try { + return await fn(path26); + } catch (er) { + const fer = er; + if (fer?.path === path26 && fer?.code && exports2.codes.has(fer.code)) { + backoff = Math.ceil(backoff * rate); + total = backoff + total; + if (total < mbo) { + return new Promise((res, rej) => { + setTimeout(() => { + method(path26, opt, backoff, total).then(res, rej); + }, backoff); + }); + } + if (retries < max4) { + retries++; + continue; + } + } + throw er; + } + } + }; + return method; + }; + exports2.retryBusy = retryBusy; + var retryBusySync = (fn) => { + const method = (path26, opt) => { + const max4 = opt.maxRetries || exports2.MAXRETRIES; + let retries = 0; + while (true) { + try { + return fn(path26); + } catch (er) { + const fer = er; + if (fer?.path === path26 && fer?.code && exports2.codes.has(fer.code) && retries < max4) { + retries++; + continue; + } + throw er; + } + } + }; + return method; + }; + exports2.retryBusySync = retryBusySync; } -}; -function isError(e) { - if (!e) - return false; - if (typeof e !== "object") - return false; - const err = e; - return err.message !== void 0 && err.name !== void 0 && (err.stack === void 0 || typeof err.stack === "string"); -} -function isAppError(e) { - return e instanceof AppError; -} - -// src/action.ts -var import_core3 = __toESM(require_core(), 1); +}); -// ../node_modules/.pnpm/cspell-glob@8.4.1/node_modules/cspell-glob/dist/esm/globHelper.js -var Path = __toESM(require("path"), 1); -var { posix } = Path; -var relRegExp = /^\.[\\/]/; -var isGlobalPatternRegExp = /^!*[*]{2}/; -function fileOrGlobToGlob(fileOrGlob, root, path26 = Path) { - const pathToGlob = path26.sep === "\\" ? (p) => p.replace(/\\/g, "/") : (p) => p; - const isGlobalPattern = false; - if (isGlobPatternWithOptionalRoot(fileOrGlob)) { - const useRoot = fileOrGlob.root ?? root; - const isGlobalPattern2 = isGlobPatternWithRoot(fileOrGlob) ? fileOrGlob.isGlobalPattern : isGlobalGlob(fileOrGlob.glob); - return { ...fileOrGlob, root: useRoot, isGlobalPattern: isGlobalPattern2 }; - } - if (doesRootContainPath(root, fileOrGlob, path26) || relRegExp.test(fileOrGlob)) { - const rel = path26.relative(root, path26.resolve(root, fileOrGlob)); - return { glob: pathToGlob(rel), root, isGlobalPattern }; - } - return { glob: pathToGlob(fileOrGlob), root, isGlobalPattern }; -} -function doesRootContainPath(root, child, path26) { - if (child.startsWith(root)) - return true; - const rel = path26.relative(root, child); - return !rel || rel !== child && !rel.startsWith("..") && !path26.isAbsolute(rel); -} -function isGlobPatternWithOptionalRoot(g) { - return typeof g !== "string" && typeof g.glob === "string"; -} -function isGlobPatternWithRoot(g) { - return typeof g.root === "string" && "isGlobalPattern" in g; -} -function isGlobPatternNormalized(g) { - if (!isGlobPatternWithOptionalRoot(g)) - return false; - if (!isGlobPatternWithRoot(g)) - return false; - const gr = g; - return "rawGlob" in gr && "rawRoot" in gr && typeof gr.rawGlob === "string"; -} -function normalizePattern(pattern, nested) { - pattern = pattern.replace(/^(!!)+/, ""); - const isNeg = pattern.startsWith("!"); - const prefix = isNeg ? "!" : ""; - pattern = isNeg ? pattern.slice(1) : pattern; - const patterns = nested ? normalizePatternNested(pattern) : normalizePatternGeneral(pattern); - return patterns.map((p) => prefix + p); -} -function normalizePatternNested(pattern) { - if (!pattern.includes("/")) { - if (pattern === "**") - return ["**"]; - return ["**/" + pattern, "**/" + pattern + "/**"]; - } - const hasLeadingSlash = pattern.startsWith("/"); - pattern = hasLeadingSlash ? pattern.slice(1) : pattern; - if (pattern.endsWith("/")) { - return hasLeadingSlash || pattern.slice(0, -1).includes("/") ? [pattern + "**/*"] : ["**/" + pattern + "**/*"]; - } - if (pattern.endsWith("**")) { - return [pattern]; - } - return [pattern, pattern + "/**"]; -} -function normalizePatternGeneral(pattern) { - pattern = pattern.startsWith("/") ? pattern.slice(1) : pattern; - pattern = pattern.endsWith("/") ? pattern + "**/*" : pattern; - return [pattern]; -} -function normalizeGlobPatterns(patterns, options) { - function* normalize3() { - for (const glob2 of patterns) { - if (isGlobPatternNormalized(glob2)) { - yield glob2; - continue; +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/default-tmp.js +var require_default_tmp = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/default-tmp.js"(exports2) { + "use strict"; + var __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.defaultTmpSync = exports2.defaultTmp = void 0; + var os_1 = require("os"); + var path_1 = require("path"); + var fs_js_1 = require_fs5(); + var platform_js_1 = __importDefault(require_platform()); + var { stat: stat3 } = fs_js_1.promises; + var isDirSync = (path26) => { + try { + return (0, fs_js_1.statSync)(path26).isDirectory(); + } catch (er) { + return false; } - yield* normalizeGlobPattern(glob2, options); - } - } - return [...normalize3()]; -} -function normalizeGlobPattern(g, options) { - const { root, nodePath: path26 = Path, nested, cwd = Path.resolve() } = options; - g = !isGlobPatternWithOptionalRoot(g) ? { glob: g } : g; - const gr = { ...g, root: g.root ?? root }; - const rawRoot = gr.root; - const rawGlob = g.glob; - gr.glob = gr.glob.trim(); - if (gr.glob.startsWith("${cwd}")) { - gr.glob = gr.glob.replace("${cwd}", ""); - gr.root = "${cwd}"; - } - if (gr.root.startsWith("${cwd}")) { - gr.root = path26.resolve(gr.root.replace("${cwd}", cwd)); - } - const isGlobalPattern = isGlobalGlob(gr.glob); - gr.root = path26.resolve(root, path26.normalize(gr.root)); - const globs = normalizePattern(gr.glob, nested); - return globs.map((glob2) => ({ ...gr, glob: glob2, rawGlob, rawRoot, isGlobalPattern })); -} -function normalizeGlobToRoot(glob2, root, path26) { - function relToGlob(relativePath2) { - return path26.sep === "\\" ? relativePath2.replace(/\\/g, "/") : relativePath2; - } - if (glob2.root === root) { - return glob2; - } - const relFromRootToGlob = path26.relative(root, glob2.root); - if (!relFromRootToGlob) { - return glob2; - } - if (glob2.isGlobalPattern) { - return { ...glob2, root }; - } - const relFromGlobToRoot = path26.relative(glob2.root, root); - const globIsUnderRoot = relFromRootToGlob[0] !== "." && !path26.isAbsolute(relFromRootToGlob); - const rootIsUnderGlob = relFromGlobToRoot[0] !== "." && !path26.isAbsolute(relFromGlobToRoot); - if (!globIsUnderRoot && !rootIsUnderGlob) { - return glob2; - } - const isNeg = glob2.glob.startsWith("!"); - const g = isNeg ? glob2.glob.slice(1) : glob2.glob; - const prefix = isNeg ? "!" : ""; - if (globIsUnderRoot) { - const relGlob2 = relToGlob(relFromRootToGlob); - return { - ...glob2, - glob: prefix + posix.join(relGlob2, g), - root }; + var isDir2 = (path26) => stat3(path26).then((st) => st.isDirectory(), () => false); + var win32DefaultTmp = async (path26) => { + const { root } = (0, path_1.parse)(path26); + const tmp = (0, os_1.tmpdir)(); + const { root: tmpRoot } = (0, path_1.parse)(tmp); + if (root.toLowerCase() === tmpRoot.toLowerCase()) { + return tmp; + } + const driveTmp = (0, path_1.resolve)(root, "/temp"); + if (await isDir2(driveTmp)) { + return driveTmp; + } + return root; + }; + var win32DefaultTmpSync = (path26) => { + const { root } = (0, path_1.parse)(path26); + const tmp = (0, os_1.tmpdir)(); + const { root: tmpRoot } = (0, path_1.parse)(tmp); + if (root.toLowerCase() === tmpRoot.toLowerCase()) { + return tmp; + } + const driveTmp = (0, path_1.resolve)(root, "/temp"); + if (isDirSync(driveTmp)) { + return driveTmp; + } + return root; + }; + var posixDefaultTmp = async () => (0, os_1.tmpdir)(); + var posixDefaultTmpSync = () => (0, os_1.tmpdir)(); + exports2.defaultTmp = platform_js_1.default === "win32" ? win32DefaultTmp : posixDefaultTmp; + exports2.defaultTmpSync = platform_js_1.default === "win32" ? win32DefaultTmpSync : posixDefaultTmpSync; } - const relGlob = relToGlob(relFromGlobToRoot) + "/"; - const rebasedGlob = rebaseGlob(g, relGlob); - return rebasedGlob ? { ...glob2, glob: prefix + rebasedGlob, root } : glob2; -} -function rebaseGlob(glob2, rebaseTo) { - if (!rebaseTo || rebaseTo === "/") - return glob2; - if (glob2.startsWith("**")) - return glob2; - rebaseTo = rebaseTo.endsWith("/") ? rebaseTo : rebaseTo + "/"; - if (glob2.startsWith(rebaseTo)) { - return glob2.slice(rebaseTo.length); - } - const relParts = rebaseTo.split("/"); - const globParts = glob2.split("/"); - for (let i = 0; i < relParts.length && i < globParts.length; ++i) { - const relSeg = relParts[i]; - const globSeg = globParts[i]; - if (!relSeg || globSeg === "**") { - return globParts.slice(i).join("/"); - } - if (relSeg !== globSeg && globSeg !== "*") { - break; - } - } - return void 0; -} -function isGlobalGlob(glob2) { - return isGlobalPatternRegExp.test(glob2); -} - -// ../node_modules/.pnpm/cspell-glob@8.4.1/node_modules/cspell-glob/dist/esm/GlobMatcher.js -var import_micromatch = __toESM(require_micromatch(), 1); -var Path2 = __toESM(require("path"), 1); -var GlobMatcher = class { - /** - * @param filename full path of file to match against. - * @returns a GlobMatch - information about the match. - */ - matchEx; - path; - patterns; - patternsNormalizedToRoot; - root; - dot; - options; - constructor(patterns, rootOrOptions, _nodePath) { - _nodePath = _nodePath ?? Path2; - const options = typeof rootOrOptions === "string" ? { root: rootOrOptions } : rootOrOptions ?? {}; - const { mode = "exclude" } = options; - const isExcludeMode = mode !== "include"; - _nodePath = options.nodePath ?? _nodePath; - const { root = _nodePath.resolve(), dot = isExcludeMode, nodePath = _nodePath, nested = isExcludeMode, cwd = process.cwd(), nobrace } = options; - const normalizedRoot = nodePath.resolve(nodePath.normalize(root)); - this.options = { root: normalizedRoot, dot, nodePath, nested, mode, nobrace, cwd }; - patterns = Array.isArray(patterns) ? patterns : typeof patterns === "string" ? patterns.split(/\r?\n/g) : [patterns]; - const globPatterns = normalizeGlobPatterns(patterns, this.options); - this.patternsNormalizedToRoot = globPatterns.map((g) => normalizeGlobToRoot(g, normalizedRoot, nodePath)).filter((g) => nodePath.relative(g.root, normalizedRoot) === ""); - this.patterns = globPatterns; - this.root = normalizedRoot; - this.path = nodePath; - this.dot = dot; - this.matchEx = buildMatcherFn(this.patterns, this.options); - } - /** - * Check to see if a filename matches any of the globs. - * If filename is relative, it is considered relative to the root. - * If filename is absolute and contained within the root, it will be made relative before being tested for a glob match. - * If filename is absolute and not contained within the root, it will be tested as is. - * @param filename full path of the file to check. - */ - match(filename) { - return this.matchEx(filename).matched; - } -}; -function buildMatcherFn(patterns, options) { - const { nodePath: path26, dot, nobrace } = options; - const makeReOptions = { dot, nobrace }; - const rules = patterns.map((pattern, index) => ({ pattern, index })).filter((r) => !!r.pattern.glob).filter((r) => !r.pattern.glob.startsWith("#")).map(({ pattern, index }) => { - const matchNeg = pattern.glob.match(/^!/); - const glob2 = pattern.glob.replace(/^!/, ""); - const isNeg = matchNeg && matchNeg[0].length & 1 && true || false; - const reg = import_micromatch.default.makeRe(glob2, makeReOptions); - const fn2 = (filename) => { - reg.lastIndex = 0; - return reg.test(filename); +}); + +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js +var require_rimraf_move_remove = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.rimrafMoveRemoveSync = exports2.rimrafMoveRemove = void 0; + var path_1 = require("path"); + var default_tmp_js_1 = require_default_tmp(); + var ignore_enoent_js_1 = require_ignore_enoent(); + var fs_js_1 = require_fs5(); + var { lstat, rename, unlink, rmdir, chmod } = fs_js_1.promises; + var readdir_or_error_js_1 = require_readdir_or_error(); + var uniqueFilename = (path26) => `.${(0, path_1.basename)(path26)}.${Math.random()}`; + var unlinkFixEPERM = async (path26) => unlink(path26).catch((er) => { + if (er.code === "EPERM") { + return chmod(path26, 438).then(() => unlink(path26), (er2) => { + if (er2.code === "ENOENT") { + return; + } + throw er; + }); + } else if (er.code === "ENOENT") { + return; + } + throw er; + }); + var unlinkFixEPERMSync = (path26) => { + try { + (0, fs_js_1.unlinkSync)(path26); + } catch (er) { + if (er?.code === "EPERM") { + try { + return (0, fs_js_1.chmodSync)(path26, 438); + } catch (er2) { + if (er2?.code === "ENOENT") { + return; + } + throw er; + } + } else if (er?.code === "ENOENT") { + return; + } + throw er; + } }; - return { pattern, index, isNeg, fn: fn2, reg }; - }); - const negRules = rules.filter((r) => r.isNeg); - const posRules = rules.filter((r) => !r.isNeg); - const fn = (filename) => { - filename = path26.resolve(path26.normalize(filename)); - const fNameNormalize = path26.sep === "\\" ? filename.replace(/\\/g, "/") : filename; - let lastRoot = "!!!!!!"; - let lastRel = ""; - function relativeToRoot(root) { - if (root !== lastRoot) { - lastRoot = root; - const relName = path26.relative(root, filename); - lastRel = path26.sep === "\\" ? relName.replace(/\\/g, "/") : relName; + var rimrafMoveRemove = async (path26, opt) => { + if (opt?.signal?.aborted) { + throw opt.signal.reason; } - return lastRel; - } - function testRules(rules2, matched) { - for (const rule of rules2) { - const pattern = rule.pattern; - const root = pattern.root; - const isRelPat = !pattern.isGlobalPattern; - if (isRelPat && !doesRootContainPath(root, filename, path26)) { - continue; + try { + return await rimrafMoveRemoveDir(path26, opt, await lstat(path26)); + } catch (er) { + if (er?.code === "ENOENT") + return true; + throw er; + } + }; + exports2.rimrafMoveRemove = rimrafMoveRemove; + var rimrafMoveRemoveDir = async (path26, opt, ent) => { + if (opt?.signal?.aborted) { + throw opt.signal.reason; + } + if (!opt.tmp) { + return rimrafMoveRemoveDir(path26, { ...opt, tmp: await (0, default_tmp_js_1.defaultTmp)(path26) }, ent); + } + if (path26 === opt.tmp && (0, path_1.parse)(path26).root !== path26) { + throw new Error("cannot delete temp directory used for deletion"); + } + const entries = ent.isDirectory() ? await (0, readdir_or_error_js_1.readdirOrError)(path26) : null; + if (!Array.isArray(entries)) { + if (entries) { + if (entries.code === "ENOENT") { + return true; + } + if (entries.code !== "ENOTDIR") { + throw entries; + } } - const fname = isRelPat ? relativeToRoot(root) : fNameNormalize; - if (rule.fn(fname)) { - return { - matched, - glob: pattern.glob, - root, - pattern, - index: rule.index, - isNeg: rule.isNeg - }; + if (opt.filter && !await opt.filter(path26, ent)) { + return false; } + await (0, ignore_enoent_js_1.ignoreENOENT)(tmpUnlink(path26, opt.tmp, unlinkFixEPERM)); + return true; } - } - return testRules(negRules, false) || testRules(posRules, true) || { matched: false }; - }; - return fn; -} - -// src/action.ts -var path25 = __toESM(require("path"), 1); - -// src/ActionParams.ts -var import_fs = require("fs"); -var defaultActionParams = { - github_token: "", - files: "", - incremental_files_only: "true", - config: "", - root: "", - inline: "warning", - strict: "true", - verbose: "false", - check_dot_files: "explicit" -}; -function applyDefaults(params) { - const results = { ...params }; - const alias = results; - for (const [key, value] of Object.entries(defaultActionParams)) { - alias[key] = alias[key] || value; - } - return results; -} -function validateToken(params) { - const token = params.github_token; - return !token ? "Missing GITHUB Token" : void 0; -} -function validateConfig(params) { - const config = params.config; - const success = !config || (0, import_fs.existsSync)(config); - return !success ? `Configuration file "${config}" not found.` : void 0; -} -function validateRoot(params) { - const root = params.root; - const success = !root || (0, import_fs.existsSync)(root); - return !success ? `Root path does not exist: "${root}"` : void 0; -} -function validateInlineLevel(params) { - const inline = params.inline; - const success = isInlineWorkflowCommand(inline); - return !success ? `Invalid inline level (${inline}), must be one of (error, warning, none)` : void 0; -} -var validateStrict = validateTrueFalse("strict", "Invalid strict setting, must be one of (true, false)"); -var validateIncrementalFilesOnly = validateTrueFalse( - "incremental_files_only", - "Invalid incremental_files_only setting, must be one of (true, false)" -); -var validateVerbose = validateTrueFalse("verbose", "Invalid verbose setting, must be one of (true, false)"); -function validateTrueFalse(key, msg) { - return (params) => { - const value = params[key]; - const success = value === "true" || value === "false"; - return !success ? msg : void 0; - }; -} -var inlineWorkflowCommandSet = { - error: true, - warning: true, - none: true -}; -function isInlineWorkflowCommand(cmd) { - return !!inlineWorkflowCommandSet[cmd]; -} -function validateActionParams(params, logError2) { - const validations = [ - validateToken, - validateConfig, - validateRoot, - validateInlineLevel, - validateStrict, - validateIncrementalFilesOnly, - validateVerbose - ]; - const success = validations.map((fn) => fn(params)).map((msg) => !msg || (logError2(msg), false)).reduce((a, b) => a && b, true); - if (!success) { - throw new AppError("Bad Configuration."); - } -} - -// src/getActionParams.ts -var import_core = __toESM(require_core(), 1); -function getActionParams() { - return applyDefaults({ - github_token: (0, import_core.getInput)("github_token", { required: true }), - files: (0, import_core.getInput)("files"), - incremental_files_only: tf((0, import_core.getInput)("incremental_files_only")), - config: (0, import_core.getInput)("config"), - root: (0, import_core.getInput)("root"), - inline: (0, import_core.getInput)("inline").toLowerCase(), - strict: tf((0, import_core.getInput)("strict")), - verbose: tf((0, import_core.getInput)("verbose")), - check_dot_files: tf((0, import_core.getInput)("check_dot_files")) - }); -} -function tf(v) { - const mapValues = { - true: "true", - t: "true", - false: "false", - f: "false", - "0": "false", - "1": "true" - }; - v = typeof v === "boolean" || typeof v === "number" ? v ? "true" : "false" : v; - v = v.toString(); - v = v.toLowerCase(); - v = mapValues[v] || v; - return v; -} - -// ../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@11.0.0_@octokit+core@6.0.1/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js -var VERSION = "11.0.0"; - -// ../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@11.0.0_@octokit+core@6.0.1/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js -var Endpoints = { - actions: { - addCustomLabelsToSelfHostedRunnerForOrg: [ - "POST /orgs/{org}/actions/runners/{runner_id}/labels" - ], - addCustomLabelsToSelfHostedRunnerForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" - ], - addSelectedRepoToOrgVariable: [ - "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" - ], - approveWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve" - ], - cancelWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel" - ], - createEnvironmentVariable: [ - "POST /repositories/{repository_id}/environments/{environment_name}/variables" - ], - createOrUpdateEnvironmentSecret: [ - "PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}" - ], - createOrgVariable: ["POST /orgs/{org}/actions/variables"], - createRegistrationTokenForOrg: [ - "POST /orgs/{org}/actions/runners/registration-token" - ], - createRegistrationTokenForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/registration-token" - ], - createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], - createRemoveTokenForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/remove-token" - ], - createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"], - createWorkflowDispatch: [ - "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches" - ], - deleteActionsCacheById: [ - "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}" - ], - deleteActionsCacheByKey: [ - "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}" - ], - deleteArtifact: [ - "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}" - ], - deleteEnvironmentSecret: [ - "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - deleteEnvironmentVariable: [ - "DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], - deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}" - ], - deleteRepoVariable: [ - "DELETE /repos/{owner}/{repo}/actions/variables/{name}" - ], - deleteSelfHostedRunnerFromOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}" - ], - deleteSelfHostedRunnerFromRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}" - ], - deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], - deleteWorkflowRunLogs: [ - "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs" - ], - disableSelectedRepositoryGithubActionsOrganization: [ - "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}" - ], - disableWorkflow: [ - "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable" - ], - downloadArtifact: [ - "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}" - ], - downloadJobLogsForWorkflowRun: [ - "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs" - ], - downloadWorkflowRunAttemptLogs: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs" - ], - downloadWorkflowRunLogs: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs" - ], - enableSelectedRepositoryGithubActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}" - ], - enableWorkflow: [ - "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable" - ], - forceCancelWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel" - ], - generateRunnerJitconfigForOrg: [ - "POST /orgs/{org}/actions/runners/generate-jitconfig" - ], - generateRunnerJitconfigForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig" - ], - getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], - getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], - getActionsCacheUsageByRepoForOrg: [ - "GET /orgs/{org}/actions/cache/usage-by-repository" - ], - getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"], - getAllowedActionsOrganization: [ - "GET /orgs/{org}/actions/permissions/selected-actions" - ], - getAllowedActionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/selected-actions" - ], - getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], - getCustomOidcSubClaimForRepo: [ - "GET /repos/{owner}/{repo}/actions/oidc/customization/sub" - ], - getEnvironmentPublicKey: [ - "GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key" - ], - getEnvironmentSecret: [ - "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - getEnvironmentVariable: [ - "GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}" - ], - getGithubActionsDefaultWorkflowPermissionsOrganization: [ - "GET /orgs/{org}/actions/permissions/workflow" - ], - getGithubActionsDefaultWorkflowPermissionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/workflow" - ], - getGithubActionsPermissionsOrganization: [ - "GET /orgs/{org}/actions/permissions" - ], - getGithubActionsPermissionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions" - ], - getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], - getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], - getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"], - getPendingDeploymentsForRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" - ], - getRepoPermissions: [ - "GET /repos/{owner}/{repo}/actions/permissions", - {}, - { renamed: ["actions", "getGithubActionsPermissionsRepository"] } - ], - getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], - getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], - getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"], - getReviewsForRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals" - ], - getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], - getSelfHostedRunnerForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/{runner_id}" - ], - getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], - getWorkflowAccessToRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/access" - ], - getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], - getWorkflowRunAttempt: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}" - ], - getWorkflowRunUsage: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing" - ], - getWorkflowUsage: [ - "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing" - ], - listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], - listEnvironmentSecrets: [ - "GET /repositories/{repository_id}/environments/{environment_name}/secrets" - ], - listEnvironmentVariables: [ - "GET /repositories/{repository_id}/environments/{environment_name}/variables" - ], - listJobsForWorkflowRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs" - ], - listJobsForWorkflowRunAttempt: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs" - ], - listLabelsForSelfHostedRunnerForOrg: [ - "GET /orgs/{org}/actions/runners/{runner_id}/labels" - ], - listLabelsForSelfHostedRunnerForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], - listOrgVariables: ["GET /orgs/{org}/actions/variables"], - listRepoOrganizationSecrets: [ - "GET /repos/{owner}/{repo}/actions/organization-secrets" - ], - listRepoOrganizationVariables: [ - "GET /repos/{owner}/{repo}/actions/organization-variables" - ], - listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], - listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"], - listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], - listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], - listRunnerApplicationsForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/downloads" - ], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/actions/secrets/{secret_name}/repositories" - ], - listSelectedReposForOrgVariable: [ - "GET /orgs/{org}/actions/variables/{name}/repositories" - ], - listSelectedRepositoriesEnabledGithubActionsOrganization: [ - "GET /orgs/{org}/actions/permissions/repositories" - ], - listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], - listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], - listWorkflowRunArtifacts: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts" - ], - listWorkflowRuns: [ - "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs" - ], - listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], - reRunJobForWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun" - ], - reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], - reRunWorkflowFailedJobs: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs" - ], - removeAllCustomLabelsFromSelfHostedRunnerForOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}/labels" - ], - removeAllCustomLabelsFromSelfHostedRunnerForRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - removeCustomLabelFromSelfHostedRunnerForOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}" - ], - removeCustomLabelFromSelfHostedRunnerForRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" - ], - removeSelectedRepoFromOrgVariable: [ - "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" - ], - reviewCustomGatesForRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule" - ], - reviewPendingDeploymentsForRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" - ], - setAllowedActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/selected-actions" - ], - setAllowedActionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions" - ], - setCustomLabelsForSelfHostedRunnerForOrg: [ - "PUT /orgs/{org}/actions/runners/{runner_id}/labels" - ], - setCustomLabelsForSelfHostedRunnerForRepo: [ - "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - setCustomOidcSubClaimForRepo: [ - "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub" - ], - setGithubActionsDefaultWorkflowPermissionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/workflow" - ], - setGithubActionsDefaultWorkflowPermissionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/workflow" - ], - setGithubActionsPermissionsOrganization: [ - "PUT /orgs/{org}/actions/permissions" - ], - setGithubActionsPermissionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories" - ], - setSelectedReposForOrgVariable: [ - "PUT /orgs/{org}/actions/variables/{name}/repositories" - ], - setSelectedRepositoriesEnabledGithubActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/repositories" - ], - setWorkflowAccessToRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/access" - ], - updateEnvironmentVariable: [ - "PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}" - ], - updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"], - updateRepoVariable: [ - "PATCH /repos/{owner}/{repo}/actions/variables/{name}" - ] - }, - activity: { - checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], - deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], - deleteThreadSubscription: [ - "DELETE /notifications/threads/{thread_id}/subscription" - ], - getFeeds: ["GET /feeds"], - getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], - getThread: ["GET /notifications/threads/{thread_id}"], - getThreadSubscriptionForAuthenticatedUser: [ - "GET /notifications/threads/{thread_id}/subscription" - ], - listEventsForAuthenticatedUser: ["GET /users/{username}/events"], - listNotificationsForAuthenticatedUser: ["GET /notifications"], - listOrgEventsForAuthenticatedUser: [ - "GET /users/{username}/events/orgs/{org}" - ], - listPublicEvents: ["GET /events"], - listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], - listPublicEventsForUser: ["GET /users/{username}/events/public"], - listPublicOrgEvents: ["GET /orgs/{org}/events"], - listReceivedEventsForUser: ["GET /users/{username}/received_events"], - listReceivedPublicEventsForUser: [ - "GET /users/{username}/received_events/public" - ], - listRepoEvents: ["GET /repos/{owner}/{repo}/events"], - listRepoNotificationsForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/notifications" - ], - listReposStarredByAuthenticatedUser: ["GET /user/starred"], - listReposStarredByUser: ["GET /users/{username}/starred"], - listReposWatchedByUser: ["GET /users/{username}/subscriptions"], - listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], - listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], - listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], - markNotificationsAsRead: ["PUT /notifications"], - markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], - markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"], - markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], - setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], - setThreadSubscription: [ - "PUT /notifications/threads/{thread_id}/subscription" - ], - starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], - unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] - }, - apps: { - addRepoToInstallation: [ - "PUT /user/installations/{installation_id}/repositories/{repository_id}", - {}, - { renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] } - ], - addRepoToInstallationForAuthenticatedUser: [ - "PUT /user/installations/{installation_id}/repositories/{repository_id}" - ], - checkToken: ["POST /applications/{client_id}/token"], - createFromManifest: ["POST /app-manifests/{code}/conversions"], - createInstallationAccessToken: [ - "POST /app/installations/{installation_id}/access_tokens" - ], - deleteAuthorization: ["DELETE /applications/{client_id}/grant"], - deleteInstallation: ["DELETE /app/installations/{installation_id}"], - deleteToken: ["DELETE /applications/{client_id}/token"], - getAuthenticated: ["GET /app"], - getBySlug: ["GET /apps/{app_slug}"], - getInstallation: ["GET /app/installations/{installation_id}"], - getOrgInstallation: ["GET /orgs/{org}/installation"], - getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], - getSubscriptionPlanForAccount: [ - "GET /marketplace_listing/accounts/{account_id}" - ], - getSubscriptionPlanForAccountStubbed: [ - "GET /marketplace_listing/stubbed/accounts/{account_id}" - ], - getUserInstallation: ["GET /users/{username}/installation"], - getWebhookConfigForApp: ["GET /app/hook/config"], - getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], - listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], - listAccountsForPlanStubbed: [ - "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts" - ], - listInstallationReposForAuthenticatedUser: [ - "GET /user/installations/{installation_id}/repositories" - ], - listInstallationRequestsForAuthenticatedApp: [ - "GET /app/installation-requests" - ], - listInstallations: ["GET /app/installations"], - listInstallationsForAuthenticatedUser: ["GET /user/installations"], - listPlans: ["GET /marketplace_listing/plans"], - listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], - listReposAccessibleToInstallation: ["GET /installation/repositories"], - listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], - listSubscriptionsForAuthenticatedUserStubbed: [ - "GET /user/marketplace_purchases/stubbed" - ], - listWebhookDeliveries: ["GET /app/hook/deliveries"], - redeliverWebhookDelivery: [ - "POST /app/hook/deliveries/{delivery_id}/attempts" - ], - removeRepoFromInstallation: [ - "DELETE /user/installations/{installation_id}/repositories/{repository_id}", - {}, - { renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] } - ], - removeRepoFromInstallationForAuthenticatedUser: [ - "DELETE /user/installations/{installation_id}/repositories/{repository_id}" - ], - resetToken: ["PATCH /applications/{client_id}/token"], - revokeInstallationAccessToken: ["DELETE /installation/token"], - scopeToken: ["POST /applications/{client_id}/token/scoped"], - suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], - unsuspendInstallation: [ - "DELETE /app/installations/{installation_id}/suspended" - ], - updateWebhookConfigForApp: ["PATCH /app/hook/config"] - }, - billing: { - getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], - getGithubActionsBillingUser: [ - "GET /users/{username}/settings/billing/actions" - ], - getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], - getGithubPackagesBillingUser: [ - "GET /users/{username}/settings/billing/packages" - ], - getSharedStorageBillingOrg: [ - "GET /orgs/{org}/settings/billing/shared-storage" - ], - getSharedStorageBillingUser: [ - "GET /users/{username}/settings/billing/shared-storage" - ] - }, - checks: { - create: ["POST /repos/{owner}/{repo}/check-runs"], - createSuite: ["POST /repos/{owner}/{repo}/check-suites"], - get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], - getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], - listAnnotations: [ - "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations" - ], - listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], - listForSuite: [ - "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs" - ], - listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], - rerequestRun: [ - "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest" - ], - rerequestSuite: [ - "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest" - ], - setSuitesPreferences: [ - "PATCH /repos/{owner}/{repo}/check-suites/preferences" - ], - update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] - }, - codeScanning: { - deleteAnalysis: [ - "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" - ], - getAlert: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", - {}, - { renamedParameters: { alert_id: "alert_number" } } - ], - getAnalysis: [ - "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}" - ], - getCodeqlDatabase: [ - "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" - ], - getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"], - getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], - listAlertInstances: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" - ], - listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], - listAlertsInstances: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", - {}, - { renamed: ["codeScanning", "listAlertInstances"] } - ], - listCodeqlDatabases: [ - "GET /repos/{owner}/{repo}/code-scanning/codeql/databases" - ], - listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}" - ], - updateDefaultSetup: [ - "PATCH /repos/{owner}/{repo}/code-scanning/default-setup" - ], - uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] - }, - codesOfConduct: { - getAllCodesOfConduct: ["GET /codes_of_conduct"], - getConductCode: ["GET /codes_of_conduct/{key}"] - }, - codespaces: { - addRepositoryForSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - checkPermissionsForDevcontainer: [ - "GET /repos/{owner}/{repo}/codespaces/permissions_check" - ], - codespaceMachinesForAuthenticatedUser: [ - "GET /user/codespaces/{codespace_name}/machines" - ], - createForAuthenticatedUser: ["POST /user/codespaces"], - createOrUpdateOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}" - ], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - createOrUpdateSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}" - ], - createWithPrForAuthenticatedUser: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces" - ], - createWithRepoForAuthenticatedUser: [ - "POST /repos/{owner}/{repo}/codespaces" - ], - deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"], - deleteFromOrganization: [ - "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - deleteSecretForAuthenticatedUser: [ - "DELETE /user/codespaces/secrets/{secret_name}" - ], - exportForAuthenticatedUser: [ - "POST /user/codespaces/{codespace_name}/exports" - ], - getCodespacesForUserInOrg: [ - "GET /orgs/{org}/members/{username}/codespaces" - ], - getExportDetailsForAuthenticatedUser: [ - "GET /user/codespaces/{codespace_name}/exports/{export_id}" - ], - getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"], - getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"], - getPublicKeyForAuthenticatedUser: [ - "GET /user/codespaces/secrets/public-key" - ], - getRepoPublicKey: [ - "GET /repos/{owner}/{repo}/codespaces/secrets/public-key" - ], - getRepoSecret: [ - "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - getSecretForAuthenticatedUser: [ - "GET /user/codespaces/secrets/{secret_name}" - ], - listDevcontainersInRepositoryForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/devcontainers" - ], - listForAuthenticatedUser: ["GET /user/codespaces"], - listInOrganization: [ - "GET /orgs/{org}/codespaces", - {}, - { renamedParameters: { org_id: "org" } } - ], - listInRepositoryForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces" - ], - listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], - listRepositoriesForSecretForAuthenticatedUser: [ - "GET /user/codespaces/secrets/{secret_name}/repositories" - ], - listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories" - ], - preFlightWithRepoForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/new" - ], - publishForAuthenticatedUser: [ - "POST /user/codespaces/{codespace_name}/publish" - ], - removeRepositoryForSecretForAuthenticatedUser: [ - "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - repoMachinesForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/machines" - ], - setRepositoriesForSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}/repositories" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories" - ], - startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"], - stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"], - stopInOrganization: [ - "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop" - ], - updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"] - }, - copilot: { - addCopilotSeatsForTeams: [ - "POST /orgs/{org}/copilot/billing/selected_teams" - ], - addCopilotSeatsForUsers: [ - "POST /orgs/{org}/copilot/billing/selected_users" - ], - cancelCopilotSeatAssignmentForTeams: [ - "DELETE /orgs/{org}/copilot/billing/selected_teams" - ], - cancelCopilotSeatAssignmentForUsers: [ - "DELETE /orgs/{org}/copilot/billing/selected_users" - ], - getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"], - getCopilotSeatDetailsForUser: [ - "GET /orgs/{org}/members/{username}/copilot" - ], - listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"] - }, - dependabot: { - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" - ], - createOrUpdateOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}" - ], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"], - getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], - getRepoPublicKey: [ - "GET /repos/{owner}/{repo}/dependabot/secrets/public-key" - ], - getRepoSecret: [ - "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - listAlertsForEnterprise: [ - "GET /enterprises/{enterprise}/dependabot/alerts" - ], - listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"], - listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories" - ], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}" - ] - }, - dependencyGraph: { - createRepositorySnapshot: [ - "POST /repos/{owner}/{repo}/dependency-graph/snapshots" - ], - diffRange: [ - "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}" - ], - exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"] - }, - emojis: { get: ["GET /emojis"] }, - gists: { - checkIsStarred: ["GET /gists/{gist_id}/star"], - create: ["POST /gists"], - createComment: ["POST /gists/{gist_id}/comments"], - delete: ["DELETE /gists/{gist_id}"], - deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], - fork: ["POST /gists/{gist_id}/forks"], - get: ["GET /gists/{gist_id}"], - getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], - getRevision: ["GET /gists/{gist_id}/{sha}"], - list: ["GET /gists"], - listComments: ["GET /gists/{gist_id}/comments"], - listCommits: ["GET /gists/{gist_id}/commits"], - listForUser: ["GET /users/{username}/gists"], - listForks: ["GET /gists/{gist_id}/forks"], - listPublic: ["GET /gists/public"], - listStarred: ["GET /gists/starred"], - star: ["PUT /gists/{gist_id}/star"], - unstar: ["DELETE /gists/{gist_id}/star"], - update: ["PATCH /gists/{gist_id}"], - updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] - }, - git: { - createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], - createCommit: ["POST /repos/{owner}/{repo}/git/commits"], - createRef: ["POST /repos/{owner}/{repo}/git/refs"], - createTag: ["POST /repos/{owner}/{repo}/git/tags"], - createTree: ["POST /repos/{owner}/{repo}/git/trees"], - deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], - getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], - getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], - getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], - getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], - getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], - listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], - updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] - }, - gitignore: { - getAllTemplates: ["GET /gitignore/templates"], - getTemplate: ["GET /gitignore/templates/{name}"] - }, - interactions: { - getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], - getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], - getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], - getRestrictionsForYourPublicRepos: [ - "GET /user/interaction-limits", - {}, - { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] } - ], - removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], - removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], - removeRestrictionsForRepo: [ - "DELETE /repos/{owner}/{repo}/interaction-limits" - ], - removeRestrictionsForYourPublicRepos: [ - "DELETE /user/interaction-limits", - {}, - { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] } - ], - setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], - setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], - setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], - setRestrictionsForYourPublicRepos: [ - "PUT /user/interaction-limits", - {}, - { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] } - ] - }, - issues: { - addAssignees: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees" - ], - addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], - checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], - checkUserCanBeAssignedToIssue: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}" - ], - create: ["POST /repos/{owner}/{repo}/issues"], - createComment: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/comments" - ], - createLabel: ["POST /repos/{owner}/{repo}/labels"], - createMilestone: ["POST /repos/{owner}/{repo}/milestones"], - deleteComment: [ - "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}" - ], - deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], - deleteMilestone: [ - "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}" - ], - get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], - getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], - getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], - getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], - getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], - list: ["GET /issues"], - listAssignees: ["GET /repos/{owner}/{repo}/assignees"], - listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], - listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], - listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], - listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], - listEventsForTimeline: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline" - ], - listForAuthenticatedUser: ["GET /user/issues"], - listForOrg: ["GET /orgs/{org}/issues"], - listForRepo: ["GET /repos/{owner}/{repo}/issues"], - listLabelsForMilestone: [ - "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels" - ], - listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], - listLabelsOnIssue: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/labels" - ], - listMilestones: ["GET /repos/{owner}/{repo}/milestones"], - lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], - removeAllLabels: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels" - ], - removeAssignees: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees" - ], - removeLabel: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" - ], - setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], - unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], - update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], - updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], - updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], - updateMilestone: [ - "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}" - ] - }, - licenses: { - get: ["GET /licenses/{license}"], - getAllCommonlyUsed: ["GET /licenses"], - getForRepo: ["GET /repos/{owner}/{repo}/license"] - }, - markdown: { - render: ["POST /markdown"], - renderRaw: [ - "POST /markdown/raw", - { headers: { "content-type": "text/plain; charset=utf-8" } } - ] - }, - meta: { - get: ["GET /meta"], - getAllVersions: ["GET /versions"], - getOctocat: ["GET /octocat"], - getZen: ["GET /zen"], - root: ["GET /"] - }, - migrations: { - cancelImport: [ - "DELETE /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import" + const removedAll = (await Promise.all(entries.map((ent2) => rimrafMoveRemoveDir((0, path_1.resolve)(path26, ent2.name), opt, ent2)))).reduce((a, b) => a && b, true); + if (!removedAll) { + return false; + } + if (opt.preserveRoot === false && path26 === (0, path_1.parse)(path26).root) { + return false; + } + if (opt.filter && !await opt.filter(path26, ent)) { + return false; + } + await (0, ignore_enoent_js_1.ignoreENOENT)(tmpUnlink(path26, opt.tmp, rmdir)); + return true; + }; + var tmpUnlink = async (path26, tmp, rm) => { + const tmpFile = (0, path_1.resolve)(tmp, uniqueFilename(path26)); + await rename(path26, tmpFile); + return await rm(tmpFile); + }; + var rimrafMoveRemoveSync = (path26, opt) => { + if (opt?.signal?.aborted) { + throw opt.signal.reason; + } + try { + return rimrafMoveRemoveDirSync(path26, opt, (0, fs_js_1.lstatSync)(path26)); + } catch (er) { + if (er?.code === "ENOENT") + return true; + throw er; + } + }; + exports2.rimrafMoveRemoveSync = rimrafMoveRemoveSync; + var rimrafMoveRemoveDirSync = (path26, opt, ent) => { + if (opt?.signal?.aborted) { + throw opt.signal.reason; + } + if (!opt.tmp) { + return rimrafMoveRemoveDirSync(path26, { ...opt, tmp: (0, default_tmp_js_1.defaultTmpSync)(path26) }, ent); + } + const tmp = opt.tmp; + if (path26 === opt.tmp && (0, path_1.parse)(path26).root !== path26) { + throw new Error("cannot delete temp directory used for deletion"); + } + const entries = ent.isDirectory() ? (0, readdir_or_error_js_1.readdirOrErrorSync)(path26) : null; + if (!Array.isArray(entries)) { + if (entries) { + if (entries.code === "ENOENT") { + return true; + } + if (entries.code !== "ENOTDIR") { + throw entries; + } + } + if (opt.filter && !opt.filter(path26, ent)) { + return false; + } + (0, ignore_enoent_js_1.ignoreENOENTSync)(() => tmpUnlinkSync(path26, tmp, unlinkFixEPERMSync)); + return true; } - ], - deleteArchiveForAuthenticatedUser: [ - "DELETE /user/migrations/{migration_id}/archive" - ], - deleteArchiveForOrg: [ - "DELETE /orgs/{org}/migrations/{migration_id}/archive" - ], - downloadArchiveForOrg: [ - "GET /orgs/{org}/migrations/{migration_id}/archive" - ], - getArchiveForAuthenticatedUser: [ - "GET /user/migrations/{migration_id}/archive" - ], - getCommitAuthors: [ - "GET /repos/{owner}/{repo}/import/authors", - {}, - { - deprecated: "octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors" + let removedAll = true; + for (const ent2 of entries) { + const p = (0, path_1.resolve)(path26, ent2.name); + removedAll = rimrafMoveRemoveDirSync(p, opt, ent2) && removedAll; } - ], - getImportStatus: [ - "GET /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status" + if (!removedAll) { + return false; } - ], - getLargeFiles: [ - "GET /repos/{owner}/{repo}/import/large_files", - {}, - { - deprecated: "octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files" + if (opt.preserveRoot === false && path26 === (0, path_1.parse)(path26).root) { + return false; } - ], - getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"], - getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"], - listForAuthenticatedUser: ["GET /user/migrations"], - listForOrg: ["GET /orgs/{org}/migrations"], - listReposForAuthenticatedUser: [ - "GET /user/migrations/{migration_id}/repositories" - ], - listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"], - listReposForUser: [ - "GET /user/migrations/{migration_id}/repositories", - {}, - { renamed: ["migrations", "listReposForAuthenticatedUser"] } - ], - mapCommitAuthor: [ - "PATCH /repos/{owner}/{repo}/import/authors/{author_id}", - {}, - { - deprecated: "octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author" + if (opt.filter && !opt.filter(path26, ent)) { + return false; } - ], - setLfsPreference: [ - "PATCH /repos/{owner}/{repo}/import/lfs", - {}, - { - deprecated: "octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference" + (0, ignore_enoent_js_1.ignoreENOENTSync)(() => tmpUnlinkSync(path26, tmp, fs_js_1.rmdirSync)); + return true; + }; + var tmpUnlinkSync = (path26, tmp, rmSync) => { + const tmpFile = (0, path_1.resolve)(tmp, uniqueFilename(path26)); + (0, fs_js_1.renameSync)(path26, tmpFile); + return rmSync(tmpFile); + }; + } +}); + +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-windows.js +var require_rimraf_windows = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-windows.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.rimrafWindowsSync = exports2.rimrafWindows = void 0; + var path_1 = require("path"); + var fix_eperm_js_1 = require_fix_eperm(); + var fs_js_1 = require_fs5(); + var ignore_enoent_js_1 = require_ignore_enoent(); + var readdir_or_error_js_1 = require_readdir_or_error(); + var retry_busy_js_1 = require_retry_busy(); + var rimraf_move_remove_js_1 = require_rimraf_move_remove(); + var { unlink, rmdir, lstat } = fs_js_1.promises; + var rimrafWindowsFile = (0, retry_busy_js_1.retryBusy)((0, fix_eperm_js_1.fixEPERM)(unlink)); + var rimrafWindowsFileSync = (0, retry_busy_js_1.retryBusySync)((0, fix_eperm_js_1.fixEPERMSync)(fs_js_1.unlinkSync)); + var rimrafWindowsDirRetry = (0, retry_busy_js_1.retryBusy)((0, fix_eperm_js_1.fixEPERM)(rmdir)); + var rimrafWindowsDirRetrySync = (0, retry_busy_js_1.retryBusySync)((0, fix_eperm_js_1.fixEPERMSync)(fs_js_1.rmdirSync)); + var rimrafWindowsDirMoveRemoveFallback = async (path26, opt) => { + if (opt?.signal?.aborted) { + throw opt.signal.reason; } - ], - startForAuthenticatedUser: ["POST /user/migrations"], - startForOrg: ["POST /orgs/{org}/migrations"], - startImport: [ - "PUT /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import" + const { filter: filter3, ...options } = opt; + try { + return await rimrafWindowsDirRetry(path26, options); + } catch (er) { + if (er?.code === "ENOTEMPTY") { + return await (0, rimraf_move_remove_js_1.rimrafMoveRemove)(path26, options); + } + throw er; } - ], - unlockRepoForAuthenticatedUser: [ - "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" - ], - unlockRepoForOrg: [ - "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" - ], - updateImport: [ - "PATCH /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import" + }; + var rimrafWindowsDirMoveRemoveFallbackSync = (path26, opt) => { + if (opt?.signal?.aborted) { + throw opt.signal.reason; + } + const { filter: filter3, ...options } = opt; + try { + return rimrafWindowsDirRetrySync(path26, options); + } catch (er) { + const fer = er; + if (fer?.code === "ENOTEMPTY") { + return (0, rimraf_move_remove_js_1.rimrafMoveRemoveSync)(path26, options); + } + throw er; + } + }; + var START = Symbol("start"); + var CHILD = Symbol("child"); + var FINISH = Symbol("finish"); + var rimrafWindows = async (path26, opt) => { + if (opt?.signal?.aborted) { + throw opt.signal.reason; + } + try { + return await rimrafWindowsDir(path26, opt, await lstat(path26), START); + } catch (er) { + if (er?.code === "ENOENT") + return true; + throw er; + } + }; + exports2.rimrafWindows = rimrafWindows; + var rimrafWindowsSync = (path26, opt) => { + if (opt?.signal?.aborted) { + throw opt.signal.reason; + } + try { + return rimrafWindowsDirSync(path26, opt, (0, fs_js_1.lstatSync)(path26), START); + } catch (er) { + if (er?.code === "ENOENT") + return true; + throw er; + } + }; + exports2.rimrafWindowsSync = rimrafWindowsSync; + var rimrafWindowsDir = async (path26, opt, ent, state = START) => { + if (opt?.signal?.aborted) { + throw opt.signal.reason; + } + const entries = ent.isDirectory() ? await (0, readdir_or_error_js_1.readdirOrError)(path26) : null; + if (!Array.isArray(entries)) { + if (entries) { + if (entries.code === "ENOENT") { + return true; + } + if (entries.code !== "ENOTDIR") { + throw entries; + } + } + if (opt.filter && !await opt.filter(path26, ent)) { + return false; + } + await (0, ignore_enoent_js_1.ignoreENOENT)(rimrafWindowsFile(path26, opt)); + return true; + } + const s = state === START ? CHILD : state; + const removedAll = (await Promise.all(entries.map((ent2) => rimrafWindowsDir((0, path_1.resolve)(path26, ent2.name), opt, ent2, s)))).reduce((a, b) => a && b, true); + if (state === START) { + return rimrafWindowsDir(path26, opt, ent, FINISH); + } else if (state === FINISH) { + if (opt.preserveRoot === false && path26 === (0, path_1.parse)(path26).root) { + return false; + } + if (!removedAll) { + return false; + } + if (opt.filter && !await opt.filter(path26, ent)) { + return false; + } + await (0, ignore_enoent_js_1.ignoreENOENT)(rimrafWindowsDirMoveRemoveFallback(path26, opt)); + } + return true; + }; + var rimrafWindowsDirSync = (path26, opt, ent, state = START) => { + const entries = ent.isDirectory() ? (0, readdir_or_error_js_1.readdirOrErrorSync)(path26) : null; + if (!Array.isArray(entries)) { + if (entries) { + if (entries.code === "ENOENT") { + return true; + } + if (entries.code !== "ENOTDIR") { + throw entries; + } + } + if (opt.filter && !opt.filter(path26, ent)) { + return false; + } + (0, ignore_enoent_js_1.ignoreENOENTSync)(() => rimrafWindowsFileSync(path26, opt)); + return true; + } + let removedAll = true; + for (const ent2 of entries) { + const s = state === START ? CHILD : state; + const p = (0, path_1.resolve)(path26, ent2.name); + removedAll = rimrafWindowsDirSync(p, opt, ent2, s) && removedAll; + } + if (state === START) { + return rimrafWindowsDirSync(path26, opt, ent, FINISH); + } else if (state === FINISH) { + if (opt.preserveRoot === false && path26 === (0, path_1.parse)(path26).root) { + return false; + } + if (!removedAll) { + return false; + } + if (opt.filter && !opt.filter(path26, ent)) { + return false; + } + (0, ignore_enoent_js_1.ignoreENOENTSync)(() => { + rimrafWindowsDirMoveRemoveFallbackSync(path26, opt); + }); + } + return true; + }; + } +}); + +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-manual.js +var require_rimraf_manual = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-manual.js"(exports2) { + "use strict"; + var __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.rimrafManualSync = exports2.rimrafManual = void 0; + var platform_js_1 = __importDefault(require_platform()); + var rimraf_posix_js_1 = require_rimraf_posix(); + var rimraf_windows_js_1 = require_rimraf_windows(); + exports2.rimrafManual = platform_js_1.default === "win32" ? rimraf_windows_js_1.rimrafWindows : rimraf_posix_js_1.rimrafPosix; + exports2.rimrafManualSync = platform_js_1.default === "win32" ? rimraf_windows_js_1.rimrafWindowsSync : rimraf_posix_js_1.rimrafPosixSync; + } +}); + +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-native.js +var require_rimraf_native = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/rimraf-native.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.rimrafNativeSync = exports2.rimrafNative = void 0; + var fs_js_1 = require_fs5(); + var { rm } = fs_js_1.promises; + var rimrafNative = async (path26, opt) => { + await rm(path26, { + ...opt, + force: true, + recursive: true + }); + return true; + }; + exports2.rimrafNative = rimrafNative; + var rimrafNativeSync = (path26, opt) => { + (0, fs_js_1.rmSync)(path26, { + ...opt, + force: true, + recursive: true + }); + return true; + }; + exports2.rimrafNativeSync = rimrafNativeSync; + } +}); + +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/use-native.js +var require_use_native = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/use-native.js"(exports2) { + "use strict"; + var __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.useNativeSync = exports2.useNative = void 0; + var platform_js_1 = __importDefault(require_platform()); + var version4 = process.env.__TESTING_RIMRAF_NODE_VERSION__ || process.version; + var versArr = version4.replace(/^v/, "").split("."); + var [major = 0, minor = 0] = versArr.map((v) => parseInt(v, 10)); + var hasNative = major > 14 || major === 14 && minor >= 14; + exports2.useNative = !hasNative || platform_js_1.default === "win32" ? () => false : (opt) => !opt?.signal && !opt?.filter; + exports2.useNativeSync = !hasNative || platform_js_1.default === "win32" ? () => false : (opt) => !opt?.signal && !opt?.filter; + } +}); + +// ../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/index.js +var require_commonjs4 = __commonJS({ + "../node_modules/.pnpm/rimraf@5.0.5/node_modules/rimraf/dist/commonjs/index.js"(exports2) { + "use strict"; + var __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.rimraf = exports2.sync = exports2.rimrafSync = exports2.moveRemove = exports2.moveRemoveSync = exports2.posix = exports2.posixSync = exports2.windows = exports2.windowsSync = exports2.manual = exports2.manualSync = exports2.native = exports2.nativeSync = exports2.isRimrafOptions = exports2.assertRimrafOptions = void 0; + var glob_1 = require_commonjs3(); + var opt_arg_js_1 = require_opt_arg(); + var path_arg_js_1 = __importDefault(require_path_arg()); + var rimraf_manual_js_1 = require_rimraf_manual(); + var rimraf_move_remove_js_1 = require_rimraf_move_remove(); + var rimraf_native_js_1 = require_rimraf_native(); + var rimraf_posix_js_1 = require_rimraf_posix(); + var rimraf_windows_js_1 = require_rimraf_windows(); + var use_native_js_1 = require_use_native(); + var opt_arg_js_2 = require_opt_arg(); + Object.defineProperty(exports2, "assertRimrafOptions", { enumerable: true, get: function() { + return opt_arg_js_2.assertRimrafOptions; + } }); + Object.defineProperty(exports2, "isRimrafOptions", { enumerable: true, get: function() { + return opt_arg_js_2.isRimrafOptions; + } }); + var wrap = (fn) => async (path26, opt) => { + const options = (0, opt_arg_js_1.optArg)(opt); + if (options.glob) { + path26 = await (0, glob_1.glob)(path26, options.glob); + } + if (Array.isArray(path26)) { + return !!(await Promise.all(path26.map((p) => fn((0, path_arg_js_1.default)(p, options), options)))).reduce((a, b) => a && b, true); + } else { + return !!await fn((0, path_arg_js_1.default)(path26, options), options); + } + }; + var wrapSync = (fn) => (path26, opt) => { + const options = (0, opt_arg_js_1.optArgSync)(opt); + if (options.glob) { + path26 = (0, glob_1.globSync)(path26, options.glob); + } + if (Array.isArray(path26)) { + return !!path26.map((p) => fn((0, path_arg_js_1.default)(p, options), options)).reduce((a, b) => a && b, true); + } else { + return !!fn((0, path_arg_js_1.default)(path26, options), options); + } + }; + exports2.nativeSync = wrapSync(rimraf_native_js_1.rimrafNativeSync); + exports2.native = Object.assign(wrap(rimraf_native_js_1.rimrafNative), { sync: exports2.nativeSync }); + exports2.manualSync = wrapSync(rimraf_manual_js_1.rimrafManualSync); + exports2.manual = Object.assign(wrap(rimraf_manual_js_1.rimrafManual), { sync: exports2.manualSync }); + exports2.windowsSync = wrapSync(rimraf_windows_js_1.rimrafWindowsSync); + exports2.windows = Object.assign(wrap(rimraf_windows_js_1.rimrafWindows), { sync: exports2.windowsSync }); + exports2.posixSync = wrapSync(rimraf_posix_js_1.rimrafPosixSync); + exports2.posix = Object.assign(wrap(rimraf_posix_js_1.rimrafPosix), { sync: exports2.posixSync }); + exports2.moveRemoveSync = wrapSync(rimraf_move_remove_js_1.rimrafMoveRemoveSync); + exports2.moveRemove = Object.assign(wrap(rimraf_move_remove_js_1.rimrafMoveRemove), { + sync: exports2.moveRemoveSync + }); + exports2.rimrafSync = wrapSync((path26, opt) => (0, use_native_js_1.useNativeSync)(opt) ? (0, rimraf_native_js_1.rimrafNativeSync)(path26, opt) : (0, rimraf_manual_js_1.rimrafManualSync)(path26, opt)); + exports2.sync = exports2.rimrafSync; + var rimraf_ = wrap((path26, opt) => (0, use_native_js_1.useNative)(opt) ? (0, rimraf_native_js_1.rimrafNative)(path26, opt) : (0, rimraf_manual_js_1.rimrafManual)(path26, opt)); + exports2.rimraf = Object.assign(rimraf_, { + rimraf: rimraf_, + sync: exports2.rimrafSync, + rimrafSync: exports2.rimrafSync, + manual: exports2.manual, + manualSync: exports2.manualSync, + native: exports2.native, + nativeSync: exports2.nativeSync, + posix: exports2.posix, + posixSync: exports2.posixSync, + windows: exports2.windows, + windowsSync: exports2.windowsSync, + moveRemove: exports2.moveRemove, + moveRemoveSync: exports2.moveRemoveSync + }); + exports2.rimraf.rimraf = exports2.rimraf; + } +}); + +// ../node_modules/.pnpm/flat-cache@4.0.0/node_modules/flat-cache/src/del.js +var require_del = __commonJS({ + "../node_modules/.pnpm/flat-cache@4.0.0/node_modules/flat-cache/src/del.js"(exports2, module2) { + var rimraf = require_commonjs4().sync; + var fs11 = require("fs"); + module2.exports = function del(file) { + if (fs11.existsSync(file)) { + rimraf(file, { + glob: false + }); + return true; + } + return false; + }; + } +}); + +// ../node_modules/.pnpm/flat-cache@4.0.0/node_modules/flat-cache/src/cache.js +var require_cache2 = __commonJS({ + "../node_modules/.pnpm/flat-cache@4.0.0/node_modules/flat-cache/src/cache.js"(exports2, module2) { + var path26 = require("path"); + var fs11 = require("fs"); + var Keyv = require_src3(); + var utils = require_utils7(); + var del = require_del(); + var writeJSON = utils.writeJSON; + var cache4 = { + /** + * Load a cache identified by the given Id. If the element does not exists, then initialize an empty + * cache storage. If specified `cacheDir` will be used as the directory to persist the data to. If omitted + * then the cache module directory `./cache` will be used instead + * + * @method load + * @param docId {String} the id of the cache, would also be used as the name of the file cache + * @param [cacheDir] {String} directory for the cache entry + */ + load: function(docId, cacheDir) { + var me = this; + me.keyv = new Keyv(); + me.__visited = {}; + me.__persisted = {}; + me._pathToFile = cacheDir ? path26.resolve(cacheDir, docId) : path26.resolve(__dirname, "../.cache/", docId); + if (fs11.existsSync(me._pathToFile)) { + me._persisted = utils.tryParse(me._pathToFile, {}); + } + }, + get _persisted() { + return this.__persisted; + }, + set _persisted(value) { + this.__persisted = value; + this.keyv.set("persisted", value); + }, + get _visited() { + return this.__visited; + }, + set _visited(value) { + this.__visited = value; + this.keyv.set("visited", value); + }, + /** + * Load the cache from the provided file + * @method loadFile + * @param {String} pathToFile the path to the file containing the info for the cache + */ + loadFile: function(pathToFile) { + var me = this; + var dir = path26.dirname(pathToFile); + var fName = path26.basename(pathToFile); + me.load(fName, dir); + }, + /** + * Returns the entire persisted object + * @method all + * @returns {*} + */ + all: function() { + return this._persisted; + }, + keys: function() { + return Object.keys(this._persisted); + }, + /** + * sets a key to a given value + * @method setKey + * @param key {string} the key to set + * @param value {object} the value of the key. Could be any object that can be serialized with JSON.stringify + */ + setKey: function(key, value) { + this._visited[key] = true; + this._persisted[key] = value; + }, + /** + * remove a given key from the cache + * @method removeKey + * @param key {String} the key to remove from the object + */ + removeKey: function(key) { + delete this._visited[key]; + delete this._persisted[key]; + }, + /** + * Return the value of the provided key + * @method getKey + * @param key {String} the name of the key to retrieve + * @returns {*} the value from the key + */ + getKey: function(key) { + this._visited[key] = true; + return this._persisted[key]; + }, + /** + * Remove keys that were not accessed/set since the + * last time the `prune` method was called. + * @method _prune + * @private + */ + _prune: function() { + var me = this; + var obj = {}; + var keys3 = Object.keys(me._visited); + if (keys3.length === 0) { + return; + } + keys3.forEach(function(key) { + obj[key] = me._persisted[key]; + }); + me._visited = {}; + me._persisted = obj; + }, + /** + * Save the state of the cache identified by the docId to disk + * as a JSON structure + * @param [noPrune=false] {Boolean} whether to remove from cache the non visited files + * @method save + */ + save: function(noPrune) { + var me = this; + !noPrune && me._prune(); + writeJSON(me._pathToFile, me._persisted); + }, + /** + * remove the file where the cache is persisted + * @method removeCacheFile + * @return {Boolean} true or false if the file was successfully deleted + */ + removeCacheFile: function() { + return del(this._pathToFile); + }, + /** + * Destroy the file cache and cache content. + * @method destroy + */ + destroy: function() { + var me = this; + me._visited = {}; + me._persisted = {}; + me.removeCacheFile(); } - ] - }, - oidc: { - getOidcCustomSubTemplateForOrg: [ - "GET /orgs/{org}/actions/oidc/customization/sub" - ], - updateOidcCustomSubTemplateForOrg: [ - "PUT /orgs/{org}/actions/oidc/customization/sub" - ] - }, - orgs: { - addSecurityManagerTeam: [ - "PUT /orgs/{org}/security-managers/teams/{team_slug}" - ], - assignTeamToOrgRole: [ - "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" - ], - assignUserToOrgRole: [ - "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}" - ], - blockUser: ["PUT /orgs/{org}/blocks/{username}"], - cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], - checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], - checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], - checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], - convertMemberToOutsideCollaborator: [ - "PUT /orgs/{org}/outside_collaborators/{username}" - ], - createCustomOrganizationRole: ["POST /orgs/{org}/organization-roles"], - createInvitation: ["POST /orgs/{org}/invitations"], - createOrUpdateCustomProperties: ["PATCH /orgs/{org}/properties/schema"], - createOrUpdateCustomPropertiesValuesForRepos: [ - "PATCH /orgs/{org}/properties/values" - ], - createOrUpdateCustomProperty: [ - "PUT /orgs/{org}/properties/schema/{custom_property_name}" - ], - createWebhook: ["POST /orgs/{org}/hooks"], - delete: ["DELETE /orgs/{org}"], - deleteCustomOrganizationRole: [ - "DELETE /orgs/{org}/organization-roles/{role_id}" - ], - deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], - enableOrDisableSecurityProductOnAllOrgRepos: [ - "POST /orgs/{org}/{security_product}/{enablement}" - ], - get: ["GET /orgs/{org}"], - getAllCustomProperties: ["GET /orgs/{org}/properties/schema"], - getCustomProperty: [ - "GET /orgs/{org}/properties/schema/{custom_property_name}" - ], - getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], - getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], - getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"], - getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], - getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], - getWebhookDelivery: [ - "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}" - ], - list: ["GET /organizations"], - listAppInstallations: ["GET /orgs/{org}/installations"], - listBlockedUsers: ["GET /orgs/{org}/blocks"], - listCustomPropertiesValuesForRepos: ["GET /orgs/{org}/properties/values"], - listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], - listForAuthenticatedUser: ["GET /user/orgs"], - listForUser: ["GET /users/{username}/orgs"], - listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], - listMembers: ["GET /orgs/{org}/members"], - listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], - listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"], - listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"], - listOrgRoles: ["GET /orgs/{org}/organization-roles"], - listOrganizationFineGrainedPermissions: [ - "GET /orgs/{org}/organization-fine-grained-permissions" - ], - listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], - listPatGrantRepositories: [ - "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories" - ], - listPatGrantRequestRepositories: [ - "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories" - ], - listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"], - listPatGrants: ["GET /orgs/{org}/personal-access-tokens"], - listPendingInvitations: ["GET /orgs/{org}/invitations"], - listPublicMembers: ["GET /orgs/{org}/public_members"], - listSecurityManagerTeams: ["GET /orgs/{org}/security-managers"], - listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], - listWebhooks: ["GET /orgs/{org}/hooks"], - patchCustomOrganizationRole: [ - "PATCH /orgs/{org}/organization-roles/{role_id}" - ], - pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], - redeliverWebhookDelivery: [ - "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" - ], - removeCustomProperty: [ - "DELETE /orgs/{org}/properties/schema/{custom_property_name}" - ], - removeMember: ["DELETE /orgs/{org}/members/{username}"], - removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], - removeOutsideCollaborator: [ - "DELETE /orgs/{org}/outside_collaborators/{username}" - ], - removePublicMembershipForAuthenticatedUser: [ - "DELETE /orgs/{org}/public_members/{username}" - ], - removeSecurityManagerTeam: [ - "DELETE /orgs/{org}/security-managers/teams/{team_slug}" - ], - reviewPatGrantRequest: [ - "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}" - ], - reviewPatGrantRequestsInBulk: [ - "POST /orgs/{org}/personal-access-token-requests" - ], - revokeAllOrgRolesTeam: [ - "DELETE /orgs/{org}/organization-roles/teams/{team_slug}" - ], - revokeAllOrgRolesUser: [ - "DELETE /orgs/{org}/organization-roles/users/{username}" - ], - revokeOrgRoleTeam: [ - "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" - ], - revokeOrgRoleUser: [ - "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}" - ], - setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], - setPublicMembershipForAuthenticatedUser: [ - "PUT /orgs/{org}/public_members/{username}" - ], - unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], - update: ["PATCH /orgs/{org}"], - updateMembershipForAuthenticatedUser: [ - "PATCH /user/memberships/orgs/{org}" - ], - updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"], - updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"], - updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], - updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] - }, - packages: { - deletePackageForAuthenticatedUser: [ - "DELETE /user/packages/{package_type}/{package_name}" - ], - deletePackageForOrg: [ - "DELETE /orgs/{org}/packages/{package_type}/{package_name}" - ], - deletePackageForUser: [ - "DELETE /users/{username}/packages/{package_type}/{package_name}" - ], - deletePackageVersionForAuthenticatedUser: [ - "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - deletePackageVersionForOrg: [ - "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - deletePackageVersionForUser: [ - "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getAllPackageVersionsForAPackageOwnedByAnOrg: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", - {}, - { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] } - ], - getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions", - {}, - { - renamed: [ - "packages", - "getAllPackageVersionsForPackageOwnedByAuthenticatedUser" - ] + }; + module2.exports = { + /** + * Alias for create. Should be considered depreacted. Will be removed in next releases + * + * @method load + * @param docId {String} the id of the cache, would also be used as the name of the file cache + * @param [cacheDir] {String} directory for the cache entry + * @returns {cache} cache instance + */ + load: function(docId, cacheDir) { + return this.create(docId, cacheDir); + }, + /** + * Load a cache identified by the given Id. If the element does not exists, then initialize an empty + * cache storage. + * + * @method create + * @param docId {String} the id of the cache, would also be used as the name of the file cache + * @param [cacheDir] {String} directory for the cache entry + * @returns {cache} cache instance + */ + create: function(docId, cacheDir) { + var obj = Object.create(cache4); + obj.load(docId, cacheDir); + return obj; + }, + createFromFile: function(filePath) { + var obj = Object.create(cache4); + obj.loadFile(filePath); + return obj; + }, + /** + * Clear the cache identified by the given id. Caches stored in a different cache directory can be deleted directly + * + * @method clearCache + * @param docId {String} the id of the cache, would also be used as the name of the file cache + * @param cacheDir {String} the directory where the cache file was written + * @returns {Boolean} true if the cache folder was deleted. False otherwise + */ + clearCacheById: function(docId, cacheDir) { + var filePath = cacheDir ? path26.resolve(cacheDir, docId) : path26.resolve(__dirname, "../.cache/", docId); + return del(filePath); + }, + /** + * Remove all cache stored in the cache directory + * @method clearAll + * @returns {Boolean} true if the cache folder was deleted. False otherwise + */ + clearAll: function(cacheDir) { + var filePath = cacheDir ? path26.resolve(cacheDir) : path26.resolve(__dirname, "../.cache/"); + return del(filePath); } - ], - getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions" - ], - getAllPackageVersionsForPackageOwnedByOrg: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions" - ], - getAllPackageVersionsForPackageOwnedByUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}/versions" - ], - getPackageForAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}" - ], - getPackageForOrganization: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}" - ], - getPackageForUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}" - ], - getPackageVersionForAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getPackageVersionForOrganization: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getPackageVersionForUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - listDockerMigrationConflictingPackagesForAuthenticatedUser: [ - "GET /user/docker/conflicts" - ], - listDockerMigrationConflictingPackagesForOrganization: [ - "GET /orgs/{org}/docker/conflicts" - ], - listDockerMigrationConflictingPackagesForUser: [ - "GET /users/{username}/docker/conflicts" - ], - listPackagesForAuthenticatedUser: ["GET /user/packages"], - listPackagesForOrganization: ["GET /orgs/{org}/packages"], - listPackagesForUser: ["GET /users/{username}/packages"], - restorePackageForAuthenticatedUser: [ - "POST /user/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageForOrg: [ - "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageForUser: [ - "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageVersionForAuthenticatedUser: [ - "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ], - restorePackageVersionForOrg: [ - "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ], - restorePackageVersionForUser: [ - "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ] - }, - projects: { - addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], - createCard: ["POST /projects/columns/{column_id}/cards"], - createColumn: ["POST /projects/{project_id}/columns"], - createForAuthenticatedUser: ["POST /user/projects"], - createForOrg: ["POST /orgs/{org}/projects"], - createForRepo: ["POST /repos/{owner}/{repo}/projects"], - delete: ["DELETE /projects/{project_id}"], - deleteCard: ["DELETE /projects/columns/cards/{card_id}"], - deleteColumn: ["DELETE /projects/columns/{column_id}"], - get: ["GET /projects/{project_id}"], - getCard: ["GET /projects/columns/cards/{card_id}"], - getColumn: ["GET /projects/columns/{column_id}"], - getPermissionForUser: [ - "GET /projects/{project_id}/collaborators/{username}/permission" - ], - listCards: ["GET /projects/columns/{column_id}/cards"], - listCollaborators: ["GET /projects/{project_id}/collaborators"], - listColumns: ["GET /projects/{project_id}/columns"], - listForOrg: ["GET /orgs/{org}/projects"], - listForRepo: ["GET /repos/{owner}/{repo}/projects"], - listForUser: ["GET /users/{username}/projects"], - moveCard: ["POST /projects/columns/cards/{card_id}/moves"], - moveColumn: ["POST /projects/columns/{column_id}/moves"], - removeCollaborator: [ - "DELETE /projects/{project_id}/collaborators/{username}" - ], - update: ["PATCH /projects/{project_id}"], - updateCard: ["PATCH /projects/columns/cards/{card_id}"], - updateColumn: ["PATCH /projects/columns/{column_id}"] - }, - pulls: { - checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], - create: ["POST /repos/{owner}/{repo}/pulls"], - createReplyForReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies" - ], - createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], - createReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments" - ], - deletePendingReview: [ - "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - deleteReviewComment: [ - "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}" - ], - dismissReview: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals" - ], - get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], - getReview: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], - list: ["GET /repos/{owner}/{repo}/pulls"], - listCommentsForReview: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments" - ], - listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], - listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], - listRequestedReviewers: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - listReviewComments: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments" - ], - listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], - listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], - merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], - removeRequestedReviewers: [ - "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - requestReviewers: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - submitReview: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events" - ], - update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], - updateBranch: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch" - ], - updateReview: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - updateReviewComment: [ - "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}" - ] - }, - rateLimit: { get: ["GET /rate_limit"] }, - reactions: { - createForCommitComment: [ - "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions" - ], - createForIssue: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions" - ], - createForIssueComment: [ - "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" - ], - createForPullRequestReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" - ], - createForRelease: [ - "POST /repos/{owner}/{repo}/releases/{release_id}/reactions" - ], - createForTeamDiscussionCommentInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" - ], - createForTeamDiscussionInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" - ], - deleteForCommitComment: [ - "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForIssue: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}" - ], - deleteForIssueComment: [ - "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForPullRequestComment: [ - "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForRelease: [ - "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}" - ], - deleteForTeamDiscussion: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}" - ], - deleteForTeamDiscussionComment: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}" - ], - listForCommitComment: [ - "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions" - ], - listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"], - listForIssueComment: [ - "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" - ], - listForPullRequestReviewComment: [ - "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" - ], - listForRelease: [ - "GET /repos/{owner}/{repo}/releases/{release_id}/reactions" - ], - listForTeamDiscussionCommentInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" - ], - listForTeamDiscussionInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" - ] - }, - repos: { - acceptInvitation: [ - "PATCH /user/repository_invitations/{invitation_id}", - {}, - { renamed: ["repos", "acceptInvitationForAuthenticatedUser"] } - ], - acceptInvitationForAuthenticatedUser: [ - "PATCH /user/repository_invitations/{invitation_id}" - ], - addAppAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], - addStatusCheckContexts: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - addTeamAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - addUserAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - cancelPagesDeployment: [ - "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel" - ], - checkAutomatedSecurityFixes: [ - "GET /repos/{owner}/{repo}/automated-security-fixes" - ], - checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], - checkVulnerabilityAlerts: [ - "GET /repos/{owner}/{repo}/vulnerability-alerts" - ], - codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"], - compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], - compareCommitsWithBasehead: [ - "GET /repos/{owner}/{repo}/compare/{basehead}" - ], - createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], - createCommitComment: [ - "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments" - ], - createCommitSignatureProtection: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], - createDeployKey: ["POST /repos/{owner}/{repo}/keys"], - createDeployment: ["POST /repos/{owner}/{repo}/deployments"], - createDeploymentBranchPolicy: [ - "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" - ], - createDeploymentProtectionRule: [ - "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" - ], - createDeploymentStatus: [ - "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" - ], - createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], - createForAuthenticatedUser: ["POST /user/repos"], - createFork: ["POST /repos/{owner}/{repo}/forks"], - createInOrg: ["POST /orgs/{org}/repos"], - createOrUpdateCustomPropertiesValues: [ - "PATCH /repos/{owner}/{repo}/properties/values" - ], - createOrUpdateEnvironment: [ - "PUT /repos/{owner}/{repo}/environments/{environment_name}" - ], - createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], - createOrgRuleset: ["POST /orgs/{org}/rulesets"], - createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"], - createPagesSite: ["POST /repos/{owner}/{repo}/pages"], - createRelease: ["POST /repos/{owner}/{repo}/releases"], - createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"], - createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], - createUsingTemplate: [ - "POST /repos/{template_owner}/{template_repo}/generate" - ], - createWebhook: ["POST /repos/{owner}/{repo}/hooks"], - declineInvitation: [ - "DELETE /user/repository_invitations/{invitation_id}", - {}, - { renamed: ["repos", "declineInvitationForAuthenticatedUser"] } - ], - declineInvitationForAuthenticatedUser: [ - "DELETE /user/repository_invitations/{invitation_id}" - ], - delete: ["DELETE /repos/{owner}/{repo}"], - deleteAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" - ], - deleteAdminBranchProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - deleteAnEnvironment: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}" - ], - deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], - deleteBranchProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection" - ], - deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], - deleteCommitSignatureProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], - deleteDeployment: [ - "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}" - ], - deleteDeploymentBranchPolicy: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], - deleteInvitation: [ - "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}" - ], - deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"], - deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"], - deletePullRequestReviewProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], - deleteReleaseAsset: [ - "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}" - ], - deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - deleteTagProtection: [ - "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}" - ], - deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], - disableAutomatedSecurityFixes: [ - "DELETE /repos/{owner}/{repo}/automated-security-fixes" - ], - disableDeploymentProtectionRule: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" - ], - disablePrivateVulnerabilityReporting: [ - "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting" - ], - disableVulnerabilityAlerts: [ - "DELETE /repos/{owner}/{repo}/vulnerability-alerts" - ], - downloadArchive: [ - "GET /repos/{owner}/{repo}/zipball/{ref}", - {}, - { renamed: ["repos", "downloadZipballArchive"] } - ], - downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], - downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], - enableAutomatedSecurityFixes: [ - "PUT /repos/{owner}/{repo}/automated-security-fixes" - ], - enablePrivateVulnerabilityReporting: [ - "PUT /repos/{owner}/{repo}/private-vulnerability-reporting" - ], - enableVulnerabilityAlerts: [ - "PUT /repos/{owner}/{repo}/vulnerability-alerts" - ], - generateReleaseNotes: [ - "POST /repos/{owner}/{repo}/releases/generate-notes" - ], - get: ["GET /repos/{owner}/{repo}"], - getAccessRestrictions: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" - ], - getAdminBranchProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - getAllDeploymentProtectionRules: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" - ], - getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], - getAllStatusCheckContexts: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" - ], - getAllTopics: ["GET /repos/{owner}/{repo}/topics"], - getAppsWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" - ], - getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], - getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], - getBranchProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection" - ], - getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"], - getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], - getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], - getCollaboratorPermissionLevel: [ - "GET /repos/{owner}/{repo}/collaborators/{username}/permission" - ], - getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], - getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], - getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], - getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], - getCommitSignatureProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], - getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], - getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], - getCustomDeploymentProtectionRule: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" - ], - getCustomPropertiesValues: ["GET /repos/{owner}/{repo}/properties/values"], - getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], - getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], - getDeploymentBranchPolicy: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - getDeploymentStatus: [ - "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}" - ], - getEnvironment: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}" - ], - getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], - getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], - getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"], - getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"], - getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"], - getOrgRulesets: ["GET /orgs/{org}/rulesets"], - getPages: ["GET /repos/{owner}/{repo}/pages"], - getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], - getPagesDeployment: [ - "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}" - ], - getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], - getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], - getPullRequestReviewProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], - getReadme: ["GET /repos/{owner}/{repo}/readme"], - getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], - getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], - getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], - getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], - getRepoRuleSuite: [ - "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}" - ], - getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"], - getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"], - getStatusChecksProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - getTeamsWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" - ], - getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], - getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], - getUsersWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" - ], - getViews: ["GET /repos/{owner}/{repo}/traffic/views"], - getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], - getWebhookConfigForRepo: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/config" - ], - getWebhookDelivery: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}" - ], - listActivities: ["GET /repos/{owner}/{repo}/activity"], - listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], - listBranches: ["GET /repos/{owner}/{repo}/branches"], - listBranchesForHeadCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head" - ], - listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], - listCommentsForCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments" - ], - listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], - listCommitStatusesForRef: [ - "GET /repos/{owner}/{repo}/commits/{ref}/statuses" - ], - listCommits: ["GET /repos/{owner}/{repo}/commits"], - listContributors: ["GET /repos/{owner}/{repo}/contributors"], - listCustomDeploymentRuleIntegrations: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps" - ], - listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], - listDeploymentBranchPolicies: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" - ], - listDeploymentStatuses: [ - "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" - ], - listDeployments: ["GET /repos/{owner}/{repo}/deployments"], - listForAuthenticatedUser: ["GET /user/repos"], - listForOrg: ["GET /orgs/{org}/repos"], - listForUser: ["GET /users/{username}/repos"], - listForks: ["GET /repos/{owner}/{repo}/forks"], - listInvitations: ["GET /repos/{owner}/{repo}/invitations"], - listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], - listLanguages: ["GET /repos/{owner}/{repo}/languages"], - listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], - listPublic: ["GET /repositories"], - listPullRequestsAssociatedWithCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls" - ], - listReleaseAssets: [ - "GET /repos/{owner}/{repo}/releases/{release_id}/assets" - ], - listReleases: ["GET /repos/{owner}/{repo}/releases"], - listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], - listTags: ["GET /repos/{owner}/{repo}/tags"], - listTeams: ["GET /repos/{owner}/{repo}/teams"], - listWebhookDeliveries: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries" - ], - listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], - merge: ["POST /repos/{owner}/{repo}/merges"], - mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], - pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], - redeliverWebhookDelivery: [ - "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" - ], - removeAppAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - removeCollaborator: [ - "DELETE /repos/{owner}/{repo}/collaborators/{username}" - ], - removeStatusCheckContexts: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - removeStatusCheckProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - removeTeamAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - removeUserAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], - replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"], - requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], - setAdminBranchProtection: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - setAppAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - setStatusCheckContexts: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - setTeamAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - setUserAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], - transfer: ["POST /repos/{owner}/{repo}/transfer"], - update: ["PATCH /repos/{owner}/{repo}"], - updateBranchProtection: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection" - ], - updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], - updateDeploymentBranchPolicy: [ - "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], - updateInvitation: [ - "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}" - ], - updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"], - updatePullRequestReviewProtection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], - updateReleaseAsset: [ - "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}" - ], - updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - updateStatusCheckPotection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", - {}, - { renamed: ["repos", "updateStatusCheckProtection"] } - ], - updateStatusCheckProtection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], - updateWebhookConfigForRepo: [ - "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config" - ], - uploadReleaseAsset: [ - "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", - { baseUrl: "https://uploads.github.com" } - ] - }, - search: { - code: ["GET /search/code"], - commits: ["GET /search/commits"], - issuesAndPullRequests: ["GET /search/issues"], - labels: ["GET /search/labels"], - repos: ["GET /search/repositories"], - topics: ["GET /search/topics"], - users: ["GET /search/users"] - }, - secretScanning: { - getAlert: [ - "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" - ], - listAlertsForEnterprise: [ - "GET /enterprises/{enterprise}/secret-scanning/alerts" - ], - listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], - listLocationsForAlert: [ - "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations" - ], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" - ] - }, - securityAdvisories: { - createFork: [ - "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks" - ], - createPrivateVulnerabilityReport: [ - "POST /repos/{owner}/{repo}/security-advisories/reports" - ], - createRepositoryAdvisory: [ - "POST /repos/{owner}/{repo}/security-advisories" - ], - createRepositoryAdvisoryCveRequest: [ - "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve" - ], - getGlobalAdvisory: ["GET /advisories/{ghsa_id}"], - getRepositoryAdvisory: [ - "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}" - ], - listGlobalAdvisories: ["GET /advisories"], - listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"], - listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"], - updateRepositoryAdvisory: [ - "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}" - ] - }, - teams: { - addOrUpdateMembershipForUserInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - addOrUpdateProjectPermissionsInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - addOrUpdateRepoPermissionsInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - checkPermissionsForProjectInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - checkPermissionsForRepoInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - create: ["POST /orgs/{org}/teams"], - createDiscussionCommentInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" - ], - createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], - deleteDiscussionCommentInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - deleteDiscussionInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], - getByName: ["GET /orgs/{org}/teams/{team_slug}"], - getDiscussionCommentInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - getDiscussionInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - getMembershipForUserInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - list: ["GET /orgs/{org}/teams"], - listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], - listDiscussionCommentsInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" - ], - listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], - listForAuthenticatedUser: ["GET /user/teams"], - listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], - listPendingInvitationsInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/invitations" - ], - listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], - listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], - removeMembershipForUserInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - removeProjectInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - removeRepoInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - updateDiscussionCommentInOrg: [ - "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - updateDiscussionInOrg: [ - "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] - }, - users: { - addEmailForAuthenticated: [ - "POST /user/emails", - {}, - { renamed: ["users", "addEmailForAuthenticatedUser"] } - ], - addEmailForAuthenticatedUser: ["POST /user/emails"], - addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"], - block: ["PUT /user/blocks/{username}"], - checkBlocked: ["GET /user/blocks/{username}"], - checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], - checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], - createGpgKeyForAuthenticated: [ - "POST /user/gpg_keys", - {}, - { renamed: ["users", "createGpgKeyForAuthenticatedUser"] } - ], - createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"], - createPublicSshKeyForAuthenticated: [ - "POST /user/keys", - {}, - { renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] } - ], - createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"], - createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"], - deleteEmailForAuthenticated: [ - "DELETE /user/emails", - {}, - { renamed: ["users", "deleteEmailForAuthenticatedUser"] } - ], - deleteEmailForAuthenticatedUser: ["DELETE /user/emails"], - deleteGpgKeyForAuthenticated: [ - "DELETE /user/gpg_keys/{gpg_key_id}", - {}, - { renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] } - ], - deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"], - deletePublicSshKeyForAuthenticated: [ - "DELETE /user/keys/{key_id}", - {}, - { renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] } - ], - deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"], - deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"], - deleteSshSigningKeyForAuthenticatedUser: [ - "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}" - ], - follow: ["PUT /user/following/{username}"], - getAuthenticated: ["GET /user"], - getByUsername: ["GET /users/{username}"], - getContextForUser: ["GET /users/{username}/hovercard"], - getGpgKeyForAuthenticated: [ - "GET /user/gpg_keys/{gpg_key_id}", - {}, - { renamed: ["users", "getGpgKeyForAuthenticatedUser"] } - ], - getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"], - getPublicSshKeyForAuthenticated: [ - "GET /user/keys/{key_id}", - {}, - { renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] } - ], - getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"], - getSshSigningKeyForAuthenticatedUser: [ - "GET /user/ssh_signing_keys/{ssh_signing_key_id}" - ], - list: ["GET /users"], - listBlockedByAuthenticated: [ - "GET /user/blocks", - {}, - { renamed: ["users", "listBlockedByAuthenticatedUser"] } - ], - listBlockedByAuthenticatedUser: ["GET /user/blocks"], - listEmailsForAuthenticated: [ - "GET /user/emails", - {}, - { renamed: ["users", "listEmailsForAuthenticatedUser"] } - ], - listEmailsForAuthenticatedUser: ["GET /user/emails"], - listFollowedByAuthenticated: [ - "GET /user/following", - {}, - { renamed: ["users", "listFollowedByAuthenticatedUser"] } - ], - listFollowedByAuthenticatedUser: ["GET /user/following"], - listFollowersForAuthenticatedUser: ["GET /user/followers"], - listFollowersForUser: ["GET /users/{username}/followers"], - listFollowingForUser: ["GET /users/{username}/following"], - listGpgKeysForAuthenticated: [ - "GET /user/gpg_keys", - {}, - { renamed: ["users", "listGpgKeysForAuthenticatedUser"] } - ], - listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"], - listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], - listPublicEmailsForAuthenticated: [ - "GET /user/public_emails", - {}, - { renamed: ["users", "listPublicEmailsForAuthenticatedUser"] } - ], - listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"], - listPublicKeysForUser: ["GET /users/{username}/keys"], - listPublicSshKeysForAuthenticated: [ - "GET /user/keys", - {}, - { renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] } - ], - listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"], - listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"], - listSocialAccountsForUser: ["GET /users/{username}/social_accounts"], - listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"], - listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"], - setPrimaryEmailVisibilityForAuthenticated: [ - "PATCH /user/email/visibility", - {}, - { renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] } - ], - setPrimaryEmailVisibilityForAuthenticatedUser: [ - "PATCH /user/email/visibility" - ], - unblock: ["DELETE /user/blocks/{username}"], - unfollow: ["DELETE /user/following/{username}"], - updateAuthenticated: ["PATCH /user"] + }; + } +}); + +// ../node_modules/.pnpm/file-entry-cache@8.0.0/node_modules/file-entry-cache/cache.js +var require_cache3 = __commonJS({ + "../node_modules/.pnpm/file-entry-cache@8.0.0/node_modules/file-entry-cache/cache.js"(exports2, module2) { + var path26 = require("path"); + var crypto6 = require("crypto"); + module2.exports = { + createFromFile: function(filePath, useChecksum) { + var fname = path26.basename(filePath); + var dir = path26.dirname(filePath); + return this.create(fname, dir, useChecksum); + }, + create: function(cacheId, _path, useChecksum) { + var fs11 = require("fs"); + var flatCache = require_cache2(); + var cache4 = flatCache.load(cacheId, _path); + var normalizedEntries = {}; + var removeNotFoundFiles = function removeNotFoundFiles2() { + const cachedEntries = cache4.keys(); + cachedEntries.forEach(function remover(fPath) { + try { + fs11.statSync(fPath); + } catch (err) { + if (err.code === "ENOENT") { + cache4.removeKey(fPath); + } + } + }); + }; + removeNotFoundFiles(); + return { + /** + * the flat cache storage used to persist the metadata of the `files + * @type {Object} + */ + cache: cache4, + /** + * Given a buffer, calculate md5 hash of its content. + * @method getHash + * @param {Buffer} buffer buffer to calculate hash on + * @return {String} content hash digest + */ + getHash: function(buffer) { + return crypto6.createHash("md5").update(buffer).digest("hex"); + }, + /** + * Return whether or not a file has changed since last time reconcile was called. + * @method hasFileChanged + * @param {String} file the filepath to check + * @return {Boolean} wheter or not the file has changed + */ + hasFileChanged: function(file) { + return this.getFileDescriptor(file).changed; + }, + /** + * given an array of file paths it return and object with three arrays: + * - changedFiles: Files that changed since previous run + * - notChangedFiles: Files that haven't change + * - notFoundFiles: Files that were not found, probably deleted + * + * @param {Array} files the files to analyze and compare to the previous seen files + * @return {[type]} [description] + */ + analyzeFiles: function(files) { + var me = this; + files = files || []; + var res = { + changedFiles: [], + notFoundFiles: [], + notChangedFiles: [] + }; + me.normalizeEntries(files).forEach(function(entry) { + if (entry.changed) { + res.changedFiles.push(entry.key); + return; + } + if (entry.notFound) { + res.notFoundFiles.push(entry.key); + return; + } + res.notChangedFiles.push(entry.key); + }); + return res; + }, + getFileDescriptor: function(file) { + var fstat; + try { + fstat = fs11.statSync(file); + } catch (ex) { + this.removeEntry(file); + return { key: file, notFound: true, err: ex }; + } + if (useChecksum) { + return this._getFileDescriptorUsingChecksum(file); + } + return this._getFileDescriptorUsingMtimeAndSize(file, fstat); + }, + _getFileDescriptorUsingMtimeAndSize: function(file, fstat) { + var meta = cache4.getKey(file); + var cacheExists = !!meta; + var cSize = fstat.size; + var cTime = fstat.mtime.getTime(); + var isDifferentDate; + var isDifferentSize; + if (!meta) { + meta = { size: cSize, mtime: cTime }; + } else { + isDifferentDate = cTime !== meta.mtime; + isDifferentSize = cSize !== meta.size; + } + var nEntry = normalizedEntries[file] = { + key: file, + changed: !cacheExists || isDifferentDate || isDifferentSize, + meta + }; + return nEntry; + }, + _getFileDescriptorUsingChecksum: function(file) { + var meta = cache4.getKey(file); + var cacheExists = !!meta; + var contentBuffer; + try { + contentBuffer = fs11.readFileSync(file); + } catch (ex) { + contentBuffer = ""; + } + var isDifferent = true; + var hash = this.getHash(contentBuffer); + if (!meta) { + meta = { hash }; + } else { + isDifferent = hash !== meta.hash; + } + var nEntry = normalizedEntries[file] = { + key: file, + changed: !cacheExists || isDifferent, + meta + }; + return nEntry; + }, + /** + * Return the list o the files that changed compared + * against the ones stored in the cache + * + * @method getUpdated + * @param files {Array} the array of files to compare against the ones in the cache + * @returns {Array} + */ + getUpdatedFiles: function(files) { + var me = this; + files = files || []; + return me.normalizeEntries(files).filter(function(entry) { + return entry.changed; + }).map(function(entry) { + return entry.key; + }); + }, + /** + * return the list of files + * @method normalizeEntries + * @param files + * @returns {*} + */ + normalizeEntries: function(files) { + files = files || []; + var me = this; + var nEntries = files.map(function(file) { + return me.getFileDescriptor(file); + }); + return nEntries; + }, + /** + * Remove an entry from the file-entry-cache. Useful to force the file to still be considered + * modified the next time the process is run + * + * @method removeEntry + * @param entryName + */ + removeEntry: function(entryName) { + delete normalizedEntries[entryName]; + cache4.removeKey(entryName); + }, + /** + * Delete the cache file from the disk + * @method deleteCacheFile + */ + deleteCacheFile: function() { + cache4.removeCacheFile(); + }, + /** + * remove the cache from the file and clear the memory cache + */ + destroy: function() { + normalizedEntries = {}; + cache4.destroy(); + }, + _getMetaForFileUsingCheckSum: function(cacheEntry) { + var contentBuffer = fs11.readFileSync(cacheEntry.key); + var hash = this.getHash(contentBuffer); + var meta = Object.assign(cacheEntry.meta, { hash }); + delete meta.size; + delete meta.mtime; + return meta; + }, + _getMetaForFileUsingMtimeAndSize: function(cacheEntry) { + var stat3 = fs11.statSync(cacheEntry.key); + var meta = Object.assign(cacheEntry.meta, { + size: stat3.size, + mtime: stat3.mtime.getTime() + }); + delete meta.hash; + return meta; + }, + /** + * Sync the files and persist them to the cache + * @method reconcile + */ + reconcile: function(noPrune) { + removeNotFoundFiles(); + noPrune = typeof noPrune === "undefined" ? true : noPrune; + var entries = normalizedEntries; + var keys3 = Object.keys(entries); + if (keys3.length === 0) { + return; + } + var me = this; + keys3.forEach(function(entryName) { + var cacheEntry = entries[entryName]; + try { + var meta = useChecksum ? me._getMetaForFileUsingCheckSum(cacheEntry) : me._getMetaForFileUsingMtimeAndSize(cacheEntry); + cache4.setKey(entryName, meta); + } catch (err) { + if (err.code !== "ENOENT") { + throw err; + } + } + }); + cache4.save(noPrune); + } + }; + } + }; + } +}); + +// ../node_modules/.pnpm/cspell@8.4.1/node_modules/cspell/dist/lib/file-entry-cache.cjs +var require_file_entry_cache = __commonJS({ + "../node_modules/.pnpm/cspell@8.4.1/node_modules/cspell/dist/lib/file-entry-cache.cjs"(exports2) { + "use strict"; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createFromFile = void 0; + var fileEntryCache = __importStar(require_cache3()); + function createFromFile3(pathToCache, useChecksum) { + return fileEntryCache.createFromFile(pathToCache, useChecksum); + } + exports2.createFromFile = createFromFile3; + } +}); + +// src/main.ts +var import_core4 = __toESM(require_core(), 1); +var import_context = __toESM(require_context(), 1); + +// src/error.ts +var AppError = class extends Error { + constructor(message) { + super(message); } }; -var endpoints_default = Endpoints; - -// ../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@11.0.0_@octokit+core@6.0.1/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js -var endpointMethodsMap = /* @__PURE__ */ new Map(); -for (const [scope, endpoints] of Object.entries(endpoints_default)) { - for (const [methodName, endpoint] of Object.entries(endpoints)) { - const [route, defaults, decorations] = endpoint; - const [method, url] = route.split(/ /); - const endpointDefaults = Object.assign( - { - method, - url - }, - defaults - ); - if (!endpointMethodsMap.has(scope)) { - endpointMethodsMap.set(scope, /* @__PURE__ */ new Map()); +function isError(e) { + if (!e) + return false; + if (typeof e !== "object") + return false; + const err = e; + return err.message !== void 0 && err.name !== void 0 && (err.stack === void 0 || typeof err.stack === "string"); +} +function isAppError(e) { + return e instanceof AppError; +} + +// src/action.ts +var import_core3 = __toESM(require_core(), 1); + +// ../node_modules/.pnpm/cspell-glob@8.4.1/node_modules/cspell-glob/dist/esm/globHelper.js +var Path = __toESM(require("path"), 1); +var { posix } = Path; +var relRegExp = /^\.[\\/]/; +var isGlobalPatternRegExp = /^!*[*]{2}/; +function fileOrGlobToGlob(fileOrGlob, root, path26 = Path) { + const pathToGlob = path26.sep === "\\" ? (p) => p.replace(/\\/g, "/") : (p) => p; + const isGlobalPattern = false; + if (isGlobPatternWithOptionalRoot(fileOrGlob)) { + const useRoot = fileOrGlob.root ?? root; + const isGlobalPattern2 = isGlobPatternWithRoot(fileOrGlob) ? fileOrGlob.isGlobalPattern : isGlobalGlob(fileOrGlob.glob); + return { ...fileOrGlob, root: useRoot, isGlobalPattern: isGlobalPattern2 }; + } + if (doesRootContainPath(root, fileOrGlob, path26) || relRegExp.test(fileOrGlob)) { + const rel = path26.relative(root, path26.resolve(root, fileOrGlob)); + return { glob: pathToGlob(rel), root, isGlobalPattern }; + } + return { glob: pathToGlob(fileOrGlob), root, isGlobalPattern }; +} +function doesRootContainPath(root, child, path26) { + if (child.startsWith(root)) + return true; + const rel = path26.relative(root, child); + return !rel || rel !== child && !rel.startsWith("..") && !path26.isAbsolute(rel); +} +function isGlobPatternWithOptionalRoot(g) { + return typeof g !== "string" && typeof g.glob === "string"; +} +function isGlobPatternWithRoot(g) { + return typeof g.root === "string" && "isGlobalPattern" in g; +} +function isGlobPatternNormalized(g) { + if (!isGlobPatternWithOptionalRoot(g)) + return false; + if (!isGlobPatternWithRoot(g)) + return false; + const gr = g; + return "rawGlob" in gr && "rawRoot" in gr && typeof gr.rawGlob === "string"; +} +function normalizePattern(pattern, nested) { + pattern = pattern.replace(/^(!!)+/, ""); + const isNeg = pattern.startsWith("!"); + const prefix = isNeg ? "!" : ""; + pattern = isNeg ? pattern.slice(1) : pattern; + const patterns = nested ? normalizePatternNested(pattern) : normalizePatternGeneral(pattern); + return patterns.map((p) => prefix + p); +} +function normalizePatternNested(pattern) { + if (!pattern.includes("/")) { + if (pattern === "**") + return ["**"]; + return ["**/" + pattern, "**/" + pattern + "/**"]; + } + const hasLeadingSlash = pattern.startsWith("/"); + pattern = hasLeadingSlash ? pattern.slice(1) : pattern; + if (pattern.endsWith("/")) { + return hasLeadingSlash || pattern.slice(0, -1).includes("/") ? [pattern + "**/*"] : ["**/" + pattern + "**/*"]; + } + if (pattern.endsWith("**")) { + return [pattern]; + } + return [pattern, pattern + "/**"]; +} +function normalizePatternGeneral(pattern) { + pattern = pattern.startsWith("/") ? pattern.slice(1) : pattern; + pattern = pattern.endsWith("/") ? pattern + "**/*" : pattern; + return [pattern]; +} +function normalizeGlobPatterns(patterns, options) { + function* normalize3() { + for (const glob2 of patterns) { + if (isGlobPatternNormalized(glob2)) { + yield glob2; + continue; + } + yield* normalizeGlobPattern(glob2, options); } - endpointMethodsMap.get(scope).set(methodName, { - scope, - methodName, - endpointDefaults, - decorations - }); } + return [...normalize3()]; } -var handler = { - has({ scope }, methodName) { - return endpointMethodsMap.get(scope).has(methodName); - }, - getOwnPropertyDescriptor(target, methodName) { +function normalizeGlobPattern(g, options) { + const { root, nodePath: path26 = Path, nested, cwd = Path.resolve() } = options; + g = !isGlobPatternWithOptionalRoot(g) ? { glob: g } : g; + const gr = { ...g, root: g.root ?? root }; + const rawRoot = gr.root; + const rawGlob = g.glob; + gr.glob = gr.glob.trim(); + if (gr.glob.startsWith("${cwd}")) { + gr.glob = gr.glob.replace("${cwd}", ""); + gr.root = "${cwd}"; + } + if (gr.root.startsWith("${cwd}")) { + gr.root = path26.resolve(gr.root.replace("${cwd}", cwd)); + } + const isGlobalPattern = isGlobalGlob(gr.glob); + gr.root = path26.resolve(root, path26.normalize(gr.root)); + const globs = normalizePattern(gr.glob, nested); + return globs.map((glob2) => ({ ...gr, glob: glob2, rawGlob, rawRoot, isGlobalPattern })); +} +function normalizeGlobToRoot(glob2, root, path26) { + function relToGlob(relativePath2) { + return path26.sep === "\\" ? relativePath2.replace(/\\/g, "/") : relativePath2; + } + if (glob2.root === root) { + return glob2; + } + const relFromRootToGlob = path26.relative(root, glob2.root); + if (!relFromRootToGlob) { + return glob2; + } + if (glob2.isGlobalPattern) { + return { ...glob2, root }; + } + const relFromGlobToRoot = path26.relative(glob2.root, root); + const globIsUnderRoot = relFromRootToGlob[0] !== "." && !path26.isAbsolute(relFromRootToGlob); + const rootIsUnderGlob = relFromGlobToRoot[0] !== "." && !path26.isAbsolute(relFromGlobToRoot); + if (!globIsUnderRoot && !rootIsUnderGlob) { + return glob2; + } + const isNeg = glob2.glob.startsWith("!"); + const g = isNeg ? glob2.glob.slice(1) : glob2.glob; + const prefix = isNeg ? "!" : ""; + if (globIsUnderRoot) { + const relGlob2 = relToGlob(relFromRootToGlob); return { - value: this.get(target, methodName), - // ensures method is in the cache - configurable: true, - writable: true, - enumerable: true + ...glob2, + glob: prefix + posix.join(relGlob2, g), + root }; - }, - defineProperty(target, methodName, descriptor) { - Object.defineProperty(target.cache, methodName, descriptor); - return true; - }, - deleteProperty(target, methodName) { - delete target.cache[methodName]; - return true; - }, - ownKeys({ scope }) { - return [...endpointMethodsMap.get(scope).keys()]; - }, - set(target, methodName, value) { - return target.cache[methodName] = value; - }, - get({ octokit, scope, cache: cache4 }, methodName) { - if (cache4[methodName]) { - return cache4[methodName]; - } - const method = endpointMethodsMap.get(scope).get(methodName); - if (!method) { - return void 0; + } + const relGlob = relToGlob(relFromGlobToRoot) + "/"; + const rebasedGlob = rebaseGlob(g, relGlob); + return rebasedGlob ? { ...glob2, glob: prefix + rebasedGlob, root } : glob2; +} +function rebaseGlob(glob2, rebaseTo) { + if (!rebaseTo || rebaseTo === "/") + return glob2; + if (glob2.startsWith("**")) + return glob2; + rebaseTo = rebaseTo.endsWith("/") ? rebaseTo : rebaseTo + "/"; + if (glob2.startsWith(rebaseTo)) { + return glob2.slice(rebaseTo.length); + } + const relParts = rebaseTo.split("/"); + const globParts = glob2.split("/"); + for (let i = 0; i < relParts.length && i < globParts.length; ++i) { + const relSeg = relParts[i]; + const globSeg = globParts[i]; + if (!relSeg || globSeg === "**") { + return globParts.slice(i).join("/"); } - const { endpointDefaults, decorations } = method; - if (decorations) { - cache4[methodName] = decorate( - octokit, - scope, - methodName, - endpointDefaults, - decorations - ); - } else { - cache4[methodName] = octokit.request.defaults(endpointDefaults); + if (relSeg !== globSeg && globSeg !== "*") { + break; } - return cache4[methodName]; + } + return void 0; +} +function isGlobalGlob(glob2) { + return isGlobalPatternRegExp.test(glob2); +} + +// ../node_modules/.pnpm/cspell-glob@8.4.1/node_modules/cspell-glob/dist/esm/GlobMatcher.js +var import_micromatch = __toESM(require_micromatch(), 1); +var Path2 = __toESM(require("path"), 1); +var GlobMatcher = class { + /** + * @param filename full path of file to match against. + * @returns a GlobMatch - information about the match. + */ + matchEx; + path; + patterns; + patternsNormalizedToRoot; + root; + dot; + options; + constructor(patterns, rootOrOptions, _nodePath) { + _nodePath = _nodePath ?? Path2; + const options = typeof rootOrOptions === "string" ? { root: rootOrOptions } : rootOrOptions ?? {}; + const { mode = "exclude" } = options; + const isExcludeMode = mode !== "include"; + _nodePath = options.nodePath ?? _nodePath; + const { root = _nodePath.resolve(), dot = isExcludeMode, nodePath = _nodePath, nested = isExcludeMode, cwd = process.cwd(), nobrace } = options; + const normalizedRoot = nodePath.resolve(nodePath.normalize(root)); + this.options = { root: normalizedRoot, dot, nodePath, nested, mode, nobrace, cwd }; + patterns = Array.isArray(patterns) ? patterns : typeof patterns === "string" ? patterns.split(/\r?\n/g) : [patterns]; + const globPatterns = normalizeGlobPatterns(patterns, this.options); + this.patternsNormalizedToRoot = globPatterns.map((g) => normalizeGlobToRoot(g, normalizedRoot, nodePath)).filter((g) => nodePath.relative(g.root, normalizedRoot) === ""); + this.patterns = globPatterns; + this.root = normalizedRoot; + this.path = nodePath; + this.dot = dot; + this.matchEx = buildMatcherFn(this.patterns, this.options); + } + /** + * Check to see if a filename matches any of the globs. + * If filename is relative, it is considered relative to the root. + * If filename is absolute and contained within the root, it will be made relative before being tested for a glob match. + * If filename is absolute and not contained within the root, it will be tested as is. + * @param filename full path of the file to check. + */ + match(filename) { + return this.matchEx(filename).matched; } }; -function endpointsToMethods(octokit) { - const newMethods = {}; - for (const scope of endpointMethodsMap.keys()) { - newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler); - } - return newMethods; -} -function decorate(octokit, scope, methodName, defaults, decorations) { - const requestWithDefaults = octokit.request.defaults(defaults); - function withDecorations(...args) { - let options = requestWithDefaults.endpoint.merge(...args); - if (decorations.mapToData) { - options = Object.assign({}, options, { - data: options[decorations.mapToData], - [decorations.mapToData]: void 0 - }); - return requestWithDefaults(options); - } - if (decorations.renamed) { - const [newScope, newMethodName] = decorations.renamed; - octokit.log.warn( - `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()` - ); +function buildMatcherFn(patterns, options) { + const { nodePath: path26, dot, nobrace } = options; + const makeReOptions = { dot, nobrace }; + const rules = patterns.map((pattern, index) => ({ pattern, index })).filter((r) => !!r.pattern.glob).filter((r) => !r.pattern.glob.startsWith("#")).map(({ pattern, index }) => { + const matchNeg = pattern.glob.match(/^!/); + const glob2 = pattern.glob.replace(/^!/, ""); + const isNeg = matchNeg && matchNeg[0].length & 1 && true || false; + const reg = import_micromatch.default.makeRe(glob2, makeReOptions); + const fn2 = (filename) => { + reg.lastIndex = 0; + return reg.test(filename); + }; + return { pattern, index, isNeg, fn: fn2, reg }; + }); + const negRules = rules.filter((r) => r.isNeg); + const posRules = rules.filter((r) => !r.isNeg); + const fn = (filename) => { + filename = path26.resolve(path26.normalize(filename)); + const fNameNormalize = path26.sep === "\\" ? filename.replace(/\\/g, "/") : filename; + let lastRoot = "!!!!!!"; + let lastRel = ""; + function relativeToRoot(root) { + if (root !== lastRoot) { + lastRoot = root; + const relName = path26.relative(root, filename); + lastRel = path26.sep === "\\" ? relName.replace(/\\/g, "/") : relName; + } + return lastRel; } - if (decorations.deprecated) { - octokit.log.warn(decorations.deprecated); - } - if (decorations.renamedParameters) { - const options2 = requestWithDefaults.endpoint.merge(...args); - for (const [name, alias] of Object.entries( - decorations.renamedParameters - )) { - if (name in options2) { - octokit.log.warn( - `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead` - ); - if (!(alias in options2)) { - options2[alias] = options2[name]; - } - delete options2[name]; + function testRules(rules2, matched) { + for (const rule of rules2) { + const pattern = rule.pattern; + const root = pattern.root; + const isRelPat = !pattern.isGlobalPattern; + if (isRelPat && !doesRootContainPath(root, filename, path26)) { + continue; + } + const fname = isRelPat ? relativeToRoot(root) : fNameNormalize; + if (rule.fn(fname)) { + return { + matched, + glob: pattern.glob, + root, + pattern, + index: rule.index, + isNeg: rule.isNeg + }; } } - return requestWithDefaults(options2); } - return requestWithDefaults(...args); - } - return Object.assign(withDecorations, requestWithDefaults); + return testRules(negRules, false) || testRules(posRules, true) || { matched: false }; + }; + return fn; } -// ../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@11.0.0_@octokit+core@6.0.1/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js -function restEndpointMethods(octokit) { - const api = endpointsToMethods(octokit); - return { - rest: api - }; +// src/action.ts +var path25 = __toESM(require("path"), 1); + +// src/ActionParams.ts +var import_fs = require("fs"); +var defaultActionParams = { + files: "", + incremental_files_only: "true", + config: "", + root: "", + inline: "warning", + strict: "true", + verbose: "false", + check_dot_files: "explicit" +}; +function applyDefaults(params) { + const results = { ...params }; + const alias = results; + for (const [key, value] of Object.entries(defaultActionParams)) { + alias[key] = alias[key] || value; + } + return results; } -restEndpointMethods.VERSION = VERSION; -function legacyRestEndpointMethods(octokit) { - const api = endpointsToMethods(octokit); - return { - ...api, - rest: api - }; +function validateConfig(params) { + const config = params.config; + const success = !config || (0, import_fs.existsSync)(config); + return !success ? `Configuration file "${config}" not found.` : void 0; } -legacyRestEndpointMethods.VERSION = VERSION; - -// src/github.ts -async function getPullRequestFiles(git, prRef) { - const { owner, repo, pull_number } = prRef; - const { rest } = restEndpointMethods(git); - await reportUsage(rest, "getPullRequestFiles RateLimit start:"); - const commits = await rest.pulls.listCommits({ owner, repo, pull_number }); - console.time("Fetch file names in commits"); - const files = await fetchFilesForCommits(git, prRef, commits.data.map((c) => c.sha).filter(isString)); - console.timeEnd("Fetch file names in commits"); - await reportUsage(rest, "getPullRequestFiles RateLimit end:"); - return files; +function validateRoot(params) { + const root = params.root; + const success = !root || (0, import_fs.existsSync)(root); + return !success ? `Root path does not exist: "${root}"` : void 0; } -function isString(s) { - return typeof s === "string"; +function validateInlineLevel(params) { + const inline = params.inline; + const success = isInlineWorkflowCommand(inline); + return !success ? `Invalid inline level (${inline}), must be one of (error, warning, none)` : void 0; } -async function fetchFilesForCommits(git, context, commitIds) { - const files = /* @__PURE__ */ new Set(); - for await (const file of fetchFilesForCommitsX(git, context, commitIds)) { - files.add(file); - } - return files; +var validateStrict = validateTrueFalse("strict", "Invalid strict setting, must be one of (true, false)"); +var validateIncrementalFilesOnly = validateTrueFalse( + "incremental_files_only", + "Invalid incremental_files_only setting, must be one of (true, false)" +); +var validateVerbose = validateTrueFalse("verbose", "Invalid verbose setting, must be one of (true, false)"); +function validateTrueFalse(key, msg) { + return (params) => { + const value = params[key]; + const success = value === "true" || value === "false"; + return !success ? msg : void 0; + }; } -async function* fetchFilesForCommitsX(git, context, commitIds) { - const { owner, repo } = context; - const { rest } = restEndpointMethods(git); - for (const ref of commitIds) { - const commit = await rest.repos.getCommit({ owner, repo, ref }); - const files = commit.data.files; - if (!files) - continue; - for (const f of files) { - if (f.filename) { - yield f.filename; - } - } +var inlineWorkflowCommandSet = { + error: true, + warning: true, + none: true +}; +function isInlineWorkflowCommand(cmd) { + return !!inlineWorkflowCommandSet[cmd]; +} +function validateActionParams(params, logError2) { + const validations = [ + validateConfig, + validateRoot, + validateInlineLevel, + validateStrict, + validateIncrementalFilesOnly, + validateVerbose + ]; + const success = validations.map((fn) => fn(params)).map((msg) => !msg || (logError2(msg), false)).reduce((a, b) => a && b, true); + if (!success) { + throw new AppError("Bad Configuration."); } } -async function reportUsage(rest, message) { - if (!process.env["DEBUG"] && !process.env["TEST"] && !process.env["GITHUB_USAGE"]) - return; - const rate = (await rest.rateLimit.get()).data.rate; - const now = Math.floor(Date.now() / 1e3); - console.info("%s: %o, time until reset: %is", message, rate, rate.reset - now); + +// src/getActionParams.ts +var import_core = __toESM(require_core(), 1); +function getActionParams() { + return applyDefaults({ + // github_token: getInput('github_token', { required: true }), + files: (0, import_core.getInput)("files"), + incremental_files_only: tf((0, import_core.getInput)("incremental_files_only")), + config: (0, import_core.getInput)("config"), + root: (0, import_core.getInput)("root"), + inline: (0, import_core.getInput)("inline").toLowerCase(), + strict: tf((0, import_core.getInput)("strict")), + verbose: tf((0, import_core.getInput)("verbose")), + check_dot_files: tf((0, import_core.getInput)("check_dot_files")) + }); +} +function tf(v) { + const mapValues = { + true: "true", + t: "true", + false: "false", + f: "false", + "0": "false", + "1": "true" + }; + v = typeof v === "boolean" || typeof v === "number" ? v ? "true" : "false" : v; + v = v.toString(); + v = v.toLowerCase(); + v = mapValues[v] || v; + return v; } // src/reporter.ts @@ -58087,16 +51880,16 @@ var UnknownError = class extends Error { this.cause = cause; } }; -function catchPromiseError(p, handler2) { +function catchPromiseError(p, handler) { if (p === void 0) return void 0; - return _catchPromiseError(p, handler2); + return _catchPromiseError(p, handler); } -async function _catchPromiseError(p, handler2) { +async function _catchPromiseError(p, handler) { try { return await p; } catch (e) { - return handler2(e); + return handler(e); } } @@ -59038,8 +52831,8 @@ var ServiceBus = class { constructor(handlers = []) { handlers.forEach((h) => this.addHandler(h)); } - addHandler(handler2, name = "anonymous", description) { - const h = typeof handler2 === "function" ? { fn: handler2, name, description } : handler2; + addHandler(handler, name = "anonymous", description) { + const h = typeof handler === "function" ? { fn: handler, name, description } : handler; const { fn, name: _name, description: _description } = h; this.handlers.push({ fn, name: _name, description: _description }); return this; @@ -59047,13 +52840,13 @@ var ServiceBus = class { dispatch(request) { let depth = 0; const dispatcher = { dispatch }; - const handler2 = this.reduceHandlers(this.handlers, request, dispatcher, this.defaultHandler); + const handler = this.reduceHandlers(this.handlers, request, dispatcher, this.defaultHandler); function dispatch(request2) { ++depth; if (depth >= MAX_DEPTH) { return createResponseFail(request2, new ErrorServiceRequestDepthExceeded(request2, depth)); } - const response = handler2(request2); + const response = handler(request2); --depth; return response; } @@ -59064,7 +52857,7 @@ var ServiceBus = class { } reduceHandlers(handlers, request, dispatcher, defaultHandler) { const _handlers = handlers.map((m) => ({ ...m, fn: m.fn(dispatcher) })); - const handler2 = _handlers.reduce((next, h) => { + const handler = _handlers.reduce((next, h) => { const fn = h.fn(next); return (req) => { try { @@ -59074,7 +52867,7 @@ var ServiceBus = class { } }; }, defaultHandler); - return handler2; + return handler; } }; @@ -59437,7 +53230,7 @@ function registerHandlers(serviceBus) { handleRequestFsStat, handleRequestFsStatHttp ]; - handlers.forEach((handler2) => serviceBus.addHandler(handler2)); + handlers.forEach((handler) => serviceBus.addHandler(handler)); } function encodeContent(ref, content) { if (typeof content === "string") { @@ -67383,7 +61176,7 @@ function createDictionaryLineParserMapper(options) { const _options = options || _defaultOptions; const { commentCharacter = _defaultOptions.commentCharacter, optionalCompoundCharacter: optionalCompound = _defaultOptions.optionalCompoundCharacter, compoundCharacter: compound = _defaultOptions.compoundCharacter, caseInsensitivePrefix: ignoreCase2 = _defaultOptions.caseInsensitivePrefix, forbiddenPrefix: forbidden = _defaultOptions.forbiddenPrefix, keepExactPrefix: keepCase = _defaultOptions.keepExactPrefix, splitSeparator = _defaultOptions.splitSeparator, splitKeepBoth = _defaultOptions.splitKeepBoth, stripCaseAndAccentsKeepDuplicate = _defaultOptions.stripCaseAndAccentsKeepDuplicate, stripCaseAndAccentsOnForbidden = _defaultOptions.stripCaseAndAccentsOnForbidden } = _options; let { stripCaseAndAccents = _defaultOptions.stripCaseAndAccents, split: split2 = _defaultOptions.split } = _options; - function isString4(line) { + function isString3(line) { return typeof line === "string"; } function trim(line) { @@ -67479,7 +61272,7 @@ function createDictionaryLineParserMapper(options) { yield* paragraph.split("\n"); } } - const processLines = opCombineSync(opFilterSync(isString4), splitLines, opMapSync(removeComments), splitWords, opMapSync(trim), opFilterSync(filterEmptyLines), opConcatMapSync(mapOptionalPrefix), opConcatMapSync(mapOptionalSuffix), opConcatMapSync(mapNormalize), opMapSync(removeDoublePrefix)); + const processLines = opCombineSync(opFilterSync(isString3), splitLines, opMapSync(removeComments), splitWords, opMapSync(trim), opFilterSync(filterEmptyLines), opConcatMapSync(mapOptionalPrefix), opConcatMapSync(mapOptionalSuffix), opConcatMapSync(mapNormalize), opMapSync(removeDoublePrefix)); return processLines; } function parseDictionaryLines(lines, options) { @@ -69488,7 +63281,7 @@ async function listGlobalImports() { globalSettings }; } -function isString2(s) { +function isString(s) { return s !== void 0; } async function addPathsToGlobalImports(paths) { @@ -69504,7 +63297,7 @@ async function addPathsToGlobalImports(paths) { const rawGlobalSettings = await getRawGlobalSettings(); const resolvedImports = await resolveImports(rawGlobalSettings); const imports = new Set(resolvedImports.map((r) => r.resolvedToFilename || r.filename)); - resolvedSettings.map((s) => s.resolvedToFilename).filter(isString2).reduce((imports2, s) => imports2.add(s), imports); + resolvedSettings.map((s) => s.resolvedToFilename).filter(isString).reduce((imports2, s) => imports2.add(s), imports); const globalSettings = { import: [...imports] }; @@ -73127,14 +66920,14 @@ function extractIgnoreValues(typosDef, ignorePrefix) { function isDefined5(v) { return v !== void 0 && v !== null; } -function isString3(v) { +function isString2(v) { return typeof v === "string"; } function isArray2(v) { return Array.isArray(v); } function hasSuggestions(v) { - return isString3(v) || isArray2(v); + return isString2(v) || isArray2(v); } // ../node_modules/.pnpm/cspell-dictionary@8.4.1/node_modules/cspell-dictionary/dist/SpellingDictionary/Typos/typosParser.js @@ -78895,23 +72688,78 @@ async function lint2(files, lintOptions, reporter) { await lint(files, options, reporter); } +// src/git.ts +var import_node_util2 = require("node:util"); +var import_node_child_process = require("node:child_process"); +var execP = (0, import_node_util2.promisify)(import_node_child_process.exec); +async function gitListCommits(count3 = 100, _since) { + const args = ["rev-list", "HEAD", `-${count3}`]; + const cmd = `git ${args.join(" ")}`; + const cmdResult = await execP(cmd); + return cmdResult.stdout.split("\n").map((a) => a.trim()).filter((a) => !!a); +} +async function gitDeepen(count3) { + const args = ["fetch", `--deepen=${count3}`]; + const cmd = `git ${args.join(" ")}`; + await execP(cmd); +} +async function gitListFiles(sha12, sha2) { + const SHAs = [sha12, sha2].map(cleanSha).filter((a) => !!a); + if (!SHAs.length) + return []; + const args = ["diff-tree", "--no-commit-id", "--name-only", "-r", ...SHAs]; + const cmd = `git ${args.join(" ")}`; + const cmdResult = await execP(cmd); + return cmdResult.stdout.split("\n").map((a) => a.trim()).filter((a) => !!a); +} +function cleanSha(sha) { + if (!sha) + return ""; + const s = sha.trim().replace(/[^a-fA-F0-9]/g, ""); + return s.replace(/^0+$/, ""); +} +async function gitListFilesForPullRequest(pr) { + const event = pr; + const sha12 = pr?.pull_request?.base?.sha || event?.before; + const sha2 = event?.after || pr?.pull_request?.head?.sha; + if (!sha12 || !sha2 || !pr.pull_request) { + throw new GitError(`Invalid PR event base.sha: ${sha12}, head.sha: ${sha2}`); + } + const commitCount = pr.pull_request.commits || 0; + try { + await deepenIfNecessary(commitCount + 1); + return gitListFiles(sha12, sha2); + } catch (e) { + throw new GitError(`Error getting files for PR ${pr?.number} from git`, e); + } +} +async function gitListFilesForPush(push) { + try { + const commitCount = push.commits?.length || 0; + await deepenIfNecessary(commitCount + 1); + return gitListFiles(push.before, push.after); + } catch (e) { + throw new GitError(`Error getting files for Push, (Commit: ${push?.after}) from git`, e); + } +} +async function deepenIfNecessary(commitCount) { + const commits = await gitListCommits(commitCount); + if (commits.length < commitCount) { + await gitDeepen(commitCount); + } +} +var GitError = class extends Error { + constructor(message, cause) { + super(message); + this.cause = cause; + this.name = "GitError"; + } +}; + // src/action.ts var core2 = { debug: import_core3.debug, error: import_core3.error, info: import_core3.info, warning: import_core3.warning }; +var defaultGlob = "**"; var supportedIncrementalEvents = /* @__PURE__ */ new Set(["push", "pull_request"]); -async function gatherPullRequestFiles(context) { - const { github, githubContext } = context; - const pull_number = githubContext.payload.pull_request?.number; - if (!pull_number) - return /* @__PURE__ */ new Set(); - return getPullRequestFiles(github, { ...githubContext.repo, pull_number }); -} -async function gatherPushFiles(context) { - const { github, githubContext } = context; - const push = githubContext.payload; - const commits = push.commits?.map((c) => c.id); - const files = commits && await fetchFilesForCommits(github, githubContext.repo, commits); - return files || /* @__PURE__ */ new Set(); -} var checkDotMap = { true: true, false: false, @@ -78958,11 +72806,15 @@ async function gatherFilesFromContext(context) { } async function gatherFiles(context) { const eventName = context.githubContext.eventName; - switch (eventName) { - case "push": - return gatherPushFiles(context); - case "pull_request": - return gatherPullRequestFiles(context); + try { + switch (eventName) { + case "push": + return new Set(await gitListFilesForPush(context.githubContext.payload)); + case "pull_request": + return new Set(await gitListFilesForPullRequest(context.githubContext.payload)); + } + } catch (e) { + core2.warning("Unable to determine which files have changed, checking files: " + defaultGlob); } return /* @__PURE__ */ new Set(); } @@ -78978,20 +72830,19 @@ function filterFiles(globPattern, files, dot) { } return matchingFiles; } -async function action(githubContext, octokit) { +async function action(githubContext) { const params = getActionParams(); validateActionParams(params, core2.error); const eventName = githubContext.eventName; if (params.incremental_files_only === "true" && !isSupportedEvent(eventName)) { - params.files = params.files || "**"; + params.files = params.files || defaultGlob; core2.warning("Unable to determine which files have changed, checking files: " + params.files); params.incremental_files_only = "false"; } - params.files = params.files || (params.incremental_files_only !== "true" ? "**" : ""); + params.files = params.files || (params.incremental_files_only !== "true" ? defaultGlob : ""); const dot = !!checkDotMap[params.check_dot_files]; const context = { githubContext, - github: octokit, files: params.files, useEventFiles: params.incremental_files_only === "true", dot @@ -79038,20 +72889,11 @@ function normalizeFiles(files) { // src/main.ts var import_util56 = require("util"); -function getGithubToken() { - const t0 = (0, import_core4.getInput)("github_token", { required: true }); - if (t0[0] !== "$") { - return t0 !== "undefined" ? t0 : void 0; - } - return process.env[t0.slice(1)] || void 0; -} async function run() { try { (0, import_core4.info)("cspell-action"); const githubContext = new import_context.Context(); - const githubToken = getGithubToken(); - (0, import_assert20.default)(githubToken, "GITHUB_TOKEN is required."); - await action(githubContext, (0, import_github2.getOctokit)(githubToken)); + await action(githubContext); (0, import_core4.info)("Done."); return void 0; } catch (error3) { diff --git a/action/node_modules/@cspell/dict-public-licenses/README.md b/action/node_modules/@cspell/dict-public-licenses/README.md deleted file mode 100644 index 9fdc9539f..000000000 --- a/action/node_modules/@cspell/dict-public-licenses/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# CSpell Common Public Licenses Dictionary - -Common Public Licenses dictionary for cspell. - -This is a pre-built dictionary for use with cspell. - -## Requirements - -| Tool | Version | -| ------------------------------------------------------------------------------------------------------------------------------------ | ------- | -| [cspell](https://github.com/streetsidesoftware/cspell) | `>= 6` | -| [Code Spell Checker - Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) | `>= 2` | - -## Installation - -Global Install and add to cspell global settings. - -```sh -npm install -g @cspell/dict-public-licenses -cspell link add @cspell/dict-public-licenses -``` - -## Uninstall from cspell - -```sh -cspell link remove @cspell/dict-public-licenses -``` - -## Manual Installation - -Manual installation is useful if you want to include this dictionary as part of your CI/CD lint process. - -``` -npm i @cspell/dict-public-licenses -``` - -The `cspell-ext.json` file in this package should be added to the import section in your `cspell.json` file. - -```javascript -{ - // … - "import": ["@cspell/dict-public-licenses/cspell-ext.json"], - // … -} -``` - -# Source - -[spdx-license-ids: a list of SPDX license identifiers](https://github.com/jslicense/spdx-license-ids) - -# Dictionary Development - -See: [How to Create a New Dictionary](https://github.com/streetsidesoftware/cspell-dicts#how-to-create-a-new-dictionary) - -## License - -MIT - -> Some packages may have other licenses included. diff --git a/action/node_modules/@cspell/dict-public-licenses/package.json b/action/node_modules/@cspell/dict-public-licenses/package.json index 85187ac82..930614334 100644 --- a/action/node_modules/@cspell/dict-public-licenses/package.json +++ b/action/node_modules/@cspell/dict-public-licenses/package.json @@ -1,6 +1,6 @@ { "name": "@cspell/dict-public-licenses", - "version": "2.0.6", + "version": "2.0.5", "description": "Common Public Licenses dictionary for cspell.", "private": false, "publishConfig": { @@ -17,7 +17,7 @@ "checksum": "cspell-tools-cli shasum -c checksum.txt", "compile": "cspell-tools-cli build", "conditional-build": "pnpm run --silent checksum || pnpm run build && pnpm run gen-checksum", - "test-dict": "cspell -v -c ./cspell-ext.json --locale=en --languageId=* --file-list source-files.txt", + "test-dict": "cspell -v -c ./cspell-ext.json --local=en --languageId=* --file-list source-files.txt", "gen-checksum": "cspell-tools-cli shasum -u checksum.txt --list-file source-files.txt source-dependencies.txt", "test": "pnpm run test-dict", "prepublishOnly": "echo pre-publish", @@ -41,7 +41,7 @@ }, "homepage": "https://github.com/streetsidesoftware/cspell-dicts/blob/main/dictionaries/public-licenses#readme", "devDependencies": { - "spdx-license-ids": "^3.0.17" + "spdx-license-ids": "^3.0.16" }, "files": [ "public-licenses.txt.gz", @@ -49,5 +49,5 @@ "*.js", "*.d.ts" ], - "gitHead": "6ef94d019ff0de7963b85bc642ba93cf8a0c23ac" + "gitHead": "ba5eeaa193322f92924e448eefe902d9830f3078" } diff --git a/action/node_modules/@cspell/dict-public-licenses/public-licenses.txt.gz b/action/node_modules/@cspell/dict-public-licenses/public-licenses.txt.gz index b5fe430a3656cc6537405941cbe1be130d087060..a77e5f28335ed45c0a238f5ba8729fffd29f20ac 100644 GIT binary patch literal 3194 zcmV-=42AO_iwFP!000001C3c-ciKD>zSpmK&)IAB1e5e__s-ZrXl>(S)1nals zA$POLCARGm+l_!MRH2hk6T>aVtxtD`YyA}EW#}mat?p=9Waoh-X~r5ZwPrf1pN{H% zH}paqIE>|oc0}wT_BJ$hdqDRr%XTa|5j(UO*e+BBe+W3v8b~kcxoco)pk^OEEvPFF zqG1`e>zX(9dpbSLyLuRPS2yR3L&uakrQ|d%6Tsz;Yf7!VyUzwLvvYMcc-xefV8q_% z6_YhI&RCj?g4h*Hj@&T)%N?9_P|dxnXsxML5nEPAkr+lNU%!3@+=#kSN)7a21A&HI zW@Al~eYq&`XK*J#p%dz4tc7`^V7({M5I$bfjCDT+f31~jI_%R4)NUFnc5NfdVqD>5 zoXN53F&xX@Ebzt}zf8qmBj4 ztZ2^T2J4C!)DKr;Q5UXO(B{+$IHw}z*Qp!-44NrQ5 zM`bG$_ z)f{`M2N{YJ6zfKEmQ&}*B)XA{<|mho%(9lR*{S0=298qlV@{V~x)LVdg4v~D1)Nlt z=ByY?mp$yzt!rzl=Hh^_gwkPkl$Rv!I?Q7tw%s_pkH)x$`h zUJZObccU839dv`a_qH1uZe+EQ$wv0NHrCK8y-7y)7#ZVwjY^)-Z{bjWxCql>&(Ze0 zUi!_tFN+Rc7dPXbo|Nl)iu95`J4)LrJsa<|T-3Gr&9CM6+UO;sE&{Iso^d4T9&=~q zd4>%%`sX#YE?VoNopk_KG2aAq{pj_;^zH@gB7_5IMmAzJfa98{0n{~%RUECrrv8@t z5Ht`c*sSQcb8|!&ggCsx6eBTkTNPZOyA15NUU`b>Rfp*0!p_TuD0F!3DS{F#WNXtk zR%@=Cuq;I<>|}jd(z(*xKwuOCTrU6Nwg29Q|A(vo<4gVzH~00OJq~kj?&85^ez}lG zVbJh)cQR3d=A%2J%=5Mo&6!3OPp(95(6UHNX_($jr7SS6_sY74c(jJYIbRY-mc{uE zSzW)D5~eBPN@iKqK=2Hgq|-v6>e2<=NQ$b#;XJu>ypuYhwv-lL=9~2Z>YBAf+>M7t z_mA9=xMfrG{}g2Icvw^ga_lgNlw!UxI+IGw!<7>O^|0ug(9~>Q*06&VDL|~>b`3O` zbig9>jH%6Kxb9vwU=Bv+GQ-YDb*C1La?Z(O=97i{o!YiT7SX~Ek#0Rry-mlTT(XEk z%Y-BgE)Q)DCnkO^_o6hwbpg*bXYq|iI-yEsCamp zi4G$?nXhpcotE{cHur;kP zgY5vV!KY}6zg6JtFlHQ!G)FId)>>>%B|ku|9B7PjZ#C3k#luA7G4{Q9<^Cd%tUf`z z4aZ+0kD{u|L^3?v1FUY_)y$`r*wtj^Y{_cwsO&@CV`ahdgU+{}O)$V%eOqFoH9Bpw zf}0QYAr=pdI>!d8;7sf^wFsm@C4E_i017TK6S^SfYgXWEGEJ%Nz@>pu z?ik!OJyJjO4Sr52XYefyRu1_VtpoCnzJW+H2m;W;2?}sD5%)KOOa-UiSyj=&jcw@$mPI@eGIAgi711jmtH_ z>cEusC?Vd950RJqy$AH`r^$piC2;F*sI_1Kn8%x@7VkK1;O4GziYc6F*dI^>H)>fx zh(J8yi60PL8LsD}@TTKKojMi+Z0dFu#E70K+BX##tY${Q^ss`@SzpU^0$j2iby8O6 zjPIKdE2#D7j(CEI*Crxm6jI%sRdi9pb|-M6u+Te2Aplf-!Qn#u%`zoG+ytpS{b^1m zs-9ZK*yWKx$-F3-0(*W`yu@(mAWPVgD8kj+sN;@Ou&{~mub!2s@*(`7QM3f$VNpB5 zHygn>SG(cpf%|pwJ`D0Bin|M#rVwKIF~s6NJMmSK;*UbAFA7+{Jmg%!&h(S;$T_Xi zO~NsMCB7&sd?)mUTt~z&o3e&N{5E3+z7uvpPp=a!Ej0LY;lok`dlki+;)C84AY@HQ z)S(MzFhL}0l)zbfm?{~r1`8Z)k7pB3du(f}TjQ9a+wsfGrcy+uar}X|b`{Z`5U6p{ zKmk4|1feRr+L$>Abq&5WU`iH%1%o)m0^1{CZO#jVzAFm+5P{<^fW1Nh*+>$UC&7Te z@*P>L7ms!S;<0v|7{AKe@f=0eY}PKMaA(7GJ9p&LqH;bUhuo*7m zq~k+f-(=}v(IYM4evX-VWyKJiI!J6-!BRGWddB)wY1X$jAI-q2f-zWf?YR&hDypYu zkkzAUkM0dp19hnHV-1jXK|}38Kkd@D=Qu=YU+Rne;q^}55$ z3d8Np(^R*J=K2e3u4jxkh`M_7dCYOqT+3=aa1`Mz>bPD7;0VSDZ3ucp*AO*a2pJv} z)z$C`38MuTHGT-r3bHcI=x6nMXN14CfUnshBv;_L!!kQBN|{4qS0s=;mGRSfc@C^_<+n;0Z+>-`0OB~g1|(%JYuK)b-Ug`7T=C5g@u1s128=r{G) z4mavervqyGF{Hb(6Vg|R%_}aUu@CVGiPxJS+qq%N-0BrL4qYUw=7M+tVghUu6yNhUu@js1+ zYsKeY5wEw1-yC_a8bFzOMESXn;?3G8KVd~b&0hQ|a`H5Fu;BkuU+(^f7!C#eiMxl% zlsv@?nAsC+;3OKRdOnHt09O(|iNOA-$Wz^lijn8Z1Pdk$`l*QP#KS!Q)P0WejET0U zUp^~SKSw9n4$mpywFkrSm!{;I%kqsp?**s}2qWkU&`mSte|vaOUNDN^;S&u8S-XEkrHG{*%4Y&wJ~`3kcdb!=B7J03 z@V90x!7)UKd8?a{qy={f_Sxr<^pXE*wX`W2Nq>tf-RI=JNSZG>e0stgma&~-YO(v* z?3Em%HQbDf;(B-FP_$K6HblVohi=!o_j~zvrlV`k)X)GSS;PQ%0M*w4v4OQAZyRt0 zF8eJ~8ng#|o6G8QPawHs|BxIes+>k%30hs=hCxh@np#BXz$T`6KNNlE`QU?B169{c zDul0!9D?r#ez2?`yoqNMe3rGqGwRiwFP!000001C3ctliE77-uJIKRd=na0g{~L?u-o#iEJDUnVjr|EkK1W z`AYH(oL_&dC1Y$RllNVy`{{0df4S9$|M@F7H7`qIl`75u{&nKKCOI?wFR6&BOJM;X zr&$C+Kp}`S3c=hZGI|)beC+u6;j!gjKS6nsQb)+>;gKj=UV4%yC9_<6&17Jo4D4}~ z(lme|rkKc~G$oS<2;wxzAV@ZJP12|XWY5ZS$MO>dX)wn!sY}=>1SyUn&2Ew(hX-R1 z+(@$LIf=wUSXPq27;eq)biSJ3>PHaljJ=fHKv1wyX-*22Lr|z4_mqquA3wD)5~eQM zg`~>ZEZ3s8tzl7K>SK$yR@H(*u&-*S4Tqp)MIj^vHOr5@Wxh*SIJ!bNsJbS`({T-f zu8$&b85w=~@&y8Ig|SZQfv>D5kd*6ksL9LEHw89>+hv+XWJJP}HHJH3{5yd}Ouq^_ z)TPXFX@|NWg1;K4n)K_r3M8;ri(O-dl0!pSa;Ar>r*tUOX+npZSQTO~a`v{mM3GpO z!ZLj!RODRVcO+3HX>x4zzqOO`ZO3vb+{K8|wBY zKReBb{zQK0>NqNGx#Y!Ay$!wmFj>!%)fI1or`5~}LGi+I3kZ22L4K0zwdBQtSJ#E? ztq*xhlZX_;yuNaT3McVi;$^C=bVJ9;C*?=4?;?8crVJ< zaxs=yA~!>cJm1TcXQfY=3paqj6Q)}fw(Z3*W&Bh%Cz!G$9>Xcq8m64Am>oMEa3lVnk{ zqGEC=_0HEo-5r;ZY@@(a*TpcPn6B8J(4Mf(TH!-iaT0c**Rv$-b~(`KWI-PfyO0ILE_iv+M5~&w z->A0V?o=NK^5m}K`@XlTLEp2W-}i3r1`{`!wZW7P=Ieg4`m@qa$zVPPlW{*rCy&V2 zv@d_W36p-w!Ct)|`kQgz2AxI`ZpKI7sVJh3bdoH{18!> z9hnyLFc5r+S-7OMWj&2=-ox=tJHBbBR}extTPI}oL_5%y?u7A8NPDoYxfQb>99o`x z&|BuqO}1P?7;j0;@?!^xROm*9$$Ck?UhEOCC&cL+Owf}IRaG-9b|r^!wWN;tNl5Vm zOs_X!iozAIs3RziA>0OJg=Wuv7FHH`Z?~LCMQXgwT{C6pMP0Anw?4|iI~n>yH!r2{ zpZv}<`GZgLzBlp*7vtW!82V#x9E6_Naq|)e{#xgTTpfa{S5fPn^xcxM6t#hOze1|2 z8Y%3BWHrz4M87Ob7D~6w?@*;BzHX>8rsT$uujy<7p;q#8MrO>b(glS2Vk|2&%kmS~ z5H>pw5t(PyQ&)L33o+fks1YU63_pWc;5M!oe$Cda9`u$~2+^8i@)fTADT=Zvg-BV$ z|4+g!q?lX=gtredW&) z%r_L~OlX*MeQ1o5Wb>-_!W?0)S;b$KKHre*{#^Twgg`rPmjelYO)^L4nc1Ee*FL-BrQ+Am9-adY>;_;tq9si+6Z)|VM z4s+kzC+}4}`BSZvKlJF0?M>NX?wg&C(+n2$d6QCD_;d>%yontw{HDKI$M@Dr-#UmZ zEX3YAKYme)0%=p8IV?28_pl)gUKw~w$>_`HPc8of_;zuG;C0}@oJ+}fTptJ(FG3!S zRnl9Q$$A-(WgINL{EfeqLXsyeaPg{mx#^!4uVebu81k(-w)LdDsxBMjg>Bm`egv<8 z7+#iM;^$gvi;nS7Bo%%++Ey|9UDM=jxPG~I!DZ0=z|VDG(=O**&6{y-V!ByI|G*P7 zCtj9oj@^JKQP(Qh4DXyCc0R{)8k1V=3@pPfEN7v6=ef_fk{q|tY)b<`H*5KIfr%LW z5`mj!Sf-dLCU;pZvk(*c!9`gzU4XkSVs;Su36@nUcAk!5Dff!}TBfj+l52c`-jKTx zm(udmQxb&f(m}mrhTo8D^J_|paF^28G+Bo5HCrX{l~wSSnUw36xjMfwV|7!*H})@f z<(q8mk%XHd0UA(D?t1oo0u;{y9c*>_X0NxJ(ZD{svrh))C->#)8t7`30!`hvYTW0V zV&mx>oH;%DepvK8uO6I_xA01cd{T;MwYA0Hbaf$;!qm;}8h~wo? zcWcJ!Y(cVY0dYz(xt$QV8zF9;k(T4vpc@zOJi0g|xVz$vc)F$#ZzzS>xnY`_8@jn& zZ&mjWX3S1}DGTf~(^g0_75Y$d!8OErdgPoKyz$LZy+SNxjj`fb=v4->vdSo{AZ|(~ zF;;v9esou1>;;PG>Q@}^=^?{2V$DQ6rm~N-kQ=cQ7`4#ru_Za6OyV~33 zX^)HNUUv1>T&C0P%Ka#6E;Fpdb7Cx$1uK>0PW3|=yfxAwqL4-{agC)?c(oP&_5%LaNX40HNK1Zh45X^O%$2T4qGYbBitAjk@*Q;>vF(gm z#mbUQ8zUq)<~@B^%GiVE*>?(U6r&AbxSn_LVFce(iph<+<*k=Feti4@-;YgMf{W1O z_Fq5oP??sw#aO2l(-o7^!$(--HMhQAaqBD~aRloOBO+^b>0sULE|3L3@fPyTbu0^K z0c49MnR@DqU(u*V<5q{ux1f+MQcNEpd!m@gmxGRoPdzjrcMs4MkMA!Fy7*&}56kypI+PBSixiixrV1g*xMDjVQfMQn=mD>n$M>brR0ShU;q0S@DfuU>gQ&*oG97%esw4 zek3v1!U6^&u5pO%dPCN923sj|{Fl>mcX+QjnrD5C|HwYxD?W9K&1#GI9O_GLVJpiv z*7akRZPu$8eqcxED`6wUvFRnILXS%o3PmEo7`uUSvke}I!S@>D-U2|v| zwl{&FT&pwu+=~PJl-$BUDaGVE^G|zl*kJ?>9mn0jqIP8LZm>^~A9;Qv`HS(WIzi{{ zNq)9Ni99~wQoq%WAa8UDh1l;arcdx6=d!ShLGdE$Vqd}UUI%=^r8on(tYo{ExhdGc zmalNgRzd11&cY53vZ+gD;b2cYrA}}xYNjg?F|*$&*q-n?|(G^Kh!C1R?Q*+078=2=6.0.0'} @@ -1317,6 +1339,14 @@ packages: '@octokit/openapi-types': 20.0.0 dev: false + /@octokit/webhooks-schemas@7.3.2: + resolution: {integrity: sha512-v7vOoE84ZyG0MPS7YmB76zmI8cT1OAwyep2RNWwrKp53S1jloktM9wE5Y3wGjPhBxcoWe9EcvDKoMVveBmb5Aw==} + dev: false + + /@octokit/webhooks-types@7.3.2: + resolution: {integrity: sha512-JWOoOgtWTFnTSAamPXXyjTY5/apttvNxF+vPBnwdSu5cj5snrd7FO0fyw4+wTXy8fHduq626JjhO+TwCyyA6vA==} + dev: false + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -1527,7 +1557,6 @@ packages: resolution: {integrity: sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==} dependencies: undici-types: 5.26.5 - dev: true /@types/semver@7.5.8: resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} @@ -4039,7 +4068,6 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - dev: true /undici@5.28.3: resolution: {integrity: sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==}