├── .dockerignore ├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .gitattributes ├── .github ├── CODEOWNERS ├── CONTRIBUTING.md ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug.yml │ ├── config.yml │ └── feature.yml ├── SUPPORT.md ├── dependabot.yml ├── labels.yml ├── mage-action.png ├── mage-releases.json └── workflows │ ├── ci.yml │ ├── labels.yml │ ├── mage-releases-json.yml │ ├── test.yml │ └── validate.yml ├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── .yarn └── plugins │ └── @yarnpkg │ └── plugin-interactive-tools.cjs ├── .yarnrc.yml ├── LICENSE ├── README.md ├── __tests__ └── installer.test.ts ├── action.yml ├── codecov.yml ├── dev.Dockerfile ├── dist ├── index.js ├── index.js.map ├── licenses.txt └── sourcemap-register.js ├── docker-bake.hcl ├── jest.config.ts ├── package.json ├── src ├── installer.ts └── main.ts ├── test ├── go.mod ├── go.sum ├── magefile.go ├── main.go └── tools.go ├── tsconfig.json └── yarn.lock /.dockerignore: -------------------------------------------------------------------------------- 1 | /coverage 2 | 3 | # Dependency directories 4 | node_modules/ 5 | jspm_packages/ 6 | 7 | # yarn v2 8 | .yarn/cache 9 | .yarn/unplugged 10 | .yarn/build-state.yml 11 | .yarn/install-state.gz 12 | .pnp.* 13 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs. 2 | # More information at http://editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | charset = utf-8 11 | trim_trailing_whitespace = true 12 | insert_final_newline = true 13 | 14 | [*.md] 15 | trim_trailing_whitespace = false 16 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | /dist/** 2 | /coverage/** 3 | /node_modules/** 4 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true, 4 | "es6": true, 5 | "jest": true 6 | }, 7 | "extends": [ 8 | "eslint:recommended", 9 | "plugin:@typescript-eslint/eslint-recommended", 10 | "plugin:@typescript-eslint/recommended", 11 | "plugin:jest/recommended", 12 | "plugin:prettier/recommended" 13 | ], 14 | "parser": "@typescript-eslint/parser", 15 | "parserOptions": { 16 | "ecmaVersion": "latest", 17 | "sourceType": "module" 18 | }, 19 | "plugins": [ 20 | "@typescript-eslint", 21 | "jest", 22 | "prettier" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | /.yarn/releases/** binary 2 | /.yarn/plugins/** binary 3 | /dist/** linguist-generated=true 4 | /lib/** linguist-generated=true 5 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @crazy-max 2 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Contributing 2 | 3 | Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. 4 | 5 | Contributions to this project are [released](https://docs.github.com/en/github/site-policy/github-terms-of-service#6-contributions-under-repository-license) 6 | to the public under the [project's open source license](LICENSE). 7 | 8 | ## Submitting a pull request 9 | 10 | 1. [Fork](https://github.com/mage/mage-action/fork) and clone the repository 11 | 2. Configure and install the dependencies: `yarn install` 12 | 3. Create a new branch: `git checkout -b my-branch-name` 13 | 4. Make your changes 14 | 5. Make sure the tests pass: `docker buildx bake test` 15 | 6. Format code and build javascript artifacts: `docker buildx bake pre-checkin` 16 | 7. Validate all code has correctly formatted and built: `docker buildx bake validate` 17 | 8. Push to your fork and [submit a pull request](https://github.com/mage/mage-action/compare) 18 | 9. Pat your self on the back and wait for your pull request to be reviewed and merged. 19 | 20 | Here are a few things you can do that will increase the likelihood of your pull request being accepted: 21 | 22 | - Write tests. 23 | - Make sure the `README.md` and any other relevant **documentation are kept up-to-date**. 24 | - We try to follow [SemVer v2.0.0](https://semver.org/). Randomly breaking public APIs is not an option. 25 | - Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as **separate pull requests**. 26 | - Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html). 27 | 28 | ## Resources 29 | 30 | - [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) 31 | - [Using Pull Requests](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests) 32 | - [GitHub Help](https://docs.github.com/en) 33 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: crazy-max 2 | custom: https://www.paypal.me/crazyws 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug.yml: -------------------------------------------------------------------------------- 1 | # https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema 2 | name: Bug Report 3 | description: Report a bug 4 | labels: 5 | - kind/bug 6 | - status/triage 7 | 8 | body: 9 | - type: checkboxes 10 | attributes: 11 | label: Support guidelines 12 | description: Please read the support guidelines before proceeding. 13 | options: 14 | - label: I've read the [support guidelines](https://github.com/mage/mage-action/blob/master/.github/SUPPORT.md) 15 | required: true 16 | 17 | - type: checkboxes 18 | attributes: 19 | label: I've found a bug and checked that ... 20 | description: | 21 | Make sure that your request fulfills all of the following requirements. If one requirement cannot be satisfied, explain in detail why. 22 | options: 23 | - label: ... the documentation does not mention anything about my problem 24 | - label: ... there are no open or closed issues that are related to my problem 25 | 26 | - type: textarea 27 | attributes: 28 | label: Description 29 | description: | 30 | Please provide a brief description of the bug in 1-2 sentences. 31 | validations: 32 | required: true 33 | 34 | - type: textarea 35 | attributes: 36 | label: Expected behaviour 37 | description: | 38 | Please describe precisely what you'd expect to happen. 39 | validations: 40 | required: true 41 | 42 | - type: textarea 43 | attributes: 44 | label: Actual behaviour 45 | description: | 46 | Please describe precisely what is actually happening. 47 | validations: 48 | required: true 49 | 50 | - type: textarea 51 | attributes: 52 | label: Steps to reproduce 53 | description: | 54 | Please describe the steps to reproduce the bug. 55 | placeholder: | 56 | 1. ... 57 | 2. ... 58 | 3. ... 59 | validations: 60 | required: true 61 | 62 | - type: input 63 | attributes: 64 | label: Repository URL 65 | description: > 66 | Enter the URL of the repository where you are experiencing the 67 | issue. If your repository is private, provide a link to a minimal 68 | repository that reproduces the issue. 69 | validations: 70 | required: true 71 | 72 | - type: input 73 | attributes: 74 | label: Workflow run URL 75 | description: > 76 | Enter the URL of the GitHub Action workflow run that fails (e.g. 77 | `https://github.com///actions/runs/`) 78 | 79 | - type: textarea 80 | attributes: 81 | label: YAML workflow 82 | description: | 83 | Provide the YAML of the workflow that's causing the issue. 84 | Make sure to remove any sensitive information. 85 | render: yaml 86 | validations: 87 | required: true 88 | 89 | - type: textarea 90 | attributes: 91 | label: Workflow logs 92 | description: > 93 | [Attach](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/attaching-files) 94 | the [log file of your workflow run](https://docs.github.com/en/actions/managing-workflow-runs/using-workflow-run-logs#downloading-logs) 95 | and make sure to remove any sensitive information. 96 | 97 | - type: textarea 98 | attributes: 99 | label: Additional info 100 | description: | 101 | Please provide any additional information that seem useful. 102 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | # https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser 2 | blank_issues_enabled: true 3 | contact_links: 4 | - name: Questions and Discussions 5 | url: https://github.com/mage/mage-action/discussions/new 6 | about: Use Github Discussions to ask questions and/or open discussion topics. 7 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature.yml: -------------------------------------------------------------------------------- 1 | # https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema 2 | name: Feature request 3 | description: Missing functionality? Come tell us about it! 4 | labels: 5 | - kind/enhancement 6 | - status/triage 7 | 8 | body: 9 | - type: textarea 10 | id: description 11 | attributes: 12 | label: Description 13 | description: What is the feature you want to see? 14 | validations: 15 | required: true 16 | -------------------------------------------------------------------------------- /.github/SUPPORT.md: -------------------------------------------------------------------------------- 1 | # Support [![](https://isitmaintained.com/badge/resolution/magefile/mage-action.svg)](https://isitmaintained.com/project/magefile/mage-action) 2 | 3 | ## Reporting an issue 4 | 5 | Please do a search in [open issues](https://github.com/magefile/mage-action/issues?utf8=%E2%9C%93&q=) to see if the issue or feature request has already been filed. 6 | 7 | If you find your issue already exists, make relevant comments and add your [reaction](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments). Use a reaction in place of a "+1" comment. 8 | 9 | :+1: - upvote 10 | 11 | :-1: - downvote 12 | 13 | If you cannot find an existing issue that describes your bug or feature, submit an issue using the guidelines below. 14 | 15 | ## Writing good bug reports and feature requests 16 | 17 | File a single issue per problem and feature request. 18 | 19 | * Do not enumerate multiple bugs or feature requests in the same issue. 20 | * Do not add your issue as a comment to an existing issue unless it's for the identical input. Many issues look similar, but have different causes. 21 | 22 | The more information you can provide, the more likely someone will be successful reproducing the issue and finding a fix. 23 | 24 | You are now ready to [create a new issue](https://github.com/magefile/mage-action/issues/new/choose)! 25 | 26 | ## Closure policy 27 | 28 | * Issues that don't have the information requested above (when applicable) will be closed immediately and the poster directed to the support guidelines. 29 | * Issues that go a week without a response from original poster are subject to closure at my discretion. 30 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | labels: 8 | - "kind/dependencies" 9 | - "bot" 10 | - package-ecosystem: "npm" 11 | directory: "/" 12 | schedule: 13 | interval: "daily" 14 | versioning-strategy: "increase" 15 | allow: 16 | - dependency-type: "production" 17 | labels: 18 | - "kind/dependencies" 19 | - "bot" 20 | -------------------------------------------------------------------------------- /.github/labels.yml: -------------------------------------------------------------------------------- 1 | ## more info https://github.com/crazy-max/ghaction-github-labeler 2 | - 3 | name: "bot" 4 | color: "69cde9" 5 | description: "" 6 | - 7 | name: "good first issue" 8 | color: "7057ff" 9 | description: "" 10 | - 11 | name: "help wanted" 12 | color: "4caf50" 13 | description: "" 14 | - 15 | name: "area/ci" 16 | color: "ed9ca9" 17 | description: "" 18 | - 19 | name: "kind/bug" 20 | color: "b60205" 21 | description: "" 22 | - 23 | name: "kind/dependencies" 24 | color: "0366d6" 25 | description: "" 26 | - 27 | name: "kind/docs" 28 | color: "c5def5" 29 | description: "" 30 | - 31 | name: "kind/duplicate" 32 | color: "cccccc" 33 | description: "" 34 | - 35 | name: "kind/enhancement" 36 | color: "0054ca" 37 | description: "" 38 | - 39 | name: "kind/invalid" 40 | color: "e6e6e6" 41 | description: "" 42 | - 43 | name: "kind/upstream" 44 | color: "fbca04" 45 | description: "" 46 | - 47 | name: "kind/wontfix" 48 | color: "ffffff" 49 | description: "" 50 | - 51 | name: "status/automerge" 52 | color: "8f4fbc" 53 | description: "" 54 | - 55 | name: "status/needs-investigation" 56 | color: "e6625b" 57 | description: "" 58 | - 59 | name: "status/needs-more-info" 60 | color: "795548" 61 | description: "" 62 | - 63 | name: "status/stale" 64 | color: "237da0" 65 | description: "" 66 | - 67 | name: "status/triage" 68 | color: "dde4b7" 69 | description: "" 70 | -------------------------------------------------------------------------------- /.github/mage-action.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magefile/mage-action/6f50bbb8ea47d56e62dee92392788acbc8192d0b/.github/mage-action.png -------------------------------------------------------------------------------- /.github/mage-releases.json: -------------------------------------------------------------------------------- 1 | { 2 | "latest": { 3 | "id": 102662416, 4 | "tag_name": "v1.15.0", 5 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.15.0", 6 | "assets": [ 7 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_DragonFlyBSD-64bit.tar.gz", 8 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_FreeBSD-64bit.tar.gz", 9 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_FreeBSD-ARM.tar.gz", 10 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_FreeBSD-ARM64.tar.gz", 11 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_Linux-64bit.tar.gz", 12 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_Linux-ARM.tar.gz", 13 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_Linux-ARM64.tar.gz", 14 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_NetBSD-64bit.tar.gz", 15 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_NetBSD-ARM.tar.gz", 16 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_OpenBSD-64bit.tar.gz", 17 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_OpenBSD-ARM64.tar.gz", 18 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_Windows-64bit.zip", 19 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_Windows-ARM.zip", 20 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_checksums.txt", 21 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_macOS-64bit.tar.gz" 22 | ] 23 | }, 24 | "v1.15.0": { 25 | "id": 102662416, 26 | "tag_name": "v1.15.0", 27 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.15.0", 28 | "assets": [ 29 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_DragonFlyBSD-64bit.tar.gz", 30 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_FreeBSD-64bit.tar.gz", 31 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_FreeBSD-ARM.tar.gz", 32 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_FreeBSD-ARM64.tar.gz", 33 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_Linux-64bit.tar.gz", 34 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_Linux-ARM.tar.gz", 35 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_Linux-ARM64.tar.gz", 36 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_NetBSD-64bit.tar.gz", 37 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_NetBSD-ARM.tar.gz", 38 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_OpenBSD-64bit.tar.gz", 39 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_OpenBSD-ARM64.tar.gz", 40 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_Windows-64bit.zip", 41 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_Windows-ARM.zip", 42 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_checksums.txt", 43 | "https://github.com/magefile/mage/releases/download/v1.15.0/mage_1.15.0_macOS-64bit.tar.gz" 44 | ] 45 | }, 46 | "v1.14.0": { 47 | "id": 77420565, 48 | "tag_name": "v1.14.0", 49 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.14.0", 50 | "assets": [ 51 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_DragonFlyBSD-64bit.tar.gz", 52 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_FreeBSD-64bit.tar.gz", 53 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_FreeBSD-ARM.tar.gz", 54 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_FreeBSD-ARM64.tar.gz", 55 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_Linux-64bit.tar.gz", 56 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_Linux-ARM.tar.gz", 57 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_Linux-ARM64.tar.gz", 58 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_NetBSD-64bit.tar.gz", 59 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_NetBSD-ARM.tar.gz", 60 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_OpenBSD-64bit.tar.gz", 61 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_OpenBSD-ARM64.tar.gz", 62 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_Windows-64bit.zip", 63 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_Windows-ARM.zip", 64 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_Windows-ARM64.zip", 65 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_checksums.txt", 66 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_macOS-64bit.tar.gz", 67 | "https://github.com/magefile/mage/releases/download/v1.14.0/mage_1.14.0_macOS-ARM64.tar.gz" 68 | ] 69 | }, 70 | "v1.13.0": { 71 | "id": 62023706, 72 | "tag_name": "v1.13.0", 73 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.13.0", 74 | "assets": [ 75 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_DragonFlyBSD-64bit.tar.gz", 76 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_FreeBSD-64bit.tar.gz", 77 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_FreeBSD-ARM.tar.gz", 78 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_FreeBSD-ARM64.tar.gz", 79 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_Linux-64bit.tar.gz", 80 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_Linux-ARM.tar.gz", 81 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_Linux-ARM64.tar.gz", 82 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_NetBSD-64bit.tar.gz", 83 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_NetBSD-ARM.tar.gz", 84 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_OpenBSD-64bit.tar.gz", 85 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_OpenBSD-ARM64.tar.gz", 86 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_Windows-64bit.zip", 87 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_Windows-ARM.zip", 88 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_Windows-ARM64.zip", 89 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_checksums.txt", 90 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_macOS-64bit.tar.gz", 91 | "https://github.com/magefile/mage/releases/download/v1.13.0/mage_1.13.0_macOS-ARM64.tar.gz" 92 | ] 93 | }, 94 | "v1.12.1": { 95 | "id": 55556652, 96 | "tag_name": "v1.12.1", 97 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.12.1", 98 | "assets": [ 99 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_DragonFlyBSD-64bit.tar.gz", 100 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_FreeBSD-64bit.tar.gz", 101 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_FreeBSD-ARM.tar.gz", 102 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_FreeBSD-ARM64.tar.gz", 103 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_Linux-64bit.tar.gz", 104 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_Linux-ARM.tar.gz", 105 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_Linux-ARM64.tar.gz", 106 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_NetBSD-64bit.tar.gz", 107 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_NetBSD-ARM.tar.gz", 108 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_OpenBSD-64bit.tar.gz", 109 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_OpenBSD-ARM64.tar.gz", 110 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_Windows-64bit.zip", 111 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_Windows-ARM.zip", 112 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_Windows-ARM64.zip", 113 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_checksums.txt", 114 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_macOS-64bit.tar.gz", 115 | "https://github.com/magefile/mage/releases/download/v1.12.1/mage_1.12.1_macOS-ARM64.tar.gz" 116 | ] 117 | }, 118 | "v1.12.0": { 119 | "id": 55456860, 120 | "tag_name": "v1.12.0", 121 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.12.0", 122 | "assets": [ 123 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_DragonFlyBSD-64bit.tar.gz", 124 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_FreeBSD-64bit.tar.gz", 125 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_FreeBSD-ARM.tar.gz", 126 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_FreeBSD-ARM64.tar.gz", 127 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_Linux-64bit.tar.gz", 128 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_Linux-ARM.tar.gz", 129 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_Linux-ARM64.tar.gz", 130 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_NetBSD-64bit.tar.gz", 131 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_NetBSD-ARM.tar.gz", 132 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_OpenBSD-64bit.tar.gz", 133 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_OpenBSD-ARM64.tar.gz", 134 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_Windows-64bit.zip", 135 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_Windows-ARM.zip", 136 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_Windows-ARM64.zip", 137 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_checksums.txt", 138 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_macOS-64bit.tar.gz", 139 | "https://github.com/magefile/mage/releases/download/v1.12.0/mage_1.12.0_macOS-ARM64.tar.gz" 140 | ] 141 | }, 142 | "v1.11.0": { 143 | "id": 35793647, 144 | "tag_name": "v1.11.0", 145 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.11.0", 146 | "assets": [ 147 | "https://github.com/magefile/mage/releases/download/v1.11.0/mage_1.11.0_DragonFlyBSD-64bit.tar.gz", 148 | "https://github.com/magefile/mage/releases/download/v1.11.0/mage_1.11.0_FreeBSD-64bit.tar.gz", 149 | "https://github.com/magefile/mage/releases/download/v1.11.0/mage_1.11.0_FreeBSD-ARM.tar.gz", 150 | "https://github.com/magefile/mage/releases/download/v1.11.0/mage_1.11.0_Linux-64bit.tar.gz", 151 | "https://github.com/magefile/mage/releases/download/v1.11.0/mage_1.11.0_Linux-ARM.tar.gz", 152 | "https://github.com/magefile/mage/releases/download/v1.11.0/mage_1.11.0_Linux-ARM64.tar.gz", 153 | "https://github.com/magefile/mage/releases/download/v1.11.0/mage_1.11.0_NetBSD-64bit.tar.gz", 154 | "https://github.com/magefile/mage/releases/download/v1.11.0/mage_1.11.0_NetBSD-ARM.tar.gz", 155 | "https://github.com/magefile/mage/releases/download/v1.11.0/mage_1.11.0_OpenBSD-64bit.tar.gz", 156 | "https://github.com/magefile/mage/releases/download/v1.11.0/mage_1.11.0_Windows-64bit.zip", 157 | "https://github.com/magefile/mage/releases/download/v1.11.0/mage_1.11.0_checksums.txt", 158 | "https://github.com/magefile/mage/releases/download/v1.11.0/mage_1.11.0_macOS-64bit.tar.gz" 159 | ] 160 | }, 161 | "v1.10.0": { 162 | "id": 28373323, 163 | "tag_name": "v1.10.0", 164 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.10.0", 165 | "assets": [ 166 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_DragonFlyBSD-64bit.tar.gz", 167 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_FreeBSD-32bit.tar.gz", 168 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_FreeBSD-64bit.tar.gz", 169 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_FreeBSD-ARM.tar.gz", 170 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_Linux-32bit.tar.gz", 171 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_Linux-64bit.tar.gz", 172 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_Linux-ARM.tar.gz", 173 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_Linux-ARM64.tar.gz", 174 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_NetBSD-32bit.tar.gz", 175 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_NetBSD-64bit.tar.gz", 176 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_NetBSD-ARM.tar.gz", 177 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_OpenBSD-32bit.tar.gz", 178 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_OpenBSD-64bit.tar.gz", 179 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_Windows-32bit.zip", 180 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_Windows-64bit.zip", 181 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_checksums.txt", 182 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_macOS-32bit.tar.gz", 183 | "https://github.com/magefile/mage/releases/download/v1.10.0/mage_1.10.0_macOS-64bit.tar.gz" 184 | ] 185 | }, 186 | "v1.9.0": { 187 | "id": 19981557, 188 | "tag_name": "v1.9.0", 189 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.9.0", 190 | "assets": [ 191 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_DragonFlyBSD-64bit.tar.gz", 192 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_FreeBSD-32bit.tar.gz", 193 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_FreeBSD-64bit.tar.gz", 194 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_FreeBSD-ARM.tar.gz", 195 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_Linux-32bit.tar.gz", 196 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_Linux-64bit.tar.gz", 197 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_Linux-ARM.tar.gz", 198 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_Linux-ARM64.tar.gz", 199 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_NetBSD-32bit.tar.gz", 200 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_NetBSD-64bit.tar.gz", 201 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_NetBSD-ARM.tar.gz", 202 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_OpenBSD-32bit.tar.gz", 203 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_OpenBSD-64bit.tar.gz", 204 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_Windows-32bit.zip", 205 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_Windows-64bit.zip", 206 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_checksums.txt", 207 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_macOS-32bit.tar.gz", 208 | "https://github.com/magefile/mage/releases/download/v1.9.0/mage_1.9.0_macOS-64bit.tar.gz" 209 | ] 210 | }, 211 | "v1.8.0": { 212 | "id": 14481575, 213 | "tag_name": "v1.8.0", 214 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.8.0", 215 | "assets": [ 216 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_DragonFlyBSD-64bit.tar.gz", 217 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_FreeBSD-32bit.tar.gz", 218 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_FreeBSD-64bit.tar.gz", 219 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_FreeBSD-ARM.tar.gz", 220 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_Linux-32bit.tar.gz", 221 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_Linux-64bit.tar.gz", 222 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_Linux-ARM.tar.gz", 223 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_Linux-ARM64.tar.gz", 224 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_NetBSD-32bit.tar.gz", 225 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_NetBSD-64bit.tar.gz", 226 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_NetBSD-ARM.tar.gz", 227 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_OpenBSD-32bit.tar.gz", 228 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_OpenBSD-64bit.tar.gz", 229 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_Windows-32bit.zip", 230 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_Windows-64bit.zip", 231 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_checksums.txt", 232 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_macOS-32bit.tar.gz", 233 | "https://github.com/magefile/mage/releases/download/v1.8.0/mage_1.8.0_macOS-64bit.tar.gz" 234 | ] 235 | }, 236 | "v1.7.1": { 237 | "id": 13488347, 238 | "tag_name": "v1.7.1", 239 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.7.1", 240 | "assets": [ 241 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_DragonFlyBSD-64bit.tar.gz", 242 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_FreeBSD-32bit.tar.gz", 243 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_FreeBSD-64bit.tar.gz", 244 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_FreeBSD-ARM.tar.gz", 245 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_Linux-32bit.tar.gz", 246 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_Linux-64bit.tar.gz", 247 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_Linux-ARM.tar.gz", 248 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_Linux-ARM64.tar.gz", 249 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_NetBSD-32bit.tar.gz", 250 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_NetBSD-64bit.tar.gz", 251 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_NetBSD-ARM.tar.gz", 252 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_OpenBSD-32bit.tar.gz", 253 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_OpenBSD-64bit.tar.gz", 254 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_Windows-32bit.zip", 255 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_Windows-64bit.zip", 256 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_checksums.txt", 257 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_macOS-32bit.tar.gz", 258 | "https://github.com/magefile/mage/releases/download/v1.7.1/mage_1.7.1_macOS-64bit.tar.gz" 259 | ] 260 | }, 261 | "v1.7.0": { 262 | "id": 13364751, 263 | "tag_name": "v1.7.0", 264 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.7.0", 265 | "assets": [ 266 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_DragonFlyBSD-64bit.tar.gz", 267 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_FreeBSD-32bit.tar.gz", 268 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_FreeBSD-64bit.tar.gz", 269 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_FreeBSD-ARM.tar.gz", 270 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_Linux-32bit.tar.gz", 271 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_Linux-64bit.tar.gz", 272 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_Linux-ARM.tar.gz", 273 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_Linux-ARM64.tar.gz", 274 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_NetBSD-32bit.tar.gz", 275 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_NetBSD-64bit.tar.gz", 276 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_NetBSD-ARM.tar.gz", 277 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_OpenBSD-32bit.tar.gz", 278 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_OpenBSD-64bit.tar.gz", 279 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_Windows-32bit.zip", 280 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_Windows-64bit.zip", 281 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_checksums.txt", 282 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_macOS-32bit.tar.gz", 283 | "https://github.com/magefile/mage/releases/download/v1.7.0/mage_1.7.0_macOS-64bit.tar.gz" 284 | ] 285 | }, 286 | "v1.6.2": { 287 | "id": 13025196, 288 | "tag_name": "v1.6.2", 289 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.6.2", 290 | "assets": [ 291 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_DragonFlyBSD-64bit.tar.gz", 292 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_FreeBSD-32bit.tar.gz", 293 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_FreeBSD-64bit.tar.gz", 294 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_FreeBSD-ARM.tar.gz", 295 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_Linux-32bit.tar.gz", 296 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_Linux-64bit.tar.gz", 297 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_Linux-ARM.tar.gz", 298 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_Linux-ARM64.tar.gz", 299 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_NetBSD-32bit.tar.gz", 300 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_NetBSD-64bit.tar.gz", 301 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_NetBSD-ARM.tar.gz", 302 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_OpenBSD-32bit.tar.gz", 303 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_OpenBSD-64bit.tar.gz", 304 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_Windows-32bit.zip", 305 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_Windows-64bit.zip", 306 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_checksums.txt", 307 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_macOS-32bit.tar.gz", 308 | "https://github.com/magefile/mage/releases/download/v1.6.2/mage_1.6.2_macOS-64bit.tar.gz" 309 | ] 310 | }, 311 | "v1.6.1": { 312 | "id": 12992651, 313 | "tag_name": "v1.6.1", 314 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.6.1", 315 | "assets": [ 316 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_DragonFlyBSD-64bit.tar.gz", 317 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_FreeBSD-32bit.tar.gz", 318 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_FreeBSD-64bit.tar.gz", 319 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_FreeBSD-ARM.tar.gz", 320 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_Linux-32bit.tar.gz", 321 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_Linux-64bit.tar.gz", 322 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_Linux-ARM.tar.gz", 323 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_Linux-ARM64.tar.gz", 324 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_NetBSD-32bit.tar.gz", 325 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_NetBSD-64bit.tar.gz", 326 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_NetBSD-ARM.tar.gz", 327 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_OpenBSD-32bit.tar.gz", 328 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_OpenBSD-64bit.tar.gz", 329 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_Windows-32bit.zip", 330 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_Windows-64bit.zip", 331 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_checksums.txt", 332 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_macOS-32bit.tar.gz", 333 | "https://github.com/magefile/mage/releases/download/v1.6.1/mage_1.6.1_macOS-64bit.tar.gz" 334 | ] 335 | }, 336 | "v1.6.0": { 337 | "id": 12971916, 338 | "tag_name": "v1.6.0", 339 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.6.0", 340 | "assets": [ 341 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_DragonFlyBSD-64bit.tar.gz", 342 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_FreeBSD-32bit.tar.gz", 343 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_FreeBSD-64bit.tar.gz", 344 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_FreeBSD-ARM.tar.gz", 345 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_Linux-32bit.tar.gz", 346 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_Linux-64bit.tar.gz", 347 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_Linux-ARM.tar.gz", 348 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_Linux-ARM64.tar.gz", 349 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_NetBSD-32bit.tar.gz", 350 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_NetBSD-64bit.tar.gz", 351 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_NetBSD-ARM.tar.gz", 352 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_OpenBSD-32bit.tar.gz", 353 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_OpenBSD-64bit.tar.gz", 354 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_Windows-32bit.zip", 355 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_Windows-64bit.zip", 356 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_checksums.txt", 357 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_macOS-32bit.tar.gz", 358 | "https://github.com/magefile/mage/releases/download/v1.6.0/mage_1.6.0_macOS-64bit.tar.gz" 359 | ] 360 | }, 361 | "v1.5.0": { 362 | "id": 12935587, 363 | "tag_name": "v1.5.0", 364 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.5.0", 365 | "assets": [ 366 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_DragonFlyBSD-64bit.tar.gz", 367 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_FreeBSD-32bit.tar.gz", 368 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_FreeBSD-64bit.tar.gz", 369 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_FreeBSD-ARM.tar.gz", 370 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_Linux-32bit.tar.gz", 371 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_Linux-64bit.tar.gz", 372 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_Linux-ARM.tar.gz", 373 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_Linux-ARM64.tar.gz", 374 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_NetBSD-32bit.tar.gz", 375 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_NetBSD-64bit.tar.gz", 376 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_NetBSD-ARM.tar.gz", 377 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_OpenBSD-32bit.tar.gz", 378 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_OpenBSD-64bit.tar.gz", 379 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_Windows-32bit.zip", 380 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_Windows-64bit.zip", 381 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_checksums.txt", 382 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_macOS-32bit.tar.gz", 383 | "https://github.com/magefile/mage/releases/download/v1.5.0/mage_1.5.0_macOS-64bit.tar.gz" 384 | ] 385 | }, 386 | "v1.4.0": { 387 | "id": 12829367, 388 | "tag_name": "v1.4.0", 389 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.4.0", 390 | "assets": [ 391 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_DragonFlyBSD-64bit.tar.gz", 392 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_FreeBSD-32bit.tar.gz", 393 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_FreeBSD-64bit.tar.gz", 394 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_FreeBSD-ARM.tar.gz", 395 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_Linux-32bit.tar.gz", 396 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_Linux-64bit.tar.gz", 397 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_Linux-ARM.tar.gz", 398 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_Linux-ARM64.tar.gz", 399 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_NetBSD-32bit.tar.gz", 400 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_NetBSD-64bit.tar.gz", 401 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_NetBSD-ARM.tar.gz", 402 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_OpenBSD-32bit.tar.gz", 403 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_OpenBSD-64bit.tar.gz", 404 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_Windows-32bit.zip", 405 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_Windows-64bit.zip", 406 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_checksums.txt", 407 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_macOS-32bit.tar.gz", 408 | "https://github.com/magefile/mage/releases/download/v1.4.0/mage_1.4.0_macOS-64bit.tar.gz" 409 | ] 410 | }, 411 | "v1.3.0": { 412 | "id": 12775702, 413 | "tag_name": "v1.3.0", 414 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.3.0", 415 | "assets": [ 416 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_DragonFlyBSD-64bit.tar.gz", 417 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_FreeBSD-32bit.tar.gz", 418 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_FreeBSD-64bit.tar.gz", 419 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_FreeBSD-ARM.tar.gz", 420 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_Linux-32bit.tar.gz", 421 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_Linux-64bit.tar.gz", 422 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_Linux-ARM.tar.gz", 423 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_Linux-ARM64.tar.gz", 424 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_NetBSD-32bit.tar.gz", 425 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_NetBSD-64bit.tar.gz", 426 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_NetBSD-ARM.tar.gz", 427 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_OpenBSD-32bit.tar.gz", 428 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_OpenBSD-64bit.tar.gz", 429 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_Windows-32bit.zip", 430 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_Windows-64bit.zip", 431 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_checksums.txt", 432 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_macOS-32bit.tar.gz", 433 | "https://github.com/magefile/mage/releases/download/v1.3.0/mage_1.3.0_macOS-64bit.tar.gz" 434 | ] 435 | }, 436 | "v1.2.4": { 437 | "id": 12702011, 438 | "tag_name": "v1.2.4", 439 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.2.4", 440 | "assets": [ 441 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_DragonFlyBSD-64bit.tar.gz", 442 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_FreeBSD-32bit.tar.gz", 443 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_FreeBSD-64bit.tar.gz", 444 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_FreeBSD-ARM.tar.gz", 445 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_Linux-32bit.tar.gz", 446 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_Linux-64bit.tar.gz", 447 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_Linux-ARM.tar.gz", 448 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_Linux-ARM64.tar.gz", 449 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_NetBSD-32bit.tar.gz", 450 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_NetBSD-64bit.tar.gz", 451 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_NetBSD-ARM.tar.gz", 452 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_OpenBSD-32bit.tar.gz", 453 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_OpenBSD-64bit.tar.gz", 454 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_Windows-32bit.zip", 455 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_Windows-64bit.zip", 456 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_checksums.txt", 457 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_macOS-32bit.tar.gz", 458 | "https://github.com/magefile/mage/releases/download/v1.2.4/mage_1.2.4_macOS-64bit.tar.gz" 459 | ] 460 | }, 461 | "v1.0.2": { 462 | "id": 8143151, 463 | "tag_name": "v1.0.2", 464 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.0.2", 465 | "assets": [ 466 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_DragonFlyBSD-64bit.tar.gz", 467 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_FreeBSD-32bit.tar.gz", 468 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_FreeBSD-64bit.tar.gz", 469 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_FreeBSD-ARM.tar.gz", 470 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_Linux-32bit.tar.gz", 471 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_Linux-64bit.tar.gz", 472 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_Linux-ARM.tar.gz", 473 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_Linux-ARM64.tar.gz", 474 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_NetBSD-32bit.tar.gz", 475 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_NetBSD-64bit.tar.gz", 476 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_NetBSD-ARM.tar.gz", 477 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_OpenBSD-32bit.tar.gz", 478 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_OpenBSD-64bit.tar.gz", 479 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_Windows-32bit.zip", 480 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_Windows-64bit.zip", 481 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_checksums.txt", 482 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_macOS-32bit.tar.gz", 483 | "https://github.com/magefile/mage/releases/download/v1.0.2/mage_1.0.2_macOS-64bit.tar.gz" 484 | ] 485 | }, 486 | "v1.0.1": { 487 | "id": 8127889, 488 | "tag_name": "v1.0.1", 489 | "html_url": "https://github.com/magefile/mage/releases/tag/v1.0.1", 490 | "assets": [] 491 | }, 492 | "v1": { 493 | "id": 8112076, 494 | "tag_name": "v1", 495 | "html_url": "https://github.com/magefile/mage/releases/tag/v1", 496 | "assets": [] 497 | } 498 | } -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: ci 2 | 3 | concurrency: 4 | group: ${{ github.workflow }}-${{ github.ref }} 5 | cancel-in-progress: true 6 | 7 | # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions 8 | permissions: 9 | contents: read 10 | 11 | on: 12 | schedule: 13 | - cron: '0 10 * * *' 14 | push: 15 | branches: 16 | - 'master' 17 | - 'releases/v*' 18 | tags: 19 | - 'v*' 20 | pull_request: 21 | paths-ignore: 22 | - '.github/mage-releases.json' 23 | 24 | jobs: 25 | ci: 26 | runs-on: ${{ matrix.os }} 27 | strategy: 28 | fail-fast: false 29 | matrix: 30 | os: 31 | - ubuntu-latest 32 | # TODO: uncomment when arm64 binaries are available: https://github.com/magefile/mage/issues/481 33 | # - macos-15 34 | # - macos-14 35 | - macos-13 36 | - windows-latest 37 | version: 38 | - latest 39 | - v1.8.0 40 | steps: 41 | - 42 | name: Checkout 43 | uses: actions/checkout@v4 44 | - 45 | name: Set up Go 46 | uses: actions/setup-go@v5 47 | with: 48 | go-version: "1.20" 49 | cache-dependency-path: test/go.sum 50 | - 51 | name: Mage 52 | uses: ./ 53 | with: 54 | version: ${{ matrix.version }} 55 | args: build 56 | workdir: test 57 | cache-binary: false 58 | 59 | install-only: 60 | runs-on: ${{ matrix.os }} 61 | strategy: 62 | fail-fast: false 63 | matrix: 64 | os: 65 | - ubuntu-latest 66 | # TODO: uncomment when arm64 binaries are available: https://github.com/magefile/mage/issues/481 67 | # - macos-15 68 | # - macos-14 69 | - macos-13 70 | - windows-latest 71 | version: 72 | - latest 73 | - v1.8.0 74 | steps: 75 | - 76 | name: Checkout 77 | uses: actions/checkout@v4 78 | - 79 | name: Install Mage 80 | uses: ./ 81 | with: 82 | version: ${{ matrix.version }} 83 | install-only: true 84 | cache-binary: false 85 | - 86 | name: Show Mage version 87 | run: mage --version 88 | 89 | cache-binary: 90 | runs-on: ubuntu-latest 91 | steps: 92 | - 93 | name: Checkout 94 | uses: actions/checkout@v4 95 | - 96 | name: Install Mage 97 | uses: ./ 98 | with: 99 | version: v1.14.0 100 | install-only: true 101 | cache-binary: true 102 | - 103 | name: Show Mage version 104 | run: mage --version 105 | -------------------------------------------------------------------------------- /.github/workflows/labels.yml: -------------------------------------------------------------------------------- 1 | name: labels 2 | 3 | concurrency: 4 | group: ${{ github.workflow }}-${{ github.ref }} 5 | cancel-in-progress: true 6 | 7 | # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions 8 | permissions: 9 | contents: read 10 | 11 | on: 12 | push: 13 | branches: 14 | - 'master' 15 | paths: 16 | - '.github/labels.yml' 17 | - '.github/workflows/labels.yml' 18 | pull_request: 19 | paths: 20 | - '.github/labels.yml' 21 | - '.github/workflows/labels.yml' 22 | 23 | jobs: 24 | labeler: 25 | runs-on: ubuntu-latest 26 | permissions: 27 | # same as global permissions 28 | contents: read 29 | # required to update labels 30 | issues: write 31 | steps: 32 | - 33 | name: Checkout 34 | uses: actions/checkout@v4 35 | - 36 | name: Run Labeler 37 | uses: crazy-max/ghaction-github-labeler@v5 38 | with: 39 | dry-run: ${{ github.event_name == 'pull_request' }} 40 | -------------------------------------------------------------------------------- /.github/workflows/mage-releases-json.yml: -------------------------------------------------------------------------------- 1 | name: mage-releases-json 2 | 3 | concurrency: 4 | group: ${{ github.workflow }}-${{ github.ref }} 5 | cancel-in-progress: true 6 | 7 | # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions 8 | permissions: 9 | contents: read 10 | 11 | on: 12 | workflow_dispatch: 13 | schedule: 14 | - cron: '0 */12 * * *' 15 | push: 16 | branches: 17 | - 'master' 18 | pull_request: 19 | paths-ignore: 20 | - '.github/mage-releases.json' 21 | 22 | jobs: 23 | generate: 24 | uses: crazy-max/.github/.github/workflows/releases-json.yml@fa6141aedf23596fb8bdcceab9cce8dadaa31bd9 25 | with: 26 | repository: magefile/mage 27 | artifact_name: mage-releases-json 28 | filename: mage-releases.json 29 | secrets: inherit 30 | 31 | open-pr: 32 | runs-on: ubuntu-22.04 33 | if: github.event_name != 'pull_request' 34 | permissions: 35 | # required to create PR 36 | contents: write 37 | pull-requests: write 38 | needs: 39 | - generate 40 | steps: 41 | - 42 | name: Checkout 43 | uses: actions/checkout@v4 44 | - 45 | name: Download 46 | uses: actions/download-artifact@v4 47 | with: 48 | name: mage-releases-json 49 | path: .github 50 | - 51 | name: Commit changes 52 | run: | 53 | git add -A . 54 | - 55 | name: Create PR 56 | uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f 57 | with: 58 | base: master 59 | branch: bot/mage-releases-json 60 | commit-message: "update .github/mage-releases.json" 61 | signoff: true 62 | delete-branch: true 63 | title: "Update `.github/mage-releases.json`" 64 | body: | 65 | Update `.github/mage-releases.json` to keep in sync with [https://github.com/magefile/mage](https://github.com/magefile/mage). 66 | draft: false 67 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: test 2 | 3 | concurrency: 4 | group: ${{ github.workflow }}-${{ github.ref }} 5 | cancel-in-progress: true 6 | 7 | # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions 8 | permissions: 9 | contents: read 10 | 11 | on: 12 | push: 13 | branches: 14 | - 'master' 15 | - 'releases/v*' 16 | pull_request: 17 | paths-ignore: 18 | - '.github/mage-releases.json' 19 | 20 | jobs: 21 | test: 22 | runs-on: ubuntu-latest 23 | steps: 24 | - 25 | name: Checkout 26 | uses: actions/checkout@v4 27 | - 28 | name: Test 29 | uses: docker/bake-action@v6 30 | with: 31 | source: . 32 | targets: test 33 | - 34 | name: Upload coverage 35 | uses: codecov/codecov-action@v5 36 | with: 37 | files: ./coverage/clover.xml 38 | token: ${{ secrets.CODECOV_TOKEN }} 39 | -------------------------------------------------------------------------------- /.github/workflows/validate.yml: -------------------------------------------------------------------------------- 1 | name: validate 2 | 3 | concurrency: 4 | group: ${{ github.workflow }}-${{ github.ref }} 5 | cancel-in-progress: true 6 | 7 | # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions 8 | permissions: 9 | contents: read 10 | 11 | on: 12 | push: 13 | branches: 14 | - 'master' 15 | - 'releases/v*' 16 | pull_request: 17 | paths-ignore: 18 | - '.github/mage-releases.json' 19 | 20 | jobs: 21 | prepare: 22 | runs-on: ubuntu-latest 23 | outputs: 24 | targets: ${{ steps.generate.outputs.targets }} 25 | steps: 26 | - 27 | name: Checkout 28 | uses: actions/checkout@v4 29 | - 30 | name: List targets 31 | id: generate 32 | uses: docker/bake-action/subaction/list-targets@v6 33 | with: 34 | target: validate 35 | 36 | validate: 37 | runs-on: ubuntu-latest 38 | needs: 39 | - prepare 40 | strategy: 41 | fail-fast: false 42 | matrix: 43 | target: ${{ fromJson(needs.prepare.outputs.targets) }} 44 | steps: 45 | - 46 | name: Validate 47 | uses: docker/bake-action@v6 48 | with: 49 | targets: ${{ matrix.target }} 50 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore 2 | 3 | # Logs 4 | logs 5 | *.log 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* 9 | lerna-debug.log* 10 | .pnpm-debug.log* 11 | 12 | # Diagnostic reports (https://nodejs.org/api/report.html) 13 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 14 | 15 | # Runtime data 16 | pids 17 | *.pid 18 | *.seed 19 | *.pid.lock 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # Dependency directories 26 | node_modules/ 27 | jspm_packages/ 28 | 29 | # TypeScript cache 30 | *.tsbuildinfo 31 | 32 | # Optional npm cache directory 33 | .npm 34 | 35 | # Optional eslint cache 36 | .eslintcache 37 | 38 | # Yarn Integrity file 39 | .yarn-integrity 40 | 41 | # dotenv environment variable files 42 | .env 43 | .env.development.local 44 | .env.test.local 45 | .env.production.local 46 | .env.local 47 | 48 | # yarn v2 49 | .yarn/cache 50 | .yarn/unplugged 51 | .yarn/build-state.yml 52 | .yarn/install-state.gz 53 | .pnp.* 54 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Dependency directories 2 | node_modules/ 3 | jspm_packages/ 4 | 5 | # yarn v2 6 | .yarn/ 7 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "tabWidth": 2, 4 | "useTabs": false, 5 | "semi": true, 6 | "singleQuote": true, 7 | "trailingComma": "none", 8 | "bracketSpacing": false, 9 | "arrowParens": "avoid", 10 | "parser": "typescript" 11 | } 12 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | logFilters: 2 | - code: YN0013 3 | level: discard 4 | - code: YN0019 5 | level: discard 6 | - code: YN0076 7 | level: discard 8 | 9 | nodeLinker: node-modules 10 | 11 | plugins: 12 | - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs 13 | spec: "@yarnpkg/plugin-interactive-tools" 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019-2025 CrazyMax 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | Mage Logo 3 |

Mage Action

4 |

GitHub Action for Mage

5 |

6 | GitHub release 7 | GitHub marketplace 8 | Test workflow 9 | Codecov 10 | Become a sponsor 11 |

12 |

13 | 14 | ___ 15 | 16 | ![Mage Action](.github/mage-action.png) 17 | 18 | * [Usage](#usage) 19 | * [Customizing](#customizing) 20 | * [inputs](#inputs) 21 | * [License](#license) 22 | 23 | ## Usage 24 | 25 | ### Quick start 26 | 27 | ```yaml 28 | name: mage 29 | 30 | on: 31 | pull_request: 32 | push: 33 | 34 | jobs: 35 | mage: 36 | runs-on: ubuntu-latest 37 | steps: 38 | - 39 | name: Checkout 40 | uses: actions/checkout@v4 41 | - 42 | name: Set up Go 43 | uses: actions/setup-go@v5 44 | - 45 | name: Run Mage 46 | uses: magefile/mage-action@v3 47 | with: 48 | version: latest 49 | args: build 50 | ``` 51 | 52 | ### Install Only 53 | 54 | ```yaml 55 | name: mage 56 | 57 | on: 58 | pull_request: 59 | push: 60 | 61 | jobs: 62 | mage: 63 | runs-on: ubuntu-latest 64 | steps: 65 | - 66 | name: Checkout 67 | uses: actions/checkout@v4 68 | - 69 | name: Set up Go 70 | uses: actions/setup-go@v5 71 | - 72 | name: Run Mage 73 | uses: magefile/mage-action@v3 74 | with: 75 | install-only: true 76 | - 77 | name: Show Mage version 78 | run: mage --version 79 | ``` 80 | 81 | ## Customizing 82 | 83 | ### inputs 84 | 85 | The following inputs can be used as `step.with` keys: 86 | 87 | | Name | Type | Default | Description | 88 | |----------------|--------|----------|----------------------------------------------| 89 | | `version` | String | `latest` | Mage version. Example: `v1.9.0` | 90 | | `args` | String | | Arguments to pass to Mage | 91 | | `workdir` | String | `.` | Working directory (below repository root) | 92 | | `install-only` | Bool | `false` | Just install Mage | 93 | | `cache-binary` | Bool | `true` | Cache binary to GitHub Actions cache backend | 94 | 95 | ## License 96 | 97 | MIT. See `LICENSE` for more details. 98 | -------------------------------------------------------------------------------- /__tests__/installer.test.ts: -------------------------------------------------------------------------------- 1 | import {describe, expect, it} from '@jest/globals'; 2 | import * as fs from 'fs'; 3 | import * as installer from '../src/installer'; 4 | 5 | describe('getRelease', () => { 6 | it('returns latest Mage GitHub release', async () => { 7 | const release = await installer.getRelease('latest'); 8 | expect(release).not.toBeNull(); 9 | expect(release?.tag_name).not.toEqual(''); 10 | }); 11 | 12 | it('returns v1.8.0 Mage GitHub release', async () => { 13 | const release = await installer.getRelease('v1.8.0'); 14 | expect(release).not.toBeNull(); 15 | expect(release?.id).toEqual(14481575); 16 | expect(release?.tag_name).toEqual('v1.8.0'); 17 | expect(release?.html_url).toEqual('https://github.com/magefile/mage/releases/tag/v1.8.0'); 18 | }); 19 | 20 | it('unknown release', async () => { 21 | await expect(installer.getRelease('foo')).rejects.toThrow( 22 | new Error( 23 | 'Cannot find Mage release foo in https://raw.githubusercontent.com/magefile/mage-action/master/.github/mage-releases.json' 24 | ) 25 | ); 26 | }); 27 | }); 28 | 29 | describe('installer', () => { 30 | it('acquires v1.8.0 version of Mage', async () => { 31 | const mage = await installer.getMage('v1.8.0'); 32 | expect(fs.existsSync(mage)).toBe(true); 33 | }, 100000); 34 | 35 | it('acquires v1.8.0 version of Mage from local cache', async () => { 36 | const mage = await installer.getMage('v1.8.0'); 37 | expect(fs.existsSync(mage)).toBe(true); 38 | }, 100000); 39 | 40 | it('acquires latest version of Mage', async () => { 41 | const mage = await installer.getMage('latest'); 42 | expect(fs.existsSync(mage)).toBe(true); 43 | }, 100000); 44 | }); 45 | -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | # https://help.github.com/en/articles/metadata-syntax-for-github-actions 2 | name: 'Mage Action' 3 | description: 'GitHub Action for Mage, a Make/rake-like build tool using Go' 4 | author: 'crazy-max' 5 | branding: 6 | color: 'purple' 7 | icon: 'settings' 8 | 9 | inputs: 10 | version: 11 | description: 'Mage version.' 12 | default: 'latest' 13 | required: false 14 | args: 15 | description: 'Arguments to pass to Mage' 16 | required: false 17 | workdir: 18 | description: 'Working directory (below repository root)' 19 | required: false 20 | install-only: 21 | description: 'Just install Mage' 22 | default: 'false' 23 | required: false 24 | cache-binary: 25 | description: 'Cache binary to GitHub Actions cache backend' 26 | default: 'true' 27 | required: false 28 | 29 | runs: 30 | using: 'node20' 31 | main: 'dist/index.js' 32 | -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | comment: false 2 | 3 | coverage: 4 | status: 5 | project: # settings affecting project coverage 6 | default: 7 | target: auto # auto % coverage target 8 | threshold: 5% # allow for 5% reduction of coverage without failing 9 | patch: off 10 | 11 | github_checks: 12 | annotations: false 13 | -------------------------------------------------------------------------------- /dev.Dockerfile: -------------------------------------------------------------------------------- 1 | # syntax=docker/dockerfile:1 2 | 3 | ARG NODE_VERSION=20 4 | 5 | FROM node:${NODE_VERSION}-alpine AS base 6 | RUN apk add --no-cache cpio findutils git 7 | WORKDIR /src 8 | RUN --mount=type=bind,target=.,rw \ 9 | --mount=type=cache,target=/src/.yarn/cache <&2 'ERROR: Vendor result differs. Please vendor your package with "docker buildx bake vendor"' 31 | git status --porcelain -- yarn.lock 32 | exit 1 33 | fi 34 | EOT 35 | 36 | FROM deps AS build 37 | RUN --mount=type=bind,target=.,rw \ 38 | --mount=type=cache,target=/src/.yarn/cache \ 39 | --mount=type=cache,target=/src/node_modules \ 40 | yarn run build && mkdir /out && cp -Rf dist /out/ 41 | 42 | FROM scratch AS build-update 43 | COPY --from=build /out / 44 | 45 | FROM build AS build-validate 46 | RUN --mount=type=bind,target=.,rw <&2 'ERROR: Build result differs. Please build first with "docker buildx bake build"' 52 | git status --porcelain -- dist 53 | exit 1 54 | fi 55 | EOT 56 | 57 | FROM deps AS format 58 | RUN --mount=type=bind,target=.,rw \ 59 | --mount=type=cache,target=/src/.yarn/cache \ 60 | --mount=type=cache,target=/src/node_modules \ 61 | yarn run format \ 62 | && mkdir /out && find . -name '*.ts' -not -path './node_modules/*' -not -path './.yarn/*' | cpio -pdm /out 63 | 64 | FROM scratch AS format-update 65 | COPY --from=format /out / 66 | 67 | FROM deps AS lint 68 | RUN --mount=type=bind,target=.,rw \ 69 | --mount=type=cache,target=/src/.yarn/cache \ 70 | --mount=type=cache,target=/src/node_modules \ 71 | yarn run lint 72 | 73 | FROM deps AS test 74 | ENV RUNNER_TEMP=/tmp/github_runner 75 | ENV RUNNER_TOOL_CACHE=/tmp/github_tool_cache 76 | RUN --mount=type=bind,target=.,rw \ 77 | --mount=type=cache,target=/src/.yarn/cache \ 78 | --mount=type=cache,target=/src/node_modules \ 79 | yarn run test --coverage --coverageDirectory=/tmp/coverage 80 | 81 | FROM scratch AS test-coverage 82 | COPY --from=test /tmp/coverage / 83 | -------------------------------------------------------------------------------- /dist/licenses.txt: -------------------------------------------------------------------------------- 1 | @actions/cache 2 | MIT 3 | The MIT License (MIT) 4 | 5 | Copyright 2019 GitHub 6 | 7 | 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: 8 | 9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 10 | 11 | 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. 12 | 13 | @actions/core 14 | MIT 15 | The MIT License (MIT) 16 | 17 | Copyright 2019 GitHub 18 | 19 | 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: 20 | 21 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 22 | 23 | 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. 24 | 25 | @actions/exec 26 | MIT 27 | The MIT License (MIT) 28 | 29 | Copyright 2019 GitHub 30 | 31 | 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: 32 | 33 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 34 | 35 | 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. 36 | 37 | @actions/glob 38 | MIT 39 | The MIT License (MIT) 40 | 41 | Copyright 2019 GitHub 42 | 43 | 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: 44 | 45 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 46 | 47 | 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. 48 | 49 | @actions/http-client 50 | MIT 51 | Actions Http Client for Node.js 52 | 53 | Copyright (c) GitHub, Inc. 54 | 55 | All rights reserved. 56 | 57 | MIT License 58 | 59 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and 60 | associated documentation files (the "Software"), to deal in the Software without restriction, 61 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 62 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 63 | subject to the following conditions: 64 | 65 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 66 | 67 | THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 68 | LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 69 | NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 70 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 71 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 72 | 73 | 74 | @actions/io 75 | MIT 76 | The MIT License (MIT) 77 | 78 | Copyright 2019 GitHub 79 | 80 | 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: 81 | 82 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 83 | 84 | 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. 85 | 86 | @actions/tool-cache 87 | MIT 88 | The MIT License (MIT) 89 | 90 | Copyright 2019 GitHub 91 | 92 | 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: 93 | 94 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 95 | 96 | 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. 97 | 98 | @azure/abort-controller 99 | MIT 100 | The MIT License (MIT) 101 | 102 | Copyright (c) 2020 Microsoft 103 | 104 | Permission is hereby granted, free of charge, to any person obtaining a copy 105 | of this software and associated documentation files (the "Software"), to deal 106 | in the Software without restriction, including without limitation the rights 107 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 108 | copies of the Software, and to permit persons to whom the Software is 109 | furnished to do so, subject to the following conditions: 110 | 111 | The above copyright notice and this permission notice shall be included in all 112 | copies or substantial portions of the Software. 113 | 114 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 115 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 116 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 117 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 118 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 119 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 120 | SOFTWARE. 121 | 122 | 123 | @azure/core-auth 124 | MIT 125 | The MIT License (MIT) 126 | 127 | Copyright (c) 2020 Microsoft 128 | 129 | Permission is hereby granted, free of charge, to any person obtaining a copy 130 | of this software and associated documentation files (the "Software"), to deal 131 | in the Software without restriction, including without limitation the rights 132 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 133 | copies of the Software, and to permit persons to whom the Software is 134 | furnished to do so, subject to the following conditions: 135 | 136 | The above copyright notice and this permission notice shall be included in all 137 | copies or substantial portions of the Software. 138 | 139 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 140 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 141 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 142 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 143 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 144 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 145 | SOFTWARE. 146 | 147 | 148 | @azure/core-http 149 | MIT 150 | The MIT License (MIT) 151 | 152 | Copyright (c) 2020 Microsoft 153 | 154 | Permission is hereby granted, free of charge, to any person obtaining a copy 155 | of this software and associated documentation files (the "Software"), to deal 156 | in the Software without restriction, including without limitation the rights 157 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 158 | copies of the Software, and to permit persons to whom the Software is 159 | furnished to do so, subject to the following conditions: 160 | 161 | The above copyright notice and this permission notice shall be included in all 162 | copies or substantial portions of the Software. 163 | 164 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 165 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 166 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 167 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 168 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 169 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 170 | SOFTWARE. 171 | 172 | 173 | @azure/core-lro 174 | MIT 175 | The MIT License (MIT) 176 | 177 | Copyright (c) 2020 Microsoft 178 | 179 | Permission is hereby granted, free of charge, to any person obtaining a copy 180 | of this software and associated documentation files (the "Software"), to deal 181 | in the Software without restriction, including without limitation the rights 182 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 183 | copies of the Software, and to permit persons to whom the Software is 184 | furnished to do so, subject to the following conditions: 185 | 186 | The above copyright notice and this permission notice shall be included in all 187 | copies or substantial portions of the Software. 188 | 189 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 190 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 191 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 192 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 193 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 194 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 195 | SOFTWARE. 196 | 197 | 198 | @azure/core-paging 199 | MIT 200 | The MIT License (MIT) 201 | 202 | Copyright (c) 2020 Microsoft 203 | 204 | Permission is hereby granted, free of charge, to any person obtaining a copy 205 | of this software and associated documentation files (the "Software"), to deal 206 | in the Software without restriction, including without limitation the rights 207 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 208 | copies of the Software, and to permit persons to whom the Software is 209 | furnished to do so, subject to the following conditions: 210 | 211 | The above copyright notice and this permission notice shall be included in all 212 | copies or substantial portions of the Software. 213 | 214 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 215 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 216 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 217 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 218 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 219 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 220 | SOFTWARE. 221 | 222 | 223 | @azure/core-tracing 224 | MIT 225 | The MIT License (MIT) 226 | 227 | Copyright (c) 2020 Microsoft 228 | 229 | Permission is hereby granted, free of charge, to any person obtaining a copy 230 | of this software and associated documentation files (the "Software"), to deal 231 | in the Software without restriction, including without limitation the rights 232 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 233 | copies of the Software, and to permit persons to whom the Software is 234 | furnished to do so, subject to the following conditions: 235 | 236 | The above copyright notice and this permission notice shall be included in all 237 | copies or substantial portions of the Software. 238 | 239 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 240 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 241 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 242 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 243 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 244 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 245 | SOFTWARE. 246 | 247 | 248 | @azure/core-util 249 | MIT 250 | The MIT License (MIT) 251 | 252 | Copyright (c) 2020 Microsoft 253 | 254 | Permission is hereby granted, free of charge, to any person obtaining a copy 255 | of this software and associated documentation files (the "Software"), to deal 256 | in the Software without restriction, including without limitation the rights 257 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 258 | copies of the Software, and to permit persons to whom the Software is 259 | furnished to do so, subject to the following conditions: 260 | 261 | The above copyright notice and this permission notice shall be included in all 262 | copies or substantial portions of the Software. 263 | 264 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 265 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 266 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 267 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 268 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 269 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 270 | SOFTWARE. 271 | 272 | 273 | @azure/logger 274 | MIT 275 | The MIT License (MIT) 276 | 277 | Copyright (c) 2020 Microsoft 278 | 279 | Permission is hereby granted, free of charge, to any person obtaining a copy 280 | of this software and associated documentation files (the "Software"), to deal 281 | in the Software without restriction, including without limitation the rights 282 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 283 | copies of the Software, and to permit persons to whom the Software is 284 | furnished to do so, subject to the following conditions: 285 | 286 | The above copyright notice and this permission notice shall be included in all 287 | copies or substantial portions of the Software. 288 | 289 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 290 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 291 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 292 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 293 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 294 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 295 | SOFTWARE. 296 | 297 | 298 | @azure/storage-blob 299 | MIT 300 | The MIT License (MIT) 301 | 302 | Copyright (c) 2020 Microsoft 303 | 304 | Permission is hereby granted, free of charge, to any person obtaining a copy 305 | of this software and associated documentation files (the "Software"), to deal 306 | in the Software without restriction, including without limitation the rights 307 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 308 | copies of the Software, and to permit persons to whom the Software is 309 | furnished to do so, subject to the following conditions: 310 | 311 | The above copyright notice and this permission notice shall be included in all 312 | copies or substantial portions of the Software. 313 | 314 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 315 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 316 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 317 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 318 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 319 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 320 | SOFTWARE. 321 | 322 | 323 | @fastify/busboy 324 | MIT 325 | Copyright Brian White. All rights reserved. 326 | 327 | Permission is hereby granted, free of charge, to any person obtaining a copy 328 | of this software and associated documentation files (the "Software"), to 329 | deal in the Software without restriction, including without limitation the 330 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 331 | sell copies of the Software, and to permit persons to whom the Software is 332 | furnished to do so, subject to the following conditions: 333 | 334 | The above copyright notice and this permission notice shall be included in 335 | all copies or substantial portions of the Software. 336 | 337 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 338 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 339 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 340 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 341 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 342 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 343 | IN THE SOFTWARE. 344 | 345 | @opentelemetry/api 346 | Apache-2.0 347 | Apache License 348 | Version 2.0, January 2004 349 | http://www.apache.org/licenses/ 350 | 351 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 352 | 353 | 1. Definitions. 354 | 355 | "License" shall mean the terms and conditions for use, reproduction, 356 | and distribution as defined by Sections 1 through 9 of this document. 357 | 358 | "Licensor" shall mean the copyright owner or entity authorized by 359 | the copyright owner that is granting the License. 360 | 361 | "Legal Entity" shall mean the union of the acting entity and all 362 | other entities that control, are controlled by, or are under common 363 | control with that entity. For the purposes of this definition, 364 | "control" means (i) the power, direct or indirect, to cause the 365 | direction or management of such entity, whether by contract or 366 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 367 | outstanding shares, or (iii) beneficial ownership of such entity. 368 | 369 | "You" (or "Your") shall mean an individual or Legal Entity 370 | exercising permissions granted by this License. 371 | 372 | "Source" form shall mean the preferred form for making modifications, 373 | including but not limited to software source code, documentation 374 | source, and configuration files. 375 | 376 | "Object" form shall mean any form resulting from mechanical 377 | transformation or translation of a Source form, including but 378 | not limited to compiled object code, generated documentation, 379 | and conversions to other media types. 380 | 381 | "Work" shall mean the work of authorship, whether in Source or 382 | Object form, made available under the License, as indicated by a 383 | copyright notice that is included in or attached to the work 384 | (an example is provided in the Appendix below). 385 | 386 | "Derivative Works" shall mean any work, whether in Source or Object 387 | form, that is based on (or derived from) the Work and for which the 388 | editorial revisions, annotations, elaborations, or other modifications 389 | represent, as a whole, an original work of authorship. For the purposes 390 | of this License, Derivative Works shall not include works that remain 391 | separable from, or merely link (or bind by name) to the interfaces of, 392 | the Work and Derivative Works thereof. 393 | 394 | "Contribution" shall mean any work of authorship, including 395 | the original version of the Work and any modifications or additions 396 | to that Work or Derivative Works thereof, that is intentionally 397 | submitted to Licensor for inclusion in the Work by the copyright owner 398 | or by an individual or Legal Entity authorized to submit on behalf of 399 | the copyright owner. For the purposes of this definition, "submitted" 400 | means any form of electronic, verbal, or written communication sent 401 | to the Licensor or its representatives, including but not limited to 402 | communication on electronic mailing lists, source code control systems, 403 | and issue tracking systems that are managed by, or on behalf of, the 404 | Licensor for the purpose of discussing and improving the Work, but 405 | excluding communication that is conspicuously marked or otherwise 406 | designated in writing by the copyright owner as "Not a Contribution." 407 | 408 | "Contributor" shall mean Licensor and any individual or Legal Entity 409 | on behalf of whom a Contribution has been received by Licensor and 410 | subsequently incorporated within the Work. 411 | 412 | 2. Grant of Copyright License. Subject to the terms and conditions of 413 | this License, each Contributor hereby grants to You a perpetual, 414 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 415 | copyright license to reproduce, prepare Derivative Works of, 416 | publicly display, publicly perform, sublicense, and distribute the 417 | Work and such Derivative Works in Source or Object form. 418 | 419 | 3. Grant of Patent License. Subject to the terms and conditions of 420 | this License, each Contributor hereby grants to You a perpetual, 421 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 422 | (except as stated in this section) patent license to make, have made, 423 | use, offer to sell, sell, import, and otherwise transfer the Work, 424 | where such license applies only to those patent claims licensable 425 | by such Contributor that are necessarily infringed by their 426 | Contribution(s) alone or by combination of their Contribution(s) 427 | with the Work to which such Contribution(s) was submitted. If You 428 | institute patent litigation against any entity (including a 429 | cross-claim or counterclaim in a lawsuit) alleging that the Work 430 | or a Contribution incorporated within the Work constitutes direct 431 | or contributory patent infringement, then any patent licenses 432 | granted to You under this License for that Work shall terminate 433 | as of the date such litigation is filed. 434 | 435 | 4. Redistribution. You may reproduce and distribute copies of the 436 | Work or Derivative Works thereof in any medium, with or without 437 | modifications, and in Source or Object form, provided that You 438 | meet the following conditions: 439 | 440 | (a) You must give any other recipients of the Work or 441 | Derivative Works a copy of this License; and 442 | 443 | (b) You must cause any modified files to carry prominent notices 444 | stating that You changed the files; and 445 | 446 | (c) You must retain, in the Source form of any Derivative Works 447 | that You distribute, all copyright, patent, trademark, and 448 | attribution notices from the Source form of the Work, 449 | excluding those notices that do not pertain to any part of 450 | the Derivative Works; and 451 | 452 | (d) If the Work includes a "NOTICE" text file as part of its 453 | distribution, then any Derivative Works that You distribute must 454 | include a readable copy of the attribution notices contained 455 | within such NOTICE file, excluding those notices that do not 456 | pertain to any part of the Derivative Works, in at least one 457 | of the following places: within a NOTICE text file distributed 458 | as part of the Derivative Works; within the Source form or 459 | documentation, if provided along with the Derivative Works; or, 460 | within a display generated by the Derivative Works, if and 461 | wherever such third-party notices normally appear. The contents 462 | of the NOTICE file are for informational purposes only and 463 | do not modify the License. You may add Your own attribution 464 | notices within Derivative Works that You distribute, alongside 465 | or as an addendum to the NOTICE text from the Work, provided 466 | that such additional attribution notices cannot be construed 467 | as modifying the License. 468 | 469 | You may add Your own copyright statement to Your modifications and 470 | may provide additional or different license terms and conditions 471 | for use, reproduction, or distribution of Your modifications, or 472 | for any such Derivative Works as a whole, provided Your use, 473 | reproduction, and distribution of the Work otherwise complies with 474 | the conditions stated in this License. 475 | 476 | 5. Submission of Contributions. Unless You explicitly state otherwise, 477 | any Contribution intentionally submitted for inclusion in the Work 478 | by You to the Licensor shall be under the terms and conditions of 479 | this License, without any additional terms or conditions. 480 | Notwithstanding the above, nothing herein shall supersede or modify 481 | the terms of any separate license agreement you may have executed 482 | with Licensor regarding such Contributions. 483 | 484 | 6. Trademarks. This License does not grant permission to use the trade 485 | names, trademarks, service marks, or product names of the Licensor, 486 | except as required for reasonable and customary use in describing the 487 | origin of the Work and reproducing the content of the NOTICE file. 488 | 489 | 7. Disclaimer of Warranty. Unless required by applicable law or 490 | agreed to in writing, Licensor provides the Work (and each 491 | Contributor provides its Contributions) on an "AS IS" BASIS, 492 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 493 | implied, including, without limitation, any warranties or conditions 494 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 495 | PARTICULAR PURPOSE. You are solely responsible for determining the 496 | appropriateness of using or redistributing the Work and assume any 497 | risks associated with Your exercise of permissions under this License. 498 | 499 | 8. Limitation of Liability. In no event and under no legal theory, 500 | whether in tort (including negligence), contract, or otherwise, 501 | unless required by applicable law (such as deliberate and grossly 502 | negligent acts) or agreed to in writing, shall any Contributor be 503 | liable to You for damages, including any direct, indirect, special, 504 | incidental, or consequential damages of any character arising as a 505 | result of this License or out of the use or inability to use the 506 | Work (including but not limited to damages for loss of goodwill, 507 | work stoppage, computer failure or malfunction, or any and all 508 | other commercial damages or losses), even if such Contributor 509 | has been advised of the possibility of such damages. 510 | 511 | 9. Accepting Warranty or Additional Liability. While redistributing 512 | the Work or Derivative Works thereof, You may choose to offer, 513 | and charge a fee for, acceptance of support, warranty, indemnity, 514 | or other liability obligations and/or rights consistent with this 515 | License. However, in accepting such obligations, You may act only 516 | on Your own behalf and on Your sole responsibility, not on behalf 517 | of any other Contributor, and only if You agree to indemnify, 518 | defend, and hold each Contributor harmless for any liability 519 | incurred by, or claims asserted against, such Contributor by reason 520 | of your accepting any such warranty or additional liability. 521 | 522 | END OF TERMS AND CONDITIONS 523 | 524 | APPENDIX: How to apply the Apache License to your work. 525 | 526 | To apply the Apache License to your work, attach the following 527 | boilerplate notice, with the fields enclosed by brackets "[]" 528 | replaced with your own identifying information. (Don't include 529 | the brackets!) The text should be enclosed in the appropriate 530 | comment syntax for the file format. We also recommend that a 531 | file or class name and description of purpose be included on the 532 | same "printed page" as the copyright notice for easier 533 | identification within third-party archives. 534 | 535 | Copyright [yyyy] [name of copyright owner] 536 | 537 | Licensed under the Apache License, Version 2.0 (the "License"); 538 | you may not use this file except in compliance with the License. 539 | You may obtain a copy of the License at 540 | 541 | http://www.apache.org/licenses/LICENSE-2.0 542 | 543 | Unless required by applicable law or agreed to in writing, software 544 | distributed under the License is distributed on an "AS IS" BASIS, 545 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 546 | See the License for the specific language governing permissions and 547 | limitations under the License. 548 | 549 | 550 | @protobuf-ts/runtime 551 | (Apache-2.0 AND BSD-3-Clause) 552 | Apache License 553 | Version 2.0, January 2004 554 | http://www.apache.org/licenses/ 555 | 556 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 557 | 558 | 1. Definitions. 559 | 560 | "License" shall mean the terms and conditions for use, reproduction, 561 | and distribution as defined by Sections 1 through 9 of this document. 562 | 563 | "Licensor" shall mean the copyright owner or entity authorized by 564 | the copyright owner that is granting the License. 565 | 566 | "Legal Entity" shall mean the union of the acting entity and all 567 | other entities that control, are controlled by, or are under common 568 | control with that entity. For the purposes of this definition, 569 | "control" means (i) the power, direct or indirect, to cause the 570 | direction or management of such entity, whether by contract or 571 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 572 | outstanding shares, or (iii) beneficial ownership of such entity. 573 | 574 | "You" (or "Your") shall mean an individual or Legal Entity 575 | exercising permissions granted by this License. 576 | 577 | "Source" form shall mean the preferred form for making modifications, 578 | including but not limited to software source code, documentation 579 | source, and configuration files. 580 | 581 | "Object" form shall mean any form resulting from mechanical 582 | transformation or translation of a Source form, including but 583 | not limited to compiled object code, generated documentation, 584 | and conversions to other media types. 585 | 586 | "Work" shall mean the work of authorship, whether in Source or 587 | Object form, made available under the License, as indicated by a 588 | copyright notice that is included in or attached to the work 589 | (an example is provided in the Appendix below). 590 | 591 | "Derivative Works" shall mean any work, whether in Source or Object 592 | form, that is based on (or derived from) the Work and for which the 593 | editorial revisions, annotations, elaborations, or other modifications 594 | represent, as a whole, an original work of authorship. For the purposes 595 | of this License, Derivative Works shall not include works that remain 596 | separable from, or merely link (or bind by name) to the interfaces of, 597 | the Work and Derivative Works thereof. 598 | 599 | "Contribution" shall mean any work of authorship, including 600 | the original version of the Work and any modifications or additions 601 | to that Work or Derivative Works thereof, that is intentionally 602 | submitted to Licensor for inclusion in the Work by the copyright owner 603 | or by an individual or Legal Entity authorized to submit on behalf of 604 | the copyright owner. For the purposes of this definition, "submitted" 605 | means any form of electronic, verbal, or written communication sent 606 | to the Licensor or its representatives, including but not limited to 607 | communication on electronic mailing lists, source code control systems, 608 | and issue tracking systems that are managed by, or on behalf of, the 609 | Licensor for the purpose of discussing and improving the Work, but 610 | excluding communication that is conspicuously marked or otherwise 611 | designated in writing by the copyright owner as "Not a Contribution." 612 | 613 | "Contributor" shall mean Licensor and any individual or Legal Entity 614 | on behalf of whom a Contribution has been received by Licensor and 615 | subsequently incorporated within the Work. 616 | 617 | 2. Grant of Copyright License. Subject to the terms and conditions of 618 | this License, each Contributor hereby grants to You a perpetual, 619 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 620 | copyright license to reproduce, prepare Derivative Works of, 621 | publicly display, publicly perform, sublicense, and distribute the 622 | Work and such Derivative Works in Source or Object form. 623 | 624 | 3. Grant of Patent License. Subject to the terms and conditions of 625 | this License, each Contributor hereby grants to You a perpetual, 626 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 627 | (except as stated in this section) patent license to make, have made, 628 | use, offer to sell, sell, import, and otherwise transfer the Work, 629 | where such license applies only to those patent claims licensable 630 | by such Contributor that are necessarily infringed by their 631 | Contribution(s) alone or by combination of their Contribution(s) 632 | with the Work to which such Contribution(s) was submitted. If You 633 | institute patent litigation against any entity (including a 634 | cross-claim or counterclaim in a lawsuit) alleging that the Work 635 | or a Contribution incorporated within the Work constitutes direct 636 | or contributory patent infringement, then any patent licenses 637 | granted to You under this License for that Work shall terminate 638 | as of the date such litigation is filed. 639 | 640 | 4. Redistribution. You may reproduce and distribute copies of the 641 | Work or Derivative Works thereof in any medium, with or without 642 | modifications, and in Source or Object form, provided that You 643 | meet the following conditions: 644 | 645 | (a) You must give any other recipients of the Work or 646 | Derivative Works a copy of this License; and 647 | 648 | (b) You must cause any modified files to carry prominent notices 649 | stating that You changed the files; and 650 | 651 | (c) You must retain, in the Source form of any Derivative Works 652 | that You distribute, all copyright, patent, trademark, and 653 | attribution notices from the Source form of the Work, 654 | excluding those notices that do not pertain to any part of 655 | the Derivative Works; and 656 | 657 | (d) If the Work includes a "NOTICE" text file as part of its 658 | distribution, then any Derivative Works that You distribute must 659 | include a readable copy of the attribution notices contained 660 | within such NOTICE file, excluding those notices that do not 661 | pertain to any part of the Derivative Works, in at least one 662 | of the following places: within a NOTICE text file distributed 663 | as part of the Derivative Works; within the Source form or 664 | documentation, if provided along with the Derivative Works; or, 665 | within a display generated by the Derivative Works, if and 666 | wherever such third-party notices normally appear. The contents 667 | of the NOTICE file are for informational purposes only and 668 | do not modify the License. You may add Your own attribution 669 | notices within Derivative Works that You distribute, alongside 670 | or as an addendum to the NOTICE text from the Work, provided 671 | that such additional attribution notices cannot be construed 672 | as modifying the License. 673 | 674 | You may add Your own copyright statement to Your modifications and 675 | may provide additional or different license terms and conditions 676 | for use, reproduction, or distribution of Your modifications, or 677 | for any such Derivative Works as a whole, provided Your use, 678 | reproduction, and distribution of the Work otherwise complies with 679 | the conditions stated in this License. 680 | 681 | 5. Submission of Contributions. Unless You explicitly state otherwise, 682 | any Contribution intentionally submitted for inclusion in the Work 683 | by You to the Licensor shall be under the terms and conditions of 684 | this License, without any additional terms or conditions. 685 | Notwithstanding the above, nothing herein shall supersede or modify 686 | the terms of any separate license agreement you may have executed 687 | with Licensor regarding such Contributions. 688 | 689 | 6. Trademarks. This License does not grant permission to use the trade 690 | names, trademarks, service marks, or product names of the Licensor, 691 | except as required for reasonable and customary use in describing the 692 | origin of the Work and reproducing the content of the NOTICE file. 693 | 694 | 7. Disclaimer of Warranty. Unless required by applicable law or 695 | agreed to in writing, Licensor provides the Work (and each 696 | Contributor provides its Contributions) on an "AS IS" BASIS, 697 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 698 | implied, including, without limitation, any warranties or conditions 699 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 700 | PARTICULAR PURPOSE. You are solely responsible for determining the 701 | appropriateness of using or redistributing the Work and assume any 702 | risks associated with Your exercise of permissions under this License. 703 | 704 | 8. Limitation of Liability. In no event and under no legal theory, 705 | whether in tort (including negligence), contract, or otherwise, 706 | unless required by applicable law (such as deliberate and grossly 707 | negligent acts) or agreed to in writing, shall any Contributor be 708 | liable to You for damages, including any direct, indirect, special, 709 | incidental, or consequential damages of any character arising as a 710 | result of this License or out of the use or inability to use the 711 | Work (including but not limited to damages for loss of goodwill, 712 | work stoppage, computer failure or malfunction, or any and all 713 | other commercial damages or losses), even if such Contributor 714 | has been advised of the possibility of such damages. 715 | 716 | 9. Accepting Warranty or Additional Liability. While redistributing 717 | the Work or Derivative Works thereof, You may choose to offer, 718 | and charge a fee for, acceptance of support, warranty, indemnity, 719 | or other liability obligations and/or rights consistent with this 720 | License. However, in accepting such obligations, You may act only 721 | on Your own behalf and on Your sole responsibility, not on behalf 722 | of any other Contributor, and only if You agree to indemnify, 723 | defend, and hold each Contributor harmless for any liability 724 | incurred by, or claims asserted against, such Contributor by reason 725 | of your accepting any such warranty or additional liability. 726 | 727 | 728 | @protobuf-ts/runtime-rpc 729 | Apache-2.0 730 | Apache License 731 | Version 2.0, January 2004 732 | http://www.apache.org/licenses/ 733 | 734 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 735 | 736 | 1. Definitions. 737 | 738 | "License" shall mean the terms and conditions for use, reproduction, 739 | and distribution as defined by Sections 1 through 9 of this document. 740 | 741 | "Licensor" shall mean the copyright owner or entity authorized by 742 | the copyright owner that is granting the License. 743 | 744 | "Legal Entity" shall mean the union of the acting entity and all 745 | other entities that control, are controlled by, or are under common 746 | control with that entity. For the purposes of this definition, 747 | "control" means (i) the power, direct or indirect, to cause the 748 | direction or management of such entity, whether by contract or 749 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 750 | outstanding shares, or (iii) beneficial ownership of such entity. 751 | 752 | "You" (or "Your") shall mean an individual or Legal Entity 753 | exercising permissions granted by this License. 754 | 755 | "Source" form shall mean the preferred form for making modifications, 756 | including but not limited to software source code, documentation 757 | source, and configuration files. 758 | 759 | "Object" form shall mean any form resulting from mechanical 760 | transformation or translation of a Source form, including but 761 | not limited to compiled object code, generated documentation, 762 | and conversions to other media types. 763 | 764 | "Work" shall mean the work of authorship, whether in Source or 765 | Object form, made available under the License, as indicated by a 766 | copyright notice that is included in or attached to the work 767 | (an example is provided in the Appendix below). 768 | 769 | "Derivative Works" shall mean any work, whether in Source or Object 770 | form, that is based on (or derived from) the Work and for which the 771 | editorial revisions, annotations, elaborations, or other modifications 772 | represent, as a whole, an original work of authorship. For the purposes 773 | of this License, Derivative Works shall not include works that remain 774 | separable from, or merely link (or bind by name) to the interfaces of, 775 | the Work and Derivative Works thereof. 776 | 777 | "Contribution" shall mean any work of authorship, including 778 | the original version of the Work and any modifications or additions 779 | to that Work or Derivative Works thereof, that is intentionally 780 | submitted to Licensor for inclusion in the Work by the copyright owner 781 | or by an individual or Legal Entity authorized to submit on behalf of 782 | the copyright owner. For the purposes of this definition, "submitted" 783 | means any form of electronic, verbal, or written communication sent 784 | to the Licensor or its representatives, including but not limited to 785 | communication on electronic mailing lists, source code control systems, 786 | and issue tracking systems that are managed by, or on behalf of, the 787 | Licensor for the purpose of discussing and improving the Work, but 788 | excluding communication that is conspicuously marked or otherwise 789 | designated in writing by the copyright owner as "Not a Contribution." 790 | 791 | "Contributor" shall mean Licensor and any individual or Legal Entity 792 | on behalf of whom a Contribution has been received by Licensor and 793 | subsequently incorporated within the Work. 794 | 795 | 2. Grant of Copyright License. Subject to the terms and conditions of 796 | this License, each Contributor hereby grants to You a perpetual, 797 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 798 | copyright license to reproduce, prepare Derivative Works of, 799 | publicly display, publicly perform, sublicense, and distribute the 800 | Work and such Derivative Works in Source or Object form. 801 | 802 | 3. Grant of Patent License. Subject to the terms and conditions of 803 | this License, each Contributor hereby grants to You a perpetual, 804 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 805 | (except as stated in this section) patent license to make, have made, 806 | use, offer to sell, sell, import, and otherwise transfer the Work, 807 | where such license applies only to those patent claims licensable 808 | by such Contributor that are necessarily infringed by their 809 | Contribution(s) alone or by combination of their Contribution(s) 810 | with the Work to which such Contribution(s) was submitted. If You 811 | institute patent litigation against any entity (including a 812 | cross-claim or counterclaim in a lawsuit) alleging that the Work 813 | or a Contribution incorporated within the Work constitutes direct 814 | or contributory patent infringement, then any patent licenses 815 | granted to You under this License for that Work shall terminate 816 | as of the date such litigation is filed. 817 | 818 | 4. Redistribution. You may reproduce and distribute copies of the 819 | Work or Derivative Works thereof in any medium, with or without 820 | modifications, and in Source or Object form, provided that You 821 | meet the following conditions: 822 | 823 | (a) You must give any other recipients of the Work or 824 | Derivative Works a copy of this License; and 825 | 826 | (b) You must cause any modified files to carry prominent notices 827 | stating that You changed the files; and 828 | 829 | (c) You must retain, in the Source form of any Derivative Works 830 | that You distribute, all copyright, patent, trademark, and 831 | attribution notices from the Source form of the Work, 832 | excluding those notices that do not pertain to any part of 833 | the Derivative Works; and 834 | 835 | (d) If the Work includes a "NOTICE" text file as part of its 836 | distribution, then any Derivative Works that You distribute must 837 | include a readable copy of the attribution notices contained 838 | within such NOTICE file, excluding those notices that do not 839 | pertain to any part of the Derivative Works, in at least one 840 | of the following places: within a NOTICE text file distributed 841 | as part of the Derivative Works; within the Source form or 842 | documentation, if provided along with the Derivative Works; or, 843 | within a display generated by the Derivative Works, if and 844 | wherever such third-party notices normally appear. The contents 845 | of the NOTICE file are for informational purposes only and 846 | do not modify the License. You may add Your own attribution 847 | notices within Derivative Works that You distribute, alongside 848 | or as an addendum to the NOTICE text from the Work, provided 849 | that such additional attribution notices cannot be construed 850 | as modifying the License. 851 | 852 | You may add Your own copyright statement to Your modifications and 853 | may provide additional or different license terms and conditions 854 | for use, reproduction, or distribution of Your modifications, or 855 | for any such Derivative Works as a whole, provided Your use, 856 | reproduction, and distribution of the Work otherwise complies with 857 | the conditions stated in this License. 858 | 859 | 5. Submission of Contributions. Unless You explicitly state otherwise, 860 | any Contribution intentionally submitted for inclusion in the Work 861 | by You to the Licensor shall be under the terms and conditions of 862 | this License, without any additional terms or conditions. 863 | Notwithstanding the above, nothing herein shall supersede or modify 864 | the terms of any separate license agreement you may have executed 865 | with Licensor regarding such Contributions. 866 | 867 | 6. Trademarks. This License does not grant permission to use the trade 868 | names, trademarks, service marks, or product names of the Licensor, 869 | except as required for reasonable and customary use in describing the 870 | origin of the Work and reproducing the content of the NOTICE file. 871 | 872 | 7. Disclaimer of Warranty. Unless required by applicable law or 873 | agreed to in writing, Licensor provides the Work (and each 874 | Contributor provides its Contributions) on an "AS IS" BASIS, 875 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 876 | implied, including, without limitation, any warranties or conditions 877 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 878 | PARTICULAR PURPOSE. You are solely responsible for determining the 879 | appropriateness of using or redistributing the Work and assume any 880 | risks associated with Your exercise of permissions under this License. 881 | 882 | 8. Limitation of Liability. In no event and under no legal theory, 883 | whether in tort (including negligence), contract, or otherwise, 884 | unless required by applicable law (such as deliberate and grossly 885 | negligent acts) or agreed to in writing, shall any Contributor be 886 | liable to You for damages, including any direct, indirect, special, 887 | incidental, or consequential damages of any character arising as a 888 | result of this License or out of the use or inability to use the 889 | Work (including but not limited to damages for loss of goodwill, 890 | work stoppage, computer failure or malfunction, or any and all 891 | other commercial damages or losses), even if such Contributor 892 | has been advised of the possibility of such damages. 893 | 894 | 9. Accepting Warranty or Additional Liability. While redistributing 895 | the Work or Derivative Works thereof, You may choose to offer, 896 | and charge a fee for, acceptance of support, warranty, indemnity, 897 | or other liability obligations and/or rights consistent with this 898 | License. However, in accepting such obligations, You may act only 899 | on Your own behalf and on Your sole responsibility, not on behalf 900 | of any other Contributor, and only if You agree to indemnify, 901 | defend, and hold each Contributor harmless for any liability 902 | incurred by, or claims asserted against, such Contributor by reason 903 | of your accepting any such warranty or additional liability. 904 | 905 | 906 | asynckit 907 | MIT 908 | The MIT License (MIT) 909 | 910 | Copyright (c) 2016 Alex Indigo 911 | 912 | Permission is hereby granted, free of charge, to any person obtaining a copy 913 | of this software and associated documentation files (the "Software"), to deal 914 | in the Software without restriction, including without limitation the rights 915 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 916 | copies of the Software, and to permit persons to whom the Software is 917 | furnished to do so, subject to the following conditions: 918 | 919 | The above copyright notice and this permission notice shall be included in all 920 | copies or substantial portions of the Software. 921 | 922 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 923 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 924 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 925 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 926 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 927 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 928 | SOFTWARE. 929 | 930 | 931 | balanced-match 932 | MIT 933 | (MIT) 934 | 935 | Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> 936 | 937 | Permission is hereby granted, free of charge, to any person obtaining a copy of 938 | this software and associated documentation files (the "Software"), to deal in 939 | the Software without restriction, including without limitation the rights to 940 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 941 | of the Software, and to permit persons to whom the Software is furnished to do 942 | so, subject to the following conditions: 943 | 944 | The above copyright notice and this permission notice shall be included in all 945 | copies or substantial portions of the Software. 946 | 947 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 948 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 949 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 950 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 951 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 952 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 953 | SOFTWARE. 954 | 955 | 956 | brace-expansion 957 | MIT 958 | MIT License 959 | 960 | Copyright (c) 2013 Julian Gruber 961 | 962 | Permission is hereby granted, free of charge, to any person obtaining a copy 963 | of this software and associated documentation files (the "Software"), to deal 964 | in the Software without restriction, including without limitation the rights 965 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 966 | copies of the Software, and to permit persons to whom the Software is 967 | furnished to do so, subject to the following conditions: 968 | 969 | The above copyright notice and this permission notice shall be included in all 970 | copies or substantial portions of the Software. 971 | 972 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 973 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 974 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 975 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 976 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 977 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 978 | SOFTWARE. 979 | 980 | 981 | combined-stream 982 | MIT 983 | Copyright (c) 2011 Debuggable Limited 984 | 985 | Permission is hereby granted, free of charge, to any person obtaining a copy 986 | of this software and associated documentation files (the "Software"), to deal 987 | in the Software without restriction, including without limitation the rights 988 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 989 | copies of the Software, and to permit persons to whom the Software is 990 | furnished to do so, subject to the following conditions: 991 | 992 | The above copyright notice and this permission notice shall be included in 993 | all copies or substantial portions of the Software. 994 | 995 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 996 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 997 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 998 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 999 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1000 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 1001 | THE SOFTWARE. 1002 | 1003 | 1004 | concat-map 1005 | MIT 1006 | This software is released under the MIT license: 1007 | 1008 | Permission is hereby granted, free of charge, to any person obtaining a copy of 1009 | this software and associated documentation files (the "Software"), to deal in 1010 | the Software without restriction, including without limitation the rights to 1011 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 1012 | the Software, and to permit persons to whom the Software is furnished to do so, 1013 | subject to the following conditions: 1014 | 1015 | The above copyright notice and this permission notice shall be included in all 1016 | copies or substantial portions of the Software. 1017 | 1018 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1019 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 1020 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 1021 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 1022 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 1023 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1024 | 1025 | 1026 | delayed-stream 1027 | MIT 1028 | Copyright (c) 2011 Debuggable Limited 1029 | 1030 | Permission is hereby granted, free of charge, to any person obtaining a copy 1031 | of this software and associated documentation files (the "Software"), to deal 1032 | in the Software without restriction, including without limitation the rights 1033 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1034 | copies of the Software, and to permit persons to whom the Software is 1035 | furnished to do so, subject to the following conditions: 1036 | 1037 | The above copyright notice and this permission notice shall be included in 1038 | all copies or substantial portions of the Software. 1039 | 1040 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1041 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1042 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1043 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1044 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1045 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 1046 | THE SOFTWARE. 1047 | 1048 | 1049 | encoding 1050 | MIT 1051 | Copyright (c) 2012-2014 Andris Reinman 1052 | 1053 | Permission is hereby granted, free of charge, to any person obtaining a copy 1054 | of this software and associated documentation files (the "Software"), to deal 1055 | in the Software without restriction, including without limitation the rights 1056 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1057 | copies of the Software, and to permit persons to whom the Software is 1058 | furnished to do so, subject to the following conditions: 1059 | 1060 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1061 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1062 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1063 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1064 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1065 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1066 | SOFTWARE. 1067 | 1068 | 1069 | form-data 1070 | MIT 1071 | Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and contributors 1072 | 1073 | Permission is hereby granted, free of charge, to any person obtaining a copy 1074 | of this software and associated documentation files (the "Software"), to deal 1075 | in the Software without restriction, including without limitation the rights 1076 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1077 | copies of the Software, and to permit persons to whom the Software is 1078 | furnished to do so, subject to the following conditions: 1079 | 1080 | The above copyright notice and this permission notice shall be included in 1081 | all copies or substantial portions of the Software. 1082 | 1083 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1084 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1085 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1086 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1087 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1088 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 1089 | THE SOFTWARE. 1090 | 1091 | 1092 | iconv-lite 1093 | MIT 1094 | Copyright (c) 2011 Alexander Shtuchkin 1095 | 1096 | Permission is hereby granted, free of charge, to any person obtaining 1097 | a copy of this software and associated documentation files (the 1098 | "Software"), to deal in the Software without restriction, including 1099 | without limitation the rights to use, copy, modify, merge, publish, 1100 | distribute, sublicense, and/or sell copies of the Software, and to 1101 | permit persons to whom the Software is furnished to do so, subject to 1102 | the following conditions: 1103 | 1104 | The above copyright notice and this permission notice shall be 1105 | included in all copies or substantial portions of the Software. 1106 | 1107 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 1108 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1109 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1110 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 1111 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 1112 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 1113 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1114 | 1115 | 1116 | 1117 | mime-db 1118 | MIT 1119 | (The MIT License) 1120 | 1121 | Copyright (c) 2014 Jonathan Ong 1122 | Copyright (c) 2015-2022 Douglas Christopher Wilson 1123 | 1124 | Permission is hereby granted, free of charge, to any person obtaining 1125 | a copy of this software and associated documentation files (the 1126 | 'Software'), to deal in the Software without restriction, including 1127 | without limitation the rights to use, copy, modify, merge, publish, 1128 | distribute, sublicense, and/or sell copies of the Software, and to 1129 | permit persons to whom the Software is furnished to do so, subject to 1130 | the following conditions: 1131 | 1132 | The above copyright notice and this permission notice shall be 1133 | included in all copies or substantial portions of the Software. 1134 | 1135 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 1136 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1137 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 1138 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 1139 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 1140 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 1141 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1142 | 1143 | 1144 | mime-types 1145 | MIT 1146 | (The MIT License) 1147 | 1148 | Copyright (c) 2014 Jonathan Ong 1149 | Copyright (c) 2015 Douglas Christopher Wilson 1150 | 1151 | Permission is hereby granted, free of charge, to any person obtaining 1152 | a copy of this software and associated documentation files (the 1153 | 'Software'), to deal in the Software without restriction, including 1154 | without limitation the rights to use, copy, modify, merge, publish, 1155 | distribute, sublicense, and/or sell copies of the Software, and to 1156 | permit persons to whom the Software is furnished to do so, subject to 1157 | the following conditions: 1158 | 1159 | The above copyright notice and this permission notice shall be 1160 | included in all copies or substantial portions of the Software. 1161 | 1162 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 1163 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1164 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 1165 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 1166 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 1167 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 1168 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1169 | 1170 | 1171 | minimatch 1172 | ISC 1173 | The ISC License 1174 | 1175 | Copyright (c) Isaac Z. Schlueter and Contributors 1176 | 1177 | Permission to use, copy, modify, and/or distribute this software for any 1178 | purpose with or without fee is hereby granted, provided that the above 1179 | copyright notice and this permission notice appear in all copies. 1180 | 1181 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1182 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1183 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1184 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1185 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1186 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 1187 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1188 | 1189 | 1190 | node-fetch 1191 | MIT 1192 | The MIT License (MIT) 1193 | 1194 | Copyright (c) 2016 David Frank 1195 | 1196 | Permission is hereby granted, free of charge, to any person obtaining a copy 1197 | of this software and associated documentation files (the "Software"), to deal 1198 | in the Software without restriction, including without limitation the rights 1199 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1200 | copies of the Software, and to permit persons to whom the Software is 1201 | furnished to do so, subject to the following conditions: 1202 | 1203 | The above copyright notice and this permission notice shall be included in all 1204 | copies or substantial portions of the Software. 1205 | 1206 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1207 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1208 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1209 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1210 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1211 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1212 | SOFTWARE. 1213 | 1214 | 1215 | 1216 | safer-buffer 1217 | MIT 1218 | MIT License 1219 | 1220 | Copyright (c) 2018 Nikita Skovoroda 1221 | 1222 | Permission is hereby granted, free of charge, to any person obtaining a copy 1223 | of this software and associated documentation files (the "Software"), to deal 1224 | in the Software without restriction, including without limitation the rights 1225 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1226 | copies of the Software, and to permit persons to whom the Software is 1227 | furnished to do so, subject to the following conditions: 1228 | 1229 | The above copyright notice and this permission notice shall be included in all 1230 | copies or substantial portions of the Software. 1231 | 1232 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1233 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1234 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1235 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1236 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1237 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1238 | SOFTWARE. 1239 | 1240 | 1241 | sax 1242 | ISC 1243 | The ISC License 1244 | 1245 | Copyright (c) Isaac Z. Schlueter and Contributors 1246 | 1247 | Permission to use, copy, modify, and/or distribute this software for any 1248 | purpose with or without fee is hereby granted, provided that the above 1249 | copyright notice and this permission notice appear in all copies. 1250 | 1251 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1252 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1253 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1254 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1255 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1256 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 1257 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1258 | 1259 | ==== 1260 | 1261 | `String.fromCodePoint` by Mathias Bynens used according to terms of MIT 1262 | License, as follows: 1263 | 1264 | Copyright Mathias Bynens 1265 | 1266 | Permission is hereby granted, free of charge, to any person obtaining 1267 | a copy of this software and associated documentation files (the 1268 | "Software"), to deal in the Software without restriction, including 1269 | without limitation the rights to use, copy, modify, merge, publish, 1270 | distribute, sublicense, and/or sell copies of the Software, and to 1271 | permit persons to whom the Software is furnished to do so, subject to 1272 | the following conditions: 1273 | 1274 | The above copyright notice and this permission notice shall be 1275 | included in all copies or substantial portions of the Software. 1276 | 1277 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 1278 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1279 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1280 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 1281 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 1282 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 1283 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1284 | 1285 | 1286 | semver 1287 | ISC 1288 | The ISC License 1289 | 1290 | Copyright (c) Isaac Z. Schlueter and Contributors 1291 | 1292 | Permission to use, copy, modify, and/or distribute this software for any 1293 | purpose with or without fee is hereby granted, provided that the above 1294 | copyright notice and this permission notice appear in all copies. 1295 | 1296 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1297 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1298 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1299 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1300 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1301 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 1302 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1303 | 1304 | 1305 | tr46 1306 | MIT 1307 | 1308 | tslib 1309 | 0BSD 1310 | Copyright (c) Microsoft Corporation. 1311 | 1312 | Permission to use, copy, modify, and/or distribute this software for any 1313 | purpose with or without fee is hereby granted. 1314 | 1315 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 1316 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 1317 | AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 1318 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 1319 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 1320 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 1321 | PERFORMANCE OF THIS SOFTWARE. 1322 | 1323 | tunnel 1324 | MIT 1325 | The MIT License (MIT) 1326 | 1327 | Copyright (c) 2012 Koichi Kobayashi 1328 | 1329 | Permission is hereby granted, free of charge, to any person obtaining a copy 1330 | of this software and associated documentation files (the "Software"), to deal 1331 | in the Software without restriction, including without limitation the rights 1332 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1333 | copies of the Software, and to permit persons to whom the Software is 1334 | furnished to do so, subject to the following conditions: 1335 | 1336 | The above copyright notice and this permission notice shall be included in 1337 | all copies or substantial portions of the Software. 1338 | 1339 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1340 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1341 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1342 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1343 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1344 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 1345 | THE SOFTWARE. 1346 | 1347 | 1348 | undici 1349 | MIT 1350 | MIT License 1351 | 1352 | Copyright (c) Matteo Collina and Undici contributors 1353 | 1354 | Permission is hereby granted, free of charge, to any person obtaining a copy 1355 | of this software and associated documentation files (the "Software"), to deal 1356 | in the Software without restriction, including without limitation the rights 1357 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1358 | copies of the Software, and to permit persons to whom the Software is 1359 | furnished to do so, subject to the following conditions: 1360 | 1361 | The above copyright notice and this permission notice shall be included in all 1362 | copies or substantial portions of the Software. 1363 | 1364 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1365 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1366 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1367 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1368 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1369 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1370 | SOFTWARE. 1371 | 1372 | 1373 | uuid 1374 | MIT 1375 | The MIT License (MIT) 1376 | 1377 | Copyright (c) 2010-2020 Robert Kieffer and other contributors 1378 | 1379 | 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: 1380 | 1381 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 1382 | 1383 | 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. 1384 | 1385 | 1386 | webidl-conversions 1387 | BSD-2-Clause 1388 | # The BSD 2-Clause License 1389 | 1390 | Copyright (c) 2014, Domenic Denicola 1391 | All rights reserved. 1392 | 1393 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1394 | 1395 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 1396 | 1397 | 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. 1398 | 1399 | 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. 1400 | 1401 | 1402 | whatwg-url 1403 | MIT 1404 | The MIT License (MIT) 1405 | 1406 | Copyright (c) 2015–2016 Sebastian Mayr 1407 | 1408 | Permission is hereby granted, free of charge, to any person obtaining a copy 1409 | of this software and associated documentation files (the "Software"), to deal 1410 | in the Software without restriction, including without limitation the rights 1411 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1412 | copies of the Software, and to permit persons to whom the Software is 1413 | furnished to do so, subject to the following conditions: 1414 | 1415 | The above copyright notice and this permission notice shall be included in 1416 | all copies or substantial portions of the Software. 1417 | 1418 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1419 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1420 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1421 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1422 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1423 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 1424 | THE SOFTWARE. 1425 | 1426 | 1427 | xml2js 1428 | MIT 1429 | Copyright 2010, 2011, 2012, 2013. All rights reserved. 1430 | 1431 | Permission is hereby granted, free of charge, to any person obtaining a copy 1432 | of this software and associated documentation files (the "Software"), to 1433 | deal in the Software without restriction, including without limitation the 1434 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 1435 | sell copies of the Software, and to permit persons to whom the Software is 1436 | furnished to do so, subject to the following conditions: 1437 | 1438 | The above copyright notice and this permission notice shall be included in 1439 | all copies or substantial portions of the Software. 1440 | 1441 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1442 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1443 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1444 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1445 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 1446 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 1447 | IN THE SOFTWARE. 1448 | 1449 | 1450 | xmlbuilder 1451 | MIT 1452 | The MIT License (MIT) 1453 | 1454 | Copyright (c) 2013 Ozgur Ozcitak 1455 | 1456 | Permission is hereby granted, free of charge, to any person obtaining a copy 1457 | of this software and associated documentation files (the "Software"), to deal 1458 | in the Software without restriction, including without limitation the rights 1459 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1460 | copies of the Software, and to permit persons to whom the Software is 1461 | furnished to do so, subject to the following conditions: 1462 | 1463 | The above copyright notice and this permission notice shall be included in 1464 | all copies or substantial portions of the Software. 1465 | 1466 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1467 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1468 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1469 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1470 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1471 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 1472 | THE SOFTWARE. 1473 | -------------------------------------------------------------------------------- /dist/sourcemap-register.js: -------------------------------------------------------------------------------- 1 | (()=>{var e={650:e=>{var r=Object.prototype.toString;var n=typeof Buffer.alloc==="function"&&typeof Buffer.allocUnsafe==="function"&&typeof Buffer.from==="function";function isArrayBuffer(e){return r.call(e).slice(8,-1)==="ArrayBuffer"}function fromArrayBuffer(e,r,t){r>>>=0;var o=e.byteLength-r;if(o<0){throw new RangeError("'offset' is out of bounds")}if(t===undefined){t=o}else{t>>>=0;if(t>o){throw new RangeError("'length' is out of bounds")}}return n?Buffer.from(e.slice(r,r+t)):new Buffer(new Uint8Array(e.slice(r,r+t)))}function fromString(e,r){if(typeof r!=="string"||r===""){r="utf8"}if(!Buffer.isEncoding(r)){throw new TypeError('"encoding" must be a valid string encoding')}return n?Buffer.from(e,r):new Buffer(e,r)}function bufferFrom(e,r,t){if(typeof e==="number"){throw new TypeError('"value" argument must not be a number')}if(isArrayBuffer(e)){return fromArrayBuffer(e,r,t)}if(typeof e==="string"){return fromString(e,r)}return n?Buffer.from(e):new Buffer(e)}e.exports=bufferFrom},274:(e,r,n)=>{var t=n(339);var o=Object.prototype.hasOwnProperty;var i=typeof Map!=="undefined";function ArraySet(){this._array=[];this._set=i?new Map:Object.create(null)}ArraySet.fromArray=function ArraySet_fromArray(e,r){var n=new ArraySet;for(var t=0,o=e.length;t=0){return r}}else{var n=t.toSetString(e);if(o.call(this._set,n)){return this._set[n]}}throw new Error('"'+e+'" is not in the set.')};ArraySet.prototype.at=function ArraySet_at(e){if(e>=0&&e{var t=n(190);var o=5;var i=1<>1;return r?-n:n}r.encode=function base64VLQ_encode(e){var r="";var n;var i=toVLQSigned(e);do{n=i&a;i>>>=o;if(i>0){n|=u}r+=t.encode(n)}while(i>0);return r};r.decode=function base64VLQ_decode(e,r,n){var i=e.length;var s=0;var l=0;var c,p;do{if(r>=i){throw new Error("Expected more digits in base 64 VLQ value.")}p=t.decode(e.charCodeAt(r++));if(p===-1){throw new Error("Invalid base64 digit: "+e.charAt(r-1))}c=!!(p&u);p&=a;s=s+(p<{var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");r.encode=function(e){if(0<=e&&e{r.GREATEST_LOWER_BOUND=1;r.LEAST_UPPER_BOUND=2;function recursiveSearch(e,n,t,o,i,a){var u=Math.floor((n-e)/2)+e;var s=i(t,o[u],true);if(s===0){return u}else if(s>0){if(n-u>1){return recursiveSearch(u,n,t,o,i,a)}if(a==r.LEAST_UPPER_BOUND){return n1){return recursiveSearch(e,u,t,o,i,a)}if(a==r.LEAST_UPPER_BOUND){return u}else{return e<0?-1:e}}}r.search=function search(e,n,t,o){if(n.length===0){return-1}var i=recursiveSearch(-1,n.length,e,n,t,o||r.GREATEST_LOWER_BOUND);if(i<0){return-1}while(i-1>=0){if(t(n[i],n[i-1],true)!==0){break}--i}return i}},680:(e,r,n)=>{var t=n(339);function generatedPositionAfter(e,r){var n=e.generatedLine;var o=r.generatedLine;var i=e.generatedColumn;var a=r.generatedColumn;return o>n||o==n&&a>=i||t.compareByGeneratedPositionsInflated(e,r)<=0}function MappingList(){this._array=[];this._sorted=true;this._last={generatedLine:-1,generatedColumn:0}}MappingList.prototype.unsortedForEach=function MappingList_forEach(e,r){this._array.forEach(e,r)};MappingList.prototype.add=function MappingList_add(e){if(generatedPositionAfter(this._last,e)){this._last=e;this._array.push(e)}else{this._sorted=false;this._array.push(e)}};MappingList.prototype.toArray=function MappingList_toArray(){if(!this._sorted){this._array.sort(t.compareByGeneratedPositionsInflated);this._sorted=true}return this._array};r.H=MappingList},758:(e,r)=>{function swap(e,r,n){var t=e[r];e[r]=e[n];e[n]=t}function randomIntInRange(e,r){return Math.round(e+Math.random()*(r-e))}function doQuickSort(e,r,n,t){if(n{var t;var o=n(339);var i=n(345);var a=n(274).I;var u=n(449);var s=n(758).U;function SourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}return n.sections!=null?new IndexedSourceMapConsumer(n,r):new BasicSourceMapConsumer(n,r)}SourceMapConsumer.fromSourceMap=function(e,r){return BasicSourceMapConsumer.fromSourceMap(e,r)};SourceMapConsumer.prototype._version=3;SourceMapConsumer.prototype.__generatedMappings=null;Object.defineProperty(SourceMapConsumer.prototype,"_generatedMappings",{configurable:true,enumerable:true,get:function(){if(!this.__generatedMappings){this._parseMappings(this._mappings,this.sourceRoot)}return this.__generatedMappings}});SourceMapConsumer.prototype.__originalMappings=null;Object.defineProperty(SourceMapConsumer.prototype,"_originalMappings",{configurable:true,enumerable:true,get:function(){if(!this.__originalMappings){this._parseMappings(this._mappings,this.sourceRoot)}return this.__originalMappings}});SourceMapConsumer.prototype._charIsMappingSeparator=function SourceMapConsumer_charIsMappingSeparator(e,r){var n=e.charAt(r);return n===";"||n===","};SourceMapConsumer.prototype._parseMappings=function SourceMapConsumer_parseMappings(e,r){throw new Error("Subclasses must implement _parseMappings")};SourceMapConsumer.GENERATED_ORDER=1;SourceMapConsumer.ORIGINAL_ORDER=2;SourceMapConsumer.GREATEST_LOWER_BOUND=1;SourceMapConsumer.LEAST_UPPER_BOUND=2;SourceMapConsumer.prototype.eachMapping=function SourceMapConsumer_eachMapping(e,r,n){var t=r||null;var i=n||SourceMapConsumer.GENERATED_ORDER;var a;switch(i){case SourceMapConsumer.GENERATED_ORDER:a=this._generatedMappings;break;case SourceMapConsumer.ORIGINAL_ORDER:a=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;a.map((function(e){var r=e.source===null?null:this._sources.at(e.source);r=o.computeSourceURL(u,r,this._sourceMapURL);return{source:r,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name===null?null:this._names.at(e.name)}}),this).forEach(e,t)};SourceMapConsumer.prototype.allGeneratedPositionsFor=function SourceMapConsumer_allGeneratedPositionsFor(e){var r=o.getArg(e,"line");var n={source:o.getArg(e,"source"),originalLine:r,originalColumn:o.getArg(e,"column",0)};n.source=this._findSourceIndex(n.source);if(n.source<0){return[]}var t=[];var a=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,i.LEAST_UPPER_BOUND);if(a>=0){var u=this._originalMappings[a];if(e.column===undefined){var s=u.originalLine;while(u&&u.originalLine===s){t.push({line:o.getArg(u,"generatedLine",null),column:o.getArg(u,"generatedColumn",null),lastColumn:o.getArg(u,"lastGeneratedColumn",null)});u=this._originalMappings[++a]}}else{var l=u.originalColumn;while(u&&u.originalLine===r&&u.originalColumn==l){t.push({line:o.getArg(u,"generatedLine",null),column:o.getArg(u,"generatedColumn",null),lastColumn:o.getArg(u,"lastGeneratedColumn",null)});u=this._originalMappings[++a]}}}return t};r.SourceMapConsumer=SourceMapConsumer;function BasicSourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}var t=o.getArg(n,"version");var i=o.getArg(n,"sources");var u=o.getArg(n,"names",[]);var s=o.getArg(n,"sourceRoot",null);var l=o.getArg(n,"sourcesContent",null);var c=o.getArg(n,"mappings");var p=o.getArg(n,"file",null);if(t!=this._version){throw new Error("Unsupported version: "+t)}if(s){s=o.normalize(s)}i=i.map(String).map(o.normalize).map((function(e){return s&&o.isAbsolute(s)&&o.isAbsolute(e)?o.relative(s,e):e}));this._names=a.fromArray(u.map(String),true);this._sources=a.fromArray(i,true);this._absoluteSources=this._sources.toArray().map((function(e){return o.computeSourceURL(s,e,r)}));this.sourceRoot=s;this.sourcesContent=l;this._mappings=c;this._sourceMapURL=r;this.file=p}BasicSourceMapConsumer.prototype=Object.create(SourceMapConsumer.prototype);BasicSourceMapConsumer.prototype.consumer=SourceMapConsumer;BasicSourceMapConsumer.prototype._findSourceIndex=function(e){var r=e;if(this.sourceRoot!=null){r=o.relative(this.sourceRoot,r)}if(this._sources.has(r)){return this._sources.indexOf(r)}var n;for(n=0;n1){v.source=l+_[1];l+=_[1];v.originalLine=i+_[2];i=v.originalLine;v.originalLine+=1;v.originalColumn=a+_[3];a=v.originalColumn;if(_.length>4){v.name=c+_[4];c+=_[4]}}m.push(v);if(typeof v.originalLine==="number"){d.push(v)}}}s(m,o.compareByGeneratedPositionsDeflated);this.__generatedMappings=m;s(d,o.compareByOriginalPositions);this.__originalMappings=d};BasicSourceMapConsumer.prototype._findMapping=function SourceMapConsumer_findMapping(e,r,n,t,o,a){if(e[n]<=0){throw new TypeError("Line must be greater than or equal to 1, got "+e[n])}if(e[t]<0){throw new TypeError("Column must be greater than or equal to 0, got "+e[t])}return i.search(e,r,o,a)};BasicSourceMapConsumer.prototype.computeColumnSpans=function SourceMapConsumer_computeColumnSpans(){for(var e=0;e=0){var t=this._generatedMappings[n];if(t.generatedLine===r.generatedLine){var i=o.getArg(t,"source",null);if(i!==null){i=this._sources.at(i);i=o.computeSourceURL(this.sourceRoot,i,this._sourceMapURL)}var a=o.getArg(t,"name",null);if(a!==null){a=this._names.at(a)}return{source:i,line:o.getArg(t,"originalLine",null),column:o.getArg(t,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}};BasicSourceMapConsumer.prototype.hasContentsOfAllSources=function BasicSourceMapConsumer_hasContentsOfAllSources(){if(!this.sourcesContent){return false}return this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return e==null}))};BasicSourceMapConsumer.prototype.sourceContentFor=function SourceMapConsumer_sourceContentFor(e,r){if(!this.sourcesContent){return null}var n=this._findSourceIndex(e);if(n>=0){return this.sourcesContent[n]}var t=e;if(this.sourceRoot!=null){t=o.relative(this.sourceRoot,t)}var i;if(this.sourceRoot!=null&&(i=o.urlParse(this.sourceRoot))){var a=t.replace(/^file:\/\//,"");if(i.scheme=="file"&&this._sources.has(a)){return this.sourcesContent[this._sources.indexOf(a)]}if((!i.path||i.path=="/")&&this._sources.has("/"+t)){return this.sourcesContent[this._sources.indexOf("/"+t)]}}if(r){return null}else{throw new Error('"'+t+'" is not in the SourceMap.')}};BasicSourceMapConsumer.prototype.generatedPositionFor=function SourceMapConsumer_generatedPositionFor(e){var r=o.getArg(e,"source");r=this._findSourceIndex(r);if(r<0){return{line:null,column:null,lastColumn:null}}var n={source:r,originalLine:o.getArg(e,"line"),originalColumn:o.getArg(e,"column")};var t=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,o.getArg(e,"bias",SourceMapConsumer.GREATEST_LOWER_BOUND));if(t>=0){var i=this._originalMappings[t];if(i.source===n.source){return{line:o.getArg(i,"generatedLine",null),column:o.getArg(i,"generatedColumn",null),lastColumn:o.getArg(i,"lastGeneratedColumn",null)}}}return{line:null,column:null,lastColumn:null}};t=BasicSourceMapConsumer;function IndexedSourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}var t=o.getArg(n,"version");var i=o.getArg(n,"sections");if(t!=this._version){throw new Error("Unsupported version: "+t)}this._sources=new a;this._names=new a;var u={line:-1,column:0};this._sections=i.map((function(e){if(e.url){throw new Error("Support for url field in sections not implemented.")}var n=o.getArg(e,"offset");var t=o.getArg(n,"line");var i=o.getArg(n,"column");if(t{var t=n(449);var o=n(339);var i=n(274).I;var a=n(680).H;function SourceMapGenerator(e){if(!e){e={}}this._file=o.getArg(e,"file",null);this._sourceRoot=o.getArg(e,"sourceRoot",null);this._skipValidation=o.getArg(e,"skipValidation",false);this._sources=new i;this._names=new i;this._mappings=new a;this._sourcesContents=null}SourceMapGenerator.prototype._version=3;SourceMapGenerator.fromSourceMap=function SourceMapGenerator_fromSourceMap(e){var r=e.sourceRoot;var n=new SourceMapGenerator({file:e.file,sourceRoot:r});e.eachMapping((function(e){var t={generated:{line:e.generatedLine,column:e.generatedColumn}};if(e.source!=null){t.source=e.source;if(r!=null){t.source=o.relative(r,t.source)}t.original={line:e.originalLine,column:e.originalColumn};if(e.name!=null){t.name=e.name}}n.addMapping(t)}));e.sources.forEach((function(t){var i=t;if(r!==null){i=o.relative(r,t)}if(!n._sources.has(i)){n._sources.add(i)}var a=e.sourceContentFor(t);if(a!=null){n.setSourceContent(t,a)}}));return n};SourceMapGenerator.prototype.addMapping=function SourceMapGenerator_addMapping(e){var r=o.getArg(e,"generated");var n=o.getArg(e,"original",null);var t=o.getArg(e,"source",null);var i=o.getArg(e,"name",null);if(!this._skipValidation){this._validateMapping(r,n,t,i)}if(t!=null){t=String(t);if(!this._sources.has(t)){this._sources.add(t)}}if(i!=null){i=String(i);if(!this._names.has(i)){this._names.add(i)}}this._mappings.add({generatedLine:r.line,generatedColumn:r.column,originalLine:n!=null&&n.line,originalColumn:n!=null&&n.column,source:t,name:i})};SourceMapGenerator.prototype.setSourceContent=function SourceMapGenerator_setSourceContent(e,r){var n=e;if(this._sourceRoot!=null){n=o.relative(this._sourceRoot,n)}if(r!=null){if(!this._sourcesContents){this._sourcesContents=Object.create(null)}this._sourcesContents[o.toSetString(n)]=r}else if(this._sourcesContents){delete this._sourcesContents[o.toSetString(n)];if(Object.keys(this._sourcesContents).length===0){this._sourcesContents=null}}};SourceMapGenerator.prototype.applySourceMap=function SourceMapGenerator_applySourceMap(e,r,n){var t=r;if(r==null){if(e.file==null){throw new Error("SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, "+'or the source map\'s "file" property. Both were omitted.')}t=e.file}var a=this._sourceRoot;if(a!=null){t=o.relative(a,t)}var u=new i;var s=new i;this._mappings.unsortedForEach((function(r){if(r.source===t&&r.originalLine!=null){var i=e.originalPositionFor({line:r.originalLine,column:r.originalColumn});if(i.source!=null){r.source=i.source;if(n!=null){r.source=o.join(n,r.source)}if(a!=null){r.source=o.relative(a,r.source)}r.originalLine=i.line;r.originalColumn=i.column;if(i.name!=null){r.name=i.name}}}var l=r.source;if(l!=null&&!u.has(l)){u.add(l)}var c=r.name;if(c!=null&&!s.has(c)){s.add(c)}}),this);this._sources=u;this._names=s;e.sources.forEach((function(r){var t=e.sourceContentFor(r);if(t!=null){if(n!=null){r=o.join(n,r)}if(a!=null){r=o.relative(a,r)}this.setSourceContent(r,t)}}),this)};SourceMapGenerator.prototype._validateMapping=function SourceMapGenerator_validateMapping(e,r,n,t){if(r&&typeof r.line!=="number"&&typeof r.column!=="number"){throw new Error("original.line and original.column are not numbers -- you probably meant to omit "+"the original mapping entirely and only map the generated position. If so, pass "+"null for the original mapping instead of an object with empty or null values.")}if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!r&&!n&&!t){return}else if(e&&"line"in e&&"column"in e&&r&&"line"in r&&"column"in r&&e.line>0&&e.column>=0&&r.line>0&&r.column>=0&&n){return}else{throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:r,name:t}))}};SourceMapGenerator.prototype._serializeMappings=function SourceMapGenerator_serializeMappings(){var e=0;var r=1;var n=0;var i=0;var a=0;var u=0;var s="";var l;var c;var p;var f;var g=this._mappings.toArray();for(var h=0,d=g.length;h0){if(!o.compareByGeneratedPositionsInflated(c,g[h-1])){continue}l+=","}}l+=t.encode(c.generatedColumn-e);e=c.generatedColumn;if(c.source!=null){f=this._sources.indexOf(c.source);l+=t.encode(f-u);u=f;l+=t.encode(c.originalLine-1-i);i=c.originalLine-1;l+=t.encode(c.originalColumn-n);n=c.originalColumn;if(c.name!=null){p=this._names.indexOf(c.name);l+=t.encode(p-a);a=p}}s+=l}return s};SourceMapGenerator.prototype._generateSourcesContent=function SourceMapGenerator_generateSourcesContent(e,r){return e.map((function(e){if(!this._sourcesContents){return null}if(r!=null){e=o.relative(r,e)}var n=o.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null}),this)};SourceMapGenerator.prototype.toJSON=function SourceMapGenerator_toJSON(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null){e.file=this._file}if(this._sourceRoot!=null){e.sourceRoot=this._sourceRoot}if(this._sourcesContents){e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)}return e};SourceMapGenerator.prototype.toString=function SourceMapGenerator_toString(){return JSON.stringify(this.toJSON())};r.h=SourceMapGenerator},351:(e,r,n)=>{var t;var o=n(591).h;var i=n(339);var a=/(\r?\n)/;var u=10;var s="$$$isSourceNode$$$";function SourceNode(e,r,n,t,o){this.children=[];this.sourceContents={};this.line=e==null?null:e;this.column=r==null?null:r;this.source=n==null?null:n;this.name=o==null?null:o;this[s]=true;if(t!=null)this.add(t)}SourceNode.fromStringWithSourceMap=function SourceNode_fromStringWithSourceMap(e,r,n){var t=new SourceNode;var o=e.split(a);var u=0;var shiftNextLine=function(){var e=getNextLine();var r=getNextLine()||"";return e+r;function getNextLine(){return u=0;r--){this.prepend(e[r])}}else if(e[s]||typeof e==="string"){this.children.unshift(e)}else{throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e)}return this};SourceNode.prototype.walk=function SourceNode_walk(e){var r;for(var n=0,t=this.children.length;n0){r=[];for(n=0;n{function getArg(e,r,n){if(r in e){return e[r]}else if(arguments.length===3){return n}else{throw new Error('"'+r+'" is a required argument.')}}r.getArg=getArg;var n=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/;var t=/^data:.+\,.+$/;function urlParse(e){var r=e.match(n);if(!r){return null}return{scheme:r[1],auth:r[2],host:r[3],port:r[4],path:r[5]}}r.urlParse=urlParse;function urlGenerate(e){var r="";if(e.scheme){r+=e.scheme+":"}r+="//";if(e.auth){r+=e.auth+"@"}if(e.host){r+=e.host}if(e.port){r+=":"+e.port}if(e.path){r+=e.path}return r}r.urlGenerate=urlGenerate;function normalize(e){var n=e;var t=urlParse(e);if(t){if(!t.path){return e}n=t.path}var o=r.isAbsolute(n);var i=n.split(/\/+/);for(var a,u=0,s=i.length-1;s>=0;s--){a=i[s];if(a==="."){i.splice(s,1)}else if(a===".."){u++}else if(u>0){if(a===""){i.splice(s+1,u);u=0}else{i.splice(s,2);u--}}}n=i.join("/");if(n===""){n=o?"/":"."}if(t){t.path=n;return urlGenerate(t)}return n}r.normalize=normalize;function join(e,r){if(e===""){e="."}if(r===""){r="."}var n=urlParse(r);var o=urlParse(e);if(o){e=o.path||"/"}if(n&&!n.scheme){if(o){n.scheme=o.scheme}return urlGenerate(n)}if(n||r.match(t)){return r}if(o&&!o.host&&!o.path){o.host=r;return urlGenerate(o)}var i=r.charAt(0)==="/"?r:normalize(e.replace(/\/+$/,"")+"/"+r);if(o){o.path=i;return urlGenerate(o)}return i}r.join=join;r.isAbsolute=function(e){return e.charAt(0)==="/"||n.test(e)};function relative(e,r){if(e===""){e="."}e=e.replace(/\/$/,"");var n=0;while(r.indexOf(e+"/")!==0){var t=e.lastIndexOf("/");if(t<0){return r}e=e.slice(0,t);if(e.match(/^([^\/]+:\/)?\/*$/)){return r}++n}return Array(n+1).join("../")+r.substr(e.length+1)}r.relative=relative;var o=function(){var e=Object.create(null);return!("__proto__"in e)}();function identity(e){return e}function toSetString(e){if(isProtoString(e)){return"$"+e}return e}r.toSetString=o?identity:toSetString;function fromSetString(e){if(isProtoString(e)){return e.slice(1)}return e}r.fromSetString=o?identity:fromSetString;function isProtoString(e){if(!e){return false}var r=e.length;if(r<9){return false}if(e.charCodeAt(r-1)!==95||e.charCodeAt(r-2)!==95||e.charCodeAt(r-3)!==111||e.charCodeAt(r-4)!==116||e.charCodeAt(r-5)!==111||e.charCodeAt(r-6)!==114||e.charCodeAt(r-7)!==112||e.charCodeAt(r-8)!==95||e.charCodeAt(r-9)!==95){return false}for(var n=r-10;n>=0;n--){if(e.charCodeAt(n)!==36){return false}}return true}function compareByOriginalPositions(e,r,n){var t=strcmp(e.source,r.source);if(t!==0){return t}t=e.originalLine-r.originalLine;if(t!==0){return t}t=e.originalColumn-r.originalColumn;if(t!==0||n){return t}t=e.generatedColumn-r.generatedColumn;if(t!==0){return t}t=e.generatedLine-r.generatedLine;if(t!==0){return t}return strcmp(e.name,r.name)}r.compareByOriginalPositions=compareByOriginalPositions;function compareByGeneratedPositionsDeflated(e,r,n){var t=e.generatedLine-r.generatedLine;if(t!==0){return t}t=e.generatedColumn-r.generatedColumn;if(t!==0||n){return t}t=strcmp(e.source,r.source);if(t!==0){return t}t=e.originalLine-r.originalLine;if(t!==0){return t}t=e.originalColumn-r.originalColumn;if(t!==0){return t}return strcmp(e.name,r.name)}r.compareByGeneratedPositionsDeflated=compareByGeneratedPositionsDeflated;function strcmp(e,r){if(e===r){return 0}if(e===null){return 1}if(r===null){return-1}if(e>r){return 1}return-1}function compareByGeneratedPositionsInflated(e,r){var n=e.generatedLine-r.generatedLine;if(n!==0){return n}n=e.generatedColumn-r.generatedColumn;if(n!==0){return n}n=strcmp(e.source,r.source);if(n!==0){return n}n=e.originalLine-r.originalLine;if(n!==0){return n}n=e.originalColumn-r.originalColumn;if(n!==0){return n}return strcmp(e.name,r.name)}r.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated;function parseSourceMapInput(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}r.parseSourceMapInput=parseSourceMapInput;function computeSourceURL(e,r,n){r=r||"";if(e){if(e[e.length-1]!=="/"&&r[0]!=="/"){e+="/"}r=e+r}if(n){var t=urlParse(n);if(!t){throw new Error("sourceMapURL could not be parsed")}if(t.path){var o=t.path.lastIndexOf("/");if(o>=0){t.path=t.path.substring(0,o+1)}}r=join(urlGenerate(t),r)}return normalize(r)}r.computeSourceURL=computeSourceURL},997:(e,r,n)=>{n(591).h;r.SourceMapConsumer=n(952).SourceMapConsumer;n(351)},284:(e,r,n)=>{e=n.nmd(e);var t=n(997).SourceMapConsumer;var o=n(17);var i;try{i=n(147);if(!i.existsSync||!i.readFileSync){i=null}}catch(e){}var a=n(650);function dynamicRequire(e,r){return e.require(r)}var u=false;var s=false;var l=false;var c="auto";var p={};var f={};var g=/^data:application\/json[^,]+base64,/;var h=[];var d=[];function isInBrowser(){if(c==="browser")return true;if(c==="node")return false;return typeof window!=="undefined"&&typeof XMLHttpRequest==="function"&&!(window.require&&window.module&&window.process&&window.process.type==="renderer")}function hasGlobalProcessEventEmitter(){return typeof process==="object"&&process!==null&&typeof process.on==="function"}function globalProcessVersion(){if(typeof process==="object"&&process!==null){return process.version}else{return""}}function globalProcessStderr(){if(typeof process==="object"&&process!==null){return process.stderr}}function globalProcessExit(e){if(typeof process==="object"&&process!==null&&typeof process.exit==="function"){return process.exit(e)}}function handlerExec(e){return function(r){for(var n=0;n"}var n=this.getLineNumber();if(n!=null){r+=":"+n;var t=this.getColumnNumber();if(t){r+=":"+t}}}var o="";var i=this.getFunctionName();var a=true;var u=this.isConstructor();var s=!(this.isToplevel()||u);if(s){var l=this.getTypeName();if(l==="[object Object]"){l="null"}var c=this.getMethodName();if(i){if(l&&i.indexOf(l)!=0){o+=l+"."}o+=i;if(c&&i.indexOf("."+c)!=i.length-c.length-1){o+=" [as "+c+"]"}}else{o+=l+"."+(c||"")}}else if(u){o+="new "+(i||"")}else if(i){o+=i}else{o+=r;a=false}if(a){o+=" ("+r+")"}return o}function cloneCallSite(e){var r={};Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach((function(n){r[n]=/^(?:is|get)/.test(n)?function(){return e[n].call(e)}:e[n]}));r.toString=CallSiteToString;return r}function wrapCallSite(e,r){if(r===undefined){r={nextPosition:null,curPosition:null}}if(e.isNative()){r.curPosition=null;return e}var n=e.getFileName()||e.getScriptNameOrSourceURL();if(n){var t=e.getLineNumber();var o=e.getColumnNumber()-1;var i=/^v(10\.1[6-9]|10\.[2-9][0-9]|10\.[0-9]{3,}|1[2-9]\d*|[2-9]\d|\d{3,}|11\.11)/;var a=i.test(globalProcessVersion())?0:62;if(t===1&&o>a&&!isInBrowser()&&!e.isEval()){o-=a}var u=mapSourcePosition({source:n,line:t,column:o});r.curPosition=u;e=cloneCallSite(e);var s=e.getFunctionName;e.getFunctionName=function(){if(r.nextPosition==null){return s()}return r.nextPosition.name||s()};e.getFileName=function(){return u.source};e.getLineNumber=function(){return u.line};e.getColumnNumber=function(){return u.column+1};e.getScriptNameOrSourceURL=function(){return u.source};return e}var l=e.isEval()&&e.getEvalOrigin();if(l){l=mapEvalOrigin(l);e=cloneCallSite(e);e.getEvalOrigin=function(){return l};return e}return e}function prepareStackTrace(e,r){if(l){p={};f={}}var n=e.name||"Error";var t=e.message||"";var o=n+": "+t;var i={nextPosition:null,curPosition:null};var a=[];for(var u=r.length-1;u>=0;u--){a.push("\n at "+wrapCallSite(r[u],i));i.nextPosition=i.curPosition}i.curPosition=i.nextPosition=null;return o+a.reverse().join("")}function getErrorSource(e){var r=/\n at [^(]+ \((.*):(\d+):(\d+)\)/.exec(e.stack);if(r){var n=r[1];var t=+r[2];var o=+r[3];var a=p[n];if(!a&&i&&i.existsSync(n)){try{a=i.readFileSync(n,"utf8")}catch(e){a=""}}if(a){var u=a.split(/(?:\r\n|\r|\n)/)[t-1];if(u){return n+":"+t+"\n"+u+"\n"+new Array(o).join(" ")+"^"}}}return null}function printErrorAndExit(e){var r=getErrorSource(e);var n=globalProcessStderr();if(n&&n._handle&&n._handle.setBlocking){n._handle.setBlocking(true)}if(r){console.error();console.error(r)}console.error(e.stack);globalProcessExit(1)}function shimEmitUncaughtException(){var e=process.emit;process.emit=function(r){if(r==="uncaughtException"){var n=arguments[1]&&arguments[1].stack;var t=this.listeners(r).length>0;if(n&&!t){return printErrorAndExit(arguments[1])}}return e.apply(this,arguments)}}var S=h.slice(0);var _=d.slice(0);r.wrapCallSite=wrapCallSite;r.getErrorSource=getErrorSource;r.mapSourcePosition=mapSourcePosition;r.retrieveSourceMap=v;r.install=function(r){r=r||{};if(r.environment){c=r.environment;if(["node","browser","auto"].indexOf(c)===-1){throw new Error("environment "+c+" was unknown. Available options are {auto, browser, node}")}}if(r.retrieveFile){if(r.overrideRetrieveFile){h.length=0}h.unshift(r.retrieveFile)}if(r.retrieveSourceMap){if(r.overrideRetrieveSourceMap){d.length=0}d.unshift(r.retrieveSourceMap)}if(r.hookRequire&&!isInBrowser()){var n=dynamicRequire(e,"module");var t=n.prototype._compile;if(!t.__sourceMapSupport){n.prototype._compile=function(e,r){p[r]=e;f[r]=undefined;return t.call(this,e,r)};n.prototype._compile.__sourceMapSupport=true}}if(!l){l="emptyCacheBetweenOperations"in r?r.emptyCacheBetweenOperations:false}if(!u){u=true;Error.prepareStackTrace=prepareStackTrace}if(!s){var o="handleUncaughtExceptions"in r?r.handleUncaughtExceptions:true;try{var i=dynamicRequire(e,"worker_threads");if(i.isMainThread===false){o=false}}catch(e){}if(o&&hasGlobalProcessEventEmitter()){s=true;shimEmitUncaughtException()}}};r.resetRetrieveHandlers=function(){h.length=0;d.length=0;h=S.slice(0);d=_.slice(0);v=handlerExec(d);m=handlerExec(h)}},147:e=>{"use strict";e.exports=require("fs")},17:e=>{"use strict";e.exports=require("path")}};var r={};function __webpack_require__(n){var t=r[n];if(t!==undefined){return t.exports}var o=r[n]={id:n,loaded:false,exports:{}};var i=true;try{e[n](o,o.exports,__webpack_require__);i=false}finally{if(i)delete r[n]}o.loaded=true;return o.exports}(()=>{__webpack_require__.nmd=e=>{e.paths=[];if(!e.children)e.children=[];return e}})();if(typeof __webpack_require__!=="undefined")__webpack_require__.ab=__dirname+"/";var n={};(()=>{__webpack_require__(284).install()})();module.exports=n})(); -------------------------------------------------------------------------------- /docker-bake.hcl: -------------------------------------------------------------------------------- 1 | target "_common" { 2 | args = { 3 | BUILDKIT_CONTEXT_KEEP_GIT_DIR = 1 4 | } 5 | } 6 | 7 | group "default" { 8 | targets = ["build"] 9 | } 10 | 11 | group "pre-checkin" { 12 | targets = ["vendor", "format", "build"] 13 | } 14 | 15 | group "validate" { 16 | targets = ["lint", "build-validate", "vendor-validate"] 17 | } 18 | 19 | target "build" { 20 | dockerfile = "dev.Dockerfile" 21 | target = "build-update" 22 | output = ["."] 23 | } 24 | 25 | target "build-validate" { 26 | inherits = ["_common"] 27 | dockerfile = "dev.Dockerfile" 28 | target = "build-validate" 29 | output = ["type=cacheonly"] 30 | } 31 | 32 | target "format" { 33 | dockerfile = "dev.Dockerfile" 34 | target = "format-update" 35 | output = ["."] 36 | } 37 | 38 | target "lint" { 39 | dockerfile = "dev.Dockerfile" 40 | target = "lint" 41 | output = ["type=cacheonly"] 42 | } 43 | 44 | target "vendor" { 45 | dockerfile = "dev.Dockerfile" 46 | target = "vendor-update" 47 | output = ["."] 48 | } 49 | 50 | target "vendor-validate" { 51 | inherits = ["_common"] 52 | dockerfile = "dev.Dockerfile" 53 | target = "vendor-validate" 54 | output = ["type=cacheonly"] 55 | } 56 | 57 | target "test" { 58 | dockerfile = "dev.Dockerfile" 59 | target = "test-coverage" 60 | output = ["./coverage"] 61 | } 62 | -------------------------------------------------------------------------------- /jest.config.ts: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | clearMocks: true, 3 | testEnvironment: 'node', 4 | moduleFileExtensions: ['js', 'ts'], 5 | testMatch: ['**/*.test.ts'], 6 | transform: { 7 | '^.+\\.ts$': 'ts-jest' 8 | }, 9 | collectCoverageFrom: ['src/**/{!(main.ts),}.ts'], 10 | coveragePathIgnorePatterns: ['dist/', 'node_modules/', '__tests__/'], 11 | verbose: true 12 | }; 13 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mage-action", 3 | "description": "GitHub Action for Mage, a Make/rake-like build tool using Go", 4 | "main": "src/main.ts", 5 | "scripts": { 6 | "build": "ncc build src/main.ts --source-map --minify --license licenses.txt", 7 | "lint": "yarn run prettier && yarn run eslint", 8 | "format": "yarn run prettier:fix && yarn run eslint:fix", 9 | "eslint": "eslint --max-warnings=0 .", 10 | "eslint:fix": "eslint --fix .", 11 | "prettier": "prettier --check \"./**/*.ts\"", 12 | "prettier:fix": "prettier --write \"./**/*.ts\"", 13 | "test": "jest", 14 | "all": "yarn run build && yarn run format && yarn test" 15 | }, 16 | "repository": { 17 | "type": "git", 18 | "url": "git+https://github.com/magefile/mage-action.git" 19 | }, 20 | "keywords": [ 21 | "actions", 22 | "mage", 23 | "make", 24 | "rake", 25 | "golang" 26 | ], 27 | "author": "CrazyMax", 28 | "license": "MIT", 29 | "packageManager": "yarn@3.6.3", 30 | "dependencies": { 31 | "@actions/cache": "^4.0.3", 32 | "@actions/core": "^1.11.1", 33 | "@actions/exec": "^1.1.1", 34 | "@actions/http-client": "^2.2.3", 35 | "@actions/tool-cache": "^2.0.2" 36 | }, 37 | "devDependencies": { 38 | "@types/node": "^20.6.0", 39 | "@typescript-eslint/eslint-plugin": "^6.6.0", 40 | "@typescript-eslint/parser": "^6.6.0", 41 | "@vercel/ncc": "^0.38.0", 42 | "eslint": "^8.49.0", 43 | "eslint-config-prettier": "^9.0.0", 44 | "eslint-plugin-jest": "^27.2.3", 45 | "eslint-plugin-prettier": "^5.0.0", 46 | "jest": "^29.6.4", 47 | "prettier": "^3.0.3", 48 | "ts-jest": "^29.1.1", 49 | "ts-node": "^10.9.1", 50 | "typescript": "^5.2.2" 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/installer.ts: -------------------------------------------------------------------------------- 1 | import * as os from 'os'; 2 | import * as path from 'path'; 3 | import * as util from 'util'; 4 | import * as core from '@actions/core'; 5 | import * as httpm from '@actions/http-client'; 6 | import * as tc from '@actions/tool-cache'; 7 | import * as cache from '@actions/cache'; 8 | import fs from 'fs'; 9 | 10 | const osPlat: string = os.platform(); 11 | const osArch: string = os.arch(); 12 | 13 | export interface GitHubRelease { 14 | id: number; 15 | tag_name: string; 16 | html_url: string; 17 | assets: Array; 18 | } 19 | 20 | export const getRelease = async (version: string): Promise => { 21 | const url = `https://raw.githubusercontent.com/magefile/mage-action/master/.github/mage-releases.json`; 22 | const http: httpm.HttpClient = new httpm.HttpClient('ghaction-setup-containerd'); 23 | const resp: httpm.HttpClientResponse = await http.get(url); 24 | const body = await resp.readBody(); 25 | const statusCode = resp.message.statusCode || 500; 26 | if (statusCode >= 400) { 27 | throw new Error(`Failed to get Mage release ${version} from ${url} with status code ${statusCode}: ${body}`); 28 | } 29 | const releases = >JSON.parse(body); 30 | if (!releases[version]) { 31 | throw new Error(`Cannot find Mage release ${version} in ${url}`); 32 | } 33 | return releases[version]; 34 | }; 35 | 36 | export async function getMage(version: string, cacheBinary?: boolean): Promise { 37 | const release: GitHubRelease = await getRelease(version); 38 | const semver: string = release.tag_name.replace(/^v/, ''); 39 | core.info(`Mage version found: ${release.tag_name}`); 40 | 41 | const filename: string = getFilename(semver); 42 | const magePath = tc.find('mage-action', semver); 43 | if (magePath) { 44 | core.info(`Mage binary found in local cache @ ${magePath}`); 45 | return getExePath(magePath); 46 | } 47 | 48 | const mageHome = path.join(`${process.env.HOME}`, '.mage'); 49 | if (!fs.existsSync(mageHome)) { 50 | fs.mkdirSync(mageHome, {recursive: true}); 51 | } 52 | 53 | if (cacheBinary && cache.isFeatureAvailable()) { 54 | core.debug(`GitHub actions cache feature available`); 55 | const cacheKey = await cache.restoreCache([getExePath(mageHome)], getCacheKey(semver)); 56 | if (cacheKey) { 57 | core.info(`Restored ${cacheKey} from GitHub actions cache`); 58 | const cachePath: string = await tc.cacheDir(mageHome, 'mage-action', semver); 59 | return getExePath(cachePath); 60 | } 61 | } 62 | 63 | const downloadUrl: string = util.format( 64 | 'https://github.com/magefile/mage/releases/download/%s/%s', 65 | release.tag_name, 66 | filename 67 | ); 68 | 69 | core.info(`Downloading ${downloadUrl}...`); 70 | const downloadPath: string = await tc.downloadTool(downloadUrl); 71 | core.debug(`Downloaded to ${downloadPath}`); 72 | 73 | core.info('Extracting Mage...'); 74 | let extPath: string; 75 | if (osPlat == 'win32') { 76 | extPath = await tc.extractZip(downloadPath, mageHome); 77 | } else { 78 | extPath = await tc.extractTar(downloadPath, mageHome); 79 | } 80 | core.debug(`Extracted to ${extPath}`); 81 | 82 | const cachePath: string = await tc.cacheDir(extPath, 'mage-action', semver); 83 | core.debug(`Cached to ${cachePath}`); 84 | if (cacheBinary && cache.isFeatureAvailable()) { 85 | core.debug(`Caching to GitHub actions cache`); 86 | await cache.saveCache([getExePath(mageHome)], getCacheKey(semver)); 87 | } 88 | 89 | return getExePath(cachePath); 90 | } 91 | 92 | const getCacheKey = (semver: string): string => { 93 | return util.format('mage-action-cache-%s', semver); 94 | }; 95 | 96 | const getExePath = (basePath: string): string => { 97 | const exePath: string = path.join(basePath, osPlat == 'win32' ? 'mage.exe' : 'mage'); 98 | core.debug(`Exe path is ${exePath}`); 99 | 100 | return exePath; 101 | }; 102 | 103 | const getFilename = (semver: string): string => { 104 | const platform: string = osPlat == 'win32' ? 'Windows' : osPlat == 'darwin' ? 'macOS' : 'Linux'; 105 | const arch: string = osArch == 'x64' ? '64bit' : osArch == 'arm64' ? 'ARM64' : '32bit'; 106 | const ext: string = osPlat == 'win32' ? 'zip' : 'tar.gz'; 107 | return util.format('mage_%s_%s-%s.%s', semver, platform, arch, ext); 108 | }; 109 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import * as path from 'path'; 2 | import * as installer from './installer'; 3 | import * as core from '@actions/core'; 4 | import * as exec from '@actions/exec'; 5 | 6 | async function run(): Promise { 7 | try { 8 | const version = core.getInput('version') || 'latest'; 9 | const args = core.getInput('args'); 10 | const workdir = core.getInput('workdir') || process.env['GITHUB_WORKSPACE'] || '.'; 11 | const installOnly = core.getBooleanInput('install-only'); 12 | const cacheBinary = core.getBooleanInput('cache-binary'); 13 | 14 | const mage = await installer.getMage(version, cacheBinary); 15 | 16 | if (installOnly) { 17 | const dir = path.dirname(mage); 18 | core.addPath(dir); 19 | core.debug(`Added ${dir} to PATH`); 20 | return; 21 | } 22 | 23 | core.info('Running Mage...'); 24 | await exec.exec(`${mage} ${args}`, undefined, { 25 | cwd: workdir 26 | }); 27 | } catch (error) { 28 | core.setFailed(error.message); 29 | } 30 | } 31 | 32 | run(); 33 | -------------------------------------------------------------------------------- /test/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/magefile/mage-action/test 2 | 3 | go 1.20 4 | 5 | require github.com/magefile/mage v1.15.0 6 | -------------------------------------------------------------------------------- /test/go.sum: -------------------------------------------------------------------------------- 1 | github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg= 2 | github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= 3 | -------------------------------------------------------------------------------- /test/magefile.go: -------------------------------------------------------------------------------- 1 | //go:build mage 2 | 3 | package main 4 | 5 | import ( 6 | "fmt" 7 | 8 | "github.com/magefile/mage/mg" 9 | "github.com/magefile/mage/sh" 10 | ) 11 | 12 | // Build the app! 13 | func Build() error { 14 | fmt.Println("⚙️ Go mod download") 15 | if err := sh.Run(mg.GoCmd(), "mod", "download"); err != nil { 16 | return err 17 | } 18 | 19 | fmt.Println("⚙️ Go build...") 20 | return sh.Run(mg.GoCmd(), "build", "-o", "mage-action", "-v") 21 | } 22 | -------------------------------------------------------------------------------- /test/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | func main() { 4 | println("Ba dum, tss!") 5 | } 6 | -------------------------------------------------------------------------------- /test/tools.go: -------------------------------------------------------------------------------- 1 | //go:build tools 2 | 3 | package tools 4 | 5 | import ( 6 | // Import mage tool 7 | _ "github.com/magefile/mage" 8 | ) 9 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "esModuleInterop": true, 4 | "target": "es6", 5 | "module": "commonjs", 6 | "newLine": "lf", 7 | "outDir": "./lib", 8 | "rootDir": "./src", 9 | "forceConsistentCasingInFileNames": true, 10 | "noImplicitAny": false, 11 | "resolveJsonModule": true, 12 | "useUnknownInCatchVariables": false, 13 | }, 14 | "exclude": [ 15 | "node_modules", 16 | "**/*.test.ts", 17 | "jest.config.ts" 18 | ] 19 | } 20 | --------------------------------------------------------------------------------