mirror of
				https://gitea.com/actions/setup-node.git
				synced 2025-10-29 15:52:42 +08:00 
			
		
		
		
	Compare commits
	
		
			8 Commits
		
	
	
		
			test-macos
			...
			v6.0.0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					2028fbc5c2 | ||
| 
						 | 
					13427813f7 | ||
| 
						 | 
					89d709d423 | ||
| 
						 | 
					cd2651c462 | ||
| 
						 | 
					a0853c2454 | ||
| 
						 | 
					b7234cc9fe | ||
| 
						 | 
					d7a11313b5 | ||
| 
						 | 
					5e2628c959 | 
							
								
								
									
										2
									
								
								.github/workflows/basic-validation.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/basic-validation.yml
									
									
									
									
										vendored
									
									
								
							@@ -16,4 +16,4 @@ jobs:
 | 
				
			|||||||
    name: Basic validation
 | 
					    name: Basic validation
 | 
				
			||||||
    uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main
 | 
					    uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main
 | 
				
			||||||
    with:
 | 
					    with:
 | 
				
			||||||
      node-version: '20.x'
 | 
					      node-version: '24.x'
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.github/workflows/check-dist.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/check-dist.yml
									
									
									
									
										vendored
									
									
								
							@@ -16,4 +16,4 @@ jobs:
 | 
				
			|||||||
    name: Check dist/
 | 
					    name: Check dist/
 | 
				
			||||||
    uses: actions/reusable-workflows/.github/workflows/check-dist.yml@main
 | 
					    uses: actions/reusable-workflows/.github/workflows/check-dist.yml@main
 | 
				
			||||||
    with:
 | 
					    with:
 | 
				
			||||||
      node-version: '20.x'
 | 
					      node-version: '24.x'
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										101
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										101
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							@@ -18,10 +18,10 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
        node-version: [18, 20, 22]
 | 
					        node-version: [20, 22, 24]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Clean global cache
 | 
					      - name: Clean global cache
 | 
				
			||||||
        run: npm cache clean --force
 | 
					        run: npm cache clean --force
 | 
				
			||||||
      - name: Setup Node
 | 
					      - name: Setup Node
 | 
				
			||||||
@@ -41,10 +41,10 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
        node-version: [18, 20, 22]
 | 
					        node-version: [20, 22, 24]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Install pnpm
 | 
					      - name: Install pnpm
 | 
				
			||||||
        uses: pnpm/action-setup@v4
 | 
					        uses: pnpm/action-setup@v4
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@@ -74,14 +74,14 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
        node-version: [18, 20]
 | 
					        node-version: [20, 22, 24]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Yarn version
 | 
					      - name: Yarn version
 | 
				
			||||||
        run: yarn --version
 | 
					        run: yarn --version
 | 
				
			||||||
      - name: Generate yarn file
 | 
					      - name: Generate yarn file
 | 
				
			||||||
        run: yarn install
 | 
					        run: yarn install --ignore-engines
 | 
				
			||||||
      - name: Remove dependencies
 | 
					      - name: Remove dependencies
 | 
				
			||||||
        shell: pwsh
 | 
					        shell: pwsh
 | 
				
			||||||
        run: Remove-Item node_modules -Force -Recurse
 | 
					        run: Remove-Item node_modules -Force -Recurse
 | 
				
			||||||
@@ -106,10 +106,10 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
        node-version: [18, 20, 22]
 | 
					        node-version: [20, 22, 24]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Update yarn
 | 
					      - name: Update yarn
 | 
				
			||||||
        run: yarn set version 3.6.4
 | 
					        run: yarn set version 3.6.4
 | 
				
			||||||
      - name: Yarn version
 | 
					      - name: Yarn version
 | 
				
			||||||
@@ -139,11 +139,11 @@ jobs:
 | 
				
			|||||||
    name: Test yarn subprojects
 | 
					    name: Test yarn subprojects
 | 
				
			||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        node-version: [18, 20, 22]
 | 
					        node-version: [20, 22, 24]
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: prepare sub-projects
 | 
					      - name: prepare sub-projects
 | 
				
			||||||
        run: __tests__/prepare-yarn-subprojects.sh yarn1
 | 
					        run: __tests__/prepare-yarn-subprojects.sh yarn1
 | 
				
			||||||
@@ -166,11 +166,11 @@ jobs:
 | 
				
			|||||||
    name: Test yarn subprojects all locally managed
 | 
					    name: Test yarn subprojects all locally managed
 | 
				
			||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        node-version: [18, 20, 22]
 | 
					        node-version: [20, 22, 24]
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: prepare sub-projects
 | 
					      - name: prepare sub-projects
 | 
				
			||||||
        run: __tests__/prepare-yarn-subprojects.sh keepcache keepcache
 | 
					        run: __tests__/prepare-yarn-subprojects.sh keepcache keepcache
 | 
				
			||||||
@@ -193,11 +193,11 @@ jobs:
 | 
				
			|||||||
    name: Test yarn subprojects some locally managed
 | 
					    name: Test yarn subprojects some locally managed
 | 
				
			||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        node-version: [18, 20, 22]
 | 
					        node-version: [20, 22, 24]
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: prepare sub-projects
 | 
					      - name: prepare sub-projects
 | 
				
			||||||
        run: __tests__/prepare-yarn-subprojects.sh global
 | 
					        run: __tests__/prepare-yarn-subprojects.sh global
 | 
				
			||||||
@@ -220,11 +220,11 @@ jobs:
 | 
				
			|||||||
    name: Test yarn subprojects managed by git
 | 
					    name: Test yarn subprojects managed by git
 | 
				
			||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        node-version: [18, 20, 22]
 | 
					        node-version: [20, 22, 24]
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: prepare sub-projects
 | 
					      - name: prepare sub-projects
 | 
				
			||||||
        run: /bin/bash __tests__/prepare-yarn-subprojects.sh keepcache
 | 
					        run: /bin/bash __tests__/prepare-yarn-subprojects.sh keepcache
 | 
				
			||||||
@@ -243,3 +243,62 @@ jobs:
 | 
				
			|||||||
          cache-dependency-path: |
 | 
					          cache-dependency-path: |
 | 
				
			||||||
            sub2/*.lock
 | 
					            sub2/*.lock
 | 
				
			||||||
            sub3/*.lock
 | 
					            sub3/*.lock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  node-npm-packageManager-auto-cache:
 | 
				
			||||||
 | 
					    name: Test auto cache with top-level packageManager
 | 
				
			||||||
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
 | 
					    strategy:
 | 
				
			||||||
 | 
					      fail-fast: false
 | 
				
			||||||
 | 
					      matrix:
 | 
				
			||||||
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
 | 
					        node-version: [20, 22, 24]
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
 | 
					      - name: Create package.json with packageManager field
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          echo '{ "name": "test-project", "version": "1.0.0", "packageManager": "npm@8.0.0" }' > package.json
 | 
				
			||||||
 | 
					      - name: Clean global cache
 | 
				
			||||||
 | 
					        run: npm cache clean --force
 | 
				
			||||||
 | 
					      - name: Setup Node with caching enabled
 | 
				
			||||||
 | 
					        uses: ./
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          node-version: ${{ matrix.node-version }}
 | 
				
			||||||
 | 
					      - name: Install dependencies
 | 
				
			||||||
 | 
					        run: npm install
 | 
				
			||||||
 | 
					      - name: Verify node and npm
 | 
				
			||||||
 | 
					        run: __tests__/verify-node.sh "${{ matrix.node-version }}"
 | 
				
			||||||
 | 
					        shell: bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  node-npm-devEngines-auto-cache:
 | 
				
			||||||
 | 
					    name: Test auto cache with devEngines.packageManager
 | 
				
			||||||
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
 | 
					    strategy:
 | 
				
			||||||
 | 
					      fail-fast: false
 | 
				
			||||||
 | 
					      matrix:
 | 
				
			||||||
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
 | 
					        node-version: [20, 22, 24]
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
 | 
					      - name: Create package.json with devEngines field
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          echo '{
 | 
				
			||||||
 | 
					            "name": "test-project",
 | 
				
			||||||
 | 
					            "version": "1.0.0",
 | 
				
			||||||
 | 
					            "devEngines": {
 | 
				
			||||||
 | 
					              "packageManager": {
 | 
				
			||||||
 | 
					                "name": "npm",
 | 
				
			||||||
 | 
					                "onFail": "error"
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          }' > package.json
 | 
				
			||||||
 | 
					      - name: Clean global cache
 | 
				
			||||||
 | 
					        run: npm cache clean --force
 | 
				
			||||||
 | 
					      - name: Setup Node with caching enabled
 | 
				
			||||||
 | 
					        uses: ./
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          node-version: ${{ matrix.node-version }}
 | 
				
			||||||
 | 
					      - name: Install dependencies
 | 
				
			||||||
 | 
					        run: npm install
 | 
				
			||||||
 | 
					      - name: Verify node and npm
 | 
				
			||||||
 | 
					        run: __tests__/verify-node.sh "${{ matrix.node-version }}"
 | 
				
			||||||
 | 
					        shell: bash
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								.github/workflows/proxy.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								.github/workflows/proxy.yml
									
									
									
									
										vendored
									
									
								
							@@ -25,15 +25,15 @@ jobs:
 | 
				
			|||||||
    env:
 | 
					    env:
 | 
				
			||||||
      https_proxy: http://squid-proxy:3128
 | 
					      https_proxy: http://squid-proxy:3128
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Clear tool cache
 | 
					      - name: Clear tool cache
 | 
				
			||||||
        run: rm -rf $RUNNER_TOOL_CACHE/*
 | 
					        run: rm -rf $RUNNER_TOOL_CACHE/*
 | 
				
			||||||
      - name: Setup node 14
 | 
					      - name: Setup node 24
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: 14.x
 | 
					          node-version: 24.x
 | 
				
			||||||
      - name: Verify node and npm
 | 
					      - name: Verify node and npm
 | 
				
			||||||
        run: __tests__/verify-node.sh 14
 | 
					        run: __tests__/verify-node.sh 24
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  test-bypass-proxy:
 | 
					  test-bypass-proxy:
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
@@ -41,12 +41,12 @@ jobs:
 | 
				
			|||||||
      https_proxy: http://no-such-proxy:3128
 | 
					      https_proxy: http://no-such-proxy:3128
 | 
				
			||||||
      no_proxy: api.github.com,github.com,nodejs.org,registry.npmjs.org,*.s3.amazonaws.com,s3.amazonaws.com
 | 
					      no_proxy: api.github.com,github.com,nodejs.org,registry.npmjs.org,*.s3.amazonaws.com,s3.amazonaws.com
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Clear tool cache
 | 
					      - name: Clear tool cache
 | 
				
			||||||
        run: rm -rf $RUNNER_TOOL_CACHE/*
 | 
					        run: rm -rf $RUNNER_TOOL_CACHE/*
 | 
				
			||||||
      - name: Setup node 11
 | 
					      - name: Setup node 24
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: 11
 | 
					          node-version: 24
 | 
				
			||||||
      - name: Verify node and npm
 | 
					      - name: Verify node and npm
 | 
				
			||||||
        run: __tests__/verify-node.sh 11
 | 
					        run: __tests__/verify-node.sh 24
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,7 +14,7 @@ jobs:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checking out
 | 
					      - name: Checking out
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v5
 | 
				
			||||||
      - name: Publish
 | 
					      - name: Publish
 | 
				
			||||||
        id: publish
 | 
					        id: publish
 | 
				
			||||||
        uses: actions/publish-immutable-action@v0.0.4
 | 
					        uses: actions/publish-immutable-action@v0.0.4
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,7 +22,7 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Update the ${{ env.TAG_NAME }} tag
 | 
					      - name: Update the ${{ env.TAG_NAME }} tag
 | 
				
			||||||
        uses: actions/publish-action@v0.3.0
 | 
					        uses: actions/publish-action@v0.4.0
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          source-tag: ${{ env.TAG_NAME }}
 | 
					          source-tag: ${{ env.TAG_NAME }}
 | 
				
			||||||
          slack-webhook: ${{ secrets.SLACK_WEBHOOK }}
 | 
					          slack-webhook: ${{ secrets.SLACK_WEBHOOK }}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										70
									
								
								.github/workflows/versions.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										70
									
								
								.github/workflows/versions.yml
									
									
									
									
										vendored
									
									
								
							@@ -17,10 +17,10 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
        node-version: [18, 20, 22]
 | 
					        node-version: [20, 22, 24]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Node
 | 
					      - name: Setup Node
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@@ -34,10 +34,10 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest-large]
 | 
				
			||||||
        node-version: [lts/dubnium, lts/erbium, lts/fermium, lts/*, lts/-1]
 | 
					        node-version: [lts/dubnium, lts/erbium, lts/fermium, lts/*, lts/-1]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Node
 | 
					      - name: Setup Node
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@@ -56,7 +56,7 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
        node-version:
 | 
					        node-version:
 | 
				
			||||||
          [
 | 
					          [
 | 
				
			||||||
            '20-v8-canary',
 | 
					            '20-v8-canary',
 | 
				
			||||||
@@ -64,7 +64,7 @@ jobs:
 | 
				
			|||||||
            '20.0.0-v8-canary20221101e50e45c9f8'
 | 
					            '20.0.0-v8-canary20221101e50e45c9f8'
 | 
				
			||||||
          ]
 | 
					          ]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Node
 | 
					      - name: Setup Node
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@@ -81,10 +81,10 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
        node-version: [20-nightly, 21-nightly, 18.0.0-nightly]
 | 
					        node-version: [20-nightly, 25-nightly, 24.0.0-nightly]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Node
 | 
					      - name: Setup Node
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@@ -101,10 +101,10 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
        node-version: [20.0.0-rc.1, 18.0.0-rc.2, 19.0.0-rc.0]
 | 
					        node-version: [20.0.0-rc.1, 22.14.0-rc.1, 24.0.0-rc.4]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Node
 | 
					      - name: Setup Node
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@@ -121,10 +121,10 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
        node-version: [18.20.0, 20.10.0, 22.0.0]
 | 
					        node-version: [20.10.0, 22.0.0, 24.9.0]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Node
 | 
					      - name: Setup Node
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@@ -138,10 +138,10 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
        node-version: [18, 20, 22]
 | 
					        node-version: [20, 22, 24]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Node and check latest
 | 
					      - name: Setup Node and check latest
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@@ -156,57 +156,57 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
        node-version-file:
 | 
					        node-version-file:
 | 
				
			||||||
          [.nvmrc, .tool-versions, .tool-versions-node, package.json]
 | 
					          [.nvmrc, .tool-versions, .tool-versions-node, package.json]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup node from node version file
 | 
					      - name: Setup node from node version file
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version-file: '__tests__/data/${{ matrix.node-version-file }}'
 | 
					          node-version-file: '__tests__/data/${{ matrix.node-version-file }}'
 | 
				
			||||||
      - name: Verify node
 | 
					      - name: Verify node
 | 
				
			||||||
        run: __tests__/verify-node.sh 20
 | 
					        run: __tests__/verify-node.sh 24
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  version-file-volta:
 | 
					  version-file-volta:
 | 
				
			||||||
    runs-on: ${{ matrix.os }}
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup node from node version file
 | 
					      - name: Setup node from node version file
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version-file: '__tests__/data/package-volta.json'
 | 
					          node-version-file: '__tests__/data/package-volta.json'
 | 
				
			||||||
      - name: Verify node
 | 
					      - name: Verify node
 | 
				
			||||||
        run: __tests__/verify-node.sh 20
 | 
					        run: __tests__/verify-node.sh 24
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  version-file-volta-extends:
 | 
					  version-file-volta-extends:
 | 
				
			||||||
    runs-on: ${{ matrix.os }}
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup node from node version file
 | 
					      - name: Setup node from node version file
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version-file: '__tests__/data/package-volta-extends.json'
 | 
					          node-version-file: '__tests__/data/package-volta-extends.json'
 | 
				
			||||||
      - name: Verify node
 | 
					      - name: Verify node
 | 
				
			||||||
        run: __tests__/verify-node.sh 20
 | 
					        run: __tests__/verify-node.sh 24
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  node-dist:
 | 
					  node-dist:
 | 
				
			||||||
    runs-on: ${{ matrix.os }}
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
        node-version: [17, 19]
 | 
					        node-version: [17, 19]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Node from dist
 | 
					      - name: Setup Node from dist
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@@ -220,9 +220,9 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest-large]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      # test old versions which didn't have npm and layout different
 | 
					      # test old versions which didn't have npm and layout different
 | 
				
			||||||
      - name: Setup node 0.12.18 from dist
 | 
					      - name: Setup node 0.12.18 from dist
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
@@ -235,7 +235,7 @@ jobs:
 | 
				
			|||||||
  arch:
 | 
					  arch:
 | 
				
			||||||
    runs-on: windows-latest
 | 
					    runs-on: windows-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup node 20 x86 from dist
 | 
					      - name: Setup node 20 x86 from dist
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@@ -250,7 +250,7 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
 | 
				
			||||||
        node-version: [current, latest, node]
 | 
					        node-version: [current, latest, node]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Get node version
 | 
					      - name: Get node version
 | 
				
			||||||
@@ -259,7 +259,7 @@ jobs:
 | 
				
			|||||||
          echo "LATEST_NODE_VERSION=$latestNodeVersion" >> $GITHUB_OUTPUT
 | 
					          echo "LATEST_NODE_VERSION=$latestNodeVersion" >> $GITHUB_OUTPUT
 | 
				
			||||||
        id: version
 | 
					        id: version
 | 
				
			||||||
        shell: bash
 | 
					        shell: bash
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Node
 | 
					      - name: Setup Node
 | 
				
			||||||
        uses: ./
 | 
					        uses: ./
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.licenses/npm/@types/node.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/@types/node.dep.yml
									
									
									
										generated
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: "@types/node"
 | 
					name: "@types/node"
 | 
				
			||||||
version: 20.11.25
 | 
					version: 24.1.0
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: TypeScript definitions for node
 | 
					summary: TypeScript definitions for node
 | 
				
			||||||
homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node
 | 
					homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.licenses/npm/brace-expansion.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/brace-expansion.dep.yml
									
									
									
										generated
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: brace-expansion
 | 
					name: brace-expansion
 | 
				
			||||||
version: 1.1.11
 | 
					version: 1.1.12
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: Brace expansion as known from sh/bash
 | 
					summary: Brace expansion as known from sh/bash
 | 
				
			||||||
homepage: https://github.com/juliangruber/brace-expansion
 | 
					homepage: https://github.com/juliangruber/brace-expansion
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										32
									
								
								.licenses/npm/call-bind-apply-helpers.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/call-bind-apply-helpers.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: call-bind-apply-helpers
 | 
				
			||||||
 | 
					version: 1.0.2
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Helper functions around Function call/apply/bind, for use in `call-bind`
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/call-bind-apply-helpers#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2024 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/dunder-proto.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/dunder-proto.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: dunder-proto
 | 
				
			||||||
 | 
					version: 1.0.1
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: If available, the `Object.prototype.__proto__` accessor and mutator, call-bound
 | 
				
			||||||
 | 
					homepage: https://github.com/es-shims/dunder-proto#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2024 ECMAScript Shims
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/es-define-property.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/es-define-property.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: es-define-property
 | 
				
			||||||
 | 
					version: 1.0.1
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: "`Object.defineProperty`, but not IE 8's broken one."
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/es-define-property#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2024 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/es-errors.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/es-errors.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: es-errors
 | 
				
			||||||
 | 
					version: 1.3.0
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: A simple cache for a few of the JS Error constructors.
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/es-errors#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2024 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/es-object-atoms.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/es-object-atoms.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: es-object-atoms
 | 
				
			||||||
 | 
					version: 1.1.1
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: 'ES Object-related atoms: Object, ToObject, RequireObjectCoercible'
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/es-object-atoms#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2024 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/es-set-tostringtag.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/es-set-tostringtag.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: es-set-tostringtag
 | 
				
			||||||
 | 
					version: 2.1.0
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: A helper to optimistically set Symbol.toStringTag, when possible.
 | 
				
			||||||
 | 
					homepage: https://github.com/es-shims/es-set-tostringtag#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2022 ECMAScript Shims
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: form-data
 | 
					name: form-data
 | 
				
			||||||
version: 2.5.1
 | 
					version: 2.5.5
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: A library to create readable "multipart/form-data" streams. Can be used to
 | 
					summary: A library to create readable "multipart/form-data" streams. Can be used to
 | 
				
			||||||
  submit forms and file uploads to other web applications.
 | 
					  submit forms and file uploads to other web applications.
 | 
				
			||||||
homepage: https://github.com/form-data/form-data#readme
 | 
					homepage:
 | 
				
			||||||
license: mit
 | 
					license: mit
 | 
				
			||||||
licenses:
 | 
					licenses:
 | 
				
			||||||
- sources: License
 | 
					- sources: License
 | 
				
			||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: form-data
 | 
					name: form-data
 | 
				
			||||||
version: 4.0.0
 | 
					version: 4.0.4
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: A library to create readable "multipart/form-data" streams. Can be used to
 | 
					summary: A library to create readable "multipart/form-data" streams. Can be used to
 | 
				
			||||||
  submit forms and file uploads to other web applications.
 | 
					  submit forms and file uploads to other web applications.
 | 
				
			||||||
homepage: https://github.com/form-data/form-data#readme
 | 
					homepage:
 | 
				
			||||||
license: mit
 | 
					license: mit
 | 
				
			||||||
licenses:
 | 
					licenses:
 | 
				
			||||||
- sources: License
 | 
					- sources: License
 | 
				
			||||||
@@ -28,6 +28,6 @@ licenses:
 | 
				
			|||||||
     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
					     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
					     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
				
			||||||
     THE SOFTWARE.
 | 
					     THE SOFTWARE.
 | 
				
			||||||
- sources: Readme.md
 | 
					- sources: README.md
 | 
				
			||||||
  text: Form-Data is released under the [MIT](License) license.
 | 
					  text: Form-Data is released under the [MIT](License) license.
 | 
				
			||||||
notices: []
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/function-bind.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/function-bind.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: function-bind
 | 
				
			||||||
 | 
					version: 1.1.2
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Implementation of Function.prototype.bind
 | 
				
			||||||
 | 
					homepage: https://github.com/Raynos/function-bind
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |+
 | 
				
			||||||
 | 
					    Copyright (c) 2013 Raynos.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in
 | 
				
			||||||
 | 
					    all copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
				
			||||||
 | 
					    THE SOFTWARE.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
 | 
					...
 | 
				
			||||||
							
								
								
									
										33
									
								
								.licenses/npm/get-intrinsic.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								.licenses/npm/get-intrinsic.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: get-intrinsic
 | 
				
			||||||
 | 
					version: 1.3.0
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Get and robustly cache all JS language-level intrinsics at first require
 | 
				
			||||||
 | 
					  time
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/get-intrinsic#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2020 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/get-proto.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/get-proto.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: get-proto
 | 
				
			||||||
 | 
					version: 1.0.1
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Robustly get the [[Prototype]] of an object
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/get-proto#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2025 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/gopd.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/gopd.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: gopd
 | 
				
			||||||
 | 
					version: 1.2.0
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: "`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation."
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/gopd#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2022 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/has-symbols.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/has-symbols.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: has-symbols
 | 
				
			||||||
 | 
					version: 1.1.0
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Determine if the JS environment has Symbol support. Supports spec, or shams.
 | 
				
			||||||
 | 
					homepage: https://github.com/ljharb/has-symbols#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2016 Jordan Harband
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										33
									
								
								.licenses/npm/has-tostringtag.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								.licenses/npm/has-tostringtag.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: has-tostringtag
 | 
				
			||||||
 | 
					version: 1.0.2
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Determine if the JS environment has `Symbol.toStringTag` support. Supports
 | 
				
			||||||
 | 
					  spec, or shams.
 | 
				
			||||||
 | 
					homepage: https://github.com/inspect-js/has-tostringtag#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2021 Inspect JS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/hasown.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/hasown.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: hasown
 | 
				
			||||||
 | 
					version: 2.0.2
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: A robust, ES3 compatible, "has own property" predicate.
 | 
				
			||||||
 | 
					homepage: https://github.com/inspect-js/hasOwn#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) Jordan Harband and contributors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										32
									
								
								.licenses/npm/math-intrinsics.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/math-intrinsics.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: math-intrinsics
 | 
				
			||||||
 | 
					version: 1.1.0
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: ES Math-related intrinsics and helpers, robustly cached.
 | 
				
			||||||
 | 
					homepage: https://github.com/es-shims/math-intrinsics#readme
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) 2024 ECMAScript Shims
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					    copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					    SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										34
									
								
								.licenses/npm/safe-buffer.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								.licenses/npm/safe-buffer.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: safe-buffer
 | 
				
			||||||
 | 
					version: 5.2.1
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Safer Node.js Buffer API
 | 
				
			||||||
 | 
					homepage: https://github.com/feross/safe-buffer
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    The MIT License (MIT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) Feross Aboukhadijeh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					    copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					    furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in
 | 
				
			||||||
 | 
					    all copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
				
			||||||
 | 
					    THE SOFTWARE.
 | 
				
			||||||
 | 
					- sources: README.md
 | 
				
			||||||
 | 
					  text: MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org)
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: semver
 | 
					name: semver
 | 
				
			||||||
version: 7.6.3
 | 
					version: 7.7.2
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: The semantic version parser used by npm.
 | 
					summary: The semantic version parser used by npm.
 | 
				
			||||||
homepage:
 | 
					homepage:
 | 
				
			||||||
							
								
								
									
										6
									
								
								.licenses/npm/undici-types.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								.licenses/npm/undici-types.dep.yml
									
									
									
										generated
									
									
									
								
							@@ -1,15 +1,17 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: undici-types
 | 
					name: undici-types
 | 
				
			||||||
version: 5.26.5
 | 
					version: 7.8.0
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: A stand-alone types package for Undici
 | 
					summary: A stand-alone types package for Undici
 | 
				
			||||||
homepage: https://undici.nodejs.org
 | 
					homepage: https://undici.nodejs.org
 | 
				
			||||||
license: mit
 | 
					license: mit
 | 
				
			||||||
licenses:
 | 
					licenses:
 | 
				
			||||||
- sources: Auto-generated MIT license text
 | 
					- sources: LICENSE
 | 
				
			||||||
  text: |
 | 
					  text: |
 | 
				
			||||||
    MIT License
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) Matteo Collina and Undici contributors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
    of this software and associated documentation files (the "Software"), to deal
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
    in the Software without restriction, including without limitation the rights
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										73
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										73
									
								
								README.md
									
									
									
									
									
								
							@@ -12,13 +12,27 @@ This action provides the following functionality for GitHub Actions users:
 | 
				
			|||||||
- Registering problem matchers for error output
 | 
					- Registering problem matchers for error output
 | 
				
			||||||
- Configuring authentication for GPR or npm
 | 
					- Configuring authentication for GPR or npm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Breaking changes in V6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Caching is now automatically enabled for npm projects when either the `devEngines.packageManager` field or the top-level `packageManager` field in `package.json` is set to `npm`. For other package managers, such as Yarn and pnpm, caching is disabled by default and must be configured manually using the `cache` input.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Breaking changes in V5 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Enabled caching by default with package manager detection if no cache input is provided.
 | 
				
			||||||
 | 
					  > For workflows with elevated privileges or access to sensitive information, we recommend disabling automatic caching by setting `package-manager-cache: false` when caching is not needed for secure operation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Upgraded action from node20 to node24.
 | 
				
			||||||
 | 
					  > Make sure your runner is on version v2.327.1 or later to ensure compatibility with this release. [See Release Notes](https://github.com/actions/runner/releases/tag/v2.327.1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For more details, see the full release notes on the [releases page](https://github.com/actions/setup-node/releases/v5.0.0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Usage
 | 
					## Usage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
See [action.yml](action.yml)
 | 
					See [action.yml](action.yml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<!-- start usage -->
 | 
					<!-- start usage -->
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    # Version Spec of the version to use in SemVer notation.
 | 
					    # Version Spec of the version to use in SemVer notation.
 | 
				
			||||||
    # It also admits such aliases as lts/*, latest, nightly and canary builds
 | 
					    # It also admits such aliases as lts/*, latest, nightly and canary builds
 | 
				
			||||||
@@ -57,6 +71,11 @@ See [action.yml](action.yml)
 | 
				
			|||||||
    # Default: ''
 | 
					    # Default: ''
 | 
				
			||||||
    cache: ''
 | 
					    cache: ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Controls automatic caching for npm. By default, caching for npm is enabled if either the devEngines.packageManager field or the top-level packageManager field in package.json specifies npm and no explicit cache input is provided.
 | 
				
			||||||
 | 
					    # To disable automatic caching for npm, set package-manager-cache to false.
 | 
				
			||||||
 | 
					    # default: true
 | 
				
			||||||
 | 
					    package-manager-cache: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. 
 | 
					    # Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. 
 | 
				
			||||||
    # It will generate hash from the target file for primary key. It works only If cache is specified.  
 | 
					    # It will generate hash from the target file for primary key. It works only If cache is specified.  
 | 
				
			||||||
    # Supports wildcards or a list of file names for caching multiple dependencies.
 | 
					    # Supports wildcards or a list of file names for caching multiple dependencies.
 | 
				
			||||||
@@ -98,10 +117,10 @@ See [action.yml](action.yml)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: 18
 | 
					    node-version: 24
 | 
				
			||||||
- run: npm ci
 | 
					- run: npm ci
 | 
				
			||||||
- run: npm test
 | 
					- run: npm test
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -118,9 +137,9 @@ The `node-version` input supports the Semantic Versioning Specification, for mor
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Examples:
 | 
					Examples:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 - Major versions: `18`, `20`
 | 
					 - Major versions: `22`, `24`
 | 
				
			||||||
 - More specific versions: `10.15`, `16.15.1` , `18.4.0`
 | 
					 - More specific versions: `20.19`, `22.17.1` , `24.8.0`
 | 
				
			||||||
 - NVM LTS syntax: `lts/erbium`, `lts/fermium`, `lts/*`, `lts/-n`
 | 
					 - NVM LTS syntax: `lts/iron`, `lts/jod`, `lts/*`, `lts/-n`
 | 
				
			||||||
 - Latest release: `*` or `latest`/`current`/`node`
 | 
					 - Latest release: `*` or `latest`/`current`/`node`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Note:** Like the other values, `*` will get the latest [locally-cached Node.js version](https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md#nodejs), or the latest version from [actions/node-versions](https://github.com/actions/node-versions/blob/main/versions-manifest.json), depending on the [`check-latest`](docs/advanced-usage.md#check-latest-version) input.
 | 
					**Note:** Like the other values, `*` will get the latest [locally-cached Node.js version](https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md#nodejs), or the latest version from [actions/node-versions](https://github.com/actions/node-versions/blob/main/versions-manifest.json), depending on the [`check-latest`](docs/advanced-usage.md#check-latest-version) input.
 | 
				
			||||||
@@ -135,7 +154,7 @@ It's **always** recommended to commit the lockfile of your package manager for s
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## Caching global packages data
 | 
					## Caching global packages data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The action has a built-in functionality for caching and restoring dependencies. It uses [actions/cache](https://github.com/actions/cache) under the hood for caching global packages data but requires less configuration settings. Supported package managers are `npm`, `yarn`, `pnpm` (v6.10+). The `cache` input is optional, and caching is turned off by default.
 | 
					The action has a built-in functionality for caching and restoring dependencies. It uses [actions/cache](https://github.com/actions/cache) under the hood for caching global packages data but requires less configuration settings. Supported package managers are `npm`, `yarn`, `pnpm` (v6.10+). The `cache` input is optional.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The action defaults to search for the dependency file (`package-lock.json`, `npm-shrinkwrap.json` or `yarn.lock`) in the repository root, and uses its hash as a part of the cache key. Use `cache-dependency-path` for cases when multiple dependency files are used, or they are located in different subdirectories.
 | 
					The action defaults to search for the dependency file (`package-lock.json`, `npm-shrinkwrap.json` or `yarn.lock`) in the repository root, and uses its hash as a part of the cache key. Use `cache-dependency-path` for cases when multiple dependency files are used, or they are located in different subdirectories.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -147,10 +166,10 @@ See the examples of using cache for `yarn`/`pnpm` and `cache-dependency-path` in
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: 20
 | 
					    node-version: 24
 | 
				
			||||||
    cache: 'npm'
 | 
					    cache: 'npm'
 | 
				
			||||||
- run: npm ci
 | 
					- run: npm ci
 | 
				
			||||||
- run: npm test
 | 
					- run: npm test
 | 
				
			||||||
@@ -160,16 +179,30 @@ steps:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: 20
 | 
					    node-version: 24
 | 
				
			||||||
    cache: 'npm'
 | 
					    cache: 'npm'
 | 
				
			||||||
    cache-dependency-path: subdir/package-lock.json
 | 
					    cache-dependency-path: subdir/package-lock.json
 | 
				
			||||||
- run: npm ci
 | 
					- run: npm ci
 | 
				
			||||||
- run: npm test
 | 
					- run: npm test
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Caching for npm dependencies is automatically enabled when your `package.json` contains either `devEngines.packageManager` field or top-level `packageManager` field set to `npm`, and no explicit cache input is provided.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This behavior is controlled by the `package-manager-cache` input, which defaults to `true`. To turn off automatic caching, set `package-manager-cache` to `false`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
 | 
					  with:
 | 
				
			||||||
 | 
					    package-manager-cache: false
 | 
				
			||||||
 | 
					- run: npm ci
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					> If your `package.json` file does not include a `packageManager` field set to `npm`, caching will be disabled unless you explicitly enable it. For workflows with elevated privileges or access to sensitive information, we recommend disabling automatic caching for npm by setting `package-manager-cache: false` when caching is not required for secure operation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Matrix Testing
 | 
					## Matrix Testing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
@@ -178,12 +211,12 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        node: [ 14, 16, 18 ]
 | 
					        node: [ 20, 22, 24 ]
 | 
				
			||||||
    name: Node ${{ matrix.node }} sample
 | 
					    name: Node ${{ matrix.node }} sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup node
 | 
					      - name: Setup node
 | 
				
			||||||
        uses: actions/setup-node@v4
 | 
					        uses: actions/setup-node@v6
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: ${{ matrix.node }}
 | 
					          node-version: ${{ matrix.node }}
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
@@ -197,10 +230,10 @@ jobs:
 | 
				
			|||||||
To get a higher rate limit, you can [generate a personal access token on github.com](https://github.com/settings/tokens/new) and pass it as the `token` input for the action:
 | 
					To get a higher rate limit, you can [generate a personal access token on github.com](https://github.com/settings/tokens/new) and pass it as the `token` input for the action:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
uses: actions/setup-node@v4
 | 
					uses: actions/setup-node@v6
 | 
				
			||||||
with:
 | 
					with:
 | 
				
			||||||
  token: ${{ secrets.GH_DOTCOM_TOKEN }}
 | 
					  token: ${{ secrets.GH_DOTCOM_TOKEN }}
 | 
				
			||||||
  node-version: 20
 | 
					  node-version: 24
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If the runner is not able to access github.com, any Nodejs versions requested during a workflow run must come from the runner's tool cache. See "[Setting up the tool cache on self-hosted runners without internet access](https://docs.github.com/en/enterprise-server@3.2/admin/github-actions/managing-access-to-actions-from-githubcom/setting-up-the-tool-cache-on-self-hosted-runners-without-internet-access)" for more information.
 | 
					If the runner is not able to access github.com, any Nodejs versions requested during a workflow run must come from the runner's tool cache. See "[Setting up the tool cache on self-hosted runners without internet access](https://docs.github.com/en/enterprise-server@3.2/admin/github-actions/managing-access-to-actions-from-githubcom/setting-up-the-tool-cache-on-self-hosted-runners-without-internet-access)" for more information.
 | 
				
			||||||
@@ -238,4 +271,4 @@ Contributions are welcome! See [Contributor's Guide](docs/contributors.md)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## Code of Conduct
 | 
					## Code of Conduct
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:wave: Be nice. See [our code of conduct](CODE_OF_CONDUCT.md)
 | 
					:wave: Be nice. See [our code of conduct](CODE_OF_CONDUCT.md)
 | 
				
			||||||
@@ -114,10 +114,10 @@ describe('run', () => {
 | 
				
			|||||||
        key === State.CachePackageManager
 | 
					        key === State.CachePackageManager
 | 
				
			||||||
          ? inputs['cache']
 | 
					          ? inputs['cache']
 | 
				
			||||||
          : key === State.CachePrimaryKey || key === State.CacheMatchedKey
 | 
					          : key === State.CachePrimaryKey || key === State.CacheMatchedKey
 | 
				
			||||||
          ? yarnFileHash
 | 
					            ? yarnFileHash
 | 
				
			||||||
          : key === State.CachePaths
 | 
					            : key === State.CachePaths
 | 
				
			||||||
          ? '["/foo/bar"]'
 | 
					              ? '["/foo/bar"]'
 | 
				
			||||||
          : 'not expected'
 | 
					              : 'not expected'
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      await run();
 | 
					      await run();
 | 
				
			||||||
@@ -138,10 +138,10 @@ describe('run', () => {
 | 
				
			|||||||
        key === State.CachePackageManager
 | 
					        key === State.CachePackageManager
 | 
				
			||||||
          ? inputs['cache']
 | 
					          ? inputs['cache']
 | 
				
			||||||
          : key === State.CachePrimaryKey || key === State.CacheMatchedKey
 | 
					          : key === State.CachePrimaryKey || key === State.CacheMatchedKey
 | 
				
			||||||
          ? yarnFileHash
 | 
					            ? yarnFileHash
 | 
				
			||||||
          : key === State.CachePaths
 | 
					            : key === State.CachePaths
 | 
				
			||||||
          ? '["/foo/bar"]'
 | 
					              ? '["/foo/bar"]'
 | 
				
			||||||
          : 'not expected'
 | 
					              : 'not expected'
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      await run();
 | 
					      await run();
 | 
				
			||||||
@@ -162,10 +162,10 @@ describe('run', () => {
 | 
				
			|||||||
        key === State.CachePackageManager
 | 
					        key === State.CachePackageManager
 | 
				
			||||||
          ? inputs['cache']
 | 
					          ? inputs['cache']
 | 
				
			||||||
          : key === State.CachePrimaryKey || key === State.CacheMatchedKey
 | 
					          : key === State.CachePrimaryKey || key === State.CacheMatchedKey
 | 
				
			||||||
          ? yarnFileHash
 | 
					            ? yarnFileHash
 | 
				
			||||||
          : key === State.CachePaths
 | 
					            : key === State.CachePaths
 | 
				
			||||||
          ? '["/foo/bar"]'
 | 
					              ? '["/foo/bar"]'
 | 
				
			||||||
          : 'not expected'
 | 
					              : 'not expected'
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
      getCommandOutputSpy.mockImplementationOnce(() => `${commonPath}/npm`);
 | 
					      getCommandOutputSpy.mockImplementationOnce(() => `${commonPath}/npm`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -184,10 +184,10 @@ describe('run', () => {
 | 
				
			|||||||
        key === State.CachePackageManager
 | 
					        key === State.CachePackageManager
 | 
				
			||||||
          ? inputs['cache']
 | 
					          ? inputs['cache']
 | 
				
			||||||
          : key === State.CachePrimaryKey || key === State.CacheMatchedKey
 | 
					          : key === State.CachePrimaryKey || key === State.CacheMatchedKey
 | 
				
			||||||
          ? yarnFileHash
 | 
					            ? yarnFileHash
 | 
				
			||||||
          : key === State.CachePaths
 | 
					            : key === State.CachePaths
 | 
				
			||||||
          ? '["/foo/bar"]'
 | 
					              ? '["/foo/bar"]'
 | 
				
			||||||
          : 'not expected'
 | 
					              : 'not expected'
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      await run();
 | 
					      await run();
 | 
				
			||||||
@@ -207,12 +207,12 @@ describe('run', () => {
 | 
				
			|||||||
        key === State.CachePackageManager
 | 
					        key === State.CachePackageManager
 | 
				
			||||||
          ? inputs['cache']
 | 
					          ? inputs['cache']
 | 
				
			||||||
          : key === State.CacheMatchedKey
 | 
					          : key === State.CacheMatchedKey
 | 
				
			||||||
          ? yarnFileHash
 | 
					            ? yarnFileHash
 | 
				
			||||||
          : key === State.CachePrimaryKey
 | 
					            : key === State.CachePrimaryKey
 | 
				
			||||||
          ? npmFileHash
 | 
					              ? npmFileHash
 | 
				
			||||||
          : key === State.CachePaths
 | 
					              : key === State.CachePaths
 | 
				
			||||||
          ? '["/foo/bar"]'
 | 
					                ? '["/foo/bar"]'
 | 
				
			||||||
          : 'not expected'
 | 
					                : 'not expected'
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      await run();
 | 
					      await run();
 | 
				
			||||||
@@ -237,12 +237,12 @@ describe('run', () => {
 | 
				
			|||||||
        key === State.CachePackageManager
 | 
					        key === State.CachePackageManager
 | 
				
			||||||
          ? inputs['cache']
 | 
					          ? inputs['cache']
 | 
				
			||||||
          : key === State.CacheMatchedKey
 | 
					          : key === State.CacheMatchedKey
 | 
				
			||||||
          ? yarnFileHash
 | 
					            ? yarnFileHash
 | 
				
			||||||
          : key === State.CachePrimaryKey
 | 
					            : key === State.CachePrimaryKey
 | 
				
			||||||
          ? npmFileHash
 | 
					              ? npmFileHash
 | 
				
			||||||
          : key === State.CachePaths
 | 
					              : key === State.CachePaths
 | 
				
			||||||
          ? '["/foo/bar"]'
 | 
					                ? '["/foo/bar"]'
 | 
				
			||||||
          : 'not expected'
 | 
					                : 'not expected'
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      await run();
 | 
					      await run();
 | 
				
			||||||
@@ -267,12 +267,12 @@ describe('run', () => {
 | 
				
			|||||||
        key === State.CachePackageManager
 | 
					        key === State.CachePackageManager
 | 
				
			||||||
          ? inputs['cache']
 | 
					          ? inputs['cache']
 | 
				
			||||||
          : key === State.CacheMatchedKey
 | 
					          : key === State.CacheMatchedKey
 | 
				
			||||||
          ? npmFileHash
 | 
					            ? npmFileHash
 | 
				
			||||||
          : key === State.CachePrimaryKey
 | 
					            : key === State.CachePrimaryKey
 | 
				
			||||||
          ? yarnFileHash
 | 
					              ? yarnFileHash
 | 
				
			||||||
          : key === State.CachePaths
 | 
					              : key === State.CachePaths
 | 
				
			||||||
          ? '["/foo/bar"]'
 | 
					                ? '["/foo/bar"]'
 | 
				
			||||||
          : 'not expected'
 | 
					                : 'not expected'
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      await run();
 | 
					      await run();
 | 
				
			||||||
@@ -297,12 +297,12 @@ describe('run', () => {
 | 
				
			|||||||
        key === State.CachePackageManager
 | 
					        key === State.CachePackageManager
 | 
				
			||||||
          ? inputs['cache']
 | 
					          ? inputs['cache']
 | 
				
			||||||
          : key === State.CacheMatchedKey
 | 
					          : key === State.CacheMatchedKey
 | 
				
			||||||
          ? pnpmFileHash
 | 
					            ? pnpmFileHash
 | 
				
			||||||
          : key === State.CachePrimaryKey
 | 
					            : key === State.CachePrimaryKey
 | 
				
			||||||
          ? npmFileHash
 | 
					              ? npmFileHash
 | 
				
			||||||
          : key === State.CachePaths
 | 
					              : key === State.CachePaths
 | 
				
			||||||
          ? '["/foo/bar"]'
 | 
					                ? '["/foo/bar"]'
 | 
				
			||||||
          : 'not expected'
 | 
					                : 'not expected'
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      await run();
 | 
					      await run();
 | 
				
			||||||
@@ -327,12 +327,12 @@ describe('run', () => {
 | 
				
			|||||||
        key === State.CachePackageManager
 | 
					        key === State.CachePackageManager
 | 
				
			||||||
          ? inputs['cache']
 | 
					          ? inputs['cache']
 | 
				
			||||||
          : key === State.CacheMatchedKey
 | 
					          : key === State.CacheMatchedKey
 | 
				
			||||||
          ? npmFileHash
 | 
					            ? npmFileHash
 | 
				
			||||||
          : key === State.CachePrimaryKey
 | 
					            : key === State.CachePrimaryKey
 | 
				
			||||||
          ? yarnFileHash
 | 
					              ? yarnFileHash
 | 
				
			||||||
          : key === State.CachePaths
 | 
					              : key === State.CachePaths
 | 
				
			||||||
          ? '["/foo/bar"]'
 | 
					                ? '["/foo/bar"]'
 | 
				
			||||||
          : 'not expected'
 | 
					                : 'not expected'
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
      saveCacheSpy.mockImplementation(() => {
 | 
					      saveCacheSpy.mockImplementation(() => {
 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
@@ -360,12 +360,12 @@ describe('run', () => {
 | 
				
			|||||||
        key === State.CachePackageManager
 | 
					        key === State.CachePackageManager
 | 
				
			||||||
          ? inputs['cache']
 | 
					          ? inputs['cache']
 | 
				
			||||||
          : key === State.CacheMatchedKey
 | 
					          : key === State.CacheMatchedKey
 | 
				
			||||||
          ? npmFileHash
 | 
					            ? npmFileHash
 | 
				
			||||||
          : key === State.CachePrimaryKey
 | 
					            : key === State.CachePrimaryKey
 | 
				
			||||||
          ? yarnFileHash
 | 
					              ? yarnFileHash
 | 
				
			||||||
          : key === State.CachePaths
 | 
					              : key === State.CachePaths
 | 
				
			||||||
          ? '["/foo/bar"]'
 | 
					                ? '["/foo/bar"]'
 | 
				
			||||||
          : 'not expected'
 | 
					                : 'not expected'
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
      saveCacheSpy.mockImplementation(() => {
 | 
					      saveCacheSpy.mockImplementation(() => {
 | 
				
			||||||
        throw new cache.ValidationError('Validation failed');
 | 
					        throw new cache.ValidationError('Validation failed');
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1 @@
 | 
				
			|||||||
v20
 | 
					v24
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1 @@
 | 
				
			|||||||
nodejs 20.0.0
 | 
					nodejs 24.0.0
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1 @@
 | 
				
			|||||||
node 20.0.0
 | 
					node 24.0.0
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,6 @@
 | 
				
			|||||||
    "node": "^14.0.0"
 | 
					    "node": "^14.0.0"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "volta": {
 | 
					  "volta": {
 | 
				
			||||||
    "node": "20.0.0"
 | 
					    "node": "24.0.0"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "engines": {
 | 
					  "engines": {
 | 
				
			||||||
    "node": "^20.0.0"
 | 
					    "node": "^24.0.0"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,7 @@ describe('main tests', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  let infoSpy: jest.SpyInstance;
 | 
					  let infoSpy: jest.SpyInstance;
 | 
				
			||||||
  let warningSpy: jest.SpyInstance;
 | 
					  let warningSpy: jest.SpyInstance;
 | 
				
			||||||
 | 
					  let saveStateSpy: jest.SpyInstance;
 | 
				
			||||||
  let inSpy: jest.SpyInstance;
 | 
					  let inSpy: jest.SpyInstance;
 | 
				
			||||||
  let setOutputSpy: jest.SpyInstance;
 | 
					  let setOutputSpy: jest.SpyInstance;
 | 
				
			||||||
  let startGroupSpy: jest.SpyInstance;
 | 
					  let startGroupSpy: jest.SpyInstance;
 | 
				
			||||||
@@ -53,6 +54,8 @@ describe('main tests', () => {
 | 
				
			|||||||
    setOutputSpy.mockImplementation(() => {});
 | 
					    setOutputSpy.mockImplementation(() => {});
 | 
				
			||||||
    warningSpy = jest.spyOn(core, 'warning');
 | 
					    warningSpy = jest.spyOn(core, 'warning');
 | 
				
			||||||
    warningSpy.mockImplementation(() => {});
 | 
					    warningSpy.mockImplementation(() => {});
 | 
				
			||||||
 | 
					    saveStateSpy = jest.spyOn(core, 'saveState');
 | 
				
			||||||
 | 
					    saveStateSpy.mockImplementation(() => {});
 | 
				
			||||||
    startGroupSpy = jest.spyOn(core, 'startGroup');
 | 
					    startGroupSpy = jest.spyOn(core, 'startGroup');
 | 
				
			||||||
    startGroupSpy.mockImplementation(() => {});
 | 
					    startGroupSpy.mockImplementation(() => {});
 | 
				
			||||||
    endGroupSpy = jest.spyOn(core, 'endGroup');
 | 
					    endGroupSpy = jest.spyOn(core, 'endGroup');
 | 
				
			||||||
@@ -280,4 +283,149 @@ describe('main tests', () => {
 | 
				
			|||||||
      );
 | 
					      );
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  describe('cache feature tests', () => {
 | 
				
			||||||
 | 
					    it('Should enable caching when packageManager is npm and cache input is not provided', async () => {
 | 
				
			||||||
 | 
					      inputs['package-manager-cache'] = 'true';
 | 
				
			||||||
 | 
					      inputs['cache'] = '';
 | 
				
			||||||
 | 
					      isCacheActionAvailable.mockImplementation(() => true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      inSpy.mockImplementation(name => inputs[name]);
 | 
				
			||||||
 | 
					      const readFileSpy = jest.spyOn(fs, 'readFileSync');
 | 
				
			||||||
 | 
					      readFileSpy.mockImplementation(() =>
 | 
				
			||||||
 | 
					        JSON.stringify({
 | 
				
			||||||
 | 
					          packageManager: 'npm@10.8.2'
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      await main.run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(saveStateSpy).toHaveBeenCalledWith(expect.anything(), 'npm');
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('Should enable caching when devEngines.packageManager.name is "npm" and cache input is not provided', async () => {
 | 
				
			||||||
 | 
					      inputs['package-manager-cache'] = 'true';
 | 
				
			||||||
 | 
					      inputs['cache'] = '';
 | 
				
			||||||
 | 
					      isCacheActionAvailable.mockImplementation(() => true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      inSpy.mockImplementation(name => inputs[name]);
 | 
				
			||||||
 | 
					      const readFileSpy = jest.spyOn(fs, 'readFileSync');
 | 
				
			||||||
 | 
					      readFileSpy.mockImplementation(() =>
 | 
				
			||||||
 | 
					        JSON.stringify({
 | 
				
			||||||
 | 
					          devEngines: {
 | 
				
			||||||
 | 
					            packageManager: {name: 'npm'}
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      await main.run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(saveStateSpy).toHaveBeenCalledWith(expect.anything(), 'npm');
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('Should enable caching when devEngines.packageManager is array and one entry has name "npm"', async () => {
 | 
				
			||||||
 | 
					      inputs['package-manager-cache'] = 'true';
 | 
				
			||||||
 | 
					      inputs['cache'] = '';
 | 
				
			||||||
 | 
					      isCacheActionAvailable.mockImplementation(() => true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      inSpy.mockImplementation(name => inputs[name]);
 | 
				
			||||||
 | 
					      const readFileSpy = jest.spyOn(fs, 'readFileSync');
 | 
				
			||||||
 | 
					      readFileSpy.mockImplementation(() =>
 | 
				
			||||||
 | 
					        JSON.stringify({
 | 
				
			||||||
 | 
					          devEngines: {
 | 
				
			||||||
 | 
					            packageManager: [{name: 'pnpm'}, {name: 'npm'}]
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      await main.run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(saveStateSpy).toHaveBeenCalledWith(expect.anything(), 'npm');
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('Should not enable caching if packageManager is "pnpm@8.0.0" and cache input is not provided', async () => {
 | 
				
			||||||
 | 
					      inputs['package-manager-cache'] = 'true';
 | 
				
			||||||
 | 
					      inputs['cache'] = '';
 | 
				
			||||||
 | 
					      inSpy.mockImplementation(name => inputs[name]);
 | 
				
			||||||
 | 
					      const readFileSpy = jest.spyOn(fs, 'readFileSync');
 | 
				
			||||||
 | 
					      readFileSpy.mockImplementation(() =>
 | 
				
			||||||
 | 
					        JSON.stringify({
 | 
				
			||||||
 | 
					          packageManager: 'pnpm@8.0.0'
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      await main.run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(saveStateSpy).not.toHaveBeenCalled();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('Should not enable caching if devEngines.packageManager.name is "pnpm"', async () => {
 | 
				
			||||||
 | 
					      inputs['package-manager-cache'] = 'true';
 | 
				
			||||||
 | 
					      inputs['cache'] = '';
 | 
				
			||||||
 | 
					      inSpy.mockImplementation(name => inputs[name]);
 | 
				
			||||||
 | 
					      const readFileSpy = jest.spyOn(fs, 'readFileSync');
 | 
				
			||||||
 | 
					      readFileSpy.mockImplementation(() =>
 | 
				
			||||||
 | 
					        JSON.stringify({
 | 
				
			||||||
 | 
					          devEngines: {
 | 
				
			||||||
 | 
					            packageManager: {name: 'pnpm'}
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      await main.run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(saveStateSpy).not.toHaveBeenCalled();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('Should not enable caching if devEngines.packageManager is array without "npm"', async () => {
 | 
				
			||||||
 | 
					      inputs['package-manager-cache'] = 'true';
 | 
				
			||||||
 | 
					      inputs['cache'] = '';
 | 
				
			||||||
 | 
					      inSpy.mockImplementation(name => inputs[name]);
 | 
				
			||||||
 | 
					      const readFileSpy = jest.spyOn(fs, 'readFileSync');
 | 
				
			||||||
 | 
					      readFileSpy.mockImplementation(() =>
 | 
				
			||||||
 | 
					        JSON.stringify({
 | 
				
			||||||
 | 
					          devEngines: {
 | 
				
			||||||
 | 
					            packageManager: [{name: 'pnpm'}, {name: 'yarn'}]
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      await main.run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(saveStateSpy).not.toHaveBeenCalled();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('Should not enable caching if packageManager field is missing in package.json and cache input is not provided', async () => {
 | 
				
			||||||
 | 
					      inputs['package-manager-cache'] = 'true';
 | 
				
			||||||
 | 
					      inputs['cache'] = '';
 | 
				
			||||||
 | 
					      inSpy.mockImplementation(name => inputs[name]);
 | 
				
			||||||
 | 
					      const readFileSpy = jest.spyOn(fs, 'readFileSync');
 | 
				
			||||||
 | 
					      readFileSpy.mockImplementation(() =>
 | 
				
			||||||
 | 
					        JSON.stringify({
 | 
				
			||||||
 | 
					          // packageManager field is not present
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      await main.run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(saveStateSpy).not.toHaveBeenCalled();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('Should skip caching when package-manager-cache is false', async () => {
 | 
				
			||||||
 | 
					      inputs['package-manager-cache'] = 'false';
 | 
				
			||||||
 | 
					      inputs['cache'] = '';
 | 
				
			||||||
 | 
					      inSpy.mockImplementation(name => inputs[name]);
 | 
				
			||||||
 | 
					      await main.run();
 | 
				
			||||||
 | 
					      expect(saveStateSpy).not.toHaveBeenCalled();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('Should enable caching with cache input explicitly provided', async () => {
 | 
				
			||||||
 | 
					      inputs['package-manager-cache'] = 'true';
 | 
				
			||||||
 | 
					      inputs['cache'] = 'npm';
 | 
				
			||||||
 | 
					      inSpy.mockImplementation(name => inputs[name]);
 | 
				
			||||||
 | 
					      isCacheActionAvailable.mockImplementation(() => true);
 | 
				
			||||||
 | 
					      await main.run();
 | 
				
			||||||
 | 
					      expect(saveStateSpy).toHaveBeenCalledWith(expect.anything(), 'npm');
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,8 +7,13 @@ fi
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
node_version="$(node --version)"
 | 
					node_version="$(node --version)"
 | 
				
			||||||
echo "Found node version '$node_version'"
 | 
					echo "Found node version '$node_version'"
 | 
				
			||||||
if [ -z "$(echo $node_version | grep --fixed-strings v$1)" ]; then
 | 
					
 | 
				
			||||||
  echo "Unexpected version"
 | 
					# Extract the major version from the node version (remove the 'v' prefix)
 | 
				
			||||||
 | 
					actual_major_version=$(echo $node_version | sed -E 's/^v([0-9]+)\..*/\1/')
 | 
				
			||||||
 | 
					expected_major_version=$(echo $1 | sed -E 's/^([0-9]+)\..*/\1/') # Extract major version from argument
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$actual_major_version" != "$expected_major_version" ]; then
 | 
				
			||||||
 | 
					  echo "Expected Node.js $expected_major_version.x.x but found $node_version"
 | 
				
			||||||
  exit 1
 | 
					  exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,6 +23,9 @@ inputs:
 | 
				
			|||||||
    default: ${{ github.server_url == 'https://github.com' && github.token || '' }}
 | 
					    default: ${{ github.server_url == 'https://github.com' && github.token || '' }}
 | 
				
			||||||
  cache:
 | 
					  cache:
 | 
				
			||||||
    description: 'Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm.'
 | 
					    description: 'Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm.'
 | 
				
			||||||
 | 
					  package-manager-cache:
 | 
				
			||||||
 | 
					    description: 'Set to false to disable automatic caching. By default, caching is enabled when either devEngines.packageManager or the top-level packageManager field in package.json specifies npm as the package manager.'
 | 
				
			||||||
 | 
					    default: true
 | 
				
			||||||
  cache-dependency-path:
 | 
					  cache-dependency-path:
 | 
				
			||||||
    description: 'Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies.'
 | 
					    description: 'Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies.'
 | 
				
			||||||
  mirror:
 | 
					  mirror:
 | 
				
			||||||
@@ -37,7 +40,7 @@ outputs:
 | 
				
			|||||||
  node-version:
 | 
					  node-version:
 | 
				
			||||||
    description: 'The installed node version.'
 | 
					    description: 'The installed node version.'
 | 
				
			||||||
runs:
 | 
					runs:
 | 
				
			||||||
  using: 'node20'
 | 
					  using: 'node24'
 | 
				
			||||||
  main: 'dist/setup/index.js'
 | 
					  main: 'dist/setup/index.js'
 | 
				
			||||||
  post: 'dist/cache-save/index.js'
 | 
					  post: 'dist/cache-save/index.js'
 | 
				
			||||||
  post-if: success()
 | 
					  post-if: success()
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1382
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1382
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										4770
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4770
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -45,10 +45,10 @@ If `check-latest` is set to `true`, the action first checks if the cached versio
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '16'
 | 
					    node-version: '24'
 | 
				
			||||||
    check-latest: true
 | 
					    check-latest: true
 | 
				
			||||||
- run: npm ci
 | 
					- run: npm ci
 | 
				
			||||||
- run: npm test
 | 
					- run: npm test
 | 
				
			||||||
@@ -63,8 +63,8 @@ See [supported version syntax](https://github.com/actions/setup-node#supported-v
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version-file: '.nvmrc'
 | 
					    node-version-file: '.nvmrc'
 | 
				
			||||||
- run: npm ci
 | 
					- run: npm ci
 | 
				
			||||||
@@ -97,10 +97,10 @@ jobs:
 | 
				
			|||||||
    runs-on: windows-latest
 | 
					    runs-on: windows-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - uses: actions/setup-node@v4
 | 
					      - uses: actions/setup-node@v6
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: '14'
 | 
					          node-version: '24'
 | 
				
			||||||
          architecture: 'x64' # optional, x64 or x86. If not specified, x64 will be used by default
 | 
					          architecture: 'x64' # optional, x64 or x86. If not specified, x64 will be used by default
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
      - run: npm test
 | 
					      - run: npm test
 | 
				
			||||||
@@ -118,10 +118,10 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - uses: actions/setup-node@v4
 | 
					      - uses: actions/setup-node@v6
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: '20.0.0-v8-canary' # it will install the latest v8 canary release for node 20.0.0
 | 
					          node-version: '24.0.0-v8-canary' # it will install the latest v8 canary release for node 24.0.0
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
      - run: npm test
 | 
					      - run: npm test
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -133,10 +133,10 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - uses: actions/setup-node@v4
 | 
					      - uses: actions/setup-node@v6
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: '20-v8-canary' # it will install the latest v8 canary release for node 20
 | 
					          node-version: '24-v8-canary' # it will install the latest v8 canary release for node 24
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
      - run: npm test
 | 
					      - run: npm test
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -149,10 +149,10 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - uses: actions/setup-node@v4
 | 
					      - uses: actions/setup-node@v6
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: 'v20.1.1-v8-canary20221103f7e2421e91'
 | 
					          node-version: 'v24.0.0-v8-canary2025030537242e55ac'
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
      - run: npm test
 | 
					      - run: npm test
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -169,10 +169,10 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - uses: actions/setup-node@v4
 | 
					      - uses: actions/setup-node@v6
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: '16-nightly' # it will install the latest nightly release for node 16
 | 
					          node-version: '24-nightly' # it will install the latest nightly release for node 24
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
      - run: npm test
 | 
					      - run: npm test
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -185,10 +185,10 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - uses: actions/setup-node@v4
 | 
					      - uses: actions/setup-node@v6
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: '16.0.0-nightly' # it will install the latest nightly release for node 16.0.0
 | 
					          node-version: '24.0.0-nightly' # it will install the latest nightly release for node 24.0.0
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
      - run: npm test
 | 
					      - run: npm test
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -201,10 +201,10 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - uses: actions/setup-node@v4
 | 
					      - uses: actions/setup-node@v6
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: '16.0.0-nightly20210420a0261d231c'
 | 
					          node-version: '24.0.0-nightly202505066102159fa1'
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
      - run: npm test
 | 
					      - run: npm test
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -219,27 +219,28 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - uses: actions/setup-node@v4
 | 
					      - uses: actions/setup-node@v6
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: '16.0.0-rc.1'
 | 
					          node-version: '24.0.0-rc.4'
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
      - run: npm test
 | 
					      - run: npm test
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Note:** Unlike nightly versions, which support version range specifiers, you must specify the exact version for a release candidate: `16.0.0-rc.1`.
 | 
					**Note:** Unlike nightly versions, which support version range specifiers, you must specify the exact version for a release candidate: `24.0.0-rc.4`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Caching packages data
 | 
					## Caching packages data
 | 
				
			||||||
The action follows [actions/cache](https://github.com/actions/cache/blob/main/examples.md#node---npm) guidelines, and caches global cache on the machine instead of `node_modules`, so cache can be reused between different Node.js versions.
 | 
					The action follows [actions/cache](https://github.com/actions/cache/blob/main/examples.md#node---npm) guidelines, and caches global cache on the machine instead of `node_modules`, so cache can be reused between different Node.js versions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Caching yarn dependencies:**
 | 
					**Caching yarn dependencies:**
 | 
				
			||||||
Yarn caching handles both yarn versions: 1 or 2.
 | 
					Yarn caching handles both Yarn Classic (v1) and Yarn Berry (v2, v3, v4+).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14'
 | 
					    node-version: '24'
 | 
				
			||||||
    cache: 'yarn'
 | 
					    cache: 'yarn'
 | 
				
			||||||
- run: yarn install --frozen-lockfile # optional, --immutable
 | 
					- run: yarn install --frozen-lockfile # optional, --immutable
 | 
				
			||||||
- run: yarn test
 | 
					- run: yarn test
 | 
				
			||||||
@@ -255,13 +256,13 @@ steps:
 | 
				
			|||||||
# NOTE: pnpm caching support requires pnpm version >= 6.10.0
 | 
					# NOTE: pnpm caching support requires pnpm version >= 6.10.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: pnpm/action-setup@v2
 | 
					- uses: pnpm/action-setup@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    version: 6.32.9
 | 
					    version: 10
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14'
 | 
					    node-version: '24'
 | 
				
			||||||
    cache: 'pnpm'
 | 
					    cache: 'pnpm'
 | 
				
			||||||
- run: pnpm install
 | 
					- run: pnpm install
 | 
				
			||||||
- run: pnpm test
 | 
					- run: pnpm test
 | 
				
			||||||
@@ -274,10 +275,10 @@ steps:
 | 
				
			|||||||
**Using wildcard patterns to cache dependencies**
 | 
					**Using wildcard patterns to cache dependencies**
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14'
 | 
					    node-version: '24'
 | 
				
			||||||
    cache: 'npm'
 | 
					    cache: 'npm'
 | 
				
			||||||
    cache-dependency-path: '**/package-lock.json'
 | 
					    cache-dependency-path: '**/package-lock.json'
 | 
				
			||||||
- run: npm ci
 | 
					- run: npm ci
 | 
				
			||||||
@@ -287,10 +288,10 @@ steps:
 | 
				
			|||||||
**Using a list of file paths to cache dependencies**
 | 
					**Using a list of file paths to cache dependencies**
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14'
 | 
					    node-version: '24'
 | 
				
			||||||
    cache: 'npm'
 | 
					    cache: 'npm'
 | 
				
			||||||
    cache-dependency-path: |
 | 
					    cache-dependency-path: |
 | 
				
			||||||
      server/app/package-lock.json
 | 
					      server/app/package-lock.json
 | 
				
			||||||
@@ -312,21 +313,21 @@ jobs:
 | 
				
			|||||||
          - macos-latest
 | 
					          - macos-latest
 | 
				
			||||||
          - windows-latest
 | 
					          - windows-latest
 | 
				
			||||||
        node_version:
 | 
					        node_version:
 | 
				
			||||||
          - 12
 | 
					          - 20
 | 
				
			||||||
          - 14
 | 
					          - 22
 | 
				
			||||||
          - 16
 | 
					          - 24
 | 
				
			||||||
        architecture:
 | 
					        architecture:
 | 
				
			||||||
          - x64
 | 
					          - x64
 | 
				
			||||||
        # an extra windows-x86 run:
 | 
					        # an extra windows-x86 run:
 | 
				
			||||||
        include:
 | 
					        include:
 | 
				
			||||||
          - os: windows-2016
 | 
					          - os: windows-latest
 | 
				
			||||||
            node_version: 12
 | 
					            node_version: 24
 | 
				
			||||||
            architecture: x86
 | 
					            architecture: x86
 | 
				
			||||||
    name: Node ${{ matrix.node_version }} - ${{ matrix.architecture }} on ${{ matrix.os }}
 | 
					    name: Node ${{ matrix.node_version }} - ${{ matrix.architecture }} on ${{ matrix.os }}
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v4
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup node
 | 
					      - name: Setup node
 | 
				
			||||||
        uses: actions/setup-node@v4
 | 
					        uses: actions/setup-node@v6
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: ${{ matrix.node_version }}
 | 
					          node-version: ${{ matrix.node_version }}
 | 
				
			||||||
          architecture: ${{ matrix.architecture }}
 | 
					          architecture: ${{ matrix.architecture }}
 | 
				
			||||||
@@ -337,16 +338,16 @@ jobs:
 | 
				
			|||||||
## Publish to npmjs and GPR with npm
 | 
					## Publish to npmjs and GPR with npm
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14.x'
 | 
					    node-version: '24.x'
 | 
				
			||||||
    registry-url: 'https://registry.npmjs.org'
 | 
					    registry-url: 'https://registry.npmjs.org'
 | 
				
			||||||
- run: npm ci
 | 
					- run: npm ci
 | 
				
			||||||
- run: npm publish
 | 
					- run: npm publish
 | 
				
			||||||
  env:
 | 
					  env:
 | 
				
			||||||
    NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
 | 
					    NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    registry-url: 'https://npm.pkg.github.com'
 | 
					    registry-url: 'https://npm.pkg.github.com'
 | 
				
			||||||
- run: npm publish
 | 
					- run: npm publish
 | 
				
			||||||
@@ -357,16 +358,16 @@ steps:
 | 
				
			|||||||
## Publish to npmjs and GPR with yarn
 | 
					## Publish to npmjs and GPR with yarn
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14.x'
 | 
					    node-version: '24.x'
 | 
				
			||||||
    registry-url: <registry url>
 | 
					    registry-url: <registry url>
 | 
				
			||||||
- run: yarn install --frozen-lockfile
 | 
					- run: yarn install --frozen-lockfile
 | 
				
			||||||
- run: yarn publish
 | 
					- run: yarn publish
 | 
				
			||||||
  env:
 | 
					  env:
 | 
				
			||||||
    NODE_AUTH_TOKEN: ${{ secrets.YARN_TOKEN }}
 | 
					    NODE_AUTH_TOKEN: ${{ secrets.YARN_TOKEN }}
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    registry-url: 'https://npm.pkg.github.com'
 | 
					    registry-url: 'https://npm.pkg.github.com'
 | 
				
			||||||
- run: yarn publish
 | 
					- run: yarn publish
 | 
				
			||||||
@@ -377,10 +378,10 @@ steps:
 | 
				
			|||||||
## Use private packages
 | 
					## Use private packages
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14.x'
 | 
					    node-version: '24.x'
 | 
				
			||||||
    registry-url: 'https://registry.npmjs.org'
 | 
					    registry-url: 'https://registry.npmjs.org'
 | 
				
			||||||
# Skip post-install scripts here, as a malicious
 | 
					# Skip post-install scripts here, as a malicious
 | 
				
			||||||
# script could steal NODE_AUTH_TOKEN.
 | 
					# script could steal NODE_AUTH_TOKEN.
 | 
				
			||||||
@@ -397,10 +398,10 @@ Below you can find a sample "Setup .yarnrc.yml" step, that is going to allow you
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					- uses: actions/checkout@v5
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14.x'
 | 
					    node-version: '24.x'
 | 
				
			||||||
- name: Setup .yarnrc.yml
 | 
					- name: Setup .yarnrc.yml
 | 
				
			||||||
  run: |
 | 
					  run: |
 | 
				
			||||||
    yarn config set npmScopes.my-org.npmRegistryServer "https://npm.pkg.github.com"
 | 
					    yarn config set npmScopes.my-org.npmRegistryServer "https://npm.pkg.github.com"
 | 
				
			||||||
@@ -427,9 +428,9 @@ It is possible to specify a token to authenticate with the mirror using the `mir
 | 
				
			|||||||
The token will be passed as a bearer token in the `Authorization` header.
 | 
					The token will be passed as a bearer token in the `Authorization` header.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					- uses: actions/setup-node@v6
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14.x'
 | 
					    node-version: '24.x'
 | 
				
			||||||
    mirror: 'https://nodejs.org/dist'
 | 
					    mirror: 'https://nodejs.org/dist'
 | 
				
			||||||
    mirror-token: 'your-mirror-token'
 | 
					    mirror-token: 'your-mirror-token'
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										364
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										364
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -1,12 +1,12 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "setup-node",
 | 
					  "name": "setup-node",
 | 
				
			||||||
  "version": "4.0.0",
 | 
					  "version": "6.0.0",
 | 
				
			||||||
  "lockfileVersion": 3,
 | 
					  "lockfileVersion": 3,
 | 
				
			||||||
  "requires": true,
 | 
					  "requires": true,
 | 
				
			||||||
  "packages": {
 | 
					  "packages": {
 | 
				
			||||||
    "": {
 | 
					    "": {
 | 
				
			||||||
      "name": "setup-node",
 | 
					      "name": "setup-node",
 | 
				
			||||||
      "version": "4.0.0",
 | 
					      "version": "6.0.0",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@actions/cache": "^4.0.3",
 | 
					        "@actions/cache": "^4.0.3",
 | 
				
			||||||
@@ -22,7 +22,7 @@
 | 
				
			|||||||
      },
 | 
					      },
 | 
				
			||||||
      "devDependencies": {
 | 
					      "devDependencies": {
 | 
				
			||||||
        "@types/jest": "^29.5.14",
 | 
					        "@types/jest": "^29.5.14",
 | 
				
			||||||
        "@types/node": "^20.11.25",
 | 
					        "@types/node": "^24.1.0",
 | 
				
			||||||
        "@types/semver": "^7.5.8",
 | 
					        "@types/semver": "^7.5.8",
 | 
				
			||||||
        "@typescript-eslint/eslint-plugin": "^5.54.0",
 | 
					        "@typescript-eslint/eslint-plugin": "^5.54.0",
 | 
				
			||||||
        "@typescript-eslint/parser": "^5.54.0",
 | 
					        "@typescript-eslint/parser": "^5.54.0",
 | 
				
			||||||
@@ -34,9 +34,12 @@
 | 
				
			|||||||
        "jest": "^29.7.0",
 | 
					        "jest": "^29.7.0",
 | 
				
			||||||
        "jest-circus": "^29.7.0",
 | 
					        "jest-circus": "^29.7.0",
 | 
				
			||||||
        "jest-each": "^29.7.0",
 | 
					        "jest-each": "^29.7.0",
 | 
				
			||||||
        "prettier": "^2.8.4",
 | 
					        "prettier": "^3.6.2",
 | 
				
			||||||
        "ts-jest": "^29.1.2",
 | 
					        "ts-jest": "^29.4.1",
 | 
				
			||||||
        "typescript": "^5.4.2"
 | 
					        "typescript": "^5.4.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=24.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@aashutoshrathi/word-wrap": {
 | 
					    "node_modules/@aashutoshrathi/word-wrap": {
 | 
				
			||||||
@@ -224,12 +227,14 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@azure/core-http/node_modules/form-data": {
 | 
					    "node_modules/@azure/core-http/node_modules/form-data": {
 | 
				
			||||||
      "version": "4.0.0",
 | 
					      "version": "4.0.4",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
 | 
				
			||||||
      "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
 | 
					      "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "asynckit": "^0.4.0",
 | 
					        "asynckit": "^0.4.0",
 | 
				
			||||||
        "combined-stream": "^1.0.8",
 | 
					        "combined-stream": "^1.0.8",
 | 
				
			||||||
 | 
					        "es-set-tostringtag": "^2.1.0",
 | 
				
			||||||
 | 
					        "hasown": "^2.0.2",
 | 
				
			||||||
        "mime-types": "^2.1.12"
 | 
					        "mime-types": "^2.1.12"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
@@ -1778,11 +1783,12 @@
 | 
				
			|||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@types/node": {
 | 
					    "node_modules/@types/node": {
 | 
				
			||||||
      "version": "20.11.25",
 | 
					      "version": "24.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.25.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==",
 | 
					      "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "undici-types": "~5.26.4"
 | 
					        "undici-types": "~7.8.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@types/node-fetch": {
 | 
					    "node_modules/@types/node-fetch": {
 | 
				
			||||||
@@ -1795,12 +1801,14 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@types/node-fetch/node_modules/form-data": {
 | 
					    "node_modules/@types/node-fetch/node_modules/form-data": {
 | 
				
			||||||
      "version": "4.0.0",
 | 
					      "version": "4.0.4",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
 | 
				
			||||||
      "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
 | 
					      "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "asynckit": "^0.4.0",
 | 
					        "asynckit": "^0.4.0",
 | 
				
			||||||
        "combined-stream": "^1.0.8",
 | 
					        "combined-stream": "^1.0.8",
 | 
				
			||||||
 | 
					        "es-set-tostringtag": "^2.1.0",
 | 
				
			||||||
 | 
					        "hasown": "^2.0.2",
 | 
				
			||||||
        "mime-types": "^2.1.12"
 | 
					        "mime-types": "^2.1.12"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
@@ -2306,9 +2314,9 @@
 | 
				
			|||||||
      "license": "Apache-2.0"
 | 
					      "license": "Apache-2.0"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/brace-expansion": {
 | 
					    "node_modules/brace-expansion": {
 | 
				
			||||||
      "version": "1.1.11",
 | 
					      "version": "1.1.12",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
 | 
				
			||||||
      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
 | 
					      "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "balanced-match": "^1.0.0",
 | 
					        "balanced-match": "^1.0.0",
 | 
				
			||||||
        "concat-map": "0.0.1"
 | 
					        "concat-map": "0.0.1"
 | 
				
			||||||
@@ -2385,6 +2393,18 @@
 | 
				
			|||||||
      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
 | 
					      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/call-bind-apply-helpers": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0",
 | 
				
			||||||
 | 
					        "function-bind": "^1.1.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/callsites": {
 | 
					    "node_modules/callsites": {
 | 
				
			||||||
      "version": "3.1.0",
 | 
					      "version": "3.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
 | 
				
			||||||
@@ -2676,6 +2696,19 @@
 | 
				
			|||||||
        "node": ">=6.0.0"
 | 
					        "node": ">=6.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/dunder-proto": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "call-bind-apply-helpers": "^1.0.1",
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0",
 | 
				
			||||||
 | 
					        "gopd": "^1.2.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/electron-to-chromium": {
 | 
					    "node_modules/electron-to-chromium": {
 | 
				
			||||||
      "version": "1.4.563",
 | 
					      "version": "1.4.563",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.563.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.563.tgz",
 | 
				
			||||||
@@ -2709,6 +2742,47 @@
 | 
				
			|||||||
        "is-arrayish": "^0.2.1"
 | 
					        "is-arrayish": "^0.2.1"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/es-define-property": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/es-errors": {
 | 
				
			||||||
 | 
					      "version": "1.3.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/es-object-atoms": {
 | 
				
			||||||
 | 
					      "version": "1.1.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/es-set-tostringtag": {
 | 
				
			||||||
 | 
					      "version": "2.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0",
 | 
				
			||||||
 | 
					        "get-intrinsic": "^1.2.6",
 | 
				
			||||||
 | 
					        "has-tostringtag": "^1.0.2",
 | 
				
			||||||
 | 
					        "hasown": "^2.0.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/escalade": {
 | 
					    "node_modules/escalade": {
 | 
				
			||||||
      "version": "3.1.1",
 | 
					      "version": "3.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
 | 
				
			||||||
@@ -3223,13 +3297,16 @@
 | 
				
			|||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/form-data": {
 | 
					    "node_modules/form-data": {
 | 
				
			||||||
      "version": "2.5.1",
 | 
					      "version": "2.5.5",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz",
 | 
				
			||||||
      "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
 | 
					      "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "asynckit": "^0.4.0",
 | 
					        "asynckit": "^0.4.0",
 | 
				
			||||||
        "combined-stream": "^1.0.6",
 | 
					        "combined-stream": "^1.0.8",
 | 
				
			||||||
        "mime-types": "^2.1.12"
 | 
					        "es-set-tostringtag": "^2.1.0",
 | 
				
			||||||
 | 
					        "hasown": "^2.0.2",
 | 
				
			||||||
 | 
					        "mime-types": "^2.1.35",
 | 
				
			||||||
 | 
					        "safe-buffer": "^5.2.1"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
        "node": ">= 0.12"
 | 
					        "node": ">= 0.12"
 | 
				
			||||||
@@ -3259,7 +3336,6 @@
 | 
				
			|||||||
      "version": "1.1.2",
 | 
					      "version": "1.1.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
 | 
					      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "funding": {
 | 
					      "funding": {
 | 
				
			||||||
        "url": "https://github.com/sponsors/ljharb"
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@@ -3282,6 +3358,29 @@
 | 
				
			|||||||
        "node": "6.* || 8.* || >= 10.*"
 | 
					        "node": "6.* || 8.* || >= 10.*"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/get-intrinsic": {
 | 
				
			||||||
 | 
					      "version": "1.3.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "call-bind-apply-helpers": "^1.0.2",
 | 
				
			||||||
 | 
					        "es-define-property": "^1.0.1",
 | 
				
			||||||
 | 
					        "es-errors": "^1.3.0",
 | 
				
			||||||
 | 
					        "es-object-atoms": "^1.1.1",
 | 
				
			||||||
 | 
					        "function-bind": "^1.1.2",
 | 
				
			||||||
 | 
					        "get-proto": "^1.0.1",
 | 
				
			||||||
 | 
					        "gopd": "^1.2.0",
 | 
				
			||||||
 | 
					        "has-symbols": "^1.1.0",
 | 
				
			||||||
 | 
					        "hasown": "^2.0.2",
 | 
				
			||||||
 | 
					        "math-intrinsics": "^1.1.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/get-package-type": {
 | 
					    "node_modules/get-package-type": {
 | 
				
			||||||
      "version": "0.1.0",
 | 
					      "version": "0.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
 | 
				
			||||||
@@ -3291,6 +3390,18 @@
 | 
				
			|||||||
        "node": ">=8.0.0"
 | 
					        "node": ">=8.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/get-proto": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "dunder-proto": "^1.0.1",
 | 
				
			||||||
 | 
					        "es-object-atoms": "^1.0.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/get-stream": {
 | 
					    "node_modules/get-stream": {
 | 
				
			||||||
      "version": "6.0.1",
 | 
					      "version": "6.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
 | 
				
			||||||
@@ -3370,6 +3481,17 @@
 | 
				
			|||||||
        "url": "https://github.com/sponsors/sindresorhus"
 | 
					        "url": "https://github.com/sponsors/sindresorhus"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/gopd": {
 | 
				
			||||||
 | 
					      "version": "1.2.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/graceful-fs": {
 | 
					    "node_modules/graceful-fs": {
 | 
				
			||||||
      "version": "4.2.11",
 | 
					      "version": "4.2.11",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
 | 
				
			||||||
@@ -3382,6 +3504,28 @@
 | 
				
			|||||||
      "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
 | 
					      "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/handlebars": {
 | 
				
			||||||
 | 
					      "version": "4.7.8",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "minimist": "^1.2.5",
 | 
				
			||||||
 | 
					        "neo-async": "^2.6.2",
 | 
				
			||||||
 | 
					        "source-map": "^0.6.1",
 | 
				
			||||||
 | 
					        "wordwrap": "^1.0.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "bin": {
 | 
				
			||||||
 | 
					        "handlebars": "bin/handlebars"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=0.4.7"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "optionalDependencies": {
 | 
				
			||||||
 | 
					        "uglify-js": "^3.1.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/has-flag": {
 | 
					    "node_modules/has-flag": {
 | 
				
			||||||
      "version": "4.0.0",
 | 
					      "version": "4.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
 | 
				
			||||||
@@ -3391,11 +3535,35 @@
 | 
				
			|||||||
        "node": ">=8"
 | 
					        "node": ">=8"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/has-symbols": {
 | 
				
			||||||
 | 
					      "version": "1.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/has-tostringtag": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "has-symbols": "^1.0.3"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/hasown": {
 | 
					    "node_modules/hasown": {
 | 
				
			||||||
      "version": "2.0.0",
 | 
					      "version": "2.0.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
 | 
					      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "function-bind": "^1.1.2"
 | 
					        "function-bind": "^1.1.2"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@@ -4380,6 +4548,14 @@
 | 
				
			|||||||
        "tmpl": "1.0.5"
 | 
					        "tmpl": "1.0.5"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/math-intrinsics": {
 | 
				
			||||||
 | 
					      "version": "1.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/merge-stream": {
 | 
					    "node_modules/merge-stream": {
 | 
				
			||||||
      "version": "2.0.0",
 | 
					      "version": "2.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
 | 
				
			||||||
@@ -4447,6 +4623,16 @@
 | 
				
			|||||||
        "node": "*"
 | 
					        "node": "*"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/minimist": {
 | 
				
			||||||
 | 
					      "version": "1.2.8",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/ms": {
 | 
					    "node_modules/ms": {
 | 
				
			||||||
      "version": "2.1.2",
 | 
					      "version": "2.1.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
 | 
				
			||||||
@@ -4465,6 +4651,13 @@
 | 
				
			|||||||
      "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
 | 
					      "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/neo-async": {
 | 
				
			||||||
 | 
					      "version": "2.6.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/node-fetch": {
 | 
					    "node_modules/node-fetch": {
 | 
				
			||||||
      "version": "2.7.0",
 | 
					      "version": "2.7.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
 | 
				
			||||||
@@ -4769,15 +4962,16 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/prettier": {
 | 
					    "node_modules/prettier": {
 | 
				
			||||||
      "version": "2.8.8",
 | 
					      "version": "3.6.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
 | 
					      "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
      "bin": {
 | 
					      "bin": {
 | 
				
			||||||
        "prettier": "bin-prettier.js"
 | 
					        "prettier": "bin/prettier.cjs"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
        "node": ">=10.13.0"
 | 
					        "node": ">=14"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "funding": {
 | 
					      "funding": {
 | 
				
			||||||
        "url": "https://github.com/prettier/prettier?sponsor=1"
 | 
					        "url": "https://github.com/prettier/prettier?sponsor=1"
 | 
				
			||||||
@@ -5006,15 +5200,34 @@
 | 
				
			|||||||
        "queue-microtask": "^1.2.2"
 | 
					        "queue-microtask": "^1.2.2"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/safe-buffer": {
 | 
				
			||||||
 | 
					      "version": "5.2.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
 | 
				
			||||||
 | 
					      "funding": [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "type": "github",
 | 
				
			||||||
 | 
					          "url": "https://github.com/sponsors/feross"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "type": "patreon",
 | 
				
			||||||
 | 
					          "url": "https://www.patreon.com/feross"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "type": "consulting",
 | 
				
			||||||
 | 
					          "url": "https://feross.org/support"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/sax": {
 | 
					    "node_modules/sax": {
 | 
				
			||||||
      "version": "1.3.0",
 | 
					      "version": "1.3.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
 | 
					      "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/semver": {
 | 
					    "node_modules/semver": {
 | 
				
			||||||
      "version": "7.6.3",
 | 
					      "version": "7.7.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
 | 
					      "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
 | 
				
			||||||
      "license": "ISC",
 | 
					      "license": "ISC",
 | 
				
			||||||
      "bin": {
 | 
					      "bin": {
 | 
				
			||||||
        "semver": "bin/semver.js"
 | 
					        "semver": "bin/semver.js"
 | 
				
			||||||
@@ -5248,37 +5461,44 @@
 | 
				
			|||||||
      "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
 | 
					      "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/ts-jest": {
 | 
					    "node_modules/ts-jest": {
 | 
				
			||||||
      "version": "29.1.2",
 | 
					      "version": "29.4.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==",
 | 
					      "integrity": "sha512-SaeUtjfpg9Uqu8IbeDKtdaS0g8lS6FT6OzM3ezrDfErPJPHNDo/Ey+VFGP1bQIDfagYDLyRpd7O15XpG1Es2Uw==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "bs-logger": "0.x",
 | 
					        "bs-logger": "^0.2.6",
 | 
				
			||||||
        "fast-json-stable-stringify": "2.x",
 | 
					        "fast-json-stable-stringify": "^2.1.0",
 | 
				
			||||||
        "jest-util": "^29.0.0",
 | 
					        "handlebars": "^4.7.8",
 | 
				
			||||||
        "json5": "^2.2.3",
 | 
					        "json5": "^2.2.3",
 | 
				
			||||||
        "lodash.memoize": "4.x",
 | 
					        "lodash.memoize": "^4.1.2",
 | 
				
			||||||
        "make-error": "1.x",
 | 
					        "make-error": "^1.3.6",
 | 
				
			||||||
        "semver": "^7.5.3",
 | 
					        "semver": "^7.7.2",
 | 
				
			||||||
        "yargs-parser": "^21.0.1"
 | 
					        "type-fest": "^4.41.0",
 | 
				
			||||||
 | 
					        "yargs-parser": "^21.1.1"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "bin": {
 | 
					      "bin": {
 | 
				
			||||||
        "ts-jest": "cli.js"
 | 
					        "ts-jest": "cli.js"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
        "node": "^16.10.0 || ^18.0.0 || >=20.0.0"
 | 
					        "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "peerDependencies": {
 | 
					      "peerDependencies": {
 | 
				
			||||||
        "@babel/core": ">=7.0.0-beta.0 <8",
 | 
					        "@babel/core": ">=7.0.0-beta.0 <8",
 | 
				
			||||||
        "@jest/types": "^29.0.0",
 | 
					        "@jest/transform": "^29.0.0 || ^30.0.0",
 | 
				
			||||||
        "babel-jest": "^29.0.0",
 | 
					        "@jest/types": "^29.0.0 || ^30.0.0",
 | 
				
			||||||
        "jest": "^29.0.0",
 | 
					        "babel-jest": "^29.0.0 || ^30.0.0",
 | 
				
			||||||
 | 
					        "jest": "^29.0.0 || ^30.0.0",
 | 
				
			||||||
 | 
					        "jest-util": "^29.0.0 || ^30.0.0",
 | 
				
			||||||
        "typescript": ">=4.3 <6"
 | 
					        "typescript": ">=4.3 <6"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "peerDependenciesMeta": {
 | 
					      "peerDependenciesMeta": {
 | 
				
			||||||
        "@babel/core": {
 | 
					        "@babel/core": {
 | 
				
			||||||
          "optional": true
 | 
					          "optional": true
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        "@jest/transform": {
 | 
				
			||||||
 | 
					          "optional": true
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
        "@jest/types": {
 | 
					        "@jest/types": {
 | 
				
			||||||
          "optional": true
 | 
					          "optional": true
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
@@ -5287,9 +5507,25 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        "esbuild": {
 | 
					        "esbuild": {
 | 
				
			||||||
          "optional": true
 | 
					          "optional": true
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "jest-util": {
 | 
				
			||||||
 | 
					          "optional": true
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/ts-jest/node_modules/type-fest": {
 | 
				
			||||||
 | 
					      "version": "4.41.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "(MIT OR CC0-1.0)",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=16"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/sindresorhus"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/tslib": {
 | 
					    "node_modules/tslib": {
 | 
				
			||||||
      "version": "2.6.2",
 | 
					      "version": "2.6.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
 | 
				
			||||||
@@ -5370,6 +5606,20 @@
 | 
				
			|||||||
        "node": ">=14.17"
 | 
					        "node": ">=14.17"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/uglify-js": {
 | 
				
			||||||
 | 
					      "version": "3.19.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "BSD-2-Clause",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "bin": {
 | 
				
			||||||
 | 
					        "uglifyjs": "bin/uglifyjs"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=0.8.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/undici": {
 | 
					    "node_modules/undici": {
 | 
				
			||||||
      "version": "5.29.0",
 | 
					      "version": "5.29.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz",
 | 
				
			||||||
@@ -5383,9 +5633,10 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/undici-types": {
 | 
					    "node_modules/undici-types": {
 | 
				
			||||||
      "version": "5.26.5",
 | 
					      "version": "7.8.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
 | 
					      "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==",
 | 
				
			||||||
 | 
					      "license": "MIT"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/universal-user-agent": {
 | 
					    "node_modules/universal-user-agent": {
 | 
				
			||||||
      "version": "6.0.1",
 | 
					      "version": "6.0.1",
 | 
				
			||||||
@@ -5497,6 +5748,13 @@
 | 
				
			|||||||
        "node": ">= 8"
 | 
					        "node": ">= 8"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/wordwrap": {
 | 
				
			||||||
 | 
					      "version": "1.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "license": "MIT"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/wrap-ansi": {
 | 
					    "node_modules/wrap-ansi": {
 | 
				
			||||||
      "version": "7.0.0",
 | 
					      "version": "7.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								package.json
									
									
									
									
									
								
							@@ -1,9 +1,12 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "setup-node",
 | 
					  "name": "setup-node",
 | 
				
			||||||
  "version": "4.0.0",
 | 
					  "version": "6.0.0",
 | 
				
			||||||
  "private": true,
 | 
					  "private": true,
 | 
				
			||||||
  "description": "setup node action",
 | 
					  "description": "setup node action",
 | 
				
			||||||
  "main": "lib/setup-node.js",
 | 
					  "main": "lib/setup-node.js",
 | 
				
			||||||
 | 
					  "engines": {
 | 
				
			||||||
 | 
					    "node": ">=24.0.0"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
    "build": "ncc build -o dist/setup src/setup-node.ts && ncc build -o dist/cache-save src/cache-save.ts",
 | 
					    "build": "ncc build -o dist/setup src/setup-node.ts && ncc build -o dist/cache-save src/cache-save.ts",
 | 
				
			||||||
    "format": "prettier --no-error-on-unmatched-pattern --config ./.prettierrc.js --write \"**/*.{ts,yml,yaml}\"",
 | 
					    "format": "prettier --no-error-on-unmatched-pattern --config ./.prettierrc.js --write \"**/*.{ts,yml,yaml}\"",
 | 
				
			||||||
@@ -38,7 +41,7 @@
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
    "@types/jest": "^29.5.14",
 | 
					    "@types/jest": "^29.5.14",
 | 
				
			||||||
    "@types/node": "^20.11.25",
 | 
					    "@types/node": "^24.1.0",
 | 
				
			||||||
    "@types/semver": "^7.5.8",
 | 
					    "@types/semver": "^7.5.8",
 | 
				
			||||||
    "@typescript-eslint/eslint-plugin": "^5.54.0",
 | 
					    "@typescript-eslint/eslint-plugin": "^5.54.0",
 | 
				
			||||||
    "@typescript-eslint/parser": "^5.54.0",
 | 
					    "@typescript-eslint/parser": "^5.54.0",
 | 
				
			||||||
@@ -50,8 +53,8 @@
 | 
				
			|||||||
    "jest": "^29.7.0",
 | 
					    "jest": "^29.7.0",
 | 
				
			||||||
    "jest-circus": "^29.7.0",
 | 
					    "jest-circus": "^29.7.0",
 | 
				
			||||||
    "jest-each": "^29.7.0",
 | 
					    "jest-each": "^29.7.0",
 | 
				
			||||||
    "prettier": "^2.8.4",
 | 
					    "prettier": "^3.6.2",
 | 
				
			||||||
    "ts-jest": "^29.1.2",
 | 
					    "ts-jest": "^29.4.1",
 | 
				
			||||||
    "typescript": "^5.4.2"
 | 
					    "typescript": "^5.4.2"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,6 +7,7 @@ import {getPackageManagerInfo} from './cache-utils';
 | 
				
			|||||||
// Catch and log any unhandled exceptions.  These exceptions can leak out of the uploadChunk method in
 | 
					// Catch and log any unhandled exceptions.  These exceptions can leak out of the uploadChunk method in
 | 
				
			||||||
// @actions/toolkit when a failed upload closes the file descriptor causing any in-process reads to
 | 
					// @actions/toolkit when a failed upload closes the file descriptor causing any in-process reads to
 | 
				
			||||||
// throw an uncaught exception.  Instead of failing this action, just warn.
 | 
					// throw an uncaught exception.  Instead of failing this action, just warn.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
process.on('uncaughtException', e => {
 | 
					process.on('uncaughtException', e => {
 | 
				
			||||||
  const warningPrefix = '[warning]';
 | 
					  const warningPrefix = '[warning]';
 | 
				
			||||||
  core.info(`${warningPrefix}${e.message}`);
 | 
					  core.info(`${warningPrefix}${e.message}`);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -167,14 +167,12 @@ const getCacheDirectoriesFromCacheDependencyPath = async (
 | 
				
			|||||||
  packageManagerInfo: PackageManagerInfo,
 | 
					  packageManagerInfo: PackageManagerInfo,
 | 
				
			||||||
  cacheDependencyPath: string
 | 
					  cacheDependencyPath: string
 | 
				
			||||||
): Promise<string[]> => {
 | 
					): Promise<string[]> => {
 | 
				
			||||||
  const projectDirectories = await getProjectDirectoriesFromCacheDependencyPath(
 | 
					  const projectDirectories =
 | 
				
			||||||
    cacheDependencyPath
 | 
					    await getProjectDirectoriesFromCacheDependencyPath(cacheDependencyPath);
 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
  const cacheFoldersPaths = await Promise.all(
 | 
					  const cacheFoldersPaths = await Promise.all(
 | 
				
			||||||
    projectDirectories.map(async projectDirectory => {
 | 
					    projectDirectories.map(async projectDirectory => {
 | 
				
			||||||
      const cacheFolderPath = await packageManagerInfo.getCacheFolderPath(
 | 
					      const cacheFolderPath =
 | 
				
			||||||
        projectDirectory
 | 
					        await packageManagerInfo.getCacheFolderPath(projectDirectory);
 | 
				
			||||||
      );
 | 
					 | 
				
			||||||
      core.debug(
 | 
					      core.debug(
 | 
				
			||||||
        `${packageManagerInfo.name}'s cache folder "${cacheFolderPath}" configured for the directory "${projectDirectory}"`
 | 
					        `${packageManagerInfo.name}'s cache folder "${cacheFolderPath}" configured for the directory "${projectDirectory}"`
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -221,8 +221,8 @@ export default class OfficialBuilds extends BaseDistribution {
 | 
				
			|||||||
      alias === '*'
 | 
					      alias === '*'
 | 
				
			||||||
        ? numbered[numbered.length - 1]
 | 
					        ? numbered[numbered.length - 1]
 | 
				
			||||||
        : n < 0
 | 
					        : n < 0
 | 
				
			||||||
        ? numbered[numbered.length - 1 + n]
 | 
					          ? numbered[numbered.length - 1 + n]
 | 
				
			||||||
        : aliases[alias];
 | 
					          : aliases[alias];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!release) {
 | 
					    if (!release) {
 | 
				
			||||||
      throw new Error(
 | 
					      throw new Error(
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										58
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								src/main.ts
									
									
									
									
									
								
							@@ -1,6 +1,7 @@
 | 
				
			|||||||
import * as core from '@actions/core';
 | 
					import * as core from '@actions/core';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import os from 'os';
 | 
					import os from 'os';
 | 
				
			||||||
 | 
					import fs from 'fs';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import * as auth from './authutil';
 | 
					import * as auth from './authutil';
 | 
				
			||||||
import * as path from 'path';
 | 
					import * as path from 'path';
 | 
				
			||||||
@@ -20,6 +21,9 @@ export async function run() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    let arch = core.getInput('architecture');
 | 
					    let arch = core.getInput('architecture');
 | 
				
			||||||
    const cache = core.getInput('cache');
 | 
					    const cache = core.getInput('cache');
 | 
				
			||||||
 | 
					    const packagemanagercache =
 | 
				
			||||||
 | 
					      (core.getInput('package-manager-cache') || 'true').toUpperCase() ===
 | 
				
			||||||
 | 
					      'TRUE';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // if architecture supplied but node-version is not
 | 
					    // if architecture supplied but node-version is not
 | 
				
			||||||
    // if we don't throw a warning, the already installed x64 node will be used which is not probably what user meant.
 | 
					    // if we don't throw a warning, the already installed x64 node will be used which is not probably what user meant.
 | 
				
			||||||
@@ -63,10 +67,25 @@ export async function run() {
 | 
				
			|||||||
      auth.configAuthentication(registryUrl, alwaysAuth);
 | 
					      auth.configAuthentication(registryUrl, alwaysAuth);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (cache && isCacheFeatureAvailable()) {
 | 
					    const cacheDependencyPath = core.getInput('cache-dependency-path');
 | 
				
			||||||
      core.saveState(State.CachePackageManager, cache);
 | 
					
 | 
				
			||||||
      const cacheDependencyPath = core.getInput('cache-dependency-path');
 | 
					    if (isCacheFeatureAvailable()) {
 | 
				
			||||||
      await restoreCache(cache, cacheDependencyPath);
 | 
					      // if the cache input is provided, use it for caching.
 | 
				
			||||||
 | 
					      if (cache) {
 | 
				
			||||||
 | 
					        core.saveState(State.CachePackageManager, cache);
 | 
				
			||||||
 | 
					        await restoreCache(cache, cacheDependencyPath);
 | 
				
			||||||
 | 
					        // package manager npm is detected from package.json, enable auto-caching for npm.
 | 
				
			||||||
 | 
					      } else if (packagemanagercache) {
 | 
				
			||||||
 | 
					        const resolvedPackageManager = getNameFromPackageManagerField();
 | 
				
			||||||
 | 
					        if (resolvedPackageManager) {
 | 
				
			||||||
 | 
					          core.info(
 | 
				
			||||||
 | 
					            "Detected npm as the package manager from package.json's packageManager field. " +
 | 
				
			||||||
 | 
					              'Auto caching has been enabled for npm. If you want to disable it, set package-manager-cache input to false'
 | 
				
			||||||
 | 
					          );
 | 
				
			||||||
 | 
					          core.saveState(State.CachePackageManager, resolvedPackageManager);
 | 
				
			||||||
 | 
					          await restoreCache(resolvedPackageManager, cacheDependencyPath);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const matchersPath = path.join(__dirname, '../..', '.github');
 | 
					    const matchersPath = path.join(__dirname, '../..', '.github');
 | 
				
			||||||
@@ -117,3 +136,34 @@ function resolveVersionInput(): string {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  return version;
 | 
					  return version;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function getNameFromPackageManagerField(): string | undefined {
 | 
				
			||||||
 | 
					  const npmRegex = /^(\^)?npm(@.*)?$/; // matches "npm", "npm@...", "^npm@..."
 | 
				
			||||||
 | 
					  try {
 | 
				
			||||||
 | 
					    const packageJson = JSON.parse(
 | 
				
			||||||
 | 
					      fs.readFileSync(
 | 
				
			||||||
 | 
					        path.join(process.env.GITHUB_WORKSPACE!, 'package.json'),
 | 
				
			||||||
 | 
					        'utf-8'
 | 
				
			||||||
 | 
					      )
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Check devEngines.packageManager first (object or array)
 | 
				
			||||||
 | 
					    const devPM = packageJson?.devEngines?.packageManager;
 | 
				
			||||||
 | 
					    const devPMArray = devPM ? (Array.isArray(devPM) ? devPM : [devPM]) : [];
 | 
				
			||||||
 | 
					    for (const obj of devPMArray) {
 | 
				
			||||||
 | 
					      if (typeof obj?.name === 'string' && npmRegex.test(obj.name)) {
 | 
				
			||||||
 | 
					        return 'npm';
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Check top-level packageManager
 | 
				
			||||||
 | 
					    const topLevelPM = packageJson?.packageManager;
 | 
				
			||||||
 | 
					    if (typeof topLevelPM === 'string' && npmRegex.test(topLevelPM)) {
 | 
				
			||||||
 | 
					      return 'npm';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return undefined;
 | 
				
			||||||
 | 
					  } catch {
 | 
				
			||||||
 | 
					    return undefined;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user