├── __tests__ ├── data │ ├── .go-version │ ├── .tool-versions │ ├── go.work │ ├── go.mod │ └── versions-manifest.json ├── verify-go.sh ├── utils.test.ts ├── windows-toolcache.test.ts ├── cache-restore.test.ts └── cache-utils.test.ts ├── CODEOWNERS ├── src ├── setup-go.ts ├── types.ts ├── constants.ts ├── package-managers.ts ├── utils.ts ├── system.ts ├── cache-restore.ts ├── cache-utils.ts ├── cache-save.ts └── main.ts ├── .github ├── ISSUE_TEMPLATE │ ├── config.yml │ ├── feature_request.md │ └── bug_report.md ├── pull_request_template.md ├── workflows │ ├── licensed.yml │ ├── update-config-files.yml │ ├── codeql-analysis.yml │ ├── basic-validation.yml │ ├── check-dist.yml │ ├── publish-immutable-actions.yml │ ├── release-new-action-version.yml │ ├── windows-validation.yml │ └── versions.yml └── dependabot.yml ├── .gitattributes ├── .eslintignore ├── .prettierignore ├── .licensed.yml ├── jest.config.js ├── matchers.json ├── .prettierrc.js ├── .licenses └── npm │ ├── minimatch.dep.yml │ ├── semver-6.3.1.dep.yml │ ├── semver-7.7.3.dep.yml │ ├── uuid.dep.yml │ ├── @actions │ ├── io.dep.yml │ ├── cache.dep.yml │ ├── core.dep.yml │ ├── exec.dep.yml │ ├── glob-0.1.2.dep.yml │ ├── glob-0.5.0.dep.yml │ ├── tool-cache.dep.yml │ └── http-client.dep.yml │ ├── @fastify │ └── busboy.dep.yml │ ├── tr46.dep.yml │ ├── function-bind.dep.yml │ ├── xml2js.dep.yml │ ├── xmlbuilder.dep.yml │ ├── get-proto.dep.yml │ ├── undici-types.dep.yml │ ├── es-errors.dep.yml │ ├── concat-map.dep.yml │ ├── hasown.dep.yml │ ├── gopd.dep.yml │ ├── abort-controller.dep.yml │ ├── es-define-property.dep.yml │ ├── math-intrinsics.dep.yml │ ├── es-object-atoms.dep.yml │ ├── has-symbols.dep.yml │ ├── process.dep.yml │ ├── @azure │ ├── core-util.dep.yml │ ├── logger.dep.yml │ ├── core-paging.dep.yml │ ├── storage-blob.dep.yml │ ├── abort-controller.dep.yml │ ├── core-auth.dep.yml │ ├── core-lro.dep.yml │ ├── core-tracing.dep.yml │ ├── core-http.dep.yml │ └── ms-rest-js.dep.yml │ ├── event-target-shim.dep.yml │ ├── dunder-proto.dep.yml │ ├── mime-db.dep.yml │ ├── undici.dep.yml │ ├── es-set-tostringtag.dep.yml │ ├── get-intrinsic.dep.yml │ ├── whatwg-url.dep.yml │ ├── call-bind-apply-helpers.dep.yml │ ├── has-tostringtag.dep.yml │ ├── safe-buffer.dep.yml │ ├── @types │ ├── node.dep.yml │ ├── tunnel.dep.yml │ └── node-fetch.dep.yml │ ├── asynckit.dep.yml │ ├── combined-stream.dep.yml │ ├── delayed-stream.dep.yml │ ├── tunnel.dep.yml │ ├── events.dep.yml │ ├── form-data-2.5.5.dep.yml │ ├── form-data-4.0.4.dep.yml │ ├── webidl-conversions.dep.yml │ ├── tslib-1.14.1.dep.yml │ ├── tslib-2.6.2.dep.yml │ ├── mime-types.dep.yml │ ├── sax.dep.yml │ ├── brace-expansion.dep.yml │ ├── balanced-match.dep.yml │ ├── node-fetch.dep.yml │ └── @protobuf-ts │ └── plugin-framework.dep.yml ├── LICENSE ├── .eslintrc.js ├── action.yml ├── .gitignore ├── package.json ├── docs ├── adrs │ └── 0000-caching-dependencies.md └── contributors.md ├── CODE_OF_CONDUCT.md └── tsconfig.json /__tests__/data/.go-version: -------------------------------------------------------------------------------- 1 | 1.22.4 -------------------------------------------------------------------------------- /__tests__/data/.tool-versions: -------------------------------------------------------------------------------- 1 | golang 1.23.2 -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @actions/setup-actions-team 2 | -------------------------------------------------------------------------------- /__tests__/data/go.work: -------------------------------------------------------------------------------- 1 | go 1.21 2 | 3 | use . 4 | -------------------------------------------------------------------------------- /src/setup-go.ts: -------------------------------------------------------------------------------- 1 | import {run} from './main'; 2 | 3 | run(); 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | .licenses/** -diff linguist-generated=true -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | // match what @actions/tool-cache expects 2 | export type Architecture = string; 3 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | # Ignore list 2 | /* 3 | 4 | # Do not ignore these folders: 5 | !__tests__/ 6 | !src/ -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Ignore list 2 | /* 3 | 4 | # Do not ignore these folders: 5 | !__tests__/ 6 | !.github/ 7 | !src/ -------------------------------------------------------------------------------- /src/constants.ts: -------------------------------------------------------------------------------- 1 | export enum State { 2 | CachePrimaryKey = 'CACHE_KEY', 3 | CacheMatchedKey = 'CACHE_RESULT' 4 | } 5 | 6 | export enum Outputs { 7 | CacheHit = 'cache-hit' 8 | } 9 | -------------------------------------------------------------------------------- /.licensed.yml: -------------------------------------------------------------------------------- 1 | sources: 2 | npm: true 3 | 4 | allowed: 5 | - apache-2.0 6 | - bsd-2-clause 7 | - bsd-3-clause 8 | - isc 9 | - mit 10 | - cc0-1.0 11 | - unlicense 12 | - 0bsd 13 | 14 | reviewed: 15 | npm: -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | **Description:** 2 | Describe your changes. 3 | 4 | **Related issue:** 5 | Add link to the related issue. 6 | 7 | **Check list:** 8 | - [ ] Mark if documentation changes are required. 9 | - [ ] Mark if tests were added or updated to cover the changes. -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | clearMocks: true, 3 | moduleFileExtensions: ['js', 'ts'], 4 | testEnvironment: 'node', 5 | testMatch: ['**/*.test.ts'], 6 | testRunner: 'jest-circus/runner', 7 | transform: { 8 | '^.+\\.ts$': 'ts-jest' 9 | }, 10 | verbose: true 11 | } -------------------------------------------------------------------------------- /__tests__/data/go.mod: -------------------------------------------------------------------------------- 1 | module example.com/mymodule 2 | 3 | go 1.20 4 | 5 | require ( 6 | example.com/othermodule v1.2.3 7 | example.com/thismodule v1.2.3 8 | example.com/thatmodule v1.2.3 9 | ) 10 | 11 | replace example.com/thatmodule => ../thatmodule 12 | exclude example.com/thismodule v1.3.0 13 | -------------------------------------------------------------------------------- /.github/workflows/licensed.yml: -------------------------------------------------------------------------------- 1 | name: Licensed 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | branches: 9 | - main 10 | 11 | jobs: 12 | call-licensed: 13 | name: Licensed 14 | uses: actions/reusable-workflows/.github/workflows/licensed.yml@main 15 | -------------------------------------------------------------------------------- /__tests__/verify-go.sh: -------------------------------------------------------------------------------- 1 | 2 | #!/bin/sh 3 | 4 | if [ -z "$1" ]; then 5 | echo "Must supply go version argument" 6 | exit 1 7 | fi 8 | 9 | go_version="$(go version)" 10 | echo "Found go version '$go_version'" 11 | if [ -z "$(echo $go_version | grep $1)" ]; then 12 | echo "Unexpected version" 13 | exit 1 14 | fi -------------------------------------------------------------------------------- /.github/workflows/update-config-files.yml: -------------------------------------------------------------------------------- 1 | name: Update configuration files 2 | 3 | on: 4 | schedule: 5 | - cron: '0 3 * * 0' 6 | workflow_dispatch: 7 | 8 | jobs: 9 | call-update-configuration-files: 10 | name: Update configuration files 11 | uses: actions/reusable-workflows/.github/workflows/update-config-files.yml@main 12 | -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | name: CodeQL analysis 2 | 3 | on: 4 | push: 5 | branches: [main] 6 | pull_request: 7 | branches: [main] 8 | schedule: 9 | - cron: '0 3 * * 0' 10 | 11 | jobs: 12 | call-codeQL-analysis: 13 | name: CodeQL analysis 14 | uses: actions/reusable-workflows/.github/workflows/codeql-analysis.yml@main 15 | -------------------------------------------------------------------------------- /.github/workflows/basic-validation.yml: -------------------------------------------------------------------------------- 1 | name: Basic validation 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | paths-ignore: 8 | - '**.md' 9 | pull_request: 10 | paths-ignore: 11 | - '**.md' 12 | 13 | jobs: 14 | call-basic-validation: 15 | name: Basic validation 16 | uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main 17 | with: 18 | node-version: '24.x' 19 | -------------------------------------------------------------------------------- /.github/workflows/check-dist.yml: -------------------------------------------------------------------------------- 1 | name: Check dist/ 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | paths-ignore: 8 | - '**.md' 9 | pull_request: 10 | paths-ignore: 11 | - '**.md' 12 | workflow_dispatch: 13 | 14 | jobs: 15 | call-check-dist: 16 | name: Check dist/ 17 | uses: actions/reusable-workflows/.github/workflows/check-dist.yml@main 18 | with: 19 | node-version: '24.x' 20 | -------------------------------------------------------------------------------- /matchers.json: -------------------------------------------------------------------------------- 1 | { 2 | "problemMatcher": [ 3 | { 4 | "owner": "go", 5 | "pattern": [ 6 | { 7 | "regexp": "^\\s*(.+\\.go):(?:(\\d+):(\\d+):)? (.*)", 8 | "file": 1, 9 | "line": 2, 10 | "column": 3, 11 | "message": 4 12 | } 13 | ] 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | // This is a reusable configuration file copied from https://github.com/actions/reusable-workflows/tree/main/reusable-configurations. Please don't make changes to this file as it's the subject of an automatic update. 2 | module.exports = { 3 | printWidth: 80, 4 | tabWidth: 2, 5 | useTabs: false, 6 | semi: true, 7 | singleQuote: true, 8 | trailingComma: 'none', 9 | bracketSpacing: false, 10 | arrowParens: 'avoid' 11 | }; 12 | -------------------------------------------------------------------------------- /src/package-managers.ts: -------------------------------------------------------------------------------- 1 | type SupportedPackageManagers = { 2 | [prop: string]: PackageManagerInfo; 3 | }; 4 | 5 | export interface PackageManagerInfo { 6 | dependencyFilePattern: string; 7 | cacheFolderCommandList: string[]; 8 | } 9 | 10 | export const supportedPackageManagers: SupportedPackageManagers = { 11 | default: { 12 | dependencyFilePattern: 'go.sum', 13 | cacheFolderCommandList: ['go env GOMODCACHE', 'go env GOCACHE'] 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /.github/workflows/publish-immutable-actions.yml: -------------------------------------------------------------------------------- 1 | name: 'Publish Immutable Action Version' 2 | 3 | on: 4 | release: 5 | types: [published] 6 | 7 | jobs: 8 | publish: 9 | runs-on: ubuntu-latest 10 | permissions: 11 | contents: read 12 | id-token: write 13 | packages: write 14 | 15 | steps: 16 | - name: Checking out 17 | uses: actions/checkout@v5 18 | - name: Publish 19 | id: publish 20 | uses: actions/publish-immutable-action@v0.0.4 21 | -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- 1 | export enum StableReleaseAlias { 2 | Stable = 'stable', 3 | OldStable = 'oldstable' 4 | } 5 | 6 | export const isSelfHosted = (): boolean => 7 | process.env['RUNNER_ENVIRONMENT'] !== 'github-hosted' && 8 | (process.env['AGENT_ISSELFHOSTED'] === '1' || 9 | process.env['AGENT_ISSELFHOSTED'] === undefined); 10 | /* the above is simplified from: 11 | process.env['RUNNER_ENVIRONMENT'] !== 'github-hosted' && process.env['AGENT_ISSELFHOSTED'] === '1' 12 | || 13 | process.env['RUNNER_ENVIRONMENT'] !== 'github-hosted' && process.env['AGENT_ISSELFHOSTED'] === undefined 14 | */ 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: feature request, needs triage 6 | assignees: '' 7 | --- 8 | 9 | 10 | 11 | **Description:** 12 | Describe your proposal. 13 | 14 | **Justification:** 15 | Justification or a use case for your proposal. 16 | 17 | **Are you willing to submit a PR?** 18 | -------------------------------------------------------------------------------- /.github/workflows/release-new-action-version.yml: -------------------------------------------------------------------------------- 1 | name: Release new action version 2 | 3 | on: 4 | release: 5 | types: [released] 6 | workflow_dispatch: 7 | inputs: 8 | TAG_NAME: 9 | description: 'Tag name that the major tag will point to' 10 | required: true 11 | 12 | env: 13 | TAG_NAME: ${{ github.event.inputs.TAG_NAME || github.event.release.tag_name }} 14 | permissions: 15 | contents: write 16 | 17 | jobs: 18 | update_tag: 19 | name: Update the major tag to include the ${{ github.event.inputs.TAG_NAME || github.event.release.tag_name }} changes 20 | environment: 21 | name: releaseNewActionVersion 22 | runs-on: ubuntu-latest 23 | steps: 24 | - name: Update the ${{ env.TAG_NAME }} tag 25 | uses: actions/publish-action@v0.4.0 26 | with: 27 | source-tag: ${{ env.TAG_NAME }} 28 | slack-webhook: ${{ secrets.SLACK_WEBHOOK }} 29 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file 5 | 6 | version: 2 7 | updates: 8 | # Enable version updates for npm 9 | - package-ecosystem: 'npm' 10 | # Look for `package.json` and `lock` files in the `root` directory 11 | directory: '/' 12 | # Check the npm registry for updates every day (weekdays) 13 | schedule: 14 | interval: 'weekly' 15 | 16 | # Enable version updates for GitHub Actions 17 | - package-ecosystem: 'github-actions' 18 | # Workflow files stored in the default location of `.github/workflows` 19 | # You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`. 20 | directory: '/' 21 | schedule: 22 | interval: 'weekly' 23 | -------------------------------------------------------------------------------- /.licenses/npm/minimatch.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: minimatch 3 | version: 3.1.2 4 | type: npm 5 | summary: a glob matcher in javascript 6 | homepage: 7 | license: isc 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The ISC License 12 | 13 | Copyright (c) Isaac Z. Schlueter and Contributors 14 | 15 | Permission to use, copy, modify, and/or distribute this software for any 16 | purpose with or without fee is hereby granted, provided that the above 17 | copyright notice and this permission notice appear in all copies. 18 | 19 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 20 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 21 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 22 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 23 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 24 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 25 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 26 | notices: [] 27 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a bug report 4 | title: '' 5 | labels: bug, needs triage 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | 12 | 13 | **Description:** 14 | A clear and concise description of what the bug is. 15 | 16 | **Action version:** 17 | Specify the action version 18 | 19 | **Platform:** 20 | - [ ] Ubuntu 21 | - [ ] macOS 22 | - [ ] Windows 23 | 24 | **Runner type:** 25 | - [ ] Hosted 26 | - [ ] Self-hosted 27 | 28 | **Tools version:** 29 | 30 | 31 | **Repro steps:** 32 | A description with steps to reproduce the issue. If your have a public example or repo to share, please provide the link. 33 | 34 | **Expected behavior:** 35 | A description of what you expected to happen. 36 | 37 | **Actual behavior:** 38 | A description of what is actually happening. -------------------------------------------------------------------------------- /.licenses/npm/semver-6.3.1.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: semver 3 | version: 6.3.1 4 | type: npm 5 | summary: The semantic version parser used by npm. 6 | homepage: 7 | license: isc 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The ISC License 12 | 13 | Copyright (c) Isaac Z. Schlueter and Contributors 14 | 15 | Permission to use, copy, modify, and/or distribute this software for any 16 | purpose with or without fee is hereby granted, provided that the above 17 | copyright notice and this permission notice appear in all copies. 18 | 19 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 20 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 21 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 22 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 23 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 24 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 25 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 26 | notices: [] 27 | -------------------------------------------------------------------------------- /.licenses/npm/semver-7.7.3.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: semver 3 | version: 7.7.3 4 | type: npm 5 | summary: The semantic version parser used by npm. 6 | homepage: 7 | license: isc 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The ISC License 12 | 13 | Copyright (c) Isaac Z. Schlueter and Contributors 14 | 15 | Permission to use, copy, modify, and/or distribute this software for any 16 | purpose with or without fee is hereby granted, provided that the above 17 | copyright notice and this permission notice appear in all copies. 18 | 19 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 20 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 21 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 22 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 23 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 24 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 25 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 26 | notices: [] 27 | -------------------------------------------------------------------------------- /src/system.ts: -------------------------------------------------------------------------------- 1 | import os from 'os'; 2 | import {Architecture} from './types'; 3 | 4 | export function getPlatform(): string { 5 | // darwin and linux match already 6 | // freebsd not supported yet but future proofed. 7 | 8 | // 'aix', 'darwin', 'freebsd', 'linux', 'openbsd', 'sunos', and 'win32' 9 | let plat: string = os.platform(); 10 | 11 | // wants 'darwin', 'freebsd', 'linux', 'windows' 12 | if (plat === 'win32') { 13 | plat = 'windows'; 14 | } 15 | 16 | return plat; 17 | } 18 | 19 | export function getArch(arch: Architecture): string { 20 | // 'arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', and 'x64'. 21 | 22 | // wants amd64, 386, arm64, armv61, ppc641e, s390x 23 | // currently not supported by runner but future proofed mapping 24 | switch (arch) { 25 | case 'x64': 26 | arch = 'amd64'; 27 | break; 28 | // case 'ppc': 29 | // arch = 'ppc64'; 30 | // break; 31 | case 'x32': 32 | arch = '386'; 33 | break; 34 | case 'arm': 35 | arch = 'armv6l'; 36 | break; 37 | } 38 | 39 | return arch; 40 | } 41 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2018 GitHub, Inc. and contributors 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. -------------------------------------------------------------------------------- /.licenses/npm/uuid.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: uuid 3 | version: 8.3.2 4 | type: npm 5 | summary: RFC4122 (v1, v4, and v5) UUIDs 6 | homepage: 7 | license: mit 8 | licenses: 9 | - sources: LICENSE.md 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2010-2020 Robert Kieffer and other contributors 14 | 15 | 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: 16 | 17 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 18 | 19 | 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. 20 | notices: [] 21 | -------------------------------------------------------------------------------- /.licenses/npm/@actions/io.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@actions/io" 3 | version: 1.1.3 4 | type: npm 5 | summary: Actions io lib 6 | homepage: https://github.com/actions/toolkit/tree/main/packages/io 7 | license: mit 8 | licenses: 9 | - sources: LICENSE.md 10 | text: |- 11 | The MIT License (MIT) 12 | 13 | Copyright 2019 GitHub 14 | 15 | 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: 16 | 17 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 18 | 19 | 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. 20 | notices: [] 21 | -------------------------------------------------------------------------------- /.licenses/npm/@actions/cache.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@actions/cache" 3 | version: 4.0.3 4 | type: npm 5 | summary: Actions cache lib 6 | homepage: https://github.com/actions/toolkit/tree/main/packages/cache 7 | license: mit 8 | licenses: 9 | - sources: LICENSE.md 10 | text: |- 11 | The MIT License (MIT) 12 | 13 | Copyright 2019 GitHub 14 | 15 | 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: 16 | 17 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 18 | 19 | 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. 20 | notices: [] 21 | -------------------------------------------------------------------------------- /.licenses/npm/@actions/core.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@actions/core" 3 | version: 1.11.1 4 | type: npm 5 | summary: Actions core lib 6 | homepage: https://github.com/actions/toolkit/tree/main/packages/core 7 | license: mit 8 | licenses: 9 | - sources: LICENSE.md 10 | text: |- 11 | The MIT License (MIT) 12 | 13 | Copyright 2019 GitHub 14 | 15 | 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: 16 | 17 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 18 | 19 | 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. 20 | notices: [] 21 | -------------------------------------------------------------------------------- /.licenses/npm/@actions/exec.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@actions/exec" 3 | version: 1.1.1 4 | type: npm 5 | summary: Actions exec lib 6 | homepage: https://github.com/actions/toolkit/tree/main/packages/exec 7 | license: mit 8 | licenses: 9 | - sources: LICENSE.md 10 | text: |- 11 | The MIT License (MIT) 12 | 13 | Copyright 2019 GitHub 14 | 15 | 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: 16 | 17 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 18 | 19 | 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. 20 | notices: [] 21 | -------------------------------------------------------------------------------- /.licenses/npm/@actions/glob-0.1.2.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@actions/glob" 3 | version: 0.1.2 4 | type: npm 5 | summary: Actions glob lib 6 | homepage: https://github.com/actions/toolkit/tree/main/packages/glob 7 | license: mit 8 | licenses: 9 | - sources: LICENSE.md 10 | text: |- 11 | The MIT License (MIT) 12 | 13 | Copyright 2019 GitHub 14 | 15 | 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: 16 | 17 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 18 | 19 | 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. 20 | notices: [] 21 | -------------------------------------------------------------------------------- /.licenses/npm/@actions/glob-0.5.0.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@actions/glob" 3 | version: 0.5.0 4 | type: npm 5 | summary: Actions glob lib 6 | homepage: https://github.com/actions/toolkit/tree/main/packages/glob 7 | license: mit 8 | licenses: 9 | - sources: LICENSE.md 10 | text: |- 11 | The MIT License (MIT) 12 | 13 | Copyright 2019 GitHub 14 | 15 | 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: 16 | 17 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 18 | 19 | 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. 20 | notices: [] 21 | -------------------------------------------------------------------------------- /.licenses/npm/@actions/tool-cache.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@actions/tool-cache" 3 | version: 2.0.2 4 | type: npm 5 | summary: Actions tool-cache lib 6 | homepage: https://github.com/actions/toolkit/tree/main/packages/tool-cache 7 | license: mit 8 | licenses: 9 | - sources: LICENSE.md 10 | text: |- 11 | The MIT License (MIT) 12 | 13 | Copyright 2019 GitHub 14 | 15 | 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: 16 | 17 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 18 | 19 | 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. 20 | notices: [] 21 | -------------------------------------------------------------------------------- /.licenses/npm/@fastify/busboy.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@fastify/busboy" 3 | version: 2.1.0 4 | type: npm 5 | summary: A streaming parser for HTML form data for node.js 6 | homepage: 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: |- 11 | Copyright Brian White. All rights reserved. 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a copy 14 | of this software and associated documentation files (the "Software"), to 15 | deal in the Software without restriction, including without limitation the 16 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 17 | sell copies of the Software, and to permit persons to whom the Software is 18 | furnished to do so, subject to the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be included in 21 | all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 28 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 29 | IN THE SOFTWARE. 30 | notices: [] 31 | -------------------------------------------------------------------------------- /.licenses/npm/tr46.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: tr46 3 | version: 0.0.3 4 | type: npm 5 | summary: An implementation of the Unicode TR46 spec 6 | homepage: https://github.com/Sebmaster/tr46.js#readme 7 | license: mit 8 | licenses: 9 | - sources: Auto-generated MIT license text 10 | text: | 11 | MIT License 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a copy 14 | of this software and associated documentation files (the "Software"), to deal 15 | in the Software without restriction, including without limitation the rights 16 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 17 | copies of the Software, and to permit persons to whom the Software is 18 | furnished to do so, subject to the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be included in all 21 | copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 28 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 29 | SOFTWARE. 30 | notices: [] 31 | -------------------------------------------------------------------------------- /.licenses/npm/function-bind.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: function-bind 3 | version: 1.1.2 4 | type: npm 5 | summary: Implementation of Function.prototype.bind 6 | homepage: https://github.com/Raynos/function-bind 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: |+ 11 | Copyright (c) 2013 Raynos. 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a copy 14 | of this software and associated documentation files (the "Software"), to deal 15 | in the Software without restriction, including without limitation the rights 16 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 17 | copies of the Software, and to permit persons to whom the Software is 18 | furnished to do so, subject to the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be included in 21 | all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 28 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 29 | THE SOFTWARE. 30 | 31 | notices: [] 32 | -------------------------------------------------------------------------------- /.licenses/npm/xml2js.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: xml2js 3 | version: 0.5.0 4 | type: npm 5 | summary: Simple XML to JavaScript object converter. 6 | homepage: https://github.com/Leonidas-from-XIV/node-xml2js 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | Copyright 2010, 2011, 2012, 2013. All rights reserved. 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a copy 14 | of this software and associated documentation files (the "Software"), to 15 | deal in the Software without restriction, including without limitation the 16 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 17 | sell copies of the Software, and to permit persons to whom the Software is 18 | furnished to do so, subject to the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be included in 21 | all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 28 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 29 | IN THE SOFTWARE. 30 | notices: [] 31 | -------------------------------------------------------------------------------- /.licenses/npm/xmlbuilder.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: xmlbuilder 3 | version: 11.0.1 4 | type: npm 5 | summary: An XML builder for node.js 6 | homepage: http://github.com/oozcitak/xmlbuilder-js 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2013 Ozgur Ozcitak 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in 23 | all copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 31 | THE SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/get-proto.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: get-proto 3 | version: 1.0.1 4 | type: npm 5 | summary: Robustly get the [[Prototype]] of an object 6 | homepage: https://github.com/ljharb/get-proto#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) 2025 Jordan Harband 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/undici-types.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: undici-types 3 | version: 7.8.0 4 | type: npm 5 | summary: A stand-alone types package for Undici 6 | homepage: https://undici.nodejs.org 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) Matteo Collina and Undici contributors 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/es-errors.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: es-errors 3 | version: 1.3.0 4 | type: npm 5 | summary: A simple cache for a few of the JS Error constructors. 6 | homepage: https://github.com/ljharb/es-errors#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) 2024 Jordan Harband 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/concat-map.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: concat-map 3 | version: 0.0.1 4 | type: npm 5 | summary: concatenative mapdashery 6 | homepage: https://github.com/substack/node-concat-map#readme 7 | license: other 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | This software is released under the MIT license: 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a copy of 14 | this software and associated documentation files (the "Software"), to deal in 15 | the Software without restriction, including without limitation the rights to 16 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | the Software, and to permit persons to whom the Software is furnished to do so, 18 | subject to the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be included in all 21 | copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 25 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 26 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 27 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 28 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 | - sources: README.markdown 30 | text: MIT 31 | notices: [] 32 | -------------------------------------------------------------------------------- /.licenses/npm/hasown.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: hasown 3 | version: 2.0.2 4 | type: npm 5 | summary: A robust, ES3 compatible, "has own property" predicate. 6 | homepage: https://github.com/inspect-js/hasOwn#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) Jordan Harband and contributors 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/gopd.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: gopd 3 | version: 1.2.0 4 | type: npm 5 | summary: "`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation." 6 | homepage: https://github.com/ljharb/gopd#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) 2022 Jordan Harband 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/abort-controller.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: abort-controller 3 | version: 3.0.0 4 | type: npm 5 | summary: An implementation of WHATWG AbortController interface. 6 | homepage: https://github.com/mysticatea/abort-controller#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) 2017 Toru Nagashima 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/es-define-property.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: es-define-property 3 | version: 1.0.1 4 | type: npm 5 | summary: "`Object.defineProperty`, but not IE 8's broken one." 6 | homepage: https://github.com/ljharb/es-define-property#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) 2024 Jordan Harband 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/math-intrinsics.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: math-intrinsics 3 | version: 1.1.0 4 | type: npm 5 | summary: ES Math-related intrinsics and helpers, robustly cached. 6 | homepage: https://github.com/es-shims/math-intrinsics#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) 2024 ECMAScript Shims 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/es-object-atoms.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: es-object-atoms 3 | version: 1.1.1 4 | type: npm 5 | summary: 'ES Object-related atoms: Object, ToObject, RequireObjectCoercible' 6 | homepage: https://github.com/ljharb/es-object-atoms#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) 2024 Jordan Harband 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/has-symbols.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: has-symbols 3 | version: 1.1.0 4 | type: npm 5 | summary: Determine if the JS environment has Symbol support. Supports spec, or shams. 6 | homepage: https://github.com/ljharb/has-symbols#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) 2016 Jordan Harband 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/process.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: process 3 | version: 0.11.10 4 | type: npm 5 | summary: process information for node.js and browsers 6 | homepage: https://github.com/shtylman/node-process#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | (The MIT License) 12 | 13 | Copyright (c) 2013 Roman Shtylman 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining 16 | a copy of this software and associated documentation files (the 17 | 'Software'), to deal in the Software without restriction, including 18 | without limitation the rights to use, copy, modify, merge, publish, 19 | distribute, sublicense, and/or sell copies of the Software, and to 20 | permit persons to whom the Software is furnished to do so, subject to 21 | the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be 24 | included in all copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 27 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 28 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 29 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 30 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 31 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 32 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/npm/@azure/core-util.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@azure/core-util" 3 | version: 1.6.1 4 | type: npm 5 | summary: Core library for shared utility methods 6 | homepage: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/core-util/ 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2020 Microsoft 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/event-target-shim.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: event-target-shim 3 | version: 5.0.1 4 | type: npm 5 | summary: An implementation of WHATWG EventTarget interface. 6 | homepage: https://github.com/mysticatea/event-target-shim 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: |+ 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2015 Toru Nagashima 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/npm/@azure/logger.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@azure/logger" 3 | version: 1.0.4 4 | type: npm 5 | summary: Microsoft Azure SDK for JavaScript - Logger 6 | homepage: https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/core/logger/README.md 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2020 Microsoft 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/dunder-proto.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: dunder-proto 3 | version: 1.0.1 4 | type: npm 5 | summary: If available, the `Object.prototype.__proto__` accessor and mutator, call-bound 6 | homepage: https://github.com/es-shims/dunder-proto#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) 2024 ECMAScript Shims 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/mime-db.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: mime-db 3 | version: 1.52.0 4 | type: npm 5 | summary: Media Type Database 6 | homepage: 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | (The MIT License) 12 | 13 | Copyright (c) 2014 Jonathan Ong 14 | Copyright (c) 2015-2022 Douglas Christopher Wilson 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining 17 | a copy of this software and associated documentation files (the 18 | 'Software'), to deal in the Software without restriction, including 19 | without limitation the rights to use, copy, modify, merge, publish, 20 | distribute, sublicense, and/or sell copies of the Software, and to 21 | permit persons to whom the Software is furnished to do so, subject to 22 | the following conditions: 23 | 24 | The above copyright notice and this permission notice shall be 25 | included in all copies or substantial portions of the Software. 26 | 27 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 28 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 29 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 30 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 31 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 32 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 33 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 34 | notices: [] 35 | -------------------------------------------------------------------------------- /.licenses/npm/undici.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: undici 3 | version: 5.29.0 4 | type: npm 5 | summary: An HTTP/1.1 client, written from scratch for Node.js 6 | homepage: https://undici.nodejs.org 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) Matteo Collina and Undici contributors 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | - sources: README.md 33 | text: MIT 34 | notices: [] 35 | -------------------------------------------------------------------------------- /.licenses/npm/es-set-tostringtag.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: es-set-tostringtag 3 | version: 2.1.0 4 | type: npm 5 | summary: A helper to optimistically set Symbol.toStringTag, when possible. 6 | homepage: https://github.com/es-shims/es-set-tostringtag#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) 2022 ECMAScript Shims 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/get-intrinsic.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: get-intrinsic 3 | version: 1.3.0 4 | type: npm 5 | summary: Get and robustly cache all JS language-level intrinsics at first require 6 | time 7 | homepage: https://github.com/ljharb/get-intrinsic#readme 8 | license: mit 9 | licenses: 10 | - sources: LICENSE 11 | text: | 12 | MIT License 13 | 14 | Copyright (c) 2020 Jordan Harband 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy 17 | of this software and associated documentation files (the "Software"), to deal 18 | in the Software without restriction, including without limitation the rights 19 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the Software is 21 | furnished to do so, subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in all 24 | copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 | SOFTWARE. 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/npm/whatwg-url.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: whatwg-url 3 | version: 5.0.0 4 | type: npm 5 | summary: An implementation of the WHATWG URL Standard's URL API and parsing machinery 6 | homepage: https://github.com/jsdom/whatwg-url#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE.txt 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2015–2016 Sebastian Mayr 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in 23 | all copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 31 | THE SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/@actions/http-client.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@actions/http-client" 3 | version: 2.2.1 4 | type: npm 5 | summary: Actions Http Client 6 | homepage: https://github.com/actions/toolkit/tree/main/packages/http-client 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | Actions Http Client for Node.js 12 | 13 | Copyright (c) GitHub, Inc. 14 | 15 | All rights reserved. 16 | 17 | MIT License 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and 20 | associated documentation files (the "Software"), to deal in the Software without restriction, 21 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 22 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 23 | subject to the following conditions: 24 | 25 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 26 | 27 | THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 28 | LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 29 | NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 30 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 31 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/@azure/core-paging.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@azure/core-paging" 3 | version: 1.5.0 4 | type: npm 5 | summary: Core types for paging async iterable iterators 6 | homepage: https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/core/core-paging/README.md 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2020 Microsoft 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/@azure/storage-blob.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@azure/storage-blob" 3 | version: 12.17.0 4 | type: npm 5 | summary: Microsoft Azure Storage SDK for JavaScript - Blob 6 | homepage: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/storage/storage-blob/ 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2020 Microsoft 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/call-bind-apply-helpers.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: call-bind-apply-helpers 3 | version: 1.0.2 4 | type: npm 5 | summary: Helper functions around Function call/apply/bind, for use in `call-bind` 6 | homepage: https://github.com/ljharb/call-bind-apply-helpers#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) 2024 Jordan Harband 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/has-tostringtag.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: has-tostringtag 3 | version: 1.0.2 4 | type: npm 5 | summary: Determine if the JS environment has `Symbol.toStringTag` support. Supports 6 | spec, or shams. 7 | homepage: https://github.com/inspect-js/has-tostringtag#readme 8 | license: mit 9 | licenses: 10 | - sources: LICENSE 11 | text: | 12 | MIT License 13 | 14 | Copyright (c) 2021 Inspect JS 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy 17 | of this software and associated documentation files (the "Software"), to deal 18 | in the Software without restriction, including without limitation the rights 19 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the Software is 21 | furnished to do so, subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in all 24 | copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 | SOFTWARE. 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/npm/@azure/abort-controller.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@azure/abort-controller" 3 | version: 1.1.0 4 | type: npm 5 | summary: Microsoft Azure SDK for JavaScript - Aborter 6 | homepage: https://github.com/Azure/azure-sdk-for-js/tree/master/sdk/core/abort-controller/README.md 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2020 Microsoft 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/safe-buffer.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: safe-buffer 3 | version: 5.2.1 4 | type: npm 5 | summary: Safer Node.js Buffer API 6 | homepage: https://github.com/feross/safe-buffer 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) Feross Aboukhadijeh 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in 23 | all copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 31 | THE SOFTWARE. 32 | - sources: README.md 33 | text: MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org) 34 | notices: [] 35 | -------------------------------------------------------------------------------- /.licenses/npm/@types/node.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@types/node" 3 | version: 24.1.0 4 | type: npm 5 | summary: TypeScript definitions for node 6 | homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: |2 11 | MIT License 12 | 13 | Copyright (c) Microsoft Corporation. 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/@azure/core-auth.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@azure/core-auth" 3 | version: 1.5.0 4 | type: npm 5 | summary: Provides low-level interfaces and helper methods for authentication in Azure 6 | SDK 7 | homepage: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/core-auth/README.md 8 | license: mit 9 | licenses: 10 | - sources: LICENSE 11 | text: | 12 | The MIT License (MIT) 13 | 14 | Copyright (c) 2020 Microsoft 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy 17 | of this software and associated documentation files (the "Software"), to deal 18 | in the Software without restriction, including without limitation the rights 19 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the Software is 21 | furnished to do so, subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in all 24 | copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 | SOFTWARE. 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/npm/@types/tunnel.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@types/tunnel" 3 | version: 0.0.3 4 | type: npm 5 | summary: TypeScript definitions for tunnel 6 | homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/tunnel 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: |2 11 | MIT License 12 | 13 | Copyright (c) Microsoft Corporation. 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/asynckit.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: asynckit 3 | version: 0.4.0 4 | type: npm 5 | summary: Minimal async jobs utility library, with streams support 6 | homepage: https://github.com/alexindigo/asynckit#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2016 Alex Indigo 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | - sources: README.md 33 | text: AsyncKit is licensed under the MIT license. 34 | notices: [] 35 | -------------------------------------------------------------------------------- /.licenses/npm/@azure/core-lro.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@azure/core-lro" 3 | version: 2.5.4 4 | type: npm 5 | summary: Isomorphic client library for supporting long-running operations in node.js 6 | and browser. 7 | homepage: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/core-lro/README.md 8 | license: mit 9 | licenses: 10 | - sources: LICENSE 11 | text: | 12 | The MIT License (MIT) 13 | 14 | Copyright (c) 2020 Microsoft 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy 17 | of this software and associated documentation files (the "Software"), to deal 18 | in the Software without restriction, including without limitation the rights 19 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the Software is 21 | furnished to do so, subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in all 24 | copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 | SOFTWARE. 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/npm/@azure/core-tracing.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@azure/core-tracing" 3 | version: 1.0.0-preview.13 4 | type: npm 5 | summary: Provides low-level interfaces and helper methods for tracing in Azure SDK 6 | homepage: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/core-tracing/README.md 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2020 Microsoft 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/@types/node-fetch.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@types/node-fetch" 3 | version: 2.6.9 4 | type: npm 5 | summary: TypeScript definitions for node-fetch 6 | homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node-fetch 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: |2 11 | MIT License 12 | 13 | Copyright (c) Microsoft Corporation. 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/combined-stream.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: combined-stream 3 | version: 1.0.8 4 | type: npm 5 | summary: A stream that emits multiple other streams one after another. 6 | homepage: https://github.com/felixge/node-combined-stream 7 | license: mit 8 | licenses: 9 | - sources: License 10 | text: | 11 | Copyright (c) 2011 Debuggable Limited 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a copy 14 | of this software and associated documentation files (the "Software"), to deal 15 | in the Software without restriction, including without limitation the rights 16 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 17 | copies of the Software, and to permit persons to whom the Software is 18 | furnished to do so, subject to the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be included in 21 | all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 28 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 29 | THE SOFTWARE. 30 | - sources: Readme.md 31 | text: combined-stream is licensed under the MIT license. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/delayed-stream.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: delayed-stream 3 | version: 1.0.0 4 | type: npm 5 | summary: Buffers events from a stream until you are ready to handle them. 6 | homepage: https://github.com/felixge/node-delayed-stream 7 | license: mit 8 | licenses: 9 | - sources: License 10 | text: | 11 | Copyright (c) 2011 Debuggable Limited 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a copy 14 | of this software and associated documentation files (the "Software"), to deal 15 | in the Software without restriction, including without limitation the rights 16 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 17 | copies of the Software, and to permit persons to whom the Software is 18 | furnished to do so, subject to the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be included in 21 | all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 28 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 29 | THE SOFTWARE. 30 | - sources: Readme.md 31 | text: delayed-stream is licensed under the MIT license. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/npm/@azure/core-http.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@azure/core-http" 3 | version: 3.0.4 4 | type: npm 5 | summary: Isomorphic client Runtime for Typescript/node.js/browser javascript client 6 | libraries generated using AutoRest 7 | homepage: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/core-http/README.md 8 | license: mit 9 | licenses: 10 | - sources: LICENSE 11 | text: | 12 | The MIT License (MIT) 13 | 14 | Copyright (c) 2020 Microsoft 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy 17 | of this software and associated documentation files (the "Software"), to deal 18 | in the Software without restriction, including without limitation the rights 19 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the Software is 21 | furnished to do so, subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in all 24 | copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 | SOFTWARE. 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/npm/tunnel.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: tunnel 3 | version: 0.0.6 4 | type: npm 5 | summary: Node HTTP/HTTPS Agents for tunneling proxies 6 | homepage: https://github.com/koichik/node-tunnel/ 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2012 Koichi Kobayashi 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in 23 | all copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 31 | THE SOFTWARE. 32 | - sources: README.md 33 | text: Licensed under the [MIT](https://github.com/koichik/node-tunnel/blob/master/LICENSE) 34 | license. 35 | notices: [] 36 | -------------------------------------------------------------------------------- /.licenses/npm/events.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: events 3 | version: 3.3.0 4 | type: npm 5 | summary: Node's event emitter for all engines. 6 | homepage: https://github.com/Gozala/events#readme 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT 12 | 13 | Copyright Joyent, Inc. and other Node contributors. 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a 16 | copy of this software and associated documentation files (the 17 | "Software"), to deal in the Software without restriction, including 18 | without limitation the rights to use, copy, modify, merge, publish, 19 | distribute, sublicense, and/or sell copies of the Software, and to permit 20 | persons to whom the Software is furnished to do so, subject to the 21 | following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included 24 | in all copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 27 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 28 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 29 | NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 30 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 31 | OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 32 | USE OR OTHER DEALINGS IN THE SOFTWARE. 33 | - sources: Readme.md 34 | text: |- 35 | [MIT](./LICENSE) 36 | 37 | [node.js docs]: https://nodejs.org/dist/v11.13.0/docs/api/events.html 38 | notices: [] 39 | -------------------------------------------------------------------------------- /.licenses/npm/@azure/ms-rest-js.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@azure/ms-rest-js" 3 | version: 2.7.0 4 | type: npm 5 | summary: Isomorphic client Runtime for Typescript/node.js/browser javascript client 6 | libraries generated using AutoRest 7 | homepage: https://github.com/Azure/ms-rest-js 8 | license: mit 9 | licenses: 10 | - sources: LICENSE 11 | text: |2 12 | MIT License 13 | 14 | Copyright (c) Microsoft Corporation. All rights reserved. 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy 17 | of this software and associated documentation files (the "Software"), to deal 18 | in the Software without restriction, including without limitation the rights 19 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the Software is 21 | furnished to do so, subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in all 24 | copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 | SOFTWARE 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/npm/form-data-2.5.5.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: form-data 3 | version: 2.5.5 4 | type: npm 5 | summary: A library to create readable "multipart/form-data" streams. Can be used to 6 | submit forms and file uploads to other web applications. 7 | homepage: 8 | license: mit 9 | licenses: 10 | - sources: License 11 | text: | 12 | Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and contributors 13 | 14 | Permission is hereby granted, free of charge, to any person obtaining a copy 15 | of this software and associated documentation files (the "Software"), to deal 16 | in the Software without restriction, including without limitation the rights 17 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 18 | copies of the Software, and to permit persons to whom the Software is 19 | furnished to do so, subject to the following conditions: 20 | 21 | The above copyright notice and this permission notice shall be included in 22 | all copies or substantial portions of the Software. 23 | 24 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 25 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 26 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 27 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 28 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 29 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 30 | THE SOFTWARE. 31 | - sources: README.md 32 | text: Form-Data is released under the [MIT](License) license. 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/npm/form-data-4.0.4.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: form-data 3 | version: 4.0.4 4 | type: npm 5 | summary: A library to create readable "multipart/form-data" streams. Can be used to 6 | submit forms and file uploads to other web applications. 7 | homepage: 8 | license: mit 9 | licenses: 10 | - sources: License 11 | text: | 12 | Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and contributors 13 | 14 | Permission is hereby granted, free of charge, to any person obtaining a copy 15 | of this software and associated documentation files (the "Software"), to deal 16 | in the Software without restriction, including without limitation the rights 17 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 18 | copies of the Software, and to permit persons to whom the Software is 19 | furnished to do so, subject to the following conditions: 20 | 21 | The above copyright notice and this permission notice shall be included in 22 | all copies or substantial portions of the Software. 23 | 24 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 25 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 26 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 27 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 28 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 29 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 30 | THE SOFTWARE. 31 | - sources: README.md 32 | text: Form-Data is released under the [MIT](License) license. 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | // This is a reusable configuration file copied from https://github.com/actions/reusable-workflows/tree/main/reusable-configurations. Please don't make changes to this file as it's the subject of an automatic update. 2 | module.exports = { 3 | extends: [ 4 | 'eslint:recommended', 5 | 'plugin:@typescript-eslint/recommended', 6 | 'plugin:eslint-plugin-jest/recommended', 7 | 'eslint-config-prettier' 8 | ], 9 | parser: '@typescript-eslint/parser', 10 | plugins: ['@typescript-eslint', 'eslint-plugin-node', 'eslint-plugin-jest'], 11 | rules: { 12 | '@typescript-eslint/no-require-imports': 'error', 13 | '@typescript-eslint/no-non-null-assertion': 'off', 14 | '@typescript-eslint/no-explicit-any': 'off', 15 | '@typescript-eslint/no-empty-function': 'off', 16 | '@typescript-eslint/ban-ts-comment': [ 17 | 'error', 18 | { 19 | 'ts-ignore': 'allow-with-description' 20 | } 21 | ], 22 | 'no-console': 'error', 23 | 'yoda': 'error', 24 | 'prefer-const': [ 25 | 'error', 26 | { 27 | destructuring: 'all' 28 | } 29 | ], 30 | 'no-control-regex': 'off', 31 | 'no-constant-condition': ['error', {checkLoops: false}], 32 | 'node/no-extraneous-import': 'error' 33 | }, 34 | overrides: [ 35 | { 36 | files: ['**/*{test,spec}.ts'], 37 | rules: { 38 | '@typescript-eslint/no-unused-vars': 'off', 39 | 'jest/no-standalone-expect': 'off', 40 | 'jest/no-conditional-expect': 'off', 41 | 'no-console': 'off', 42 | 43 | } 44 | } 45 | ], 46 | env: { 47 | node: true, 48 | es6: true, 49 | 'jest/globals': true 50 | } 51 | }; 52 | -------------------------------------------------------------------------------- /.licenses/npm/webidl-conversions.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: webidl-conversions 3 | version: 3.0.1 4 | type: npm 5 | summary: Implements the WebIDL algorithms for converting to and from JavaScript values 6 | homepage: https://github.com/jsdom/webidl-conversions#readme 7 | license: bsd-2-clause 8 | licenses: 9 | - sources: LICENSE.md 10 | text: | 11 | # The BSD 2-Clause License 12 | 13 | Copyright (c) 2014, Domenic Denicola 14 | All rights reserved. 15 | 16 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 17 | 18 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 19 | 20 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 21 | 22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 | notices: [] 24 | -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | name: 'Setup Go environment' 2 | description: 'Setup a Go environment and add it to the PATH' 3 | author: 'GitHub' 4 | inputs: 5 | go-version: 6 | description: 'The Go version to download (if necessary) and use. Supports semver spec and ranges. Be sure to enclose this option in single quotation marks.' 7 | go-version-file: 8 | description: 'Path to the go.mod, go.work, .go-version, or .tool-versions file.' 9 | check-latest: 10 | description: 'Set this option to true if you want the action to always check for the latest available version that satisfies the version spec' 11 | default: false 12 | token: 13 | description: Used to pull Go distributions from go-versions. Since there's a default, this is typically not supplied by the user. When running this action on github.com, the default value is sufficient. When running on GHES, you can pass a personal access token for github.com if you are experiencing rate limiting. 14 | default: ${{ github.server_url == 'https://github.com' && github.token || '' }} 15 | cache: 16 | description: Used to specify whether caching is needed. Set to true, if you'd like to enable caching. 17 | default: true 18 | cache-dependency-path: 19 | description: 'Used to specify the path to a dependency file - go.sum' 20 | architecture: 21 | description: 'Target architecture for Go to use. Examples: x86, x64. Will use system architecture by default.' 22 | outputs: 23 | go-version: 24 | description: 'The installed Go version. Useful when given a version range as input.' 25 | cache-hit: 26 | description: 'A boolean value to indicate if a cache was hit' 27 | runs: 28 | using: 'node20' 29 | main: 'dist/setup/index.js' 30 | post: 'dist/cache-save/index.js' 31 | post-if: success() 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib 3 | 4 | # Rest of the file pulled from https://github.com/github/gitignore/blob/master/Node.gitignore 5 | # Logs 6 | logs 7 | *.log 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | lerna-debug.log* 12 | 13 | # Diagnostic reports (https://nodejs.org/api/report.html) 14 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 15 | 16 | # Runtime data 17 | pids 18 | *.pid 19 | *.seed 20 | *.pid.lock 21 | 22 | # Directory for instrumented libs generated by jscoverage/JSCover 23 | lib-cov 24 | 25 | # Coverage directory used by tools like istanbul 26 | coverage 27 | *.lcov 28 | 29 | # nyc test coverage 30 | .nyc_output 31 | 32 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 33 | .grunt 34 | 35 | # Bower dependency directory (https://bower.io/) 36 | bower_components 37 | 38 | # node-waf configuration 39 | .lock-wscript 40 | 41 | # Compiled binary addons (https://nodejs.org/api/addons.html) 42 | build/Release 43 | 44 | # Dependency directories 45 | jspm_packages/ 46 | 47 | # TypeScript v1 declaration files 48 | typings/ 49 | 50 | # TypeScript cache 51 | *.tsbuildinfo 52 | 53 | # Optional npm cache directory 54 | .npm 55 | 56 | # Optional eslint cache 57 | .eslintcache 58 | 59 | # Optional REPL history 60 | .node_repl_history 61 | 62 | # Output of 'npm pack' 63 | *.tgz 64 | 65 | # Yarn Integrity file 66 | .yarn-integrity 67 | 68 | # dotenv environment variables file 69 | .env 70 | .env.test 71 | 72 | # parcel-bundler cache (https://parceljs.org/) 73 | .cache 74 | 75 | # next.js build output 76 | .next 77 | 78 | # nuxt.js build output 79 | .nuxt 80 | 81 | # vuepress build output 82 | .vuepress/dist 83 | 84 | # Serverless directories 85 | .serverless/ 86 | 87 | # FuseBox cache 88 | .fusebox/ 89 | 90 | # DynamoDB Local files 91 | .dynamodb/ 92 | -------------------------------------------------------------------------------- /.licenses/npm/tslib-1.14.1.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: tslib 3 | version: 1.14.1 4 | type: npm 5 | summary: Runtime library for TypeScript helper functions 6 | homepage: https://www.typescriptlang.org/ 7 | license: 0bsd 8 | licenses: 9 | - sources: LICENSE.txt 10 | text: |- 11 | Copyright (c) Microsoft Corporation. 12 | 13 | Permission to use, copy, modify, and/or distribute this software for any 14 | purpose with or without fee is hereby granted. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 17 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 18 | AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 19 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 20 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 21 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 22 | PERFORMANCE OF THIS SOFTWARE. 23 | notices: 24 | - sources: CopyrightNotice.txt 25 | text: "/*! *****************************************************************************\r\nCopyright 26 | (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute 27 | this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE 28 | SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD 29 | TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. 30 | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR 31 | CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, 32 | DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS 33 | ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS 34 | SOFTWARE.\r\n***************************************************************************** 35 | */" 36 | -------------------------------------------------------------------------------- /.licenses/npm/tslib-2.6.2.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: tslib 3 | version: 2.6.2 4 | type: npm 5 | summary: Runtime library for TypeScript helper functions 6 | homepage: https://www.typescriptlang.org/ 7 | license: 0bsd 8 | licenses: 9 | - sources: LICENSE.txt 10 | text: |- 11 | Copyright (c) Microsoft Corporation. 12 | 13 | Permission to use, copy, modify, and/or distribute this software for any 14 | purpose with or without fee is hereby granted. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 17 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 18 | AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 19 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 20 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 21 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 22 | PERFORMANCE OF THIS SOFTWARE. 23 | notices: 24 | - sources: CopyrightNotice.txt 25 | text: "/******************************************************************************\r\nCopyright 26 | (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute 27 | this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE 28 | SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD 29 | TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. 30 | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR 31 | CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, 32 | DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS 33 | ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS 34 | SOFTWARE.\r\n***************************************************************************** 35 | */" 36 | -------------------------------------------------------------------------------- /__tests__/utils.test.ts: -------------------------------------------------------------------------------- 1 | import {isSelfHosted} from '../src/utils'; 2 | 3 | describe('utils', () => { 4 | describe('isSelfHosted', () => { 5 | let AGENT_ISSELFHOSTED: string | undefined; 6 | let RUNNER_ENVIRONMENT: string | undefined; 7 | 8 | beforeEach(() => { 9 | AGENT_ISSELFHOSTED = process.env['AGENT_ISSELFHOSTED']; 10 | delete process.env['AGENT_ISSELFHOSTED']; 11 | RUNNER_ENVIRONMENT = process.env['RUNNER_ENVIRONMENT']; 12 | delete process.env['RUNNER_ENVIRONMENT']; 13 | }); 14 | 15 | afterEach(() => { 16 | if (AGENT_ISSELFHOSTED === undefined) { 17 | delete process.env['AGENT_ISSELFHOSTED']; 18 | } else { 19 | process.env['AGENT_ISSELFHOSTED'] = AGENT_ISSELFHOSTED; 20 | } 21 | if (RUNNER_ENVIRONMENT === undefined) { 22 | delete process.env['RUNNER_ENVIRONMENT']; 23 | } else { 24 | process.env['RUNNER_ENVIRONMENT'] = RUNNER_ENVIRONMENT; 25 | } 26 | }); 27 | 28 | it('isSelfHosted should be true if no environment variables set', () => { 29 | expect(isSelfHosted()).toBeTruthy(); 30 | }); 31 | 32 | it('isSelfHosted should be true if environment variable is not set to denote GitHub hosted', () => { 33 | process.env['RUNNER_ENVIRONMENT'] = 'some'; 34 | expect(isSelfHosted()).toBeTruthy(); 35 | }); 36 | 37 | it('isSelfHosted should be true if environment variable set to denote Azure Pipelines self hosted', () => { 38 | process.env['AGENT_ISSELFHOSTED'] = '1'; 39 | expect(isSelfHosted()).toBeTruthy(); 40 | }); 41 | 42 | it('isSelfHosted should be false if environment variable set to denote GitHub hosted', () => { 43 | process.env['RUNNER_ENVIRONMENT'] = 'github-hosted'; 44 | expect(isSelfHosted()).toBeFalsy(); 45 | }); 46 | 47 | it('isSelfHosted should be false if environment variable is not set to denote Azure Pipelines self hosted', () => { 48 | process.env['AGENT_ISSELFHOSTED'] = 'some'; 49 | expect(isSelfHosted()).toBeFalsy(); 50 | }); 51 | }); 52 | }); 53 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "setup-go", 3 | "version": "6.0.0", 4 | "private": true, 5 | "description": "setup go action", 6 | "main": "lib/setup-go.js", 7 | "engines": { 8 | "node": ">=24.0.0" 9 | }, 10 | "scripts": { 11 | "build": "tsc && ncc build -o dist/setup src/setup-go.ts && ncc build -o dist/cache-save src/cache-save.ts", 12 | "format": "prettier --no-error-on-unmatched-pattern --config ./.prettierrc.js --write \"**/*.{ts,yml,yaml}\"", 13 | "format-check": "prettier --no-error-on-unmatched-pattern --config ./.prettierrc.js --check \"**/*.{ts,yml,yaml}\"", 14 | "lint": "eslint --config ./.eslintrc.js \"**/*.ts\"", 15 | "lint:fix": "eslint --config ./.eslintrc.js \"**/*.ts\" --fix", 16 | "test": "jest --coverage", 17 | "pre-checkin": "npm run format && npm run lint:fix && npm run build && npm test" 18 | }, 19 | "repository": { 20 | "type": "git", 21 | "url": "git+https://github.com/actions/setup-go.git" 22 | }, 23 | "keywords": [ 24 | "actions", 25 | "go", 26 | "setup" 27 | ], 28 | "author": "GitHub", 29 | "license": "MIT", 30 | "dependencies": { 31 | "@actions/cache": "^4.0.3", 32 | "@actions/core": "^1.11.1", 33 | "@actions/exec": "^1.1.1", 34 | "@actions/glob": "^0.5.0", 35 | "@actions/http-client": "^2.2.1", 36 | "@actions/io": "^1.0.2", 37 | "@actions/tool-cache": "^2.0.2", 38 | "semver": "^7.7.3" 39 | }, 40 | "devDependencies": { 41 | "@types/jest": "^29.5.14", 42 | "@types/node": "^24.1.0", 43 | "@types/semver": "^7.7.1", 44 | "@typescript-eslint/eslint-plugin": "^8.31.1", 45 | "@typescript-eslint/parser": "^8.35.1", 46 | "@vercel/ncc": "^0.38.1", 47 | "eslint": "^8.57.0", 48 | "eslint-config-prettier": "^10.1.8", 49 | "eslint-plugin-jest": "^29.0.1", 50 | "eslint-plugin-node": "^11.1.0", 51 | "jest": "^29.7.0", 52 | "jest-circus": "^29.7.0", 53 | "nock": "^10.0.6", 54 | "prettier": "^2.8.4", 55 | "ts-jest": "^29.3.2", 56 | "typescript": "^5.8.3" 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /.licenses/npm/mime-types.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: mime-types 3 | version: 2.1.35 4 | type: npm 5 | summary: The ultimate javascript content-type utility. 6 | homepage: 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | (The MIT License) 12 | 13 | Copyright (c) 2014 Jonathan Ong 14 | Copyright (c) 2015 Douglas Christopher Wilson 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining 17 | a copy of this software and associated documentation files (the 18 | 'Software'), to deal in the Software without restriction, including 19 | without limitation the rights to use, copy, modify, merge, publish, 20 | distribute, sublicense, and/or sell copies of the Software, and to 21 | permit persons to whom the Software is furnished to do so, subject to 22 | the following conditions: 23 | 24 | The above copyright notice and this permission notice shall be 25 | included in all copies or substantial portions of the Software. 26 | 27 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 28 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 29 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 30 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 31 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 32 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 33 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 34 | - sources: README.md 35 | text: |- 36 | [MIT](LICENSE) 37 | 38 | [ci-image]: https://badgen.net/github/checks/jshttp/mime-types/master?label=ci 39 | [ci-url]: https://github.com/jshttp/mime-types/actions/workflows/ci.yml 40 | [coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/mime-types/master 41 | [coveralls-url]: https://coveralls.io/r/jshttp/mime-types?branch=master 42 | [node-version-image]: https://badgen.net/npm/node/mime-types 43 | [node-version-url]: https://nodejs.org/en/download 44 | [npm-downloads-image]: https://badgen.net/npm/dm/mime-types 45 | [npm-url]: https://npmjs.org/package/mime-types 46 | [npm-version-image]: https://badgen.net/npm/v/mime-types 47 | notices: [] 48 | -------------------------------------------------------------------------------- /src/cache-restore.ts: -------------------------------------------------------------------------------- 1 | import * as cache from '@actions/cache'; 2 | import * as core from '@actions/core'; 3 | import * as glob from '@actions/glob'; 4 | import path from 'path'; 5 | import fs from 'fs'; 6 | 7 | import {State, Outputs} from './constants'; 8 | import {PackageManagerInfo} from './package-managers'; 9 | import {getCacheDirectoryPath, getPackageManagerInfo} from './cache-utils'; 10 | 11 | export const restoreCache = async ( 12 | versionSpec: string, 13 | packageManager: string, 14 | cacheDependencyPath?: string 15 | ) => { 16 | const packageManagerInfo = await getPackageManagerInfo(packageManager); 17 | const platform = process.env.RUNNER_OS; 18 | const arch = process.arch; 19 | 20 | const cachePaths = await getCacheDirectoryPath(packageManagerInfo); 21 | 22 | const dependencyFilePath = cacheDependencyPath 23 | ? cacheDependencyPath 24 | : findDependencyFile(packageManagerInfo); 25 | const fileHash = await glob.hashFiles(dependencyFilePath); 26 | 27 | if (!fileHash) { 28 | throw new Error( 29 | 'Some specified paths were not resolved, unable to cache dependencies.' 30 | ); 31 | } 32 | 33 | const linuxVersion = 34 | process.env.RUNNER_OS === 'Linux' ? `${process.env.ImageOS}-` : ''; 35 | const primaryKey = `setup-go-${platform}-${arch}-${linuxVersion}go-${versionSpec}-${fileHash}`; 36 | core.debug(`primary key is ${primaryKey}`); 37 | 38 | core.saveState(State.CachePrimaryKey, primaryKey); 39 | 40 | const cacheKey = await cache.restoreCache(cachePaths, primaryKey); 41 | core.setOutput(Outputs.CacheHit, Boolean(cacheKey)); 42 | 43 | if (!cacheKey) { 44 | core.info(`Cache is not found`); 45 | core.setOutput(Outputs.CacheHit, false); 46 | return; 47 | } 48 | 49 | core.saveState(State.CacheMatchedKey, cacheKey); 50 | core.info(`Cache restored from key: ${cacheKey}`); 51 | }; 52 | 53 | const findDependencyFile = (packageManager: PackageManagerInfo) => { 54 | const dependencyFile = packageManager.dependencyFilePattern; 55 | const workspace = process.env.GITHUB_WORKSPACE!; 56 | const rootContent = fs.readdirSync(workspace); 57 | 58 | const goSumFileExists = rootContent.includes(dependencyFile); 59 | if (!goSumFileExists) { 60 | throw new Error( 61 | `Dependencies file is not found in ${workspace}. Supported file pattern: ${dependencyFile}` 62 | ); 63 | } 64 | 65 | return path.join(workspace, dependencyFile); 66 | }; 67 | -------------------------------------------------------------------------------- /.licenses/npm/sax.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: sax 3 | version: 1.3.0 4 | type: npm 5 | summary: An evented streaming XML parser in JavaScript 6 | homepage: 7 | license: isc 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The ISC License 12 | 13 | Copyright (c) 2010-2022 Isaac Z. Schlueter and Contributors 14 | 15 | Permission to use, copy, modify, and/or distribute this software for any 16 | purpose with or without fee is hereby granted, provided that the above 17 | copyright notice and this permission notice appear in all copies. 18 | 19 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 20 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 21 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 22 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 23 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 24 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 25 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 26 | 27 | ==== 28 | 29 | `String.fromCodePoint` by Mathias Bynens used according to terms of MIT 30 | License, as follows: 31 | 32 | Copyright (c) 2010-2022 Mathias Bynens 33 | 34 | Permission is hereby granted, free of charge, to any person obtaining 35 | a copy of this software and associated documentation files (the 36 | "Software"), to deal in the Software without restriction, including 37 | without limitation the rights to use, copy, modify, merge, publish, 38 | distribute, sublicense, and/or sell copies of the Software, and to 39 | permit persons to whom the Software is furnished to do so, subject to 40 | the following conditions: 41 | 42 | The above copyright notice and this permission notice shall be 43 | included in all copies or substantial portions of the Software. 44 | 45 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 46 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 47 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 48 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 49 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 50 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 51 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 52 | notices: [] 53 | -------------------------------------------------------------------------------- /__tests__/windows-toolcache.test.ts: -------------------------------------------------------------------------------- 1 | import fs from 'fs'; 2 | import * as io from '@actions/io'; 3 | import * as tc from '@actions/tool-cache'; 4 | import path from 'path'; 5 | 6 | describe('Windows performance workaround', () => { 7 | let mkdirSpy: jest.SpyInstance; 8 | let symlinkSpy: jest.SpyInstance; 9 | let statSpy: jest.SpyInstance; 10 | let readdirSpy: jest.SpyInstance; 11 | let writeFileSpy: jest.SpyInstance; 12 | let rmRFSpy: jest.SpyInstance; 13 | let mkdirPSpy: jest.SpyInstance; 14 | let cpSpy: jest.SpyInstance; 15 | 16 | let runnerToolCache: string | undefined; 17 | beforeEach(() => { 18 | mkdirSpy = jest.spyOn(fs, 'mkdir'); 19 | symlinkSpy = jest.spyOn(fs, 'symlinkSync'); 20 | statSpy = jest.spyOn(fs, 'statSync'); 21 | readdirSpy = jest.spyOn(fs, 'readdirSync'); 22 | writeFileSpy = jest.spyOn(fs, 'writeFileSync'); 23 | rmRFSpy = jest.spyOn(io, 'rmRF'); 24 | mkdirPSpy = jest.spyOn(io, 'mkdirP'); 25 | cpSpy = jest.spyOn(io, 'cp'); 26 | 27 | // default implementations 28 | // @ts-ignore - not implement unused methods 29 | statSpy.mockImplementation(() => ({ 30 | isDirectory: () => true 31 | })); 32 | readdirSpy.mockImplementation(() => []); 33 | writeFileSpy.mockImplementation(() => {}); 34 | mkdirSpy.mockImplementation(() => {}); 35 | symlinkSpy.mockImplementation(() => {}); 36 | rmRFSpy.mockImplementation(() => Promise.resolve()); 37 | mkdirPSpy.mockImplementation(() => Promise.resolve()); 38 | cpSpy.mockImplementation(() => Promise.resolve()); 39 | 40 | runnerToolCache = process.env['RUNNER_TOOL_CACHE']; 41 | }); 42 | afterEach(() => { 43 | jest.clearAllMocks(); 44 | process.env['RUNNER_TOOL_CACHE'] = runnerToolCache; 45 | }); 46 | // cacheWindowsToolkitDir depends on implementation of tc.cacheDir 47 | // with the assumption that target dir is passed by RUNNER_TOOL_CACHE environment variable 48 | // Make sure the implementation has not been changed 49 | it('addExecutablesToCache should depend on env[RUNNER_TOOL_CACHE]', async () => { 50 | process.env['RUNNER_TOOL_CACHE'] = '/faked-hostedtoolcache1'; 51 | const cacheDir1 = await tc.cacheDir('/qzx', 'go', '1.2.3', 'arch'); 52 | expect(cacheDir1).toBe( 53 | path.join('/', 'faked-hostedtoolcache1', 'go', '1.2.3', 'arch') 54 | ); 55 | 56 | process.env['RUNNER_TOOL_CACHE'] = '/faked-hostedtoolcache2'; 57 | const cacheDir2 = await tc.cacheDir('/qzx', 'go', '1.2.3', 'arch'); 58 | expect(cacheDir2).toBe( 59 | path.join('/', 'faked-hostedtoolcache2', 'go', '1.2.3', 'arch') 60 | ); 61 | }); 62 | }); 63 | -------------------------------------------------------------------------------- /.licenses/npm/brace-expansion.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: brace-expansion 3 | version: 1.1.12 4 | type: npm 5 | summary: Brace expansion as known from sh/bash 6 | homepage: https://github.com/juliangruber/brace-expansion 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) 2013 Julian Gruber 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | - sources: README.md 33 | text: |- 34 | (MIT) 35 | 36 | Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> 37 | 38 | Permission is hereby granted, free of charge, to any person obtaining a copy of 39 | this software and associated documentation files (the "Software"), to deal in 40 | the Software without restriction, including without limitation the rights to 41 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 42 | of the Software, and to permit persons to whom the Software is furnished to do 43 | so, subject to the following conditions: 44 | 45 | The above copyright notice and this permission notice shall be included in all 46 | copies or substantial portions of the Software. 47 | 48 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 49 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 50 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 51 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 52 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 53 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 54 | SOFTWARE. 55 | notices: [] 56 | -------------------------------------------------------------------------------- /.licenses/npm/balanced-match.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: balanced-match 3 | version: 1.0.2 4 | type: npm 5 | summary: Match balanced character pairs, like "{" and "}" 6 | homepage: https://github.com/juliangruber/balanced-match 7 | license: mit 8 | licenses: 9 | - sources: LICENSE.md 10 | text: | 11 | (MIT) 12 | 13 | Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy of 16 | this software and associated documentation files (the "Software"), to deal in 17 | the Software without restriction, including without limitation the rights to 18 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 19 | of the Software, and to permit persons to whom the Software is furnished to do 20 | so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | - sources: README.md 33 | text: |- 34 | (MIT) 35 | 36 | Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> 37 | 38 | Permission is hereby granted, free of charge, to any person obtaining a copy of 39 | this software and associated documentation files (the "Software"), to deal in 40 | the Software without restriction, including without limitation the rights to 41 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 42 | of the Software, and to permit persons to whom the Software is furnished to do 43 | so, subject to the following conditions: 44 | 45 | The above copyright notice and this permission notice shall be included in all 46 | copies or substantial portions of the Software. 47 | 48 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 49 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 50 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 51 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 52 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 53 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 54 | SOFTWARE. 55 | notices: [] 56 | -------------------------------------------------------------------------------- /src/cache-utils.ts: -------------------------------------------------------------------------------- 1 | import * as cache from '@actions/cache'; 2 | import * as core from '@actions/core'; 3 | import * as exec from '@actions/exec'; 4 | import {supportedPackageManagers, PackageManagerInfo} from './package-managers'; 5 | 6 | export const getCommandOutput = async (toolCommand: string) => { 7 | let {stdout, stderr, exitCode} = await exec.getExecOutput( 8 | toolCommand, 9 | undefined, 10 | {ignoreReturnCode: true} 11 | ); 12 | 13 | if (exitCode) { 14 | stderr = !stderr.trim() 15 | ? `The '${toolCommand}' command failed with exit code: ${exitCode}` 16 | : stderr; 17 | throw new Error(stderr); 18 | } 19 | 20 | return stdout.trim(); 21 | }; 22 | 23 | export const getPackageManagerInfo = async (packageManager: string) => { 24 | if (!supportedPackageManagers[packageManager]) { 25 | throw new Error( 26 | `It's not possible to use ${packageManager}, please, check correctness of the package manager name spelling.` 27 | ); 28 | } 29 | const obtainedPackageManager = supportedPackageManagers[packageManager]; 30 | 31 | return obtainedPackageManager; 32 | }; 33 | 34 | export const getCacheDirectoryPath = async ( 35 | packageManagerInfo: PackageManagerInfo 36 | ) => { 37 | const pathOutputs = await Promise.allSettled( 38 | packageManagerInfo.cacheFolderCommandList.map(async command => 39 | getCommandOutput(command) 40 | ) 41 | ); 42 | 43 | const results = pathOutputs.map(item => { 44 | if (item.status === 'fulfilled') { 45 | return item.value; 46 | } else { 47 | core.info(`[warning]getting cache directory path failed: ${item.reason}`); 48 | } 49 | 50 | return ''; 51 | }); 52 | 53 | const cachePaths = results.filter(item => item); 54 | 55 | if (!cachePaths.length) { 56 | throw new Error(`Could not get cache folder paths.`); 57 | } 58 | 59 | return cachePaths; 60 | }; 61 | 62 | export function isGhes(): boolean { 63 | const ghUrl = new URL( 64 | process.env['GITHUB_SERVER_URL'] || 'https://github.com' 65 | ); 66 | 67 | const hostname = ghUrl.hostname.trimEnd().toUpperCase(); 68 | const isGitHubHost = hostname === 'GITHUB.COM'; 69 | const isGitHubEnterpriseCloudHost = hostname.endsWith('.GHE.COM'); 70 | const isLocalHost = hostname.endsWith('.LOCALHOST'); 71 | 72 | return !isGitHubHost && !isGitHubEnterpriseCloudHost && !isLocalHost; 73 | } 74 | 75 | export function isCacheFeatureAvailable(): boolean { 76 | if (cache.isFeatureAvailable()) { 77 | return true; 78 | } 79 | 80 | if (isGhes()) { 81 | core.warning( 82 | 'Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not.' 83 | ); 84 | return false; 85 | } 86 | 87 | core.warning( 88 | 'The runner was not able to contact the cache service. Caching will be skipped' 89 | ); 90 | return false; 91 | } 92 | -------------------------------------------------------------------------------- /src/cache-save.ts: -------------------------------------------------------------------------------- 1 | import * as core from '@actions/core'; 2 | import * as cache from '@actions/cache'; 3 | import fs from 'fs'; 4 | import {State} from './constants'; 5 | import {getCacheDirectoryPath, getPackageManagerInfo} from './cache-utils'; 6 | 7 | // Catch and log any unhandled exceptions. These exceptions can leak out of the uploadChunk method in 8 | // @actions/toolkit when a failed upload closes the file descriptor causing any in-process reads to 9 | // throw an uncaught exception. Instead of failing this action, just warn. 10 | process.on('uncaughtException', e => { 11 | const warningPrefix = '[warning]'; 12 | core.info(`${warningPrefix}${e.message}`); 13 | }); 14 | 15 | // Added early exit to resolve issue with slow post action step: 16 | // - https://github.com/actions/setup-node/issues/878 17 | // https://github.com/actions/cache/pull/1217 18 | 19 | export async function run(earlyExit?: boolean) { 20 | try { 21 | const cacheInput = core.getBooleanInput('cache'); 22 | if (cacheInput) { 23 | await cachePackages(); 24 | 25 | if (earlyExit) { 26 | process.exit(0); 27 | } 28 | } 29 | } catch (error) { 30 | let message = 'Unknown error!'; 31 | if (error instanceof Error) { 32 | message = error.message; 33 | } 34 | if (typeof error === 'string') { 35 | message = error; 36 | } 37 | core.warning(message); 38 | } 39 | } 40 | 41 | const cachePackages = async () => { 42 | const packageManager = 'default'; 43 | 44 | const state = core.getState(State.CacheMatchedKey); 45 | const primaryKey = core.getState(State.CachePrimaryKey); 46 | 47 | const packageManagerInfo = await getPackageManagerInfo(packageManager); 48 | 49 | const cachePaths = await getCacheDirectoryPath(packageManagerInfo); 50 | 51 | const nonExistingPaths = cachePaths.filter( 52 | cachePath => !fs.existsSync(cachePath) 53 | ); 54 | 55 | if (nonExistingPaths.length === cachePaths.length) { 56 | core.warning('There are no cache folders on the disk'); 57 | return; 58 | } 59 | 60 | if (nonExistingPaths.length) { 61 | logWarning( 62 | `Cache folder path is retrieved but doesn't exist on disk: ${nonExistingPaths.join( 63 | ', ' 64 | )}` 65 | ); 66 | } 67 | 68 | if (!primaryKey) { 69 | core.info( 70 | 'Primary key was not generated. Please check the log messages above for more errors or information' 71 | ); 72 | return; 73 | } 74 | 75 | if (primaryKey === state) { 76 | core.info( 77 | `Cache hit occurred on the primary key ${primaryKey}, not saving cache.` 78 | ); 79 | return; 80 | } 81 | 82 | const cacheId = await cache.saveCache(cachePaths, primaryKey); 83 | if (cacheId === -1) { 84 | return; 85 | } 86 | core.info(`Cache saved with the key: ${primaryKey}`); 87 | }; 88 | 89 | function logWarning(message: string): void { 90 | const warningPrefix = '[warning]'; 91 | core.info(`${warningPrefix}${message}`); 92 | } 93 | 94 | run(true); 95 | -------------------------------------------------------------------------------- /.licenses/npm/node-fetch.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: node-fetch 3 | version: 2.7.0 4 | type: npm 5 | summary: A light-weight module that brings window.fetch to node.js 6 | homepage: https://github.com/bitinn/node-fetch 7 | license: mit 8 | licenses: 9 | - sources: LICENSE.md 10 | text: |+ 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2016 David Frank 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | 33 | - sources: README.md 34 | text: |- 35 | MIT 36 | 37 | [npm-image]: https://flat.badgen.net/npm/v/node-fetch 38 | [npm-url]: https://www.npmjs.com/package/node-fetch 39 | [travis-image]: https://flat.badgen.net/travis/bitinn/node-fetch 40 | [travis-url]: https://travis-ci.org/bitinn/node-fetch 41 | [codecov-image]: https://flat.badgen.net/codecov/c/github/bitinn/node-fetch/master 42 | [codecov-url]: https://codecov.io/gh/bitinn/node-fetch 43 | [install-size-image]: https://flat.badgen.net/packagephobia/install/node-fetch 44 | [install-size-url]: https://packagephobia.now.sh/result?p=node-fetch 45 | [discord-image]: https://img.shields.io/discord/619915844268326952?color=%237289DA&label=Discord&style=flat-square 46 | [discord-url]: https://discord.gg/Zxbndcm 47 | [opencollective-image]: https://opencollective.com/node-fetch/backers.svg 48 | [opencollective-url]: https://opencollective.com/node-fetch 49 | [whatwg-fetch]: https://fetch.spec.whatwg.org/ 50 | [response-init]: https://fetch.spec.whatwg.org/#responseinit 51 | [node-readable]: https://nodejs.org/api/stream.html#stream_readable_streams 52 | [mdn-headers]: https://developer.mozilla.org/en-US/docs/Web/API/Headers 53 | [LIMITS.md]: https://github.com/bitinn/node-fetch/blob/master/LIMITS.md 54 | [ERROR-HANDLING.md]: https://github.com/bitinn/node-fetch/blob/master/ERROR-HANDLING.md 55 | [UPGRADE-GUIDE.md]: https://github.com/bitinn/node-fetch/blob/master/UPGRADE-GUIDE.md 56 | notices: [] 57 | -------------------------------------------------------------------------------- /__tests__/cache-restore.test.ts: -------------------------------------------------------------------------------- 1 | import * as cache from '@actions/cache'; 2 | import * as core from '@actions/core'; 3 | import * as glob from '@actions/glob'; 4 | 5 | import * as cacheRestore from '../src/cache-restore'; 6 | import * as cacheUtils from '../src/cache-utils'; 7 | import {PackageManagerInfo} from '../src/package-managers'; 8 | 9 | describe('restoreCache', () => { 10 | //Arrange 11 | const hashFilesSpy = jest.spyOn(glob, 'hashFiles'); 12 | const getCacheDirectoryPathSpy = jest.spyOn( 13 | cacheUtils, 14 | 'getCacheDirectoryPath' 15 | ); 16 | const restoreCacheSpy = jest.spyOn(cache, 'restoreCache'); 17 | const infoSpy = jest.spyOn(core, 'info'); 18 | const setOutputSpy = jest.spyOn(core, 'setOutput'); 19 | 20 | const versionSpec = '1.13.1'; 21 | const packageManager = 'default'; 22 | const cacheDependencyPath = 'path'; 23 | 24 | beforeEach(() => { 25 | getCacheDirectoryPathSpy.mockImplementation( 26 | (PackageManager: PackageManagerInfo) => { 27 | return new Promise(resolve => { 28 | resolve(['cache_directory_path', 'cache_directory_path']); 29 | }); 30 | } 31 | ); 32 | }); 33 | 34 | it('should throw if dependency file path is not valid', async () => { 35 | //Arrange 36 | hashFilesSpy.mockImplementation((somePath: string) => { 37 | return new Promise(resolve => { 38 | resolve(''); 39 | }); 40 | }); 41 | 42 | //Act + Assert 43 | await expect(async () => { 44 | await cacheRestore.restoreCache( 45 | versionSpec, 46 | packageManager, 47 | cacheDependencyPath 48 | ); 49 | }).rejects.toThrow( 50 | 'Some specified paths were not resolved, unable to cache dependencies.' 51 | ); 52 | }); 53 | 54 | it('should inform if cache hit is not occured', async () => { 55 | //Arrange 56 | hashFilesSpy.mockImplementation((somePath: string) => { 57 | return new Promise(resolve => { 58 | resolve('file_hash'); 59 | }); 60 | }); 61 | 62 | restoreCacheSpy.mockImplementation(() => { 63 | return new Promise(resolve => { 64 | resolve(''); 65 | }); 66 | }); 67 | 68 | //Act + Assert 69 | await cacheRestore.restoreCache( 70 | versionSpec, 71 | packageManager, 72 | cacheDependencyPath 73 | ); 74 | expect(infoSpy).toHaveBeenCalledWith(`Cache is not found`); 75 | }); 76 | 77 | it('should set output if cache hit is occured', async () => { 78 | //Arrange 79 | hashFilesSpy.mockImplementation((somePath: string) => { 80 | return new Promise(resolve => { 81 | resolve('file_hash'); 82 | }); 83 | }); 84 | 85 | restoreCacheSpy.mockImplementation(() => { 86 | return new Promise(resolve => { 87 | resolve('cache_key'); 88 | }); 89 | }); 90 | 91 | //Act + Assert 92 | await cacheRestore.restoreCache( 93 | versionSpec, 94 | packageManager, 95 | cacheDependencyPath 96 | ); 97 | expect(setOutputSpy).toHaveBeenCalledWith('cache-hit', true); 98 | }); 99 | }); 100 | -------------------------------------------------------------------------------- /docs/adrs/0000-caching-dependencies.md: -------------------------------------------------------------------------------- 1 | # 0. Caching dependencies 2 | Date: 2022-04-13 3 | 4 | Status: Accepted 5 | 6 | # Context 7 | `actions/setup-go` is the one of the most popular action related to Golang in GitHub Actions. Many customers use it in conjunction with [actions/cache](https://github.com/actions/cache) to speed up dependency installation process. 8 | See more examples on proper usage in [actions/cache documentation](https://github.com/actions/cache/blob/main/examples.md#go---modules). 9 | 10 | # Goals & Anti-Goals 11 | Integration of caching functionality into `actions/setup-go` action will bring the following benefits for action users: 12 | - Decrease the entry threshold for using the cache for Go dependencies and simplify initial configuration 13 | - Simplify YAML pipelines because there will be no need for additional steps to enable caching 14 | - More users will use cache for Go so more customers will have fast builds! 15 | 16 | We don't pursue the goal to provide wide customization of caching in scope of `actions/setup-go` action. The purpose of this integration is covering ~90% of basic use-cases. If user needs flexible customization, we should advice them to use `actions/cache` directly. 17 | 18 | # Decision 19 | - Add `cache` input parameter to `actions/setup-go`. For now, input will accept the following values: 20 | - `true` - enable caching for go dependencies 21 | - `false`- disable caching for go dependencies. This value will be set as default value 22 | - Cache feature will be disabled by default to make sure that we don't break existing customers. We will consider enabling cache by default in next major releases 23 | - Action will try to search a go.sum files in the repository and throw error in the scenario that it was not found 24 | - The hash of found file will be used as cache key (the same approach like [actions/cache](https://github.com/actions/cache/blob/main/examples.md#go---modules) recommends) 25 | - The following key cache will be used `${{ runner.os }}-go${{ go-version }}-${{ hashFiles('') }}` 26 | - Action will cache global cache from the `go env GOMODCACHE` and `go env GOCACHE` commands. 27 | - Add a `cache-dependency-path` input parameter to `actions/setup-go`. The new input will accept an array or regex of dependency files. The field will accept a path (relative to the repository root) to dependency files. If the provided path contains wildcards, the action will search all matching files and calculate a common hash like the ${{ hashFiles('**/go.sum') }} YAML construction does. 28 | 29 | # Example of real use-cases 30 | 31 | - With cache 32 | 33 | ```yml 34 | steps: 35 | - uses: actions/checkout@v4 36 | - uses: actions/setup-go@v3 37 | with: 38 | go-version: '18' 39 | cache: true 40 | ``` 41 | 42 | - With cache-dependency-path 43 | 44 | ```yml 45 | steps: 46 | - uses: actions/checkout@v4 47 | - uses: actions/setup-go@v3 48 | with: 49 | go-version: '18' 50 | cache: true 51 | cache-dependency-path: **/go.sum 52 | ``` 53 | 54 | ```yml 55 | steps: 56 | - uses: actions/checkout@v4 57 | - uses: actions/setup-go@v3 58 | with: 59 | go-version: '18' 60 | cache: true 61 | cache-dependency-path: | 62 | **/go.sum 63 | **/go.mod 64 | ``` 65 | 66 | # Release process 67 | 68 | As soon as functionality is implemented, we will release minor update of action. No need to bump major version since there are no breaking changes for existing users. 69 | After that, we will update [starter-workflows](https://github.com/actions/starter-workflows/blob/main/ci/go.yml) 70 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to make participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies within all project spaces, and it also applies when 49 | an individual is representing the project or its community in public spaces. 50 | Examples of representing a project or community include using an official 51 | project e-mail address, posting via an official social media account, or acting 52 | as an appointed representative at an online or offline event. Representation of 53 | a project may be further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at opensource+actions/setup-go@github.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /__tests__/data/versions-manifest.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "version": "1.17.6", 4 | "stable": true, 5 | "release_url": "https://github.com/actions/go-versions/releases/tag/1.17.6-1668090892", 6 | "files": [ 7 | { 8 | "filename": "go-1.17.6-darwin-x64.tar.gz", 9 | "arch": "x64", 10 | "platform": "darwin", 11 | "download_url": "https://github.com/actions/go-versions/releases/download/1.17.6-1668090892/go-1.17.6-darwin-x64.tar.gz" 12 | }, 13 | { 14 | "filename": "go-1.17.6-linux-x64.tar.gz", 15 | "arch": "x64", 16 | "platform": "linux", 17 | "download_url": "https://github.com/actions/go-versions/releases/download/1.17.6-1668090892/go-1.17.6-linux-x64.tar.gz" 18 | }, 19 | { 20 | "filename": "go-1.17.6-win32-x64.zip", 21 | "arch": "x64", 22 | "platform": "win32", 23 | "download_url": "https://github.com/actions/go-versions/releases/download/1.17.6-1668090892/go-1.17.6-win32-x64.zip" 24 | } 25 | ] 26 | }, 27 | { 28 | "version": "1.12.17", 29 | "stable": true, 30 | "release_url": "https://github.com/actions/go-versions/releases/tag/1.12.17-20200616.21", 31 | "files": [ 32 | { 33 | "filename": "go-1.12.17-darwin-x64.tar.gz", 34 | "arch": "x64", 35 | "platform": "darwin", 36 | "download_url": "https://github.com/actions/go-versions/releases/download/1.12.17-20200616.21/go-1.12.17-darwin-x64.tar.gz" 37 | }, 38 | { 39 | "filename": "go-1.12.17-linux-x64.tar.gz", 40 | "arch": "x64", 41 | "platform": "linux", 42 | "download_url": "https://github.com/actions/go-versions/releases/download/1.12.17-20200616.21/go-1.12.17-linux-x64.tar.gz" 43 | }, 44 | { 45 | "filename": "go-1.12.17-win32-x64.zip", 46 | "arch": "x64", 47 | "platform": "win32", 48 | "download_url": "https://github.com/actions/go-versions/releases/download/1.12.17-20200616.21/go-1.12.17-win32-x64.zip" 49 | } 50 | ] 51 | }, 52 | { 53 | "version": "1.12.16", 54 | "stable": true, 55 | "release_url": "https://github.com/actions/go-versions/releases/tag/1.12.16-20200616.20", 56 | "files": [ 57 | { 58 | "filename": "go-1.12.16-darwin-x64.tar.gz", 59 | "arch": "x64", 60 | "platform": "darwin", 61 | "download_url": "https://github.com/actions/go-versions/releases/download/1.12.16-20200616.20/go-1.12.16-darwin-x64.tar.gz" 62 | }, 63 | { 64 | "filename": "go-1.12.16-linux-x64.tar.gz", 65 | "arch": "x64", 66 | "platform": "linux", 67 | "download_url": "https://github.com/actions/go-versions/releases/download/1.12.16-20200616.20/go-1.12.16-linux-x64.tar.gz" 68 | }, 69 | { 70 | "filename": "go-1.12.16-win32-x64.zip", 71 | "arch": "x64", 72 | "platform": "win32", 73 | "download_url": "https://github.com/actions/go-versions/releases/download/1.12.16-20200616.20/go-1.12.16-win32-x64.zip" 74 | } 75 | ] 76 | }, 77 | { 78 | "version": "1.9.7", 79 | "stable": true, 80 | "release_url": "https://github.com/actions/go-versions/releases/tag/1.9.7-20200616.1", 81 | "files": [ 82 | { 83 | "filename": "go-1.9.7-darwin-x64.tar.gz", 84 | "arch": "x64", 85 | "platform": "darwin", 86 | "download_url": "https://github.com/actions/go-versions/releases/download/1.9.7/go-1.9.7-darwin-x64.tar.gz" 87 | }, 88 | { 89 | "filename": "go-1.9.7-linux-x64.tar.gz", 90 | "arch": "x64", 91 | "platform": "linux", 92 | "download_url": "https://github.com/actions/go-versions/releases/download/1.9.7/go-1.9.7-linux-x64.tar.gz" 93 | }, 94 | { 95 | "filename": "go-1.9.7-win32-x64.zip", 96 | "arch": "x64", 97 | "platform": "win32", 98 | "download_url": "https://github.com/actions/go-versions/releases/download/1.9.7/go-1.9.7-win32-x64.zip" 99 | } 100 | ] 101 | } 102 | ] -------------------------------------------------------------------------------- /.github/workflows/windows-validation.yml: -------------------------------------------------------------------------------- 1 | name: Validate Windows installation 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | paths-ignore: 8 | - '**.md' 9 | pull_request: 10 | paths-ignore: 11 | - '**.md' 12 | 13 | jobs: 14 | create-link-if-not-default: 15 | runs-on: windows-latest 16 | name: 'Validate if symlink is created' 17 | strategy: 18 | matrix: 19 | cache: [false, true] 20 | go: [1.20.1] 21 | steps: 22 | - uses: actions/checkout@v5 23 | 24 | - name: 'Setup ${{ matrix.cache }}, cache: ${{ matrix.go }}' 25 | uses: ./ 26 | with: 27 | go-version: ${{ matrix.go }} 28 | cache: ${{ matrix.cache }} 29 | 30 | - name: 'Drive C: should have zero size link' 31 | run: | 32 | du -m -s 'C:\hostedtoolcache\windows\go\${{ matrix.go }}\x64' 33 | # make sure drive c: contains only a link 34 | size=$(du -m -s 'C:\hostedtoolcache\windows\go\${{ matrix.go }}\x64'|cut -f1 -d$'\t') 35 | if [ $size -ne 0 ];then 36 | echo 'Size of the link created on drive c: must be 0' 37 | exit 1 38 | fi 39 | shell: bash 40 | 41 | # Drive D: is small, take care the action does not eat up the space 42 | - name: 'Drive D: space usage should be below 1G' 43 | run: | 44 | du -m -s 'D:\hostedtoolcache\windows\go\${{ matrix.go }}\x64' 45 | size=$(du -m -s 'D:\hostedtoolcache\windows\go\${{ matrix.go }}\x64'|cut -f1 -d$'\t') 46 | # make sure archive does not take lot of space 47 | if [ $size -gt 999 ];then 48 | echo 'Size of installed on drive d: go is too big'; 49 | exit 1 50 | fi 51 | shell: bash 52 | 53 | # make sure the Go installation has not been changed to the end user 54 | - name: Test paths and environments 55 | run: | 56 | echo $PATH 57 | which go 58 | go version 59 | go env 60 | if [ $(which go) != '/c/hostedtoolcache/windows/go/${{ matrix.go }}/x64/bin/go' ];then 61 | echo 'which go should return "/c/hostedtoolcache/windows/go/${{ matrix.go }}/x64/bin/go"' 62 | exit 1 63 | fi 64 | if [ $(go env GOROOT) != 'C:\hostedtoolcache\windows\go\${{ matrix.go }}\x64' ];then 65 | echo 'go env GOROOT should return "C:\hostedtoolcache\windows\go\${{ matrix.go }}\x64"' 66 | exit 1 67 | fi 68 | shell: bash 69 | 70 | find-default-go: 71 | name: 'Find default go version' 72 | runs-on: windows-latest 73 | outputs: 74 | version: ${{ steps.goversion.outputs.version }} 75 | steps: 76 | - run: | 77 | version=`go env GOVERSION|sed s/^go//` 78 | echo "default go version: $version" 79 | echo "version=$version" >> "$GITHUB_OUTPUT" 80 | id: goversion 81 | shell: bash 82 | 83 | dont-create-link-if-default: 84 | name: 'Validate if symlink is not created for default go' 85 | runs-on: windows-latest 86 | needs: find-default-go 87 | strategy: 88 | matrix: 89 | cache: [false, true] 90 | steps: 91 | - uses: actions/checkout@v5 92 | 93 | - name: 'Setup default go, cache: ${{ matrix.cache }}' 94 | uses: ./ 95 | with: 96 | go-version: ${{ needs.find-default-go.outputs.version }} 97 | cache: ${{ matrix.cache }} 98 | 99 | - name: 'Drive C: should have Go installation, cache: ${{ matrix.cache}}' 100 | run: | 101 | size=$(du -m -s 'C:\hostedtoolcache\windows\go\${{ needs.find-default-go.outputs.version }}\x64'|cut -f1 -d$'\t') 102 | if [ $size -eq 0 ];then 103 | echo 'Size of the hosted go installed on drive c: must be above zero' 104 | exit 1 105 | fi 106 | shell: bash 107 | 108 | - name: 'Drive D: should not have Go installation, cache: ${{ matrix.cache }}' 109 | run: | 110 | if [ -e 'D:\hostedtoolcache\windows\go\${{ needs.find-default-go.outputs.version }}\x64' ];then 111 | echo 'D:\hostedtoolcache\windows\go\${{ needs.find-default-go.outputs.version }}\x64 should not exist for hosted version of go'; 112 | exit 1 113 | fi 114 | shell: bash 115 | 116 | hostedtoolcache: 117 | name: 'Validate if hostedtoolcache works as expected' 118 | runs-on: windows-latest 119 | strategy: 120 | matrix: 121 | cache: [false] 122 | go: [1.20.1] 123 | steps: 124 | - uses: actions/checkout@v5 125 | 126 | - name: 'Setup ${{ matrix.go }}, cache: ${{ matrix.cache }}' 127 | uses: ./ 128 | with: 129 | go-version: ${{ matrix.go }} 130 | cache: ${{ matrix.cache }} 131 | 132 | - name: 'Setup ${{ matrix.go }}, cache: ${{ matrix.cache }} (from hostedtoolcache)' 133 | uses: ./ 134 | with: 135 | go-version: ${{ matrix.go }} 136 | cache: ${{ matrix.cache }} 137 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Basic Options */ 4 | // "incremental": true, /* Enable incremental compilation */ 5 | "target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ 6 | "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ 7 | // "allowJs": true, /* Allow javascript files to be compiled. */ 8 | // "checkJs": true, /* Report errors in .js files. */ 9 | // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ 10 | // "declaration": true, /* Generates corresponding '.d.ts' file. */ 11 | // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ 12 | // "sourceMap": true, /* Generates corresponding '.map' file. */ 13 | // "outFile": "./", /* Concatenate and emit output to single file. */ 14 | "outDir": "./lib", /* Redirect output structure to the directory. */ 15 | "rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ 16 | // "composite": true, /* Enable project compilation */ 17 | // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ 18 | // "removeComments": true, /* Do not emit comments to output. */ 19 | // "noEmit": true, /* Do not emit outputs. */ 20 | // "importHelpers": true, /* Import emit helpers from 'tslib'. */ 21 | // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ 22 | // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ 23 | 24 | /* Strict Type-Checking Options */ 25 | "strict": true, /* Enable all strict type-checking options. */ 26 | // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ 27 | // "strictNullChecks": true, /* Enable strict null checks. */ 28 | // "strictFunctionTypes": true, /* Enable strict checking of function types. */ 29 | // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ 30 | // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ 31 | // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ 32 | // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ 33 | 34 | /* Additional Checks */ 35 | // "noUnusedLocals": true, /* Report errors on unused locals. */ 36 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 37 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 38 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 39 | 40 | /* Module Resolution Options */ 41 | // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ 42 | // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ 43 | // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ 44 | // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ 45 | // "typeRoots": [], /* List of folders to include type definitions from. */ 46 | // "types": [], /* Type declaration files to be included in compilation. */ 47 | // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ 48 | "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ 49 | "resolveJsonModule": true, /* Allows importing modules with a '.json' extension, which is a common practice in node projects. */ 50 | "sourceMap": true, 51 | // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ 52 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 53 | 54 | /* Source Map Options */ 55 | // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ 56 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 57 | // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ 58 | // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ 59 | 60 | /* Experimental Options */ 61 | // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ 62 | // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ 63 | }, 64 | "exclude": ["node_modules", "**/*.test.ts"] 65 | } 66 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import * as core from '@actions/core'; 2 | import * as io from '@actions/io'; 3 | import * as installer from './installer'; 4 | import * as semver from 'semver'; 5 | import path from 'path'; 6 | import {restoreCache} from './cache-restore'; 7 | import {isCacheFeatureAvailable} from './cache-utils'; 8 | import cp from 'child_process'; 9 | import fs from 'fs'; 10 | import os from 'os'; 11 | import {Architecture} from './types'; 12 | 13 | export async function run() { 14 | try { 15 | // 16 | // versionSpec is optional. If supplied, install / use from the tool cache 17 | // If not supplied then problem matchers will still be setup. Useful for self-hosted. 18 | // 19 | const versionSpec = resolveVersionInput(); 20 | setGoToolchain(); 21 | 22 | const cache = core.getBooleanInput('cache'); 23 | core.info(`Setup go version spec ${versionSpec}`); 24 | 25 | let arch = core.getInput('architecture') as Architecture; 26 | 27 | if (!arch) { 28 | arch = os.arch() as Architecture; 29 | } 30 | 31 | if (versionSpec) { 32 | const token = core.getInput('token'); 33 | const auth = !token ? undefined : `token ${token}`; 34 | 35 | const checkLatest = core.getBooleanInput('check-latest'); 36 | 37 | const installDir = await installer.getGo( 38 | versionSpec, 39 | checkLatest, 40 | auth, 41 | arch 42 | ); 43 | 44 | const installDirVersion = path.basename(path.dirname(installDir)); 45 | 46 | core.addPath(path.join(installDir, 'bin')); 47 | core.info('Added go to the path'); 48 | 49 | const version = installer.makeSemver(installDirVersion); 50 | // Go versions less than 1.9 require GOROOT to be set 51 | if (semver.lt(version, '1.9.0')) { 52 | core.info('Setting GOROOT for Go version < 1.9'); 53 | core.exportVariable('GOROOT', installDir); 54 | } 55 | 56 | core.info(`Successfully set up Go version ${versionSpec}`); 57 | } else { 58 | core.info( 59 | '[warning]go-version input was not specified. The action will try to use pre-installed version.' 60 | ); 61 | } 62 | 63 | const added = await addBinToPath(); 64 | core.debug(`add bin ${added}`); 65 | 66 | const goPath = await io.which('go'); 67 | const goVersion = (cp.execSync(`${goPath} version`) || '').toString(); 68 | 69 | if (cache && isCacheFeatureAvailable()) { 70 | const packageManager = 'default'; 71 | const cacheDependencyPath = core.getInput('cache-dependency-path'); 72 | try { 73 | await restoreCache( 74 | parseGoVersion(goVersion), 75 | packageManager, 76 | cacheDependencyPath 77 | ); 78 | } catch (error) { 79 | core.warning(`Restore cache failed: ${(error as Error).message}`); 80 | } 81 | } 82 | 83 | // add problem matchers 84 | const matchersPath = path.join(__dirname, '../..', 'matchers.json'); 85 | core.info(`##[add-matcher]${matchersPath}`); 86 | 87 | // output the version actually being used 88 | core.info(goVersion); 89 | 90 | core.setOutput('go-version', parseGoVersion(goVersion)); 91 | 92 | core.startGroup('go env'); 93 | const goEnv = (cp.execSync(`${goPath} env`) || '').toString(); 94 | core.info(goEnv); 95 | core.endGroup(); 96 | } catch (error) { 97 | core.setFailed((error as Error).message); 98 | } 99 | } 100 | 101 | export async function addBinToPath(): Promise { 102 | let added = false; 103 | const g = await io.which('go'); 104 | core.debug(`which go :${g}:`); 105 | if (!g) { 106 | core.debug('go not in the path'); 107 | return added; 108 | } 109 | 110 | const buf = cp.execSync('go env GOPATH'); 111 | if (buf.length > 1) { 112 | const gp = buf.toString().trim(); 113 | core.debug(`go env GOPATH :${gp}:`); 114 | if (!fs.existsSync(gp)) { 115 | // some of the hosted images have go install but not profile dir 116 | core.debug(`creating ${gp}`); 117 | await io.mkdirP(gp); 118 | } 119 | 120 | const bp = path.join(gp, 'bin'); 121 | if (!fs.existsSync(bp)) { 122 | core.debug(`creating ${bp}`); 123 | await io.mkdirP(bp); 124 | } 125 | 126 | core.addPath(bp); 127 | added = true; 128 | } 129 | return added; 130 | } 131 | 132 | export function parseGoVersion(versionString: string): string { 133 | // get the installed version as an Action output 134 | // based on go/src/cmd/go/internal/version/version.go: 135 | // fmt.Printf("go version %s %s/%s\n", runtime.Version(), runtime.GOOS, runtime.GOARCH) 136 | // expecting go for runtime.Version() 137 | return versionString.split(' ')[2].slice('go'.length); 138 | } 139 | 140 | function resolveVersionInput(): string { 141 | let version = core.getInput('go-version'); 142 | const versionFilePath = core.getInput('go-version-file'); 143 | 144 | if (version && versionFilePath) { 145 | core.warning( 146 | 'Both go-version and go-version-file inputs are specified, only go-version will be used' 147 | ); 148 | } 149 | 150 | if (version) { 151 | return version; 152 | } 153 | 154 | if (versionFilePath) { 155 | if (!fs.existsSync(versionFilePath)) { 156 | throw new Error( 157 | `The specified go version file at: ${versionFilePath} does not exist` 158 | ); 159 | } 160 | version = installer.parseGoVersionFile(versionFilePath); 161 | } 162 | 163 | return version; 164 | } 165 | 166 | function setGoToolchain() { 167 | // docs: https://go.dev/doc/toolchain 168 | // "local indicates the bundled Go toolchain (the one that shipped with the go command being run)" 169 | // this is so any 'go' command is run with the selected Go version 170 | // and doesn't trigger a toolchain download and run commands with that 171 | // see e.g. issue #424 172 | // and a similar discussion: https://github.com/docker-library/golang/issues/472. 173 | // Set the value in process env so any `go` commands run as child-process 174 | // don't cause toolchain downloads 175 | process.env[installer.GOTOOLCHAIN_ENV_VAR] = installer.GOTOOLCHAIN_LOCAL_VAL; 176 | // and in the runner env so e.g. a user running `go mod tidy` won't cause it 177 | core.exportVariable( 178 | installer.GOTOOLCHAIN_ENV_VAR, 179 | installer.GOTOOLCHAIN_LOCAL_VAL 180 | ); 181 | } 182 | -------------------------------------------------------------------------------- /.github/workflows/versions.yml: -------------------------------------------------------------------------------- 1 | name: Validate 'setup-go' 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | paths-ignore: 8 | - '**.md' 9 | pull_request: 10 | paths-ignore: 11 | - '**.md' 12 | schedule: 13 | - cron: 0 0 * * * 14 | 15 | jobs: 16 | stable: 17 | runs-on: ${{ matrix.os }} 18 | strategy: 19 | fail-fast: false 20 | matrix: 21 | os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large] 22 | steps: 23 | - uses: actions/checkout@v5 24 | - name: Setup Go Stable 25 | uses: ./ 26 | with: 27 | go-version: stable 28 | - name: Verify Go 29 | run: go version 30 | 31 | oldstable: 32 | runs-on: ${{ matrix.os }} 33 | strategy: 34 | fail-fast: false 35 | matrix: 36 | os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large] 37 | steps: 38 | - uses: actions/checkout@v5 39 | - name: Setup Go oldStable 40 | uses: ./ 41 | with: 42 | go-version: oldstable 43 | - name: Verify Go 44 | run: go version 45 | 46 | aliases-arch: 47 | runs-on: ${{ matrix.os }} 48 | strategy: 49 | fail-fast: false 50 | matrix: 51 | os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large] 52 | version: [stable, oldstable] 53 | architecture: [x64, x32] 54 | exclude: 55 | - os: macos-latest 56 | architecture: x32 57 | - os: macos-latest-large 58 | architecture: x32 59 | steps: 60 | - uses: actions/checkout@v5 61 | - name: Setup Go ${{ matrix.version }} ${{ matrix.architecture }} 62 | uses: ./ 63 | with: 64 | go-version: ${{ matrix.version }} 65 | architecture: ${{ matrix.architecture }} 66 | - name: Verify Go 67 | run: go version 68 | 69 | local-cache: 70 | name: Setup local-cache version 71 | runs-on: ${{ matrix.os }} 72 | strategy: 73 | fail-fast: false 74 | matrix: 75 | os: [macos-latest, windows-latest, ubuntu-latest, macos-latest-large] 76 | go: [1.21.13, 1.22.8, 1.23.2] 77 | include: 78 | - os: windows-latest 79 | go: 1.20.14 80 | exclude: 81 | - os: windows-latest 82 | go: 1.23.2 83 | steps: 84 | - name: Checkout 85 | uses: actions/checkout@v5 86 | 87 | - name: setup-go ${{ matrix.go }} 88 | uses: ./ 89 | with: 90 | go-version: ${{ matrix.go }} 91 | 92 | - name: verify go 93 | run: __tests__/verify-go.sh ${{ matrix.go }} 94 | shell: bash 95 | 96 | check-latest: 97 | runs-on: ${{ matrix.os }} 98 | strategy: 99 | fail-fast: false 100 | matrix: 101 | os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large] 102 | go-version: ['1.20', '1.21', '1.22', '1.23'] 103 | steps: 104 | - uses: actions/checkout@v5 105 | - name: Setup Go and check latest 106 | uses: ./ 107 | with: 108 | go-version: ${{ matrix.go-version }} 109 | check-latest: true 110 | - name: Verify Go 111 | run: go version 112 | 113 | go-version-file: 114 | runs-on: ${{ matrix.os }} 115 | strategy: 116 | fail-fast: false 117 | matrix: 118 | os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large] 119 | steps: 120 | - uses: actions/checkout@v5 121 | - name: Setup Go and check latest 122 | uses: ./ 123 | with: 124 | go-version-file: __tests__/data/go.mod 125 | - name: verify go 126 | run: __tests__/verify-go.sh 1.20.14 127 | shell: bash 128 | 129 | go-version-file-with-gowork: 130 | runs-on: ${{ matrix.os }} 131 | strategy: 132 | fail-fast: false 133 | matrix: 134 | os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large] 135 | steps: 136 | - uses: actions/checkout@v5 137 | - name: Setup Go and check latest 138 | uses: ./ 139 | with: 140 | go-version-file: __tests__/data/go.work 141 | - name: verify go 142 | run: __tests__/verify-go.sh 1.21 143 | shell: bash 144 | 145 | go-version-file-with-tool-versions: 146 | runs-on: ${{ matrix.os }} 147 | strategy: 148 | fail-fast: false 149 | matrix: 150 | os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large] 151 | steps: 152 | - uses: actions/checkout@v5 153 | - name: Setup Go and check latest 154 | uses: ./ 155 | with: 156 | go-version-file: __tests__/data/.tool-versions 157 | - name: verify go 158 | run: __tests__/verify-go.sh 1.23.2 159 | shell: bash 160 | 161 | go-version-file-with-go-version: 162 | runs-on: ${{ matrix.os }} 163 | strategy: 164 | fail-fast: false 165 | matrix: 166 | os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large] 167 | steps: 168 | - uses: actions/checkout@v5 169 | - name: Setup Go from .go-version file 170 | uses: ./ 171 | with: 172 | go-version-file: __tests__/data/.go-version 173 | - name: verify go 174 | run: __tests__/verify-go.sh 1.22.4 175 | shell: bash 176 | 177 | setup-versions-from-manifest: 178 | runs-on: ${{ matrix.os }} 179 | strategy: 180 | fail-fast: false 181 | matrix: 182 | os: [macos-latest, windows-latest, ubuntu-latest, macos-latest-large] 183 | go: [1.20.14, 1.21.10, 1.22.8, 1.23.2] 184 | steps: 185 | - name: Checkout 186 | uses: actions/checkout@v5 187 | 188 | - name: setup-go ${{ matrix.go }} 189 | uses: ./ 190 | with: 191 | go-version: ${{ matrix.go }} 192 | 193 | - name: verify go 194 | run: __tests__/verify-go.sh ${{ matrix.go }} 195 | shell: bash 196 | 197 | setup-versions-from-dist: 198 | runs-on: ${{ matrix.os }} 199 | strategy: 200 | fail-fast: false 201 | matrix: 202 | os: [windows-latest, ubuntu-latest, macos-latest-large] 203 | go: [1.11.12] 204 | steps: 205 | - name: Checkout 206 | uses: actions/checkout@v5 207 | 208 | - name: setup-go ${{ matrix.go }} 209 | uses: ./ 210 | with: 211 | go-version: ${{ matrix.go }} 212 | 213 | - name: verify go 214 | run: __tests__/verify-go.sh ${{ matrix.go }} 215 | shell: bash 216 | 217 | architecture: 218 | runs-on: ${{ matrix.os }} 219 | strategy: 220 | fail-fast: false 221 | matrix: 222 | os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large] 223 | go-version: [1.20.14, 1.21, 1.22, 1.23] 224 | include: 225 | - os: macos-latest 226 | architecture: arm64 227 | - os: ubuntu-latest 228 | architecture: x64 229 | - os: windows-latest 230 | architecture: x64 231 | - os: macos-latest-large 232 | architecture: x64 233 | steps: 234 | - uses: actions/checkout@v5 235 | - name: Setup Go and check latest 236 | uses: ./ 237 | with: 238 | go-version: ${{ matrix.go-version }} 239 | architecture: ${{ matrix.architecture }} 240 | - name: Verify Go 241 | run: go version 242 | -------------------------------------------------------------------------------- /__tests__/cache-utils.test.ts: -------------------------------------------------------------------------------- 1 | import * as exec from '@actions/exec'; 2 | import * as cache from '@actions/cache'; 3 | import * as core from '@actions/core'; 4 | import * as cacheUtils from '../src/cache-utils'; 5 | import {PackageManagerInfo} from '../src/package-managers'; 6 | 7 | describe('getCommandOutput', () => { 8 | //Arrange 9 | const getExecOutputSpy = jest.spyOn(exec, 'getExecOutput'); 10 | 11 | it('should return trimmed stdout in case of successful exit code', async () => { 12 | //Arrange 13 | const stdoutResult = ' stdout '; 14 | const trimmedStdout = stdoutResult.trim(); 15 | 16 | getExecOutputSpy.mockImplementation((commandLine: string) => { 17 | return new Promise(resolve => { 18 | resolve({exitCode: 0, stdout: stdoutResult, stderr: ''}); 19 | }); 20 | }); 21 | 22 | //Act + Assert 23 | return cacheUtils 24 | .getCommandOutput('command') 25 | .then(data => expect(data).toBe(trimmedStdout)); 26 | }); 27 | 28 | it('should return error in case of unsuccessful exit code', async () => { 29 | //Arrange 30 | const stderrResult = 'error message'; 31 | 32 | getExecOutputSpy.mockImplementation((commandLine: string) => { 33 | return new Promise(resolve => { 34 | resolve({exitCode: 10, stdout: '', stderr: stderrResult}); 35 | }); 36 | }); 37 | 38 | //Act + Assert 39 | await expect(async () => { 40 | await cacheUtils.getCommandOutput('command'); 41 | }).rejects.toThrow(); 42 | }); 43 | }); 44 | 45 | describe('getPackageManagerInfo', () => { 46 | it('should return package manager info in case of valid package manager name', async () => { 47 | //Arrange 48 | const packageManagerName = 'default'; 49 | const expectedResult = { 50 | dependencyFilePattern: 'go.sum', 51 | cacheFolderCommandList: ['go env GOMODCACHE', 'go env GOCACHE'] 52 | }; 53 | 54 | //Act + Assert 55 | return cacheUtils 56 | .getPackageManagerInfo(packageManagerName) 57 | .then(data => expect(data).toEqual(expectedResult)); 58 | }); 59 | 60 | it('should throw the error in case of invalid package manager name', async () => { 61 | //Arrange 62 | const packageManagerName = 'invalidName'; 63 | 64 | //Act + Assert 65 | await expect(async () => { 66 | await cacheUtils.getPackageManagerInfo(packageManagerName); 67 | }).rejects.toThrow(); 68 | }); 69 | }); 70 | 71 | describe('getCacheDirectoryPath', () => { 72 | //Arrange 73 | const getExecOutputSpy = jest.spyOn(exec, 'getExecOutput'); 74 | 75 | const validPackageManager: PackageManagerInfo = { 76 | dependencyFilePattern: 'go.sum', 77 | cacheFolderCommandList: ['go env GOMODCACHE', 'go env GOCACHE'] 78 | }; 79 | 80 | it('should return path to the cache folders which specified package manager uses', async () => { 81 | //Arrange 82 | getExecOutputSpy.mockImplementation((commandLine: string) => { 83 | return new Promise(resolve => { 84 | resolve({exitCode: 0, stdout: 'path/to/cache/folder', stderr: ''}); 85 | }); 86 | }); 87 | 88 | const expectedResult = ['path/to/cache/folder', 'path/to/cache/folder']; 89 | 90 | //Act + Assert 91 | return cacheUtils 92 | .getCacheDirectoryPath(validPackageManager) 93 | .then(data => expect(data).toEqual(expectedResult)); 94 | }); 95 | 96 | it('should return path to the cache folder if one command return empty str', async () => { 97 | //Arrange 98 | getExecOutputSpy.mockImplementationOnce((commandLine: string) => { 99 | return new Promise(resolve => { 100 | resolve({exitCode: 0, stdout: 'path/to/cache/folder', stderr: ''}); 101 | }); 102 | }); 103 | 104 | getExecOutputSpy.mockImplementationOnce((commandLine: string) => { 105 | return new Promise(resolve => { 106 | resolve({exitCode: 0, stdout: '', stderr: ''}); 107 | }); 108 | }); 109 | 110 | const expectedResult = ['path/to/cache/folder']; 111 | 112 | //Act + Assert 113 | return cacheUtils 114 | .getCacheDirectoryPath(validPackageManager) 115 | .then(data => expect(data).toEqual(expectedResult)); 116 | }); 117 | 118 | it('should throw if the both commands return empty str', async () => { 119 | getExecOutputSpy.mockImplementation((commandLine: string) => { 120 | return new Promise(resolve => { 121 | resolve({exitCode: 10, stdout: '', stderr: ''}); 122 | }); 123 | }); 124 | 125 | //Act + Assert 126 | await expect(async () => { 127 | await cacheUtils.getCacheDirectoryPath(validPackageManager); 128 | }).rejects.toThrow(); 129 | }); 130 | 131 | it('should throw if the specified package name is invalid', async () => { 132 | getExecOutputSpy.mockImplementation((commandLine: string) => { 133 | return new Promise(resolve => { 134 | resolve({exitCode: 10, stdout: '', stderr: 'Error message'}); 135 | }); 136 | }); 137 | 138 | //Act + Assert 139 | await expect(async () => { 140 | await cacheUtils.getCacheDirectoryPath(validPackageManager); 141 | }).rejects.toThrow(); 142 | }); 143 | }); 144 | 145 | describe('isCacheFeatureAvailable', () => { 146 | //Arrange 147 | const isFeatureAvailableSpy = jest.spyOn(cache, 'isFeatureAvailable'); 148 | const warningSpy = jest.spyOn(core, 'warning'); 149 | 150 | it('should return true when cache feature is available', () => { 151 | //Arrange 152 | isFeatureAvailableSpy.mockImplementation(() => { 153 | return true; 154 | }); 155 | 156 | //Act 157 | const functionResult = cacheUtils.isCacheFeatureAvailable(); 158 | 159 | //Assert 160 | expect(functionResult).toBeTruthy(); 161 | }); 162 | 163 | it('should warn when cache feature is unavailable and GHES is not used', () => { 164 | //Arrange 165 | isFeatureAvailableSpy.mockImplementation(() => { 166 | return false; 167 | }); 168 | 169 | process.env['GITHUB_SERVER_URL'] = 'https://github.com'; 170 | 171 | const warningMessage = 172 | 'The runner was not able to contact the cache service. Caching will be skipped'; 173 | 174 | //Act 175 | cacheUtils.isCacheFeatureAvailable(); 176 | 177 | //Assert 178 | expect(warningSpy).toHaveBeenCalledWith(warningMessage); 179 | }); 180 | 181 | it('should return false when cache feature is unavailable', () => { 182 | //Arrange 183 | isFeatureAvailableSpy.mockImplementation(() => { 184 | return false; 185 | }); 186 | 187 | process.env['GITHUB_SERVER_URL'] = 'https://github.com'; 188 | 189 | //Act 190 | const functionResult = cacheUtils.isCacheFeatureAvailable(); 191 | 192 | //Assert 193 | expect(functionResult).toBeFalsy(); 194 | }); 195 | 196 | it('should warn when cache feature is unavailable and GHES is used', () => { 197 | //Arrange 198 | isFeatureAvailableSpy.mockImplementation(() => { 199 | return false; 200 | }); 201 | 202 | process.env['GITHUB_SERVER_URL'] = 'https://nongithub.com'; 203 | 204 | const warningMessage = 205 | 'Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not.'; 206 | 207 | //Act + Assert 208 | expect(cacheUtils.isCacheFeatureAvailable()).toBeFalsy(); 209 | expect(warningSpy).toHaveBeenCalledWith(warningMessage); 210 | }); 211 | }); 212 | 213 | describe('isGhes', () => { 214 | const pristineEnv = process.env; 215 | 216 | beforeEach(() => { 217 | jest.resetModules(); 218 | process.env = {...pristineEnv}; 219 | }); 220 | 221 | afterAll(() => { 222 | process.env = pristineEnv; 223 | }); 224 | 225 | it('returns false when the GITHUB_SERVER_URL environment variable is not defined', async () => { 226 | delete process.env['GITHUB_SERVER_URL']; 227 | expect(cacheUtils.isGhes()).toBeFalsy(); 228 | }); 229 | 230 | it('returns false when the GITHUB_SERVER_URL environment variable is set to github.com', async () => { 231 | process.env['GITHUB_SERVER_URL'] = 'https://github.com'; 232 | expect(cacheUtils.isGhes()).toBeFalsy(); 233 | }); 234 | 235 | it('returns false when the GITHUB_SERVER_URL environment variable is set to a GitHub Enterprise Cloud-style URL', async () => { 236 | process.env['GITHUB_SERVER_URL'] = 'https://contoso.ghe.com'; 237 | expect(cacheUtils.isGhes()).toBeFalsy(); 238 | }); 239 | 240 | it('returns false when the GITHUB_SERVER_URL environment variable has a .localhost suffix', async () => { 241 | process.env['GITHUB_SERVER_URL'] = 'https://mock-github.localhost'; 242 | expect(cacheUtils.isGhes()).toBeFalsy(); 243 | }); 244 | 245 | it('returns true when the GITHUB_SERVER_URL environment variable is set to some other URL', async () => { 246 | process.env['GITHUB_SERVER_URL'] = 'https://src.onpremise.fabrikam.com'; 247 | expect(cacheUtils.isGhes()).toBeTruthy(); 248 | }); 249 | }); 250 | -------------------------------------------------------------------------------- /docs/contributors.md: -------------------------------------------------------------------------------- 1 | # Contributors 2 | 3 | Thank you for contributing! 4 | 5 | We have prepared a short guide so that the process of making your contribution is as simple and clear as possible. Please check it out before you contribute! 6 | 7 | ## How can I contribute... 8 | 9 | * [Contribute Documentation :green_book:](#contribute-documentation) 10 | 11 | * [Contribute Code :computer:](#contribute-code) 12 | 13 | * [Provide Support on Issues :pencil:](#provide-support-on-issues) 14 | 15 | * [Review Pull Requests :mag:](#review-pull-requests) 16 | 17 | ## Contribute documentation 18 | 19 | Documentation is a super important, critical part of this project. Docs are how we keep track of what we're doing, how, and why. It's how we stay on the same page about our policies and how we tell others everything they need to be able to use this project or contribute to it. 20 | 21 | Documentation contributions of any size are welcome! Feel free to contribute even if you're just rewording a sentence to be more clear, or fixing a spelling mistake! 22 | 23 | **How to contribute:** 24 | 25 | Pull requests are the easiest way to contribute changes to git repos at GitHub. They are the preferred contribution method, as they offer a nice way of commenting and amending the proposed changes. 26 | 27 | - Please check that no one else has already created a pull request with these changes 28 | - Use a "feature branch" for your changes. That separates the changes in the pull request from your other changes and makes it easy to edit/amend commits in the pull request 29 | - Make sure your changes are formatted correctly and consistently with the rest of the documentation 30 | - Re-read what you wrote, and run a spellchecker on it to make sure you didn't miss anything 31 | - If your pull request is connected to an open issue, please, leave a link to this issue in the `Related issue:` section 32 | - If you later need to add new commits to the pull request, you can simply commit the changes to the local branch and then push them. The pull request gets automatically updated 33 | 34 | **Once you've filed the pull request:** 35 | 36 | - Maintainers will review your pull request 37 | - If a maintainer requests changes, first of all, try to think about this request critically and only after that implement and request another review 38 | - If your PR gets accepted, it will soon be merged into the main branch. But your contribution will take effect only after the release of a new version of the action 39 | > Sometimes maintainers reject pull requests and that's ok! Usually, along with rejection, we supply the reason for it. Nonetheless, we still really appreciate you taking the time to do it, and we don't take that lightly :heart: 40 | 41 | ## Contribute code 42 | 43 | We like code commits a lot! They're super handy, and they keep the project going and doing the work it needs to do to be useful to others. 44 | 45 | Code contributions of just about any size are acceptable! 46 | 47 | The main difference between code contributions and documentation contributions is that contributing code requires the inclusion of relevant tests for the code being added or changed. Contributions without accompanying tests will be held off until a test is added unless the maintainers consider the specific tests to be either impossible or way too much of a burden for such a contribution. 48 | 49 | **How to contribute:** 50 | 51 | Pull requests are the easiest way to contribute changes to git repos at GitHub. They are the preferred contribution method, as they offer a nice way of commenting and amending the proposed changes. 52 | 53 | - Please check that no one else has already created a pull request with these changes 54 | - Use a "feature branch" for your changes. That separates the changes in the pull request from your other changes and makes it easy to edit/amend commits in the pull request 55 | - **Run `pre-checkin` script to format, lint, build and test changes** 56 | - Make sure your changes are well formatted and that all tests are passing 57 | - If your pull request is connected to an open issue, please, leave a link to this issue in the `Related issue:` section 58 | - If you later need to add new commits to the pull request, you can simply commit the changes to the local branch and then push them. The pull request gets automatically updated 59 | 60 | **Learn more about how to work with the repository:** 61 | 62 | - To implement new features or fix bugs, you need to make changes to the `.ts` files, which are located in the `src` folder 63 | - To comply with the code style, **you need to run the `format` script** 64 | - To lint the code, **you need to run the `lint:fix` script** 65 | - To transpile source code to `javascript` we use [NCC](https://github.com/vercel/ncc). **It is very important to run the `build` script after making changes**, otherwise your changes will not get into the final `javascript` build 66 | - You can also start formatting, building code, and testing with a single `pre-checkin` command 67 | 68 | **Learn more about how to implement tests:** 69 | 70 | Adding or changing tests is an integral part of making a change to the code. 71 | Unit tests are in the `__tests__` folder, and end-to-end tests are in the `workflows` folder (in particular, in the file [versions.yml](https://github.com/actions/setup-go/blob/main/.github/workflows/versions.yml)). 72 | 73 | - The contributor can add various types of tests (like unit tests or end-to-end tests), which, in his opinion, will be necessary and sufficient for testing new or changed functionality 74 | - Tests should cover a successful execution, as well as some edge cases and possible errors 75 | - As already mentioned, pull requests without tests will be considered more carefully by maintainers. If you are sure that in this situation the tests are not needed or cannot be implemented with a commensurate effort - please add this clarification message to your pull request 76 | 77 | **Once you've filed the pull request:** 78 | 79 | - CI will start automatically with some checks. Wait until the end of the execution and make sure that all checks passed successfully. If some checks fail, you can open them one by one, try to find the reason for failing and make changes to your code to resolve the problem 80 | - Maintainers will review your pull request 81 | - If a maintainer requests changes, first of all, try to think about his request critically and only after that implement and request another review 82 | - If your PR gets accepted, it will soon be merged into the main branch. But your contribution will take effect only after the release of a new version of the action 83 | > Sometimes maintainers reject pull requests and that's ok! Usually, along with rejection, we supply the reason for it. Nonetheless, we still really appreciate you taking the time to do it, and we don't take that lightly :heart: 84 | 85 | ## Provide support on issues 86 | 87 | Helping out other users with their questions is an awesome way of contributing to any community. It's not uncommon for most of the issues on open source projects to be support-related questions by users trying to understand something they ran into or find their way around a known bug. 88 | 89 | **To help other folks out with their questions:** 90 | 91 | - Go to the [issue tracker](https://github.com/actions/setup-go/issues) 92 | - Read through the list until you find something that you're familiar enough with to answer to 93 | - Respond to the issue with whatever details are needed to clarify the question, or get more details about what's going on 94 | - Once the discussion wraps up and things are clarified, ask the original issue filer (or a maintainer) to close it for you 95 | 96 | *Some notes on picking up support issues:* 97 | 98 | - Avoid responding to issues you don't know you can answer accurately 99 | - Try to refer to past issues with accepted answers as much as possible. Link to them from your replies 100 | - Be kind and patient with users. Often, folks who have run into confusing things might be upset or impatient. This is natural. If you feel uncomfortable in conversation with them, it's better to stay away or withdraw from the issue. 101 | 102 | > If some user is violating our code of conduct [standards](https://github.com/actions/setup-go/blob/main/CODE_OF_CONDUCT.md#our-standards), refer to the [Enforcement](https://github.com/actions/setup-go/blob/main/CODE_OF_CONDUCT.md#enforcement) section of the Code of Conduct to resolve the conflict 103 | 104 | 105 | ## Review pull requests 106 | 107 | 108 | Another great way to contribute is pull request reviews. Please, be extra kind: people who submit code/doc contributions are putting themselves in a pretty vulnerable position, and have put time and care into what they've done (even if that's not obvious to you!) Please, always respond with respect, and be understanding, but don't feel like you need to sacrifice your standards for their sake, either. 109 | 110 | **How to review:** 111 | 112 | - Go to the [pull requests](https://github.com/actions/setup-go/pulls) 113 | - Make sure you're familiar with the code or documentation is updated, unless it's a minor change (spellchecking, minor formatting, etc.) 114 | - Review changes using the GitHub functionality. You can ask a clarifying question, point out an error or suggest an alternative. 115 | > Note: You may ask for minor changes - "nitpicks", but consider whether they are real blockers to merging or not 116 | - Submit your review, which may include comments, an approval, or a changes request 117 | -------------------------------------------------------------------------------- /.licenses/npm/@protobuf-ts/plugin-framework.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "@protobuf-ts/plugin-framework" 3 | version: 2.9.5 4 | type: npm 5 | summary: framework to create protoc plugins 6 | homepage: https://github.com/timostamm/protobuf-ts 7 | license: apache-2.0 8 | licenses: 9 | - sources: LICENSE 10 | text: |2 11 | Apache License 12 | Version 2.0, January 2004 13 | http://www.apache.org/licenses/ 14 | 15 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 16 | 17 | 1. Definitions. 18 | 19 | "License" shall mean the terms and conditions for use, reproduction, 20 | and distribution as defined by Sections 1 through 9 of this document. 21 | 22 | "Licensor" shall mean the copyright owner or entity authorized by 23 | the copyright owner that is granting the License. 24 | 25 | "Legal Entity" shall mean the union of the acting entity and all 26 | other entities that control, are controlled by, or are under common 27 | control with that entity. For the purposes of this definition, 28 | "control" means (i) the power, direct or indirect, to cause the 29 | direction or management of such entity, whether by contract or 30 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 31 | outstanding shares, or (iii) beneficial ownership of such entity. 32 | 33 | "You" (or "Your") shall mean an individual or Legal Entity 34 | exercising permissions granted by this License. 35 | 36 | "Source" form shall mean the preferred form for making modifications, 37 | including but not limited to software source code, documentation 38 | source, and configuration files. 39 | 40 | "Object" form shall mean any form resulting from mechanical 41 | transformation or translation of a Source form, including but 42 | not limited to compiled object code, generated documentation, 43 | and conversions to other media types. 44 | 45 | "Work" shall mean the work of authorship, whether in Source or 46 | Object form, made available under the License, as indicated by a 47 | copyright notice that is included in or attached to the work 48 | (an example is provided in the Appendix below). 49 | 50 | "Derivative Works" shall mean any work, whether in Source or Object 51 | form, that is based on (or derived from) the Work and for which the 52 | editorial revisions, annotations, elaborations, or other modifications 53 | represent, as a whole, an original work of authorship. For the purposes 54 | of this License, Derivative Works shall not include works that remain 55 | separable from, or merely link (or bind by name) to the interfaces of, 56 | the Work and Derivative Works thereof. 57 | 58 | "Contribution" shall mean any work of authorship, including 59 | the original version of the Work and any modifications or additions 60 | to that Work or Derivative Works thereof, that is intentionally 61 | submitted to Licensor for inclusion in the Work by the copyright owner 62 | or by an individual or Legal Entity authorized to submit on behalf of 63 | the copyright owner. For the purposes of this definition, "submitted" 64 | means any form of electronic, verbal, or written communication sent 65 | to the Licensor or its representatives, including but not limited to 66 | communication on electronic mailing lists, source code control systems, 67 | and issue tracking systems that are managed by, or on behalf of, the 68 | Licensor for the purpose of discussing and improving the Work, but 69 | excluding communication that is conspicuously marked or otherwise 70 | designated in writing by the copyright owner as "Not a Contribution." 71 | 72 | "Contributor" shall mean Licensor and any individual or Legal Entity 73 | on behalf of whom a Contribution has been received by Licensor and 74 | subsequently incorporated within the Work. 75 | 76 | 2. Grant of Copyright License. Subject to the terms and conditions of 77 | this License, each Contributor hereby grants to You a perpetual, 78 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 79 | copyright license to reproduce, prepare Derivative Works of, 80 | publicly display, publicly perform, sublicense, and distribute the 81 | Work and such Derivative Works in Source or Object form. 82 | 83 | 3. Grant of Patent License. Subject to the terms and conditions of 84 | this License, each Contributor hereby grants to You a perpetual, 85 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 86 | (except as stated in this section) patent license to make, have made, 87 | use, offer to sell, sell, import, and otherwise transfer the Work, 88 | where such license applies only to those patent claims licensable 89 | by such Contributor that are necessarily infringed by their 90 | Contribution(s) alone or by combination of their Contribution(s) 91 | with the Work to which such Contribution(s) was submitted. If You 92 | institute patent litigation against any entity (including a 93 | cross-claim or counterclaim in a lawsuit) alleging that the Work 94 | or a Contribution incorporated within the Work constitutes direct 95 | or contributory patent infringement, then any patent licenses 96 | granted to You under this License for that Work shall terminate 97 | as of the date such litigation is filed. 98 | 99 | 4. Redistribution. You may reproduce and distribute copies of the 100 | Work or Derivative Works thereof in any medium, with or without 101 | modifications, and in Source or Object form, provided that You 102 | meet the following conditions: 103 | 104 | (a) You must give any other recipients of the Work or 105 | Derivative Works a copy of this License; and 106 | 107 | (b) You must cause any modified files to carry prominent notices 108 | stating that You changed the files; and 109 | 110 | (c) You must retain, in the Source form of any Derivative Works 111 | that You distribute, all copyright, patent, trademark, and 112 | attribution notices from the Source form of the Work, 113 | excluding those notices that do not pertain to any part of 114 | the Derivative Works; and 115 | 116 | (d) If the Work includes a "NOTICE" text file as part of its 117 | distribution, then any Derivative Works that You distribute must 118 | include a readable copy of the attribution notices contained 119 | within such NOTICE file, excluding those notices that do not 120 | pertain to any part of the Derivative Works, in at least one 121 | of the following places: within a NOTICE text file distributed 122 | as part of the Derivative Works; within the Source form or 123 | documentation, if provided along with the Derivative Works; or, 124 | within a display generated by the Derivative Works, if and 125 | wherever such third-party notices normally appear. The contents 126 | of the NOTICE file are for informational purposes only and 127 | do not modify the License. You may add Your own attribution 128 | notices within Derivative Works that You distribute, alongside 129 | or as an addendum to the NOTICE text from the Work, provided 130 | that such additional attribution notices cannot be construed 131 | as modifying the License. 132 | 133 | You may add Your own copyright statement to Your modifications and 134 | may provide additional or different license terms and conditions 135 | for use, reproduction, or distribution of Your modifications, or 136 | for any such Derivative Works as a whole, provided Your use, 137 | reproduction, and distribution of the Work otherwise complies with 138 | the conditions stated in this License. 139 | 140 | 5. Submission of Contributions. Unless You explicitly state otherwise, 141 | any Contribution intentionally submitted for inclusion in the Work 142 | by You to the Licensor shall be under the terms and conditions of 143 | this License, without any additional terms or conditions. 144 | Notwithstanding the above, nothing herein shall supersede or modify 145 | the terms of any separate license agreement you may have executed 146 | with Licensor regarding such Contributions. 147 | 148 | 6. Trademarks. This License does not grant permission to use the trade 149 | names, trademarks, service marks, or product names of the Licensor, 150 | except as required for reasonable and customary use in describing the 151 | origin of the Work and reproducing the content of the NOTICE file. 152 | 153 | 7. Disclaimer of Warranty. Unless required by applicable law or 154 | agreed to in writing, Licensor provides the Work (and each 155 | Contributor provides its Contributions) on an "AS IS" BASIS, 156 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 157 | implied, including, without limitation, any warranties or conditions 158 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 159 | PARTICULAR PURPOSE. You are solely responsible for determining the 160 | appropriateness of using or redistributing the Work and assume any 161 | risks associated with Your exercise of permissions under this License. 162 | 163 | 8. Limitation of Liability. In no event and under no legal theory, 164 | whether in tort (including negligence), contract, or otherwise, 165 | unless required by applicable law (such as deliberate and grossly 166 | negligent acts) or agreed to in writing, shall any Contributor be 167 | liable to You for damages, including any direct, indirect, special, 168 | incidental, or consequential damages of any character arising as a 169 | result of this License or out of the use or inability to use the 170 | Work (including but not limited to damages for loss of goodwill, 171 | work stoppage, computer failure or malfunction, or any and all 172 | other commercial damages or losses), even if such Contributor 173 | has been advised of the possibility of such damages. 174 | 175 | 9. Accepting Warranty or Additional Liability. While redistributing 176 | the Work or Derivative Works thereof, You may choose to offer, 177 | and charge a fee for, acceptance of support, warranty, indemnity, 178 | or other liability obligations and/or rights consistent with this 179 | License. However, in accepting such obligations, You may act only 180 | on Your own behalf and on Your sole responsibility, not on behalf 181 | of any other Contributor, and only if You agree to indemnify, 182 | defend, and hold each Contributor harmless for any liability 183 | incurred by, or claims asserted against, such Contributor by reason 184 | of your accepting any such warranty or additional liability. 185 | notices: [] 186 | --------------------------------------------------------------------------------